diff options
Diffstat (limited to 'files/ca')
817 files changed, 137031 insertions, 0 deletions
diff --git a/files/ca/_redirects.txt b/files/ca/_redirects.txt new file mode 100644 index 0000000000..c242e20961 --- /dev/null +++ b/files/ca/_redirects.txt @@ -0,0 +1,134 @@ +# FROM-URL TO-URL +/ca/docs/AJAX /ca/docs/Web/Guide/AJAX +/ca/docs/AJAX/Primers_passos /ca/docs/Web/Guide/AJAX/Primers_passos +/ca/docs/AJAX:Primers_passos /ca/docs/Web/Guide/AJAX/Primers_passos +/ca/docs/Apps /ca/docs/Web/Apps +/ca/docs/Apps/Publishing /ca/docs/Web/Apps/Publishing +/ca/docs/Apps/Publishing/Enviant_una_aplicacaci%C3%B3 /ca/docs/Web/Apps/Publishing/Enviant_una_aplicacaci%C3%B3 +/ca/docs/CSS /ca/docs/Web/CSS +/ca/docs/CSS/utilitzar_model_flexible_caixes_CSS /ca/docs/Web/CSS/CSS_Flexible_Box_Layout/Utilitzar_model_flexible_caixes_CSS +/ca/docs/Categories:XULRunner:Exemples /ca/docs/Categories/XULRunner/Exemples +/ca/docs/Devmo:Quant_a /ca/docs/Devmo/Quant_a +/ca/docs/Firefox_2 /ca/docs/Firefox_2_per_a_desenvolupadors +/ca/docs/Firefox_2.0_per_a_desenvolupadors /ca/docs/Firefox_2_per_a_desenvolupadors +/ca/docs/JavaScript /ca/docs/Web/JavaScript +/ca/docs/JavaScript/Referencia /ca/docs/Web/JavaScript/Referencia +/ca/docs/JavaScript/Referencia/Sobre /ca/docs/Web/JavaScript/Referencia/Sobre +/ca/docs/Learn/CSS/Caixes_estil /en-US/docs/Learn/CSS/Building_blocks +/ca/docs/Learn/CSS/Caixes_estil/Efectes_avan%C3%A7ats_caixa /ca/docs/Learn/CSS/Building_blocks/Advanced_styling_effects +/ca/docs/Learn/CSS/Caixes_estil/Fons /en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders +/ca/docs/Learn/CSS/Caixes_estil/Recapitulaci%C3%B3_model_caixa /en-US/docs/Learn/CSS/Building_blocks/The_box_model +/ca/docs/Learn/CSS/Caixes_estil/Taules_estil /ca/docs/Learn/CSS/Building_blocks/Styling_tables +/ca/docs/Learn/CSS/Caixes_estil/Vores /en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS /en-US/docs/Learn/CSS/First_steps +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Cascada_i_her%C3%A8ncia /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Com_funciona_CSS /en-US/docs/Learn/CSS/First_steps/How_CSS_works +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Combinadors_i_selectors_multiples /en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Depuracio_CSS /en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Pseudo-classes_and_pseudo-elements /en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Selectors_atributs /en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Selectors_simples /en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Sintaxi_CSS /en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/Valors_i_unitats /en-US/docs/Learn/CSS/Building_blocks/Values_and_units +/ca/docs/Learn/CSS/Introducci%C3%B3_a_CSS/model_caixa /en-US/docs/Learn/CSS/Building_blocks/The_box_model +/ca/docs/MDN/Contribute/Estructures /ca/docs/MDN/Structures +/ca/docs/MDN/comentaris /ca/docs/MDN/Contribute/Feedback +/ca/docs/P%C3%A0gina_principal /ca/docs/Web +/ca/docs/Portada /ca/docs/Web +/ca/docs/Web/CSS/utilitzar_model_flexible_caixes_CSS /ca/docs/Web/CSS/CSS_Flexible_Box_Layout/Utilitzar_model_flexible_caixes_CSS +/ca/docs/Web/Guide/CSS /ca/docs/Learn/CSS +/ca/docs/Web/Guide/CSS/Inici_en_CSS/Contingut /ca/docs/Learn/CSS/Howto/Generated_content +/ca/docs/Web/Guide/HTML /ca/docs/Learn/HTML +/ca/docs/Web/Guide/HTML/Forms /ca/docs/Learn/HTML/Forms +/ca/docs/Web/Guide/HTML/Introduction /ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML +/ca/docs/Web/JavaScript/Reference/Classes /ca/docs/Web/JavaScript/Referencia/Classes +/ca/docs/Web/JavaScript/Reference/Classes/constructor /ca/docs/Web/JavaScript/Referencia/Classes/constructor +/ca/docs/Web/JavaScript/Reference/Classes/static /ca/docs/Web/JavaScript/Referencia/Classes/static +/ca/docs/Web/JavaScript/Reference/Operators /ca/docs/Web/JavaScript/Referencia/Operadors +/ca/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators /ca/docs/Web/JavaScript/Referencia/Operadors/Arithmetic_Operators +/ca/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators /ca/docs/Web/JavaScript/Referencia/Operadors/Bitwise_Operators +/ca/docs/Web/JavaScript/Reference/Operators/Conditional_Operator /ca/docs/Web/JavaScript/Referencia/Operadors/Conditional_Operator +/ca/docs/Web/JavaScript/Reference/Operators/Grouping /ca/docs/Web/JavaScript/Referencia/Operadors/Grouping +/ca/docs/Web/JavaScript/Reference/Operators/Logical_Operators /ca/docs/Web/JavaScript/Referencia/Operadors/Logical_Operators +/ca/docs/Web/JavaScript/Reference/Operators/Operador_Coma /ca/docs/Web/JavaScript/Referencia/Operadors/Operador_Coma +/ca/docs/Web/JavaScript/Reference/Operators/delete /ca/docs/Web/JavaScript/Referencia/Operadors/delete +/ca/docs/Web/JavaScript/Reference/Operators/typeof /ca/docs/Web/JavaScript/Referencia/Operadors/typeof +/ca/docs/Web/JavaScript/Reference/Operators/void /ca/docs/Web/JavaScript/Referencia/Operadors/void +/ca/docs/Web/JavaScript/Reference/Operators/yield /ca/docs/Web/JavaScript/Referencia/Operadors/yield +/ca/docs/Web/JavaScript/Reference/Statements /ca/docs/Web/JavaScript/Referencia/Sentencies +/ca/docs/Web/JavaScript/Reference/Statements/Buida /ca/docs/Web/JavaScript/Referencia/Sentencies/Buida +/ca/docs/Web/JavaScript/Reference/Statements/block /ca/docs/Web/JavaScript/Referencia/Sentencies/block +/ca/docs/Web/JavaScript/Reference/Statements/for /ca/docs/Web/JavaScript/Referencia/Sentencies/for +/ca/docs/Web/JavaScript/Reference/Statements/for...of /ca/docs/Web/JavaScript/Referencia/Sentencies/for...of +/ca/docs/Web/JavaScript/Reference/Statements/function /ca/docs/Web/JavaScript/Referencia/Sentencies/function +/ca/docs/Web/JavaScript/Reference/Statements/if...else /ca/docs/Web/JavaScript/Referencia/Sentencies/if...else +/ca/docs/Web/JavaScript/Reference/Statements/return /ca/docs/Web/JavaScript/Referencia/Sentencies/return +/ca/docs/Web/JavaScript/Reference/Statements/while /ca/docs/Web/JavaScript/Referencia/Sentencies/while +/ca/docs/Web/JavaScript/Referencia/Global_Objects /ca/docs/Web/JavaScript/Referencia/Objectes_globals +/ca/docs/Web/JavaScript/Referencia/Global_Objects/Infinity /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Infinity +/ca/docs/Web/JavaScript/Referencia/Global_Objects/Math /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math +/ca/docs/Web/JavaScript/Referencia/Global_Objects/NaN /ca/docs/Web/JavaScript/Referencia/Objectes_globals/NaN +/ca/docs/Web/JavaScript/Referencia/Global_Objects/Number /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number +/ca/docs/Web/JavaScript/Referencia/Global_Objects/null /ca/docs/Web/JavaScript/Referencia/Objectes_globals/null +/ca/docs/Web/JavaScript/Referencia/Global_Objects/undefined /ca/docs/Web/JavaScript/Referencia/Objectes_globals/undefined +/ca/docs/Web/JavaScript/Referencia/Objectes_standard /ca/docs/Web/JavaScript/Referencia/Objectes_globals +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Boolean /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Boolean +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Boolean/prototype /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Boolean/prototype +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Boolean/toSource /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Boolean/toSource +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Boolean/toString /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Boolean/toString +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Boolean/valueOf /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Boolean/valueOf +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getDay /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getDay +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getFullYear /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getFullYear +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getHours /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getHours +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getMilliseconds /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getMilliseconds +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getMinutes /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getMinutes +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getMonth /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getMonth +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/getSeconds /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getSeconds +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/now /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/now +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Date/prototype /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/prototype +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/columnNumber /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/columnNumber +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/fileName /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/fileName +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/lineNumber /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/lineNumber +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/message /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/message +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/name /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/name +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/prototype /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/prototype +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/toString /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Error/toString +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Infinity /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Infinity +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/JSON /ca/docs/Web/JavaScript/Referencia/Objectes_globals/JSON +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Map /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Map +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/E /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/E +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/LN10 /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/LN10 +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/LN2 /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/LN2 +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/LOG10E /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/LOG10E +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/LOG2E /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/LOG2E +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/PI /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/PI +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/SQRT1_2 /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/SQRT1_2 +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/SQRT2 /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/SQRT2 +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/abs /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/abs +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/acos /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/acos +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/asin /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/asin +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/atan /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/atan +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/ceil /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/ceil +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/cos /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/cos +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/floor /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/floor +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/sin /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/sin +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Math/tan /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Math/tan +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/NaN /ca/docs/Web/JavaScript/Referencia/Objectes_globals/NaN +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/EPSILON /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/EPSILON +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/MAX_SAFE_INTEGER /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/MAX_SAFE_INTEGER +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/MAX_VALUE /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/MAX_VALUE +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/MIN_SAFE_INTEGER /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/MIN_SAFE_INTEGER +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/MIN_VALUE /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/MIN_VALUE +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/NEGATIVE_INFINITY /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/NEGATIVE_INFINITY +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Number/NaN /ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number/NaN +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/String /ca/docs/Web/JavaScript/Referencia/Objectes_globals/String +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/String/length /ca/docs/Web/JavaScript/Referencia/Objectes_globals/String/length +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/null /ca/docs/Web/JavaScript/Referencia/Objectes_globals/null +/ca/docs/Web/JavaScript/Referencia/Objectes_standard/undefined /ca/docs/Web/JavaScript/Referencia/Objectes_globals/undefined +/ca/docs/XSLT /ca/docs/Web/XSLT +/ca/docs/en /en-US/ diff --git a/files/ca/_wikihistory.json b/files/ca/_wikihistory.json new file mode 100644 index 0000000000..5750f89f6c --- /dev/null +++ b/files/ca/_wikihistory.json @@ -0,0 +1,5014 @@ +{ + "Addició_de_motors_de_cerca_a_les_pàgines_web": { + "modified": "2019-01-16T15:50:29.790Z", + "contributors": [ + "Toniher" + ] + }, + "Firefox_2_per_a_desenvolupadors": { + "modified": "2019-01-16T14:39:26.842Z", + "contributors": [ + "fscholz", + "Toniher" + ] + }, + "Glossary": { + "modified": "2020-10-07T11:07:12.440Z", + "contributors": [ + "peterbe", + "SphinxKnight", + "wbamberg", + "klez" + ] + }, + "Glossary/AJAX": { + "modified": "2019-03-23T22:19:54.558Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/API": { + "modified": "2019-03-23T22:19:57.028Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/ASCII": { + "modified": "2019-03-23T22:19:48.955Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Argument": { + "modified": "2019-03-23T22:20:05.820Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Atribut": { + "modified": "2019-03-23T22:19:53.370Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Boolean": { + "modified": "2019-03-23T22:19:54.285Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/CSS": { + "modified": "2020-02-14T07:43:12.745Z", + "contributors": [ + "ainarela", + "Legioinvicta" + ] + }, + "Glossary/Caràcter": { + "modified": "2019-03-23T22:19:53.728Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Codificació_de_caràcters": { + "modified": "2019-03-23T22:19:50.642Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/DOM": { + "modified": "2019-03-23T22:19:56.910Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/ECMAScript": { + "modified": "2019-03-23T22:19:48.420Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Etiqueta": { + "modified": "2019-03-23T22:19:57.140Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/FTP": { + "modified": "2019-03-23T22:19:59.099Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Funció": { + "modified": "2019-03-23T22:19:50.324Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/HTML": { + "modified": "2020-02-14T08:10:01.788Z", + "contributors": [ + "ainarela", + "Legioinvicta" + ] + }, + "Glossary/HTTP": { + "modified": "2019-03-23T22:19:56.303Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/IPv4": { + "modified": "2019-03-23T22:19:48.155Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/IPv6": { + "modified": "2019-03-23T22:19:50.848Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/IndexedDB": { + "modified": "2019-03-23T22:19:53.147Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Internet": { + "modified": "2019-03-23T22:19:59.720Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/JavaScript": { + "modified": "2019-03-23T22:19:56.426Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Mètode": { + "modified": "2019-03-23T22:20:05.381Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Navegador": { + "modified": "2019-03-23T22:19:58.039Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Null": { + "modified": "2019-03-23T22:19:50.738Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Number": { + "modified": "2019-03-23T22:19:55.651Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/OOP": { + "modified": "2019-03-23T22:19:58.371Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Objecte": { + "modified": "2019-03-23T22:19:50.943Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Primitiu": { + "modified": "2019-03-23T22:20:08.496Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Propietat": { + "modified": "2019-03-23T22:20:10.616Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Protocol": { + "modified": "2019-03-23T22:19:58.471Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/RSS": { + "modified": "2019-03-23T22:19:52.397Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/SQL": { + "modified": "2019-03-23T22:19:53.040Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/SVG": { + "modified": "2020-02-14T08:18:39.135Z", + "contributors": [ + "ainarela", + "Legioinvicta" + ] + }, + "Glossary/Servidor": { + "modified": "2019-03-23T22:19:48.520Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/String": { + "modified": "2019-03-23T22:19:52.941Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Symbol": { + "modified": "2019-03-23T22:19:57.242Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/TCP": { + "modified": "2019-03-23T22:19:54.663Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/URL": { + "modified": "2019-03-23T22:19:58.992Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/UTF-8": { + "modified": "2019-03-23T22:19:55.752Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Valor": { + "modified": "2019-03-23T22:20:04.109Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/World_Wide_Web": { + "modified": "2019-03-23T22:19:59.394Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Wrapper": { + "modified": "2019-03-18T21:15:35.208Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/XML": { + "modified": "2019-03-23T22:19:56.676Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/adreça_IP": { + "modified": "2019-03-23T22:19:57.768Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/referències_a_objectes": { + "modified": "2019-03-23T22:20:02.599Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/undefined": { + "modified": "2019-03-23T22:19:52.843Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Glossary/Àmbit": { + "modified": "2019-03-23T22:20:06.122Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn": { + "modified": "2020-07-16T22:43:38.266Z", + "contributors": [ + "SphinxKnight", + "jordibrus", + "nuriarai", + "Legioinvicta", + "enTropy" + ] + }, + "Learn/Accessibility": { + "modified": "2020-07-16T22:39:55.708Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Learn/Accessibility/Accessibility_troubleshooting": { + "modified": "2020-09-27T10:09:53.169Z", + "contributors": [ + "UOCccorcoles" + ] + }, + "Learn/Accessibility/CSS_and_JavaScript": { + "modified": "2020-09-28T12:16:59.870Z", + "contributors": [ + "zuruckzugehen", + "UOCccorcoles" + ] + }, + "Learn/Accessibility/HTML": { + "modified": "2020-09-24T14:06:50.952Z", + "contributors": [ + "UOCccorcoles" + ] + }, + "Learn/Accessibility/Que_es_accessibilitat": { + "modified": "2020-09-28T14:42:22.680Z", + "contributors": [ + "PalomaBanyuls", + "editorUOC" + ] + }, + "Learn/CSS": { + "modified": "2020-07-16T22:25:32.427Z", + "contributors": [ + "carlesferreiro", + "chrisdavidmills" + ] + }, + "Learn/CSS/Building_blocks": { + "modified": "2020-07-16T22:28:06.833Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Learn/CSS/Building_blocks/Advanced_styling_effects": { + "modified": "2020-07-16T22:28:20.809Z", + "contributors": [ + "chrisdavidmills", + "Legioinvicta" + ] + }, + "Learn/CSS/Building_blocks/Cascada_i_herència": { + "modified": "2020-09-06T11:07:02.729Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Depurar_el_CSS": { + "modified": "2020-10-15T22:27:14.006Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Desbordament_de_contingut": { + "modified": "2020-09-07T07:28:16.584Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Dimensionar_elements_en_CSS": { + "modified": "2020-07-16T22:29:20.212Z", + "contributors": [ + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Fons_i_vores": { + "modified": "2020-09-06T17:11:06.366Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Images_media_form_elements": { + "modified": "2020-07-16T22:29:24.255Z", + "contributors": [ + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Selectors_CSS": { + "modified": "2020-09-06T12:38:01.863Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Selectors_CSS/Combinadors": { + "modified": "2020-09-06T14:03:41.366Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements": { + "modified": "2020-09-06T13:50:00.436Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Selectors_CSS/Selectors_atribut": { + "modified": "2020-09-06T13:31:42.768Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID": { + "modified": "2020-09-06T13:14:37.617Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Styling_tables": { + "modified": "2020-09-14T06:59:58.596Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "chrisdavidmills", + "wbamberg", + "Legioinvicta" + ] + }, + "Learn/CSS/Building_blocks/The_box_model": { + "modified": "2020-09-06T14:44:17.528Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Building_blocks/Valors_i_unitats_CSS": { + "modified": "2020-09-07T09:12:07.786Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Caixes_estil/Caixa_aspecte_interessant": { + "modified": "2020-07-16T22:28:26.308Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Caixes_estil/Creació_carta": { + "modified": "2020-07-16T22:28:24.307Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS": { + "modified": "2020-07-16T22:26:29.321Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Disseny_responsiu": { + "modified": "2020-09-17T06:03:03.884Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Disseny_CSS/Exemples_pràctics_posicionament": { + "modified": "2020-07-16T22:26:47.642Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Flexbox": { + "modified": "2020-09-15T14:11:31.873Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Flotadors": { + "modified": "2020-10-16T13:31:05.489Z", + "contributors": [ + "zuruckzugehen", + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Flux_normal": { + "modified": "2020-07-16T22:27:20.382Z", + "contributors": [ + "editorUOC" + ] + }, + "Learn/CSS/Disseny_CSS/Graelles": { + "modified": "2020-09-15T17:42:28.654Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Introduccio_disseny_CSS": { + "modified": "2020-09-15T13:10:38.905Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Posicionament": { + "modified": "2020-07-16T22:26:41.807Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Disseny_CSS/Suport_en_navegadors_antics": { + "modified": "2020-07-16T22:27:17.065Z", + "contributors": [ + "editorUOC" + ] + }, + "Learn/CSS/Estilitzar_text": { + "modified": "2020-07-16T22:25:57.417Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Estilitzar_text/Composició_pàgina_inici": { + "modified": "2020-07-16T22:26:25.942Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/CSS/Estilitzar_text/Estilitzar_enllaços": { + "modified": "2020-09-18T08:18:22.715Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Estilitzar_text/Fonts_Web": { + "modified": "2020-09-01T07:12:36.767Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Estilitzar_text/Llistes_estil": { + "modified": "2020-09-18T08:12:42.705Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/Estilitzar_text/Text_fonamental": { + "modified": "2020-09-18T07:56:58.583Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/CSS/First_steps": { + "modified": "2020-07-16T22:27:38.616Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Learn/CSS/First_steps/Com_començar_amb_CSS": { + "modified": "2020-08-31T14:05:15.542Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/First_steps/Com_estructurar_el_CSS": { + "modified": "2020-09-18T07:37:19.056Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/First_steps/Com_funciona_el_CSS": { + "modified": "2020-09-18T07:45:35.450Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/First_steps/Que_es_el_CSS": { + "modified": "2020-10-15T22:26:48.511Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/CSS/Howto": { + "modified": "2020-07-16T22:25:41.769Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Learn/CSS/Howto/Generated_content": { + "modified": "2020-07-16T22:25:47.177Z", + "contributors": [ + "chrisdavidmills", + "Legioinvicta" + ] + }, + "Learn/CSS/Introducció_a_CSS/Comprensió_CSS_fonamental": { + "modified": "2020-07-16T22:28:11.319Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web": { + "modified": "2020-07-16T22:33:49.938Z", + "contributors": [ + "nuriarai", + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/CSS_bàsic": { + "modified": "2020-07-16T22:34:56.090Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/Com_funciona_Web": { + "modified": "2020-07-16T22:33:59.006Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/HTML_basics": { + "modified": "2020-07-16T22:34:42.935Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari": { + "modified": "2020-07-16T22:34:06.205Z", + "contributors": [ + "editorUOC", + "nuriarai", + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/JavaScript_bàsic": { + "modified": "2020-07-16T22:35:08.325Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/Publicar_nostre_lloc_web": { + "modified": "2020-07-16T22:34:23.226Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/Quin_aspecte_tindrà_vostre_lloc_web": { + "modified": "2020-07-16T22:34:14.054Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/Getting_started_with_the_web/Tractar_amb_arxius": { + "modified": "2020-07-16T22:34:31.776Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML": { + "modified": "2020-07-16T22:22:15.125Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Forms": { + "modified": "2020-07-16T22:20:53.997Z", + "contributors": [ + "chrisdavidmills", + "Legioinvicta" + ] + }, + "Learn/HTML/Forms/Com_estructurar_un_formulari_web": { + "modified": "2020-09-18T11:10:39.794Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/HTML/Forms/Controls_de_formulari_originals": { + "modified": "2020-09-15T07:44:08.730Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/HTML/Forms/El_teu_primer_formulari": { + "modified": "2020-09-18T11:08:30.671Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/HTML/Forms/Validacio_formularis": { + "modified": "2020-09-18T11:25:33.611Z", + "contributors": [ + "UOCccorcoles", + "editorUOC" + ] + }, + "Learn/HTML/Introducció_al_HTML": { + "modified": "2020-07-16T22:22:45.604Z", + "contributors": [ + "Legioinvicta", + "ccorcoles" + ] + }, + "Learn/HTML/Introducció_al_HTML/Crear_hipervincles": { + "modified": "2020-08-31T10:00:44.793Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "casabona1983", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Depurar_HTML": { + "modified": "2020-08-31T12:21:35.167Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Document_i_estructura_del_lloc_web": { + "modified": "2020-08-31T11:17:14.859Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Estructurar_una_pàgina_de_contingut": { + "modified": "2020-07-16T22:24:17.607Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML": { + "modified": "2020-09-18T05:51:57.560Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Format_de_text_avançat": { + "modified": "2020-09-18T07:30:27.211Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Getting_started": { + "modified": "2020-09-18T05:39:40.192Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "casabona1983", + "nuriarai", + "Legioinvicta", + "lawer" + ] + }, + "Learn/HTML/Introducció_al_HTML/Marcatge_una_carta": { + "modified": "2020-07-16T22:23:11.111Z", + "contributors": [ + "laiagabe", + "Legioinvicta" + ] + }, + "Learn/HTML/Introducció_al_HTML/Què_hi_ha_en_el_head_Metadades_en_HTML": { + "modified": "2020-08-31T06:21:25.281Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar": { + "modified": "2020-07-16T22:24:24.359Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/Afegir_gràfics_vectorials_a_la_Web": { + "modified": "2020-07-16T22:24:39.628Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/Contingut_de_vídeo_i_àudio": { + "modified": "2020-07-16T22:24:50.962Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/De_objecte_a_iframe_altres_tecnologies_incrustació": { + "modified": "2020-07-16T22:25:00.150Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/Images_in_HTML": { + "modified": "2020-09-01T07:45:13.148Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/Imatges_sensibles": { + "modified": "2020-07-16T22:24:32.326Z", + "contributors": [ + "rcomellas", + "Legioinvicta" + ] + }, + "Learn/HTML/Multimèdia_i_incrustar/Mozilla_pàgina_de_benvinguda": { + "modified": "2020-07-16T22:25:05.830Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Taules_HTML": { + "modified": "2020-07-16T22:25:10.298Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Taules_HTML/Avaluació_Estructurar_les_dades_dels_planeta": { + "modified": "2020-07-16T22:25:28.884Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Learn/HTML/Taules_HTML/Fonaments_de_la_taula_HTML": { + "modified": "2020-09-09T11:52:32.829Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/HTML/Taules_HTML/Taula_HTML_característiques_avançades_i_laccessibilitat": { + "modified": "2020-09-09T12:02:19.448Z", + "contributors": [ + "UOCccorcoles", + "editorUOC", + "Legioinvicta" + ] + }, + "Learn/JavaScript": { + "modified": "2020-07-16T22:29:37.255Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Learn/JavaScript/Building_blocks": { + "modified": "2020-07-16T22:31:06.456Z", + "contributors": [ + "juanjocardona" + ] + }, + "MDN": { + "modified": "2020-02-19T19:24:46.607Z", + "contributors": [ + "jswisher", + "SphinxKnight", + "jordibrus", + "wbamberg", + "Legioinvicta", + "Jeremie", + "Sheppy" + ] + }, + "MDN/Comunitat": { + "modified": "2019-09-11T08:03:49.400Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "Legioinvicta" + ] + }, + "MDN/Contribute": { + "modified": "2019-03-23T23:01:53.170Z", + "contributors": [ + "wbamberg", + "Legioinvicta", + "alispivak" + ] + }, + "MDN/Contribute/Feedback": { + "modified": "2020-09-30T17:50:23.893Z", + "contributors": [ + "chrisdavidmills", + "jswisher", + "SphinxKnight", + "wbamberg", + "Legioinvicta" + ] + }, + "MDN/Contribute/Getting_started": { + "modified": "2020-09-30T17:09:26.416Z", + "contributors": [ + "chrisdavidmills", + "carlesferreiro", + "jordibrus", + "teoli", + "Thalula", + "Toniher" + ] + }, + "MDN/Contribute/Howto": { + "modified": "2020-12-07T19:29:57.956Z", + "contributors": [ + "ExE-Boss" + ] + }, + "MDN/Contribute/Howto/Crear_un_compte_MDN": { + "modified": "2019-03-18T21:20:46.294Z", + "contributors": [ + "jordibrus" + ] + }, + "MDN/Contribute/Localize": { + "modified": "2019-01-16T20:10:49.053Z", + "contributors": [ + "wbamberg", + "Legioinvicta", + "Sheppy" + ] + }, + "MDN/Contribute/Localize/traducció_pàgines": { + "modified": "2019-01-16T20:10:56.070Z", + "contributors": [ + "wbamberg", + "Legioinvicta", + "orkidius" + ] + }, + "MDN/Contribute/Processos": { + "modified": "2019-01-17T01:56:28.494Z", + "contributors": [ + "wbamberg", + "Legioinvicta" + ] + }, + "MDN/Kuma": { + "modified": "2019-09-09T15:51:48.851Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "Legioinvicta" + ] + }, + "MDN/Structures": { + "modified": "2020-09-30T09:04:30.231Z", + "contributors": [ + "chrisdavidmills", + "wbamberg", + "Legioinvicta" + ] + }, + "MDN_at_ten": { + "modified": "2019-03-23T22:45:53.203Z", + "contributors": [ + "llue" + ] + }, + "Mozilla": { + "modified": "2019-03-23T23:35:10.538Z", + "contributors": [ + "djpaliobcn", + "ethertank" + ] + }, + "Mozilla/Firefox": { + "modified": "2019-09-10T14:45:53.524Z", + "contributors": [ + "SphinxKnight", + "Prashanth" + ] + }, + "Mozilla/Firefox/Releases": { + "modified": "2019-03-23T23:26:02.407Z", + "contributors": [ + "ziyunfei" + ] + }, + "Tools": { + "modified": "2020-07-16T22:44:13.837Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "Legioinvicta", + "jryans" + ] + }, + "Tools/Remote_Debugging": { + "modified": "2020-07-16T22:35:36.985Z", + "contributors": [ + "wbamberg", + "Legioinvicta", + "jryans" + ] + }, + "Web": { + "modified": "2019-08-08T04:25:52.925Z", + "contributors": [ + "Legioinvicta", + "ethertank" + ] + }, + "Web/API": { + "modified": "2019-09-22T13:24:34.476Z", + "contributors": [ + "duduindo", + "escufi" + ] + }, + "Web/API/Canvas_API": { + "modified": "2019-03-23T22:04:17.711Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial": { + "modified": "2019-03-23T22:04:21.400Z", + "contributors": [ + "stephaniehobson" + ] + }, + "Web/API/Canvas_API/Tutorial/Animacions_avançades": { + "modified": "2019-03-23T22:03:52.604Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Animacions_bàsiques": { + "modified": "2019-03-23T22:03:56.826Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Aplicar_estils_i_colors": { + "modified": "2019-03-23T22:04:05.578Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Composició": { + "modified": "2019-03-23T22:04:02.955Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Dibuixar_text": { + "modified": "2019-03-23T22:04:09.548Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Drawing_shapes": { + "modified": "2019-03-23T22:04:18.638Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Manipular_píxels_amb_canvas": { + "modified": "2020-10-22T19:57:12.300Z", + "contributors": [ + "escattone", + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Transformacions": { + "modified": "2019-03-23T22:03:59.945Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Using_images": { + "modified": "2019-03-23T22:04:03.392Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/Canvas_API/Tutorial/Ús_bàsic": { + "modified": "2019-03-23T22:04:22.078Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/API/WebGL_API": { + "modified": "2019-03-23T22:04:45.878Z", + "contributors": [ + "ibesora" + ] + }, + "Web/API/Window": { + "modified": "2019-03-23T22:02:56.882Z", + "contributors": [ + "chrisdavidmills" + ] + }, + "Web/API/Window/sidebar": { + "modified": "2019-03-23T22:03:04.245Z", + "contributors": [ + "IsaacSchemm" + ] + }, + "Web/CSS": { + "modified": "2019-09-11T03:34:02.747Z", + "contributors": [ + "SphinxKnight", + "Legioinvicta", + "teoli", + "Arnau-siches" + ] + }, + "Web/CSS/::-moz-progress-bar": { + "modified": "2019-03-23T22:21:20.781Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::-moz-range-progress": { + "modified": "2019-03-18T21:17:32.107Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-moz-range-thumb": { + "modified": "2019-03-23T22:21:12.717Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-moz-range-track": { + "modified": "2019-03-23T22:21:19.893Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-webkit-progress-bar": { + "modified": "2019-03-23T22:21:15.673Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-webkit-progress-value": { + "modified": "2019-03-23T22:21:12.226Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-webkit-slider-runnable-track": { + "modified": "2019-03-23T22:21:12.535Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::-webkit-slider-thumb": { + "modified": "2019-03-23T22:21:19.418Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/CSS/::after": { + "modified": "2019-03-23T22:21:16.467Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::backdrop": { + "modified": "2019-03-23T22:21:14.990Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::before": { + "modified": "2019-03-23T22:21:17.379Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::cue": { + "modified": "2020-10-15T21:58:05.485Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::first-letter": { + "modified": "2019-03-23T22:21:13.268Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::first-line": { + "modified": "2020-10-15T21:51:25.818Z", + "contributors": [ + "SphinxKnight", + "Legioinvicta" + ] + }, + "Web/CSS/::placeholder": { + "modified": "2019-03-23T22:04:44.753Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/::selection": { + "modified": "2019-03-23T22:21:15.861Z", + "contributors": [ + "Legioinvicta", + "Winni-" + ] + }, + "Web/CSS/:active": { + "modified": "2019-03-23T22:21:47.358Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:any": { + "modified": "2019-03-23T22:21:40.467Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:any-link": { + "modified": "2020-10-15T21:51:11.202Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:checked": { + "modified": "2019-03-23T22:21:43.524Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:default": { + "modified": "2019-03-23T22:21:38.352Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:dir": { + "modified": "2020-10-15T21:51:13.134Z", + "contributors": [ + "SphinxKnight", + "Legioinvicta" + ] + }, + "Web/CSS/:disabled": { + "modified": "2019-03-23T22:21:32.327Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:empty": { + "modified": "2019-03-23T22:21:35.505Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:enabled": { + "modified": "2019-03-23T22:21:33.868Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:first": { + "modified": "2019-03-23T22:21:35.151Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:first-child": { + "modified": "2019-03-23T22:21:24.465Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:first-of-type": { + "modified": "2019-03-23T22:21:27.205Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:focus": { + "modified": "2019-03-23T22:21:23.494Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:focus-within": { + "modified": "2019-03-23T22:21:26.997Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:fullscreen": { + "modified": "2019-03-23T22:21:26.360Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:hover": { + "modified": "2019-03-23T22:21:27.607Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:in-range": { + "modified": "2020-10-15T21:51:14.757Z", + "contributors": [ + "SphinxKnight", + "Legioinvicta" + ] + }, + "Web/CSS/:indeterminate": { + "modified": "2020-10-15T21:51:13.811Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:invalid": { + "modified": "2020-10-15T21:51:13.214Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:lang": { + "modified": "2019-03-23T22:21:33.229Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:last-child": { + "modified": "2019-03-23T22:21:25.832Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:last-of-type": { + "modified": "2019-03-23T22:21:30.611Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:left": { + "modified": "2019-03-23T22:21:34.439Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:link": { + "modified": "2019-03-23T22:21:32.532Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:not": { + "modified": "2019-03-23T22:21:28.771Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:nth-child": { + "modified": "2019-03-23T22:21:24.163Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:nth-last-child": { + "modified": "2019-03-23T22:21:28.310Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:nth-last-of-type": { + "modified": "2019-03-23T22:21:29.535Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:nth-of-type": { + "modified": "2019-03-23T22:21:34.038Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:only-child": { + "modified": "2019-03-18T21:15:27.539Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:only-of-type": { + "modified": "2019-03-23T22:21:32.125Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:optional": { + "modified": "2019-03-23T22:21:26.032Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:out-of-range": { + "modified": "2019-03-23T22:21:27.814Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:placeholder-shown": { + "modified": "2019-03-23T22:21:28.063Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:read-only": { + "modified": "2020-10-15T21:51:14.863Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:read-write": { + "modified": "2020-10-15T21:51:12.394Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:required": { + "modified": "2019-03-23T22:21:20.361Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:right": { + "modified": "2019-03-18T21:16:34.262Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:root": { + "modified": "2019-03-23T22:21:13.641Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:scope": { + "modified": "2020-04-20T18:27:58.028Z", + "contributors": [ + "albertms10", + "Legioinvicta" + ] + }, + "Web/CSS/:target": { + "modified": "2019-03-23T22:21:16.673Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/:valid": { + "modified": "2020-10-15T21:51:22.420Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/CSS/:visited": { + "modified": "2019-03-23T22:21:19.720Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/At-rule": { + "modified": "2019-03-23T22:04:58.324Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/CSS_Box_Model": { + "modified": "2019-03-23T22:05:29.525Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/CSS_Box_Model/Dominar_el_col.lapse_del_marge": { + "modified": "2019-03-18T21:17:29.185Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/CSS_Box_Model/Introducció_al_model_de_caixa_CSS": { + "modified": "2019-03-18T21:15:28.600Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/CSS_Flexible_Box_Layout": { + "modified": "2019-03-23T22:43:45.358Z", + "contributors": [ + "fscholz" + ] + }, + "Web/CSS/Referéncia_CSS": { + "modified": "2019-03-23T22:21:55.917Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_CSS": { + "modified": "2019-07-10T09:40:26.803Z", + "contributors": [ + "gavinsykes", + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_CSS/Using_the_:target_pseudo-class_in_selectors": { + "modified": "2019-03-23T22:21:45.619Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_ID": { + "modified": "2019-03-18T21:15:31.059Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_Universal": { + "modified": "2019-03-23T22:21:38.063Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_d'Atribut": { + "modified": "2019-03-23T22:21:47.586Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_de_Classe": { + "modified": "2019-03-23T22:21:40.826Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_de_Tipus": { + "modified": "2019-03-23T22:21:49.346Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_de_descendents": { + "modified": "2019-03-23T22:21:41.801Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_de_fills": { + "modified": "2019-03-23T22:21:37.309Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_de_germans_adjacents": { + "modified": "2019-03-23T22:21:40.662Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Selectors_general_de_germans": { + "modified": "2019-03-23T22:21:39.817Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/Sintaxi": { + "modified": "2019-03-23T22:05:30.508Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/box-sizing": { + "modified": "2019-03-18T20:37:36.899Z", + "contributors": [ + "Soyaine", + "Legioinvicta" + ] + }, + "Web/CSS/height": { + "modified": "2019-03-23T22:05:15.436Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin": { + "modified": "2019-03-23T22:05:19.140Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin-bottom": { + "modified": "2019-03-23T22:05:16.692Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin-left": { + "modified": "2019-03-23T22:05:15.717Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin-right": { + "modified": "2019-03-18T21:15:06.649Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin-top": { + "modified": "2019-03-23T22:05:18.254Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/margin-trim": { + "modified": "2020-10-15T22:33:48.620Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/max-height": { + "modified": "2019-03-18T21:16:33.676Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/max-width": { + "modified": "2019-03-23T22:05:19.856Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/min-height": { + "modified": "2019-03-23T22:05:14.466Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/min-width": { + "modified": "2019-03-23T22:05:14.719Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overflow": { + "modified": "2019-03-23T22:05:08.424Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overflow-x": { + "modified": "2019-03-23T22:05:13.081Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overflow-y": { + "modified": "2019-03-23T22:05:11.405Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overscroll-behavior": { + "modified": "2020-10-15T22:33:48.574Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overscroll-behavior-block": { + "modified": "2020-10-15T22:33:50.202Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/overscroll-behavior-inline": { + "modified": "2020-10-15T22:33:51.702Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/padding": { + "modified": "2019-03-23T22:05:08.048Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/padding-bottom": { + "modified": "2019-03-23T22:05:02.662Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/padding-left": { + "modified": "2019-03-23T22:05:12.888Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/padding-right": { + "modified": "2019-03-23T22:05:09.745Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/padding-top": { + "modified": "2019-03-23T22:05:10.966Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/visibility": { + "modified": "2019-03-23T22:05:05.259Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/CSS/width": { + "modified": "2020-10-15T21:57:46.481Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide": { + "modified": "2019-03-23T22:24:15.468Z", + "contributors": [ + "Legioinvicta", + "Sheppy" + ] + }, + "Web/Guide/AJAX": { + "modified": "2019-01-16T14:16:48.471Z", + "contributors": [ + "chrisdavidmills", + "moluxs", + "Oriolm", + "Toniher" + ] + }, + "Web/Guide/AJAX/Primers_passos": { + "modified": "2019-01-16T16:22:29.202Z", + "contributors": [ + "chrisdavidmills", + "Toniher" + ] + }, + "Web/Guide/CSS/Inici_en_CSS": { + "modified": "2019-03-23T22:22:04.507Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/CSS_llegible": { + "modified": "2019-03-23T22:20:58.263Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Caixes": { + "modified": "2019-03-23T22:21:00.737Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Cascada_i_herència": { + "modified": "2019-03-23T22:21:11.477Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Color": { + "modified": "2019-03-23T22:20:58.899Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Com_funciona_el_CSS": { + "modified": "2019-03-23T22:21:14.792Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Disseny": { + "modified": "2019-03-23T22:20:52.030Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Estils_de_text": { + "modified": "2019-03-23T22:21:09.957Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/JavaScript": { + "modified": "2019-03-23T22:20:34.923Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Llistes": { + "modified": "2019-03-23T22:21:00.463Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Mitjà": { + "modified": "2019-03-23T22:20:43.883Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Per_què_utilitzar_CSS": { + "modified": "2019-03-23T22:21:21.787Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Que_és_CSS": { + "modified": "2019-03-23T22:21:22.840Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/SVG_i_CSS": { + "modified": "2019-03-23T22:20:34.731Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Selectors": { + "modified": "2019-03-23T22:21:02.763Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/CSS/Inici_en_CSS/Taules": { + "modified": "2019-03-23T22:20:47.336Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/Gràfics": { + "modified": "2019-03-23T22:04:22.823Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/HTML/HTML5": { + "modified": "2019-03-23T22:19:42.811Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/HTML/Us_de_seccions_i_esquemes_en_HTML": { + "modified": "2019-03-23T22:19:14.112Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Guide/HTML/_Consells_per_crear_pàgines_HTML_de_càrrega_ràpida": { + "modified": "2020-07-16T22:22:32.019Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML": { + "modified": "2020-02-22T22:24:38.027Z", + "contributors": [ + "Ernest", + "SphinxKnight", + "Legioinvicta", + "joanprimpratrec2", + "fscholz", + "teoli" + ] + }, + "Web/HTML/Block-level_elements": { + "modified": "2019-03-23T22:24:26.228Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element": { + "modified": "2019-03-23T23:02:54.251Z", + "contributors": [ + "Legioinvicta", + "aeinbu", + "teoli" + ] + }, + "Web/HTML/Element/Heading_Elements": { + "modified": "2019-03-23T22:22:40.062Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/Shadow": { + "modified": "2019-03-23T22:22:58.573Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/a": { + "modified": "2019-03-23T23:02:50.885Z", + "contributors": [ + "Legioinvicta", + "llue" + ] + }, + "Web/HTML/Element/abbr": { + "modified": "2020-08-14T22:29:34.312Z", + "contributors": [ + "llue", + "fscholz" + ] + }, + "Web/HTML/Element/acronym": { + "modified": "2019-03-23T22:24:06.082Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/address": { + "modified": "2019-03-23T22:24:30.575Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/applet": { + "modified": "2019-03-23T22:24:01.530Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/area": { + "modified": "2019-03-23T22:24:34.904Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/article": { + "modified": "2019-03-23T22:24:37.217Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/aside": { + "modified": "2019-03-23T23:02:54.425Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/audio": { + "modified": "2019-03-23T22:24:31.743Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/b": { + "modified": "2019-03-23T22:24:36.355Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/base": { + "modified": "2019-03-23T22:24:29.858Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/basefont": { + "modified": "2019-03-23T22:24:06.575Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/bdi": { + "modified": "2019-03-23T22:24:35.937Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/bdo": { + "modified": "2019-03-23T22:24:30.076Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/bgsound": { + "modified": "2019-03-23T22:24:00.548Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/big": { + "modified": "2019-03-23T22:23:59.751Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/blink": { + "modified": "2019-03-23T22:24:06.248Z", + "contributors": [ + "teoli", + "Legioinvicta" + ] + }, + "Web/HTML/Element/blockquote": { + "modified": "2019-03-23T22:24:32.254Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/body": { + "modified": "2019-03-23T22:24:37.533Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/br": { + "modified": "2019-03-23T23:02:56.324Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/button": { + "modified": "2019-03-23T22:24:31.103Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/canvas": { + "modified": "2019-03-23T22:24:30.337Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/caption": { + "modified": "2019-03-23T22:24:33.007Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/center": { + "modified": "2019-03-23T22:24:00.968Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/cite": { + "modified": "2019-03-23T22:24:35.142Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/code": { + "modified": "2019-03-23T22:24:36.137Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/col": { + "modified": "2019-03-23T22:24:15.868Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/colgroup": { + "modified": "2019-03-23T22:24:15.101Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/command": { + "modified": "2019-03-23T22:24:15.300Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/content": { + "modified": "2019-03-23T22:24:11.640Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/data": { + "modified": "2019-03-23T22:24:12.906Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/datalist": { + "modified": "2019-03-23T22:24:16.075Z", + "contributors": [ + "mfranzke", + "Legioinvicta" + ] + }, + "Web/HTML/Element/dd": { + "modified": "2019-03-23T22:24:21.875Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/del": { + "modified": "2019-03-23T22:24:05.886Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/details": { + "modified": "2019-03-23T22:24:07.263Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/dfn": { + "modified": "2019-03-23T22:24:03.887Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/dialog": { + "modified": "2019-03-23T22:24:06.889Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/dir": { + "modified": "2019-03-23T22:23:59.059Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/div": { + "modified": "2019-03-23T22:44:10.000Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/dl": { + "modified": "2019-03-23T22:23:57.383Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/dt": { + "modified": "2019-03-23T22:24:04.732Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/element": { + "modified": "2019-03-23T22:48:09.171Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/em": { + "modified": "2019-03-23T22:23:56.965Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/embed": { + "modified": "2019-03-23T22:24:05.230Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/fieldset": { + "modified": "2019-03-23T22:23:57.920Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/figcaption": { + "modified": "2019-03-23T22:24:05.668Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/figure": { + "modified": "2019-03-23T22:24:01.197Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/font": { + "modified": "2019-03-23T22:24:06.405Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/footer": { + "modified": "2019-03-23T22:23:57.162Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/form": { + "modified": "2019-03-23T22:24:03.654Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/frame": { + "modified": "2019-03-23T22:23:58.069Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/frameset": { + "modified": "2019-03-23T22:24:00.833Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/head": { + "modified": "2019-03-23T22:23:58.845Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/header": { + "modified": "2019-03-23T22:23:59.258Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/hgroup": { + "modified": "2019-03-23T22:23:59.587Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/hr": { + "modified": "2019-03-23T22:24:04.544Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/html": { + "modified": "2019-03-23T22:23:44.381Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/i": { + "modified": "2019-03-23T22:23:44.141Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/iframe": { + "modified": "2019-03-23T22:23:45.300Z", + "contributors": [ + "wbamberg", + "Legioinvicta" + ] + }, + "Web/HTML/Element/image": { + "modified": "2019-03-23T22:23:55.696Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/img": { + "modified": "2019-03-23T22:23:44.825Z", + "contributors": [ + "rcomellas", + "Legioinvicta" + ] + }, + "Web/HTML/Element/input": { + "modified": "2019-03-23T22:23:42.820Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/ins": { + "modified": "2019-03-23T22:23:31.337Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/isindex": { + "modified": "2019-03-23T22:23:32.350Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/kbd": { + "modified": "2019-03-23T22:23:30.123Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/keygen": { + "modified": "2019-03-23T22:23:29.875Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/label": { + "modified": "2019-03-23T22:23:25.920Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/legend": { + "modified": "2019-03-23T22:23:27.067Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/li": { + "modified": "2019-03-23T22:23:30.535Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/link": { + "modified": "2019-03-23T22:23:31.095Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/listing": { + "modified": "2019-03-23T22:23:31.930Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/main": { + "modified": "2019-03-23T22:23:29.013Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/map": { + "modified": "2019-03-23T22:23:28.443Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/mark": { + "modified": "2019-03-23T22:23:29.469Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/marquee": { + "modified": "2019-03-23T22:23:25.351Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/menu": { + "modified": "2019-03-23T22:43:53.972Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/menuitem": { + "modified": "2019-03-23T22:23:24.576Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/meta": { + "modified": "2019-03-23T22:23:14.832Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/meter": { + "modified": "2019-03-23T22:23:09.097Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/multicol": { + "modified": "2019-03-23T22:23:18.874Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/nav": { + "modified": "2019-03-23T22:48:17.923Z", + "contributors": [ + "wbamberg", + "llue" + ] + }, + "Web/HTML/Element/nextid": { + "modified": "2019-03-23T22:22:37.005Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/nobr": { + "modified": "2019-03-23T22:23:17.356Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/noembed": { + "modified": "2019-03-23T22:23:16.262Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/noframes": { + "modified": "2019-03-23T22:23:17.870Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/noscript": { + "modified": "2019-03-23T22:23:12.362Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/object": { + "modified": "2019-03-23T22:23:08.187Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/ol": { + "modified": "2019-03-23T22:23:11.431Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/optgroup": { + "modified": "2019-03-23T22:23:08.674Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/option": { + "modified": "2019-03-23T22:23:17.744Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/output": { + "modified": "2019-03-23T22:23:07.934Z", + "contributors": [ + "wbamberg", + "Legioinvicta" + ] + }, + "Web/HTML/Element/p": { + "modified": "2019-03-23T22:22:56.526Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/param": { + "modified": "2019-03-23T22:23:02.418Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/picture": { + "modified": "2019-03-23T22:23:01.844Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/plaintext": { + "modified": "2019-03-23T22:22:59.391Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/pre": { + "modified": "2019-03-23T22:23:02.683Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/progress": { + "modified": "2019-03-23T22:22:54.749Z", + "contributors": [ + "wbamberg", + "Legioinvicta" + ] + }, + "Web/HTML/Element/q": { + "modified": "2020-10-15T21:50:56.392Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/HTML/Element/rp": { + "modified": "2019-03-23T22:22:55.170Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/rt": { + "modified": "2019-03-23T22:22:59.953Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/rtc": { + "modified": "2019-03-23T22:22:57.513Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/ruby": { + "modified": "2019-03-23T22:48:18.101Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Element/s": { + "modified": "2019-03-23T22:23:02.208Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/samp": { + "modified": "2019-03-23T22:22:59.763Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/script": { + "modified": "2019-03-23T22:22:58.125Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/section": { + "modified": "2019-03-23T22:23:02.047Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/select": { + "modified": "2019-03-23T22:22:53.707Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/small": { + "modified": "2019-03-23T22:22:57.046Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/source": { + "modified": "2019-03-23T22:23:01.454Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/spacer": { + "modified": "2019-03-23T22:23:01.649Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/span": { + "modified": "2019-03-23T22:22:57.324Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/strike": { + "modified": "2019-03-23T22:22:53.130Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/strong": { + "modified": "2019-03-23T22:23:00.673Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/style": { + "modified": "2019-03-23T22:22:54.521Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/sub": { + "modified": "2019-03-23T22:23:00.459Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/summary": { + "modified": "2019-03-23T22:22:43.871Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/sup": { + "modified": "2019-03-23T22:22:44.577Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/table": { + "modified": "2019-03-23T22:22:37.782Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/tbody": { + "modified": "2019-03-23T22:22:38.557Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/td": { + "modified": "2019-03-23T22:22:36.618Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/template": { + "modified": "2019-03-23T22:22:36.185Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/textarea": { + "modified": "2020-10-15T21:50:57.306Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/HTML/Element/tfoot": { + "modified": "2019-03-23T22:22:35.229Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/th": { + "modified": "2019-03-23T22:22:39.656Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/thead": { + "modified": "2020-10-15T21:50:57.690Z", + "contributors": [ + "fscholz", + "Legioinvicta" + ] + }, + "Web/HTML/Element/time": { + "modified": "2019-03-23T22:22:41.833Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/tr": { + "modified": "2019-03-23T22:22:38.222Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/track": { + "modified": "2019-03-23T22:22:43.012Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/tt": { + "modified": "2019-03-23T22:22:39.819Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/u": { + "modified": "2019-03-23T22:22:42.717Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/ul": { + "modified": "2019-03-23T22:22:42.253Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/var": { + "modified": "2019-03-23T22:22:43.305Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/video": { + "modified": "2019-03-23T22:22:39.252Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/wbr": { + "modified": "2019-03-23T22:22:41.607Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Element/xmp": { + "modified": "2019-03-23T22:22:35.712Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Elements_en_línia": { + "modified": "2019-03-23T22:19:22.875Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes": { + "modified": "2019-03-23T23:02:43.690Z", + "contributors": [ + "teoli" + ] + }, + "Web/HTML/Global_attributes/accesskey": { + "modified": "2019-03-23T22:22:38.770Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/class": { + "modified": "2019-03-23T22:22:35.405Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/contenteditable": { + "modified": "2019-03-23T22:22:43.650Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/contextmenu": { + "modified": "2020-10-15T21:50:47.437Z", + "contributors": [ + "SphinxKnight", + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/data-*": { + "modified": "2019-03-23T22:22:26.612Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/dir": { + "modified": "2019-03-23T22:22:29.249Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/draggable": { + "modified": "2019-03-23T22:22:20.909Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/dropzone": { + "modified": "2019-03-23T22:22:19.145Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/hidden": { + "modified": "2019-03-23T22:22:17.448Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/id": { + "modified": "2019-03-23T22:22:26.785Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/itemid": { + "modified": "2019-03-23T22:22:24.180Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/itemprop": { + "modified": "2019-03-23T22:22:18.837Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/itemref": { + "modified": "2019-03-23T22:22:25.523Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/itemscope": { + "modified": "2019-03-23T22:22:27.169Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/itemtype": { + "modified": "2019-03-23T22:22:24.967Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/lang": { + "modified": "2019-03-23T23:02:45.670Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Global_attributes/spellcheck": { + "modified": "2019-03-23T22:22:25.809Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/style": { + "modified": "2019-03-23T22:44:10.989Z", + "contributors": [ + "llue" + ] + }, + "Web/HTML/Global_attributes/tabindex": { + "modified": "2019-03-23T22:22:21.110Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/title": { + "modified": "2019-03-23T22:22:28.134Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Global_attributes/translate": { + "modified": "2019-03-23T22:22:25.290Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/HTML/Optimizing_your_pages_for_speculative_parsing": { + "modified": "2019-03-23T22:24:14.691Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/JavaScript": { + "modified": "2020-03-12T19:38:14.951Z", + "contributors": [ + "SphinxKnight", + "fv3rdugo", + "enTropy", + "teoli", + "allergic" + ] + }, + "Web/JavaScript/A_re-introduction_to_JavaScript": { + "modified": "2020-03-12T19:41:33.097Z", + "contributors": [ + "pere", + "teoli", + "joanprimpratrec2" + ] + }, + "Web/JavaScript/Data_structures": { + "modified": "2020-07-27T06:57:51.432Z", + "contributors": [ + "joanpardo", + "enTropy" + ] + }, + "Web/JavaScript/Enumerability_and_ownership_of_properties": { + "modified": "2020-03-12T19:40:53.838Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/EventLoop": { + "modified": "2020-03-12T19:40:40.928Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Guide": { + "modified": "2020-03-12T19:40:37.449Z", + "contributors": [ + "enTropy", + "fscholz" + ] + }, + "Web/JavaScript/Guide/Details_of_the_Object_Model": { + "modified": "2020-03-12T19:40:52.288Z", + "contributors": [ + "wbamberg", + "SphinxKnight", + "fscholz", + "enTropy" + ] + }, + "Web/JavaScript/Guide/Expressions_i_Operadors": { + "modified": "2020-03-12T19:40:39.289Z", + "contributors": [ + "wbamberg", + "fscholz", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Guide/Functions": { + "modified": "2020-03-12T19:40:36.377Z", + "contributors": [ + "wbamberg", + "fscholz", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Guide/Introducció": { + "modified": "2020-07-27T11:48:12.566Z", + "contributors": [ + "joanpardo", + "mariodev12", + "enTropy" + ] + }, + "Web/JavaScript/Inheritance_and_the_prototype_chain": { + "modified": "2020-03-12T19:42:16.312Z", + "contributors": [ + "ibesora", + "enTropy" + ] + }, + "Web/JavaScript/Introducció_al_Javascript_orientat_a_Objectes": { + "modified": "2020-03-12T19:40:42.090Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Language_Resources": { + "modified": "2020-03-12T19:40:36.891Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Errors": { + "modified": "2020-03-12T19:48:06.943Z", + "contributors": [ + "Sheppy" + ] + }, + "Web/JavaScript/Reference/Errors/Nomes-Lectura": { + "modified": "2020-03-12T19:48:06.623Z", + "contributors": [ + "vilherda" + ] + }, + "Web/JavaScript/Reference/Functions": { + "modified": "2020-03-12T19:42:52.475Z", + "contributors": [ + "fscholz" + ] + }, + "Web/JavaScript/Reference/Functions/arguments": { + "modified": "2020-03-12T19:42:37.661Z", + "contributors": [ + "mones-cse" + ] + }, + "Web/JavaScript/Reference/Functions/arguments/length": { + "modified": "2020-03-12T19:42:34.789Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Functions/get": { + "modified": "2020-03-12T19:43:33.264Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Functions/parameters_rest": { + "modified": "2020-10-15T21:58:10.585Z", + "contributors": [ + "jordilondoner" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView": { + "modified": "2019-03-23T22:46:12.658Z", + "contributors": [ + "Sebastianz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView/buffer": { + "modified": "2019-03-23T22:44:07.496Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView/getFloat32": { + "modified": "2019-03-23T22:44:02.895Z", + "contributors": [ + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/DataView/prototype": { + "modified": "2019-03-23T22:46:15.196Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2019-03-23T22:47:17.840Z", + "contributors": [ + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/EvalError/prototype": { + "modified": "2019-03-23T22:47:27.467Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2019-03-23T22:47:58.251Z", + "contributors": [ + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/arguments": { + "modified": "2019-03-23T22:48:02.332Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/caller": { + "modified": "2019-03-18T21:15:51.563Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/length": { + "modified": "2019-03-23T22:48:00.101Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/name": { + "modified": "2019-03-23T22:47:57.251Z", + "contributors": [ + "SphinxKnight", + "kdex", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/toSource": { + "modified": "2019-03-23T22:46:13.863Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object": { + "modified": "2019-03-23T22:49:56.793Z", + "contributors": [ + "enTropy", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/assign": { + "modified": "2019-05-19T17:20:08.284Z", + "contributors": [ + "SphinxKnight", + "kdex", + "mariodev12", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/freeze": { + "modified": "2019-03-23T22:46:16.251Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": { + "modified": "2019-03-23T22:46:10.277Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/isExtensible": { + "modified": "2019-03-23T22:46:14.358Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/isFrozen": { + "modified": "2019-03-23T22:46:09.931Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/keys": { + "modified": "2019-03-23T22:46:06.321Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/prototype": { + "modified": "2019-03-23T22:48:18.297Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap": { + "modified": "2020-10-06T14:35:54.632Z", + "contributors": [ + "oleksandrstarov", + "SphinxKnight", + "enTropy", + "llue", + "LPGhatguy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/clear": { + "modified": "2019-03-23T22:44:13.701Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/delete": { + "modified": "2019-03-23T22:44:05.122Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/get": { + "modified": "2019-03-23T22:43:55.576Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/has": { + "modified": "2019-03-18T21:16:35.783Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/prototype": { + "modified": "2019-03-23T22:44:02.612Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/set": { + "modified": "2019-03-23T22:43:56.028Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet": { + "modified": "2019-03-23T22:44:01.226Z", + "contributors": [ + "SphinxKnight", + "llue", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet/add": { + "modified": "2019-03-23T22:44:07.820Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet/clear": { + "modified": "2019-03-23T22:44:09.553Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet/delete": { + "modified": "2019-03-23T22:44:09.377Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet/has": { + "modified": "2019-03-23T22:44:07.338Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakSet/prototype": { + "modified": "2019-03-23T22:44:06.443Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia": { + "modified": "2020-03-12T19:38:14.018Z", + "contributors": [ + "enTropy", + "teoli", + "JordiGuilleumes" + ] + }, + "Web/JavaScript/Referencia/Classes": { + "modified": "2020-10-15T21:34:20.230Z", + "contributors": [ + "SphinxKnight", + "kdex", + "fscholz" + ] + }, + "Web/JavaScript/Referencia/Classes/constructor": { + "modified": "2020-03-12T19:40:58.003Z", + "contributors": [ + "SphinxKnight", + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Classes/static": { + "modified": "2020-03-12T19:41:02.767Z", + "contributors": [ + "SphinxKnight", + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals": { + "modified": "2020-03-12T19:40:38.690Z", + "contributors": [ + "teoli", + "enTropy", + "Sheppy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array": { + "modified": "2019-03-23T22:47:17.387Z", + "contributors": [ + "wbamberg", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/Reduce": { + "modified": "2019-03-23T22:44:04.496Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/entries": { + "modified": "2019-03-23T22:36:05.123Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/every": { + "modified": "2019-03-23T22:37:52.531Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/fill": { + "modified": "2019-03-23T22:44:31.779Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/filter": { + "modified": "2019-03-23T22:41:52.655Z", + "contributors": [ + "adriaroms", + "paumoreno", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/find": { + "modified": "2019-03-23T22:36:11.720Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/findIndex": { + "modified": "2019-03-23T22:36:14.897Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/forEach": { + "modified": "2019-03-23T22:44:26.853Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/includes": { + "modified": "2019-03-23T22:36:01.831Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/indexOf": { + "modified": "2019-03-23T22:35:51.226Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/isArray": { + "modified": "2019-03-23T22:47:07.014Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/join": { + "modified": "2019-07-09T09:44:57.379Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/keys": { + "modified": "2019-03-23T22:36:08.512Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/lastIndexOf": { + "modified": "2019-03-23T22:35:49.922Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/length": { + "modified": "2019-03-23T22:44:31.474Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/map": { + "modified": "2019-03-23T22:44:32.320Z", + "contributors": [ + "dsabalete", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/of": { + "modified": "2019-03-23T22:47:09.344Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/pop": { + "modified": "2019-03-23T22:44:33.207Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/prototype": { + "modified": "2019-03-23T22:45:55.785Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/push": { + "modified": "2019-03-23T22:45:57.375Z", + "contributors": [ + "ibesora", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/reverse": { + "modified": "2019-03-23T22:46:09.763Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/shift": { + "modified": "2019-03-23T22:36:00.243Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/slice": { + "modified": "2019-03-23T22:36:58.980Z", + "contributors": [ + "ibesora", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/some": { + "modified": "2020-09-18T06:02:41.977Z", + "contributors": [ + "carmenansio", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Array/splice": { + "modified": "2019-07-28T12:07:49.969Z", + "contributors": [ + "ricardbarnes", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Boolean": { + "modified": "2019-03-23T22:58:34.517Z", + "contributors": [ + "wbamberg", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Boolean/prototype": { + "modified": "2019-03-23T22:58:39.243Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Boolean/toSource": { + "modified": "2019-03-23T22:58:26.240Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Boolean/toString": { + "modified": "2019-03-23T22:58:27.726Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Boolean/valueOf": { + "modified": "2019-03-23T22:58:36.167Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date": { + "modified": "2019-03-23T22:58:49.026Z", + "contributors": [ + "wbamberg", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/UTC": { + "modified": "2019-03-23T22:50:18.733Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getDate": { + "modified": "2019-03-23T22:48:57.472Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getDay": { + "modified": "2019-03-23T22:57:51.802Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getFullYear": { + "modified": "2019-03-23T22:57:49.306Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getHours": { + "modified": "2019-03-23T22:57:45.516Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getMilliseconds": { + "modified": "2019-03-23T22:56:22.446Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getMinutes": { + "modified": "2019-03-23T22:56:14.420Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getMonth": { + "modified": "2019-03-23T22:56:25.114Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getSeconds": { + "modified": "2019-03-23T22:56:18.781Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getTime": { + "modified": "2019-03-23T22:52:30.279Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getTimezoneOffset": { + "modified": "2019-03-23T22:52:28.361Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCDate": { + "modified": "2019-03-23T22:52:26.697Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCDay": { + "modified": "2019-03-23T22:52:25.959Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCFullYear": { + "modified": "2019-03-23T22:52:25.556Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCHours": { + "modified": "2019-03-23T22:52:30.723Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMilliseconds": { + "modified": "2019-03-23T22:50:00.925Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMinutes": { + "modified": "2019-03-23T22:50:03.275Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMonth": { + "modified": "2019-03-23T22:50:00.074Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getUTCSeconds": { + "modified": "2019-03-23T22:54:05.883Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/getYear": { + "modified": "2019-03-23T22:55:06.079Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/now": { + "modified": "2019-03-23T22:58:46.822Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/prototype": { + "modified": "2019-03-23T22:57:58.782Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setDate": { + "modified": "2019-03-23T22:48:51.145Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setFullYear": { + "modified": "2019-03-23T22:49:59.211Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setHours": { + "modified": "2019-03-23T22:50:02.700Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setMilliseconds": { + "modified": "2019-03-23T22:49:57.669Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setMinutes": { + "modified": "2019-03-23T22:49:59.031Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setMonth": { + "modified": "2019-03-23T22:50:03.659Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setSeconds": { + "modified": "2019-03-23T22:50:03.128Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setTime": { + "modified": "2019-03-23T22:49:27.118Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCDate": { + "modified": "2019-03-23T22:49:50.108Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCFullYear": { + "modified": "2019-03-23T22:49:52.095Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCHours": { + "modified": "2019-03-23T22:49:48.535Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMilliseconds": { + "modified": "2019-03-23T22:49:50.754Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMinutes": { + "modified": "2019-03-23T22:49:49.021Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMonth": { + "modified": "2019-03-23T22:49:46.275Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setUTCSeconds": { + "modified": "2019-03-23T22:49:41.087Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/setYear": { + "modified": "2019-03-23T22:49:56.942Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toDateString": { + "modified": "2019-03-23T22:48:45.186Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toGMTString": { + "modified": "2019-03-23T22:48:40.259Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toISOString": { + "modified": "2019-03-23T22:43:47.322Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toJSON": { + "modified": "2019-03-23T22:43:46.391Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toString": { + "modified": "2019-03-23T22:48:56.142Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/toTimeString": { + "modified": "2019-03-23T22:48:45.015Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Date/valueOf": { + "modified": "2019-03-23T22:50:27.263Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error": { + "modified": "2019-03-23T22:59:09.305Z", + "contributors": [ + "agustisanchez", + "llue", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/Stack": { + "modified": "2019-03-23T22:53:56.473Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/columnNumber": { + "modified": "2019-03-23T22:59:13.362Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/fileName": { + "modified": "2019-03-23T22:59:08.164Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/lineNumber": { + "modified": "2019-03-23T22:58:50.297Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/message": { + "modified": "2019-03-23T22:58:44.991Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/name": { + "modified": "2019-03-23T22:58:36.308Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/prototype": { + "modified": "2019-03-23T22:58:43.169Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/toSource": { + "modified": "2019-03-23T22:50:37.577Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Error/toString": { + "modified": "2019-03-23T22:58:29.847Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Infinity": { + "modified": "2020-03-12T19:40:33.531Z", + "contributors": [ + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/JSON": { + "modified": "2019-03-23T22:59:27.157Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map": { + "modified": "2019-03-23T22:58:51.190Z", + "contributors": [ + "SphinxKnight", + "enTropy", + "teoli", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/clear": { + "modified": "2019-03-23T22:48:01.579Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/delete": { + "modified": "2019-03-23T22:46:15.513Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/entries": { + "modified": "2019-03-23T22:46:12.124Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/forEach": { + "modified": "2019-03-23T22:36:05.941Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/get": { + "modified": "2019-03-23T22:36:04.988Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/has": { + "modified": "2019-03-23T22:47:08.906Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/keys": { + "modified": "2019-03-23T22:46:07.341Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/prototype": { + "modified": "2019-03-23T22:48:45.592Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/set": { + "modified": "2019-03-23T22:47:59.009Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/size": { + "modified": "2019-03-23T22:44:25.711Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Map/values": { + "modified": "2019-03-23T22:46:05.395Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math": { + "modified": "2019-03-23T23:02:38.773Z", + "contributors": [ + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/E": { + "modified": "2019-03-23T22:59:53.807Z", + "contributors": [ + "txatoman", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/LN10": { + "modified": "2019-03-23T22:59:31.907Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/LN2": { + "modified": "2019-03-23T22:59:34.119Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/LOG10E": { + "modified": "2019-03-23T22:59:30.685Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/LOG2E": { + "modified": "2019-03-23T22:59:30.287Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/PI": { + "modified": "2019-03-23T22:59:30.058Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/SQRT1_2": { + "modified": "2019-03-23T22:58:52.217Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/SQRT2": { + "modified": "2019-03-23T22:58:47.387Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/abs": { + "modified": "2019-03-23T22:58:46.278Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/acos": { + "modified": "2019-03-23T22:58:47.009Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/acosh": { + "modified": "2019-03-23T22:48:46.522Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/asin": { + "modified": "2019-03-23T22:58:44.169Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/asinh": { + "modified": "2019-03-23T22:48:48.134Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/atan": { + "modified": "2019-03-23T22:58:42.177Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/atan2": { + "modified": "2019-03-23T22:48:53.219Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/atanh": { + "modified": "2019-03-23T22:48:44.070Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/cbrt": { + "modified": "2019-03-23T22:48:55.792Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/ceil": { + "modified": "2019-03-23T22:58:48.560Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/clz32": { + "modified": "2019-03-23T22:48:56.655Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/cos": { + "modified": "2019-03-23T22:58:45.410Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/cosh": { + "modified": "2019-03-23T22:48:43.862Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/exp": { + "modified": "2019-03-23T22:50:22.320Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/expm1": { + "modified": "2019-03-23T22:50:01.816Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/floor": { + "modified": "2019-03-23T22:58:49.209Z", + "contributors": [ + "emoriarty", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/fround": { + "modified": "2019-03-23T22:50:16.642Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/hypot": { + "modified": "2019-03-23T22:48:56.476Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/imul": { + "modified": "2019-03-23T22:50:18.208Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/log": { + "modified": "2019-03-23T22:50:10.638Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/log10": { + "modified": "2019-03-23T22:50:12.937Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/log1p": { + "modified": "2019-03-23T22:50:10.434Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/log2": { + "modified": "2019-03-23T22:50:11.657Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/max": { + "modified": "2019-03-23T22:50:08.623Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/min": { + "modified": "2019-03-23T22:50:12.646Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/pow": { + "modified": "2019-03-23T22:50:15.471Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/random": { + "modified": "2019-03-23T22:50:08.471Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/round": { + "modified": "2019-03-23T22:50:17.743Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/sign": { + "modified": "2019-03-23T22:50:19.897Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/sin": { + "modified": "2019-03-23T22:58:51.491Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/sinh": { + "modified": "2019-03-23T22:48:42.925Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/sqrt": { + "modified": "2019-03-23T22:50:15.980Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/tan": { + "modified": "2019-03-23T22:58:48.781Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/tanh": { + "modified": "2019-03-23T22:48:43.115Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Math/trunc": { + "modified": "2019-03-23T22:50:09.096Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/NaN": { + "modified": "2020-03-12T19:40:28.856Z", + "contributors": [ + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number": { + "modified": "2019-03-23T23:02:38.020Z", + "contributors": [ + "wbamberg", + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/EPSILON": { + "modified": "2019-03-23T23:02:23.744Z", + "contributors": [ + "SphinxKnight", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/MAX_SAFE_INTEGER": { + "modified": "2019-03-23T22:59:46.174Z", + "contributors": [ + "SphinxKnight", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/MAX_VALUE": { + "modified": "2019-03-23T22:59:54.604Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/MIN_SAFE_INTEGER": { + "modified": "2019-03-23T22:59:44.907Z", + "contributors": [ + "SphinxKnight", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/MIN_VALUE": { + "modified": "2019-03-23T22:59:48.435Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/NEGATIVE_INFINITY": { + "modified": "2020-11-14T03:03:56.198Z", + "contributors": [ + "jaumeol", + "teoli", + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/NaN": { + "modified": "2019-03-23T22:59:42.798Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/POSITIVE_INFINITY": { + "modified": "2019-03-23T22:50:15.189Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/isFinite": { + "modified": "2019-03-23T22:50:13.566Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/isInteger": { + "modified": "2019-03-23T22:50:19.513Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/isNaN": { + "modified": "2019-03-23T22:50:18.389Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/isSafeInteger": { + "modified": "2019-03-23T22:50:16.157Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/parseFloat": { + "modified": "2019-03-23T22:50:16.465Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/parseInt": { + "modified": "2019-03-23T22:50:15.600Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/prototype": { + "modified": "2019-03-23T22:50:16.328Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/toExponential": { + "modified": "2019-03-23T22:47:09.904Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/toFixed": { + "modified": "2019-03-23T22:47:11.555Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/toPrecision": { + "modified": "2019-03-23T22:47:14.199Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Number/toString": { + "modified": "2019-03-23T22:48:42.234Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set": { + "modified": "2019-03-23T22:50:13.401Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/add": { + "modified": "2019-03-23T22:47:36.595Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/clear": { + "modified": "2019-03-23T22:47:32.618Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/delete": { + "modified": "2019-03-23T22:47:38.806Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/entries": { + "modified": "2019-03-23T22:47:23.301Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/has": { + "modified": "2019-03-23T22:47:39.893Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/prototype": { + "modified": "2019-03-23T22:48:42.404Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/Set/values": { + "modified": "2019-03-23T22:47:24.630Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String": { + "modified": "2019-03-23T22:59:56.998Z", + "contributors": [ + "wbamberg", + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/Trim": { + "modified": "2019-03-23T22:47:13.066Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/TrimLeft": { + "modified": "2019-03-23T22:47:12.920Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/TrimRight": { + "modified": "2019-03-23T22:47:06.878Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/anchor": { + "modified": "2019-03-23T22:46:04.637Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/big": { + "modified": "2019-03-23T22:46:08.467Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/blink": { + "modified": "2019-03-23T22:46:14.520Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/bold": { + "modified": "2019-03-23T22:46:06.144Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/charAt": { + "modified": "2019-03-23T22:34:11.527Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/concat": { + "modified": "2019-03-23T22:47:12.620Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/endsWith": { + "modified": "2019-03-23T22:46:45.620Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/fixed": { + "modified": "2019-03-23T22:46:13.249Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/fontcolor": { + "modified": "2019-03-23T22:46:09.421Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/fontsize": { + "modified": "2019-03-23T22:46:08.641Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/fromCharCode": { + "modified": "2019-03-23T22:44:31.969Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/indexOf": { + "modified": "2019-03-23T22:35:48.565Z", + "contributors": [ + "paumoreno", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/italics": { + "modified": "2019-03-23T22:45:54.760Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/length": { + "modified": "2019-03-23T22:59:07.848Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/link": { + "modified": "2019-03-23T22:46:06.865Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/normalize": { + "modified": "2019-03-23T22:47:12.181Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/small": { + "modified": "2019-03-23T22:46:05.677Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/startsWith": { + "modified": "2019-03-23T22:47:12.778Z", + "contributors": [ + "SphinxKnight", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/sub": { + "modified": "2019-03-23T22:45:49.091Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/substr": { + "modified": "2019-03-23T22:45:47.809Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/sup": { + "modified": "2019-03-23T22:45:50.875Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/toLocaleLowerCase": { + "modified": "2019-03-23T22:50:22.032Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/toLocaleUpperCase": { + "modified": "2019-03-23T22:50:21.889Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/toLowerCase": { + "modified": "2019-03-23T22:50:11.452Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/toString": { + "modified": "2019-03-23T22:47:22.295Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/String/toUpperCase": { + "modified": "2019-03-23T22:50:17.891Z", + "contributors": [ + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/SyntaxError": { + "modified": "2019-03-23T22:47:51.903Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/SyntaxError/prototype": { + "modified": "2019-03-23T22:47:20.553Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/null": { + "modified": "2020-03-12T19:40:31.685Z", + "contributors": [ + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/parseFloat": { + "modified": "2020-03-12T19:42:39.159Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Objectes_globals/undefined": { + "modified": "2020-03-12T19:40:33.567Z", + "contributors": [ + "teoli", + "Sheppy", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Operadors": { + "modified": "2020-03-12T19:40:33.454Z", + "contributors": [ + "teoli", + "enTropy", + "fscholz" + ] + }, + "Web/JavaScript/Referencia/Operadors/Arithmetic_Operators": { + "modified": "2020-03-12T19:40:35.933Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/Bitwise_Operators": { + "modified": "2020-03-12T19:40:37.718Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Operadors/Conditional_Operator": { + "modified": "2020-03-12T19:40:36.029Z", + "contributors": [ + "teoli", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/Grouping": { + "modified": "2020-03-12T19:40:35.580Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/Logical_Operators": { + "modified": "2020-03-12T19:40:33.485Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/Operador_Coma": { + "modified": "2020-03-12T19:40:38.129Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/function": { + "modified": "2020-03-12T19:43:14.603Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/super": { + "modified": "2020-03-12T19:40:57.165Z", + "contributors": [ + "SphinxKnight", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/typeof": { + "modified": "2020-03-12T19:40:39.552Z", + "contributors": [ + "teoli", + "enTropy", + "llue" + ] + }, + "Web/JavaScript/Referencia/Operadors/void": { + "modified": "2020-03-12T19:40:51.423Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Operadors/yield": { + "modified": "2020-03-12T19:40:38.885Z", + "contributors": [ + "teoli", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Sentencies": { + "modified": "2020-03-12T19:40:33.725Z", + "contributors": [ + "fscholz", + "enTropy", + "schlagi123" + ] + }, + "Web/JavaScript/Referencia/Sentencies/Buida": { + "modified": "2020-03-12T19:40:53.165Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/block": { + "modified": "2020-03-12T19:40:58.782Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/break": { + "modified": "2020-03-12T19:42:37.121Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/continue": { + "modified": "2020-03-12T19:42:36.256Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/debugger": { + "modified": "2020-03-12T19:42:42.043Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/do...while": { + "modified": "2020-03-12T19:42:35.370Z", + "contributors": [ + "antoniomatt", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/export": { + "modified": "2020-11-15T17:57:08.110Z", + "contributors": [ + "marc.valerio", + "SphinxKnight", + "rvilar", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/for": { + "modified": "2020-03-12T19:40:55.949Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/for...of": { + "modified": "2020-03-12T19:40:34.152Z", + "contributors": [ + "SphinxKnight", + "fscholz", + "enTropy" + ] + }, + "Web/JavaScript/Referencia/Sentencies/function": { + "modified": "2020-03-12T19:40:57.798Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/if...else": { + "modified": "2020-03-12T19:40:53.418Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/return": { + "modified": "2020-03-12T19:40:55.904Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/throw": { + "modified": "2020-03-12T19:42:33.312Z", + "contributors": [ + "llue" + ] + }, + "Web/JavaScript/Referencia/Sentencies/while": { + "modified": "2020-03-12T19:40:53.547Z", + "contributors": [ + "fscholz", + "llue" + ] + }, + "Web/JavaScript/Referencia/Sobre": { + "modified": "2020-03-12T19:38:14.941Z", + "contributors": [ + "enTropy", + "teoli", + "JordiGuilleumes" + ] + }, + "Web/JavaScript/quant_a_JavaScript": { + "modified": "2020-07-27T11:53:21.427Z", + "contributors": [ + "joanpardo", + "enTropy" + ] + }, + "Web/Reference": { + "modified": "2019-03-23T22:22:23.982Z", + "contributors": [ + "Legioinvicta", + "andrealeone" + ] + }, + "Web/Reference/API": { + "modified": "2019-03-23T22:22:24.413Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/Tutorials": { + "modified": "2019-03-23T22:22:12.721Z", + "contributors": [ + "Legioinvicta" + ] + }, + "Web/XSLT": { + "modified": "2019-03-23T23:40:59.738Z", + "contributors": [ + "ExE-Boss", + "teoli", + "Oriol" + ] + }, + "Web_Development": { + "modified": "2019-03-23T23:33:13.846Z", + "contributors": [ + "caos30", + "ethertank" + ] + }, + "Web_Development/Mobile": { + "modified": "2019-03-23T23:33:13.336Z", + "contributors": [ + "caos30", + "wbamberg" + ] + }, + "Web_Development/Mobile/A_hybrid_approach": { + "modified": "2019-03-23T23:33:18.345Z", + "contributors": [ + "trevorh" + ] + }, + "Web_Development/Mobile/Mobile-friendliness": { + "modified": "2019-03-23T23:33:21.925Z", + "contributors": [ + "caos30" + ] + }, + "Web_Development/Mobile/Responsive_design": { + "modified": "2019-03-23T23:33:17.529Z", + "contributors": [ + "caos30" + ] + }, + "Web_Development/Mobile/Separate_sites": { + "modified": "2019-03-23T23:33:19.296Z", + "contributors": [ + "trevorh" + ] + } +}
\ No newline at end of file diff --git a/files/ca/addició_de_motors_de_cerca_a_les_pàgines_web/index.html b/files/ca/addició_de_motors_de_cerca_a_les_pàgines_web/index.html new file mode 100644 index 0000000000..8e05ffea86 --- /dev/null +++ b/files/ca/addició_de_motors_de_cerca_a_les_pàgines_web/index.html @@ -0,0 +1,32 @@ +--- +title: Addició de motors de cerca a les pàgines web +slug: Addició_de_motors_de_cerca_a_les_pàgines_web +tags: + - Complements + - Connectors_de_cerca +translation_of: Web/OpenSearch +--- +<p>El Firefox utilitza codi JavaScript per a instaŀlar connectors de motors de cerca. Pot fer servir 3 formats: MozSearch, OpenSearch i Sherlock. +</p><p>Quan un codi JavaScript intenta instaŀlar un connector de cerca, el Firefox mostra un avís demanant a l'usuari permís per a instaŀlar-lo. +</p> +<h2 id="Insta.C5.80laci.C3.B3_de_connectors_MozSearch_i_OpenSearch">Instaŀlació de connectors MozSearch i OpenSearch </h2> +<p>Per a instaŀlar un connector MozSearch o OpenSearch, cal que utilitzeu el mètode DOM <code>window.external.AddSearchProvider()</code>. La sintaxi d'aquest mètode és: +</p> +<pre class="eval">window.external.AddSearchProvider(<i>URL_motor</i>); +</pre> +<p>On <i>URL_motor</i> és l'URL al fitxer XML del connector del motor de cerca. </p> +<div class="note"><b>Nota:</b> MozSearch i OpenSearch només funcionen a partir del Firefox 2.</div> +<p>Per a més detalls, consulteu <a href="ca/Creaci%c3%b3_de_connectors_MozSearch">Creació de connectors MozSearch</a>. +</p> +<h2 id="Insta.C5.80laci.C3.B3_de_connectors_Sherlock">Instaŀlació de connectors Sherlock</h2> +<p>Per a instaŀlar un connector Sherlock, cal que es cridi a <code>window.sidebar.addSearchEngine()</code>, la sintaxi és la següent: +</p> +<pre class="eval">window.sidebar.addSearchEngine(<i>URL_motor</i>, <i>URL_icona</i>, <i>Nom_suggerit</i>, <i>Categoria_suggerida</i>); +</pre> +<ul><li> El paràmetre <code>URL_motor</code> és l'URL al connector Sherlock (un fitxer «.src») per instaŀlar. +</li><li> <code>URL_icona</code> és l'URL de la icona associada al connector. +</li><li> El paràmetre <code>Nom_suggerit</code> només s'utilitza quan s'avisa a l'usuari en instaŀlar el connector. Es mostra un missatge de l'estil «Voleu instaŀlar <i>Nom_suggerit</i> de <i>URL_motor</i>?». +</li><li> El paràmetre <code>sCategoria_suggerida</code> no s'utilitza. Podeu especificar-hi una cadena en blanc (<code>""</code>) o <code>null</code>. +</li></ul> +<p>Per a més detalls de Sherlock, visiteu <a class=" external" href="http://developer.apple.com/macosx/sherlock/">http://developer.apple.com/macosx/sherlock/</a> +</p>{{ languages( { "en": "en/Adding_search_engines_from_web_pages", "it": "it/Installare_plugin_di_ricerca_dalle_pagine_web", "ja": "ja/Adding_search_engines_from_web_pages" } ) }} diff --git a/files/ca/api_del_toolkit/index.html b/files/ca/api_del_toolkit/index.html new file mode 100644 index 0000000000..d23c4276bd --- /dev/null +++ b/files/ca/api_del_toolkit/index.html @@ -0,0 +1,25 @@ +--- +title: API del Toolkit +slug: API_del_Toolkit +tags: + - API_del_Toolkit +translation_of: Mozilla/Tech/Toolkit_API +--- +<p>El <i>Mozilla Toolkit</i> (<b>joc d'eines de Mozilla</b>) és un conjunt d'interfícies de programació per sobre de <a href="ca/Gecko">Gecko</a>. Aquestes permeten proporcionar serveis avançats a les aplicacions <a href="ca/XUL">XUL</a>. Alguns d'aquests serveis inclouen: +</p> +<ul><li> Gestió de perfils +</li><li> Registre del chrome +</li><li> Historial de la navegació +</li><li> Gestió d'extensions i temes +</li><li> Servei d'actualització de les aplicacions +</li><li> Mode segur +</li></ul> +<h3 id="Refer.C3.A8ncies_oficials"> Referències oficials </h3> +<ul><li> <a href="ca/Estructura_d'un_feix_instal%c2%b7lable">Estructura d'un feix instal·lable</a>: descriu l'estructura comuna dels feixos instal·lables, incloent-hi extensions, temes i aplicacions XULRunner. +</li><li> <a href="ca/Empaquetament_d'extensions">Empaquetament d'extensions</a>: informació específica de com empaquetar extensions +</li><li> <a href="ca/Empaquetament_de_temes">Empaquetament de temes</a>: informació específica de com empaquetar temes +</li><li> <a href="ca/Empaquetament_d'extensions_de_m%c3%baltiples_elements">Empaquetament d'extensions de múltiples elements</a>: informació específica d'extensions XPI de múltiples elements +</li><li> <a href="ca/Empaquetament_d'aplicacions_XUL">Empaquetament d'aplicacions XUL</a>: informació específica de com empaquetar aplicacions XULRunner +</li><li> <a href="ca/Registre_del_Chrome">Registre del Chrome</a> +</li></ul> +{{ languages( { "en": "en/Toolkit_API", "es": "es/Herramientas_API", "fr": "fr/API_du_toolkit", "it": "it/Toolkit_API", "ja": "ja/Toolkit_API", "ko": "ko/Toolkit_API", "pl": "pl/Toolkit_API" } ) }} diff --git a/files/ca/archive/add-ons/implementació_de_suggeriments_en_els_connectors_de_cerca/index.html b/files/ca/archive/add-ons/implementació_de_suggeriments_en_els_connectors_de_cerca/index.html new file mode 100644 index 0000000000..26372a1fb7 --- /dev/null +++ b/files/ca/archive/add-ons/implementació_de_suggeriments_en_els_connectors_de_cerca/index.html @@ -0,0 +1,49 @@ +--- +title: Implementació_de_suggeriments_en_els_connectors_de_cerca +slug: Archive/Add-ons/Implementació_de_suggeriments_en_els_connectors_de_cerca +tags: + - Complements + - Connectors_de_cerca +translation_of: Archive/Add-ons/Supporting_search_suggestions_in_search_plugins +--- +<h2 id="Implementaci.C3.B3_de_suggeriments_en_el_connector_de_cerca" name="Implementaci.C3.B3_de_suggeriments_en_el_connector_de_cerca">Implementació de suggeriments en el connector de cerca</h2> +<p>Per a utilitzar suggeriments de cerca, un connector de cerca cal que defineixi un element addicional <code><Url></code> amb el seu atribut <code>type</code> definit com <code>"application/x-suggestions+json"</code>. (Això vol dir que el connector d'un motor que implementi els suggeriments tindrà dos elements <code><Url></code>, essent l'altre l'URL de cerca <code>text/html</code> principal.) +</p><p>Per exemple, el connector de cerca de Yahoo té aquesta entrada <code><Url></code>: +</p> +<pre><Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/> +</pre> +<p>Si l'usuari tecleja «fir» a la barra de cerca, i llavors s'atura, el Firefox inserirà «fir» en comptes de <code>{searchTerms}</code> i ho trametrà a aqueix URL: +</p> +<pre><Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/> +</pre> +<p>Els resultats s'utilitzaran per a construir el diàleg de la llista de suggeriments. +</p><p>Vegeu <a href="ca/Creaci%c3%b3_de_connectors_MozSearch">Creació de connectors MozSearch</a> per a aprendre més sobre com implementar connectors de cerca. +</p> +<h2 id="Implementaci.C3.B3_de_suggeriments_de_cerca_en_el_servidor" name="Implementaci.C3.B3_de_suggeriments_de_cerca_en_el_servidor">Implementació de suggeriments de cerca en el servidor</h2> +<p>Gran bona part de la feina de gestionar els suggeriments de cerca s'implementa en el servidor. Si sou dissenyador d'un lloc web i voleu incorporar-hi suggeriments de cerca, cal que hi implementeu la possibilitat que es retornin els suggeriments en <a class="external" href="http://www.json.org/">Notació d'objectes de JavaScript</a> (JSON) havent-hi donat un terme de cerca. +</p><p>Quan el navegador vulgui recollir les possibles coincidències d'un terme de cerca, s'envia una sol·licitud HTTP GET a l'URL especificat per l'element <code><Url></code>. +</p><p>El vostre servidor haurà llavors de decidir quins suggeriments oferirà amb els mitjans que més s'escaiguin, i construir un JSON que consisteixi com a mínim de dos, i fins a quatre, elements: +</p> +<dl><dt> <b>cadena de consulta</b> +</dt><dd> El primer element en el JSON és la cadena de consulta original. Això permet al Firefox verificar que els suggeriments coincedeixen amb el terme de cerca actual. +</dd></dl> +<dl><dt> <b>llista de compleció</b> +</dt><dd> Una matriu de termes de cerca suggerits. Ha de tancar-se la matriu en claudàtors. Per exemple: <tt>{{ mediawiki.external('\"terme 1\", \"terme 2\", \"terme 3\", \"terme 4\"') }}</tt> +</dd></dl> +<dl><dt> <b>descripcions</b> +</dt><dd> Aquest element opcional és una matriu de descripcions per a cada un dels suggeriments a la <i>llista de compleció</i>. Pot ser qualsevol informació que el motor de cerca pugui voler retornar quan es mostri en el navegador, com ara el nombre de resultats disponibles per a la cerca. +</dd></dl> +<div class="note">Les descripcions no funcionen al Firefox 2, i s'ignoraran si se n'especifica cap.</div> +<dl><dt> <b>URL de consulta</b> +</dt><dd> Aquest element opcional és una matriu d'URL alternatius per a cada suggeriment de la <i>llista de compleció</i>. Per exemple, si voleu oferir un enllaç a un mapa en comptes de simplement una pàgina de resultats de cerca per a un suggeriment, podeu retornar un URL al mapa en aquesta matriu. +</dd></dl> +<dl><dd> Si no especifiqueu un URL de consulta, la consulta per defecte que s'utilitza es basa en la cerca descrita per l'element <code><Url></code> en la descripció XML del connector de cerca. +</dd></dl> +<div class="note">Els URL de consulta no funcionen al Firefox 2, i llavors s'ignoraran.</div> +<p>Per exemple, si el terme de cerca és «fir», i no us cal que es retorni descripcions d'URL alternatius, podeu retorneu el següent JSON: +</p> +<pre class="eval">["fir", ["firefox", "first choice", "mozilla firefox"]] +</pre> +<p>Tingueu en compte que en aquest exemple només s'especifica la cadena de consulta i la matriu de compleció, excloent-ne els elements opcionals. +</p><p>La vostra llista de compleció pot incloure tants suggeriments com vulgueu, encara que és recomanable que sigui de fàcil gestió, atès que la mostra de suggeriments s'actualitzarà mentre l'usuari estigui escrivint la seua cadena de cerca. Endemés, el mètode que utilitzeu per a seleccionar els suggeriments és plenament al vostre guts. +</p>{{ languages( { "en": "en/Supporting_search_suggestions_in_search_plugins", "it": "it/Supportare_i_suggerimenti_nei_plugin_di_ricerca" } ) }} diff --git a/files/ca/archive/add-ons/index.html b/files/ca/archive/add-ons/index.html new file mode 100644 index 0000000000..caac45ae4c --- /dev/null +++ b/files/ca/archive/add-ons/index.html @@ -0,0 +1,8 @@ +--- +title: Add-ons +slug: Archive/Add-ons +translation_of: Archive/Add-ons +--- +<p>In progress. Archived add-ons documentation.</p> + +<p>{{SubpagesWithSummaries}}</p> diff --git a/files/ca/archive/b2g_os/index.html b/files/ca/archive/b2g_os/index.html new file mode 100644 index 0000000000..ecaa1b9296 --- /dev/null +++ b/files/ca/archive/b2g_os/index.html @@ -0,0 +1,219 @@ +--- +title: B2G OS +slug: Archive/B2G_OS +tags: + - B2G + - Firefox OS + - Gaia + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS +--- +<div class="summary"><span class="seoSummary">B2G OS is (was) a complete, standalone operating system for the open web. It is an open source project developed by the Mozilla community and forms the basis of Firefox OS products. As of 2017 it is<strong> no longer maintained</strong>.</span></div> + +<p><strong>B2G OS </strong>is a community maintained open source operating system for<strong> </strong>smartphones, tablets, smart TVs and other connected devices. The project was <a href="https://wiki.mozilla.org/Booting_to_the_Web">started</a> in 2011 and is based on the Linux kernel and Gecko rendering engine. The entire user interface is built using web technologies (HTML, CSS and JavaScript) and can be used to launch and use <a href="/en-US/Apps">web applications</a>. Since Mozilla <a href="https://discourse.mozilla-community.org/t/firefox-os-connected-devices-announcement/6864">discontinued</a> their commercial Firefox OS smartphone program the smartphone part of the project is entirely maintained by Mozilla's volunteer community, and branded as B2G OS.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13140/B2g_wordmark.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Index_of_pages">Index of pages</h2> + +<dl> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Automated_testing">Automated Testing of B2G OS</a></dt> + <dd class="landingPageList">This page offers articles that provide information about various aspects of testing B2G OS, including running different tests, automation, and result reporting and tracking.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Add-ons">B2G OS add-ons</a></dt> + <dd class="landingPageList">You should follow the below steps to get set up to start developing extensions.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/API">B2G OS APIs</a></dt> + <dd class="landingPageList">List of B2G OS APIs</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Architecture">B2G OS architecture</a></dt> + <dd class="landingPageList">This article is a high-level overview of the architecture of the B2G OS platform, introducing key concepts and explaining how its components interact at a basic level.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/B2G_OS_build_prerequisites">B2G OS build prerequisites</a></dt> + <dd class="landingPageList">Before obtaining the code to build B2G OS, even if you are simply trying to build Gaia, you need a properly configured <a href="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions" title="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions">build system</a> — this page shows you how. You can currently build on 64-bit Linux distributions and OS X.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Phone_guide">B2G OS phone guide</a></dt> + <dd class="landingPageList">This section contains developer information relevant to specific phones that run B2G OS — both developer and consumer devices.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS">Building and installing B2G OS</a></dt> + <dd class="landingPageList">The articles listed on this page will guide you through building and installing B2G OS on an emulator or compatible device, or the <a href="/en-US/docs/Mozilla/B2G_OS/Platform/Gaia/Introduction_to_Gaia" title="Mozilla/B2G_OS/Platform/Gaia/Introduction to Gaia">Gaia</a> user interface in the Firefox browser.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Building">Building B2G OS</a></dt> + <dd class="landingPageList">Once you've <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">set up your build system</a> and performed your <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">initial pull and configure</a> the code, you can build Boot to Gecko. This guide explains how.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Building_the_B2G_OS_simulator">Building the B2G OS Simulator</a></dt> + <dd class="landingPageList">Just like <a href="http://nightly.mozilla.org" title="http://nightly.mozilla.org">Firefox Nightlies</a>, the B2G OS simulator desktop client (identified by <em>b2g-</em>) is automatically built every day from the latest source code. The latest build is <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">available from the Mozilla FTP server</a>. Be sure to pick the latest version and the right archive for your operating system. This lets you bypass having to build it yourself. In addition, you don't have to download Gaia on your own either.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G</a></dt> + <dd class="landingPageList">Depending on your specific needs, you have an assortment of options to consider when experimenting with Firefox OS or the <a href="/en/Mozilla/Boot_to_Gecko/Introduction_to_Gaia" title="en/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a> user interface. You can choose among the following options; each has its advantages and disadvantages to consider, and some are more flexible than others.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Crash_Reporting_Guide_for_Firefox_OS_Partners">Crash Reporting Guide for Firefox OS Partners</a></dt> + <dd class="landingPageList">Mozilla has a world-class system for collecting, analyzing, and fixing crashes and other stability issues such as hangs. Firefox OS partners need to work with Mozilla to correctly enable crash reporting and upload symbols.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a></dt> + <dd class="landingPageList">The <code>.userconfig</code> file isn't checked into source code control, so your changes won't be overwritten when you update your source tree. It needs to be created in the <a href="https://github.com/mozilla-b2g/B2G">root of the B2G tree</a>; that is, in the same directory as <code>flash.sh</code>, <code>build.sh</code>, and so forth. You should add this before you run your config and build steps.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Debugging">Debugging on Firefox OS</a></dt> + <dd class="landingPageList">There are two main types of debugging you'll want to with Firefox OS: debugging apps, and debugging other aspects of the system.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Developer_Mode">Developer Mode</a></dt> + <dd class="landingPageList">The current Firefox OS permissions model precludes modification and installation of certified/internal apps, which makes some device APIs completely unavailable to Marketplace and web apps. <strong>Developer Mode (DM)</strong> allows the user to indicate that they would like to relax the permissions model and expose all device APIs to content, as well as setting a group of related preferences. This article provides a high-level overview.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Developing_Firefox_OS">Developing Firefox OS</a></dt> + <dd class="landingPageList">This section provides useful documentation covering different ways in which Firefox OS (codename Boot2Gecko, or B2G) can be modified/customized during the build process, and how you can help to develop the low level platform areas such as <a href="/en-US/docs/Mozilla/Gecko">Gecko</a> and <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a>.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Firefox_OS_apps">Firefox OS apps</a></dt> + <dd class="landingPageList">This section of the Firefox OS docs covers the specific techniques required — and available tools — for building Firefox OS apps. You'll find a number of details below, from Firefox OS building blocks/web components, to device APIs and App installation.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Board_guide">Firefox OS board guide</a></dt> + <dd class="landingPageList">This section contains developer information relevant to specific phones that run Firefox OS — both developer and consumer devices.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Releases">Firefox OS developer release notes</a></dt> + <dd class="landingPageList">This section provides articles covering each new release of Gaia and Gecko for Firefox OS, explaining what features were added and bugs eliminated in each update. There is also a linked summary table showing what APIs are supported by each version of Firefox OS.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Security">Firefox OS security</a></dt> + <dd class="landingPageList">The following articles cover security-related topics about Firefox OS. This includes overall security features as well as application security and how the install process is kept secure.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Simulator">Firefox OS Simulator</a></dt> + <dd class="landingPageList"><span style="line-height: 1.5;">The Firefox OS Simulator is <span style="line-height: 1.5;">a version of the higher layers of Firefox OS</span> that simulates a Firefox OS device, but runs on the desktop</span><span style="line-height: 1.5;">. This means that in many cases, you don't need a real device to test and debug your app. </span><span style="line-height: 1.5;">It runs in a window the same size as a Firefox OS device, includes the Firefox OS user interface and built-in apps, and simulates many of the Firefox OS device APIs.</span></dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Firefox_OS_usage_tips">Firefox OS usage tips</a></dt> + <dd class="landingPageList">Explains all of the developer features on the phone and what they do (Settings > Device information > More information > Developer)</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia">Gaia</a></dt> + <dd class="landingPageList">Gaia is B2G OS's user interface and suite of default apps: it includes the lock screen, home screen, dialer, and other applications. Essentially, Gaia is a set of complex web apps that runs on top of the B2G OS platform. This set of articles covers all you need to know to contribute to the Gaia project.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></dt> + <dd class="landingPageList">Once you've built Boot to Gecko for a <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Have_a_compatible_device_or_use_an_emulator">supported mobile device</a>, you can install it. This article will guide you through the process.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Introduction">Introduction to Firefox OS</a></dt> + <dd class="landingPageList">This set of documentation is aimed mainly at web developers and platform developers who want to learn how Firefox OS works, how to contribute to the project, and how to build their own custom versions of the software and install it on devices. For those who want to create and distribute their own web apps, the <a href="/en-US/Apps">App Center</a> and <a href="/en-US/Marketplace">Marketplace Zone</a> are good places to go.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Mulet">Mulet</a></dt> + <dd class="landingPageList">Following this guide you're going to run Gaia inside of a special build of Firefox called Firefox Mulet. This gives you the advantages of having a rapid development cycle, as well as standard web development tools and debuggers available to work with. First of all, you need to have the <a class="external external-icon" href="https://github.com/mozilla-b2g/gaia">Gaia</a> repo cloned on your machine and build your own profile. Then, you have to install mulet and run it, passing your Gaia profile as the profile to use.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Quickstart">Open web apps quickstart</a></dt> + <dd class="landingPageList">Quickstart information on coding Open Web Apps.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Pandaboard">Pandaboard</a></dt> + <dd class="landingPageList">This is a guide to setting up Firefox OS on a <a href="http://pandaboard.org/" title="http://pandaboard.org/">PandaBoard</a>. The PandaBoard is a low-cost OMAP 4 based development board for developing mobile operating systems.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/PasscodeHelper_Internals">PasscodeHelper Internals</a></dt> + <dd class="landingPageList">PasscodeHelper is a Gaia helper library for modifying and checking the Firefox OS lockscreen passcode (i.e., pin) from within Gaia, performing functions such as checking whether an entered passcode is correct, and changing the code. This article documents how PasscodeHelper works.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Porting_B2G_OS">Porting B2G OS</a></dt> + <dd class="landingPageList">This page lists the available resources for porting B2GOS.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first B2G build</a></dt> + <dd class="landingPageList">Depending on your internet connection, the configuration steps may take several hours to download everything you need to build B2G OS. Waiting is not as fun as doing, so after you have read through this page and have kicked off the configure script, consider using the time to set up and try out the <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator" title="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator">B2G OS simulator</a>, begin familiarizing yourself with <a class="vt-p" href="/en-US/docs/Apps" title="/en-US/docs/Apps">Documentation for app developers</a> including Designing and Building an App, or familiarize yourself with the information on upcoming steps.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Resources">Resources</a></dt> + <dd class="landingPageList"><em>Resources for App hackers, as generated from our workshops</em></dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Running_Tests_on_Firefox_OS_for_Developers">Running tests on Firefox OS: A guide for developers</a></dt> + <dd class="landingPageList">If you are a Gecko developer, then you should review the Firefox OS-specific documentation for the test automation you are already familar with: <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests">mochitest</a>, <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Reftests">reftest</a>, and <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Automated_testing/XPCShell">xpcshell</a>.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Platform">The B2G OS platform</a></dt> + <dd class="landingPageList">The B2G OS platform consists of many components. While you don't need to understand its architecture in order to build applications that run on B2G OS, if you're working on developing or porting the platform — or are simply curious — the following documentation may be of interest to you.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Troubleshooting">Troubleshooting B2G OS</a></dt> + <dd class="landingPageList">This article provides tips for resolving common problems you may have while using B2G OS.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Using_the_App_Manager">Using the App Manager</a></dt> + <dd class="landingPageList">The App Manager is a tool for Firefox Desktop which provides a number of useful tools to help developers test, deploy and debug HTML5 web apps on Firefox OS phones & Simulator, directly from Firefox browser. This page documents how to use the App Manager.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Using_the_B2G_emulators">Using the B2G emulators</a></dt> + <dd class="landingPageList">This article provides a brief guide to some key things you should know when using the boot to Gecko emulators. This doesn't appear to be a complete user manual; instead, it simply tells you a few useful things that you might not learn on your own.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Web_applications">Web applications</a></dt> + <dd class="landingPageList">This page is intended to be a first, non thorough, attempt to collect web apps.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Bluetooth_API">Web Bluetooth API (Firefox OS)</a></dt> + <dd class="landingPageList">The Web Bluetooth API lets an open web app discover, pair with, and connect to Bluetooth devices. As it is a completely experimental and non-standard API, the Bluetooth API is currently available for certified applications only. However, there is some traction to have such an API available for regular Web content; this will be discussed as part of the <a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a>.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Archive/B2G_OS/Web_Telephony_API">Web Telephony API</a></dt> + <dd class="landingPageList">Web Telephony is an API that makes it possible for web content to handle voice phone calls using JavaScript.</dd> +</dl> + +<h2 id="Old_page_content">Old page content</h2> + +<div class="blockIndicator note"> +<p><strong>Note</strong>: <a href="https://wiki.mozilla.org/B2G/Transition_Project/Call_For_Contribution">Call for contribution</a> & <a href="https://discourse.mozilla-community.org/t/updated-9th-july-call-for-app-maintainers-adopt-an-app/9300/1">Call for App adoption</a> has been made to gather more people, feel free to share it !</p> +</div> + +<div class="column-container"> +<div class="column-third"> +<h2 id="How_you_can_help">How you can help</h2> + +<ul> + <li>File & fix bugs (meta bug is <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1252143" rel="nofollow">bug 1252143</a>)</li> + <li>Help us fix failing <a class="external text" href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Automated_testing" rel="nofollow">tests</a></li> + <li>Port a gaia <a href="https://mozilla-b2g.github.io/gaia/">smartphone app</a>: + <ol> + <li>Turn it into a webapp (or)</li> + <li>Turn it into chrome:// (<a href="https://discourse.mozilla-community.org/t/why-gaia-apps-are-turned-to-chrome/8011">why?</a>) & report back<span style="display: none;"> </span><span style="display: none;"> </span><span style="display: none;"> </span></li> + </ol> + </li> + <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Port B2G OS to your phone</a> or help us to maintain a port</li> + <li>Help improve translate this documentation & wiki</li> + <li>Propose & implement new smartphone features</li> +</ul> +</div> + +<div class="column-third"> +<h2 id="Get_involved"> Get involved</h2> + +<ul> + <li>Mailing list (<a class="external text" href="https://lists.mozilla.org/listinfo/dev-fxos" rel="nofollow">dev-fxos</a>)</li> + <li><a class="external text" href="https://wiki.mozilla.org/IRC" rel="nofollow">IRC</a> (irc.mozilla.org Channel: #b2g)</li> + <li><a href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse </a></li> + <li><a class="external text" href="https://telegram.me/B2GOS" rel="nofollow">Telegram Group</a></li> + <li>Follow us on <a href="https://twitter.com/Boot2Gecko">Twitter</a>, or just look for <a href="https://twitter.com/hashtag/B2GOS?src=hash">#B2GOS</a></li> + <li><a href="https://wiki.mozilla.org/B2G/Transition_Project/Working_Groups">Working Groups</a></li> + <li>Documentation issues tracker on <a href="https://github.com/mozilla-b2g/B2GOS-community/issues">GitHub</a></li> + <li><a class="external text" href="https://wiki.mozilla.org/B2G/Meeting" rel="nofollow">B2G Weekly Meeting</a> for engineering status updates</li> +</ul> + +<p>To participate in meetings and community Working Groups meetings, register on this <a href="https://calendar.google.com/calendar/embed?src=mozilla.com_2d3638353137343333373332@resource.calendar.google.com">Calendar</a>. They are announced on <a href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse</a>, where you can find information about how to attend & notes.</p> +</div> + +<div class="column-third"> +<h2 id="Compatible_devices">Compatible devices</h2> + +<ul> + <li><a href="https://discourse.mozilla-community.org/t/building-b2g-os-for-aries-z3c/8082">Sony Xperia Z3C</a> (developer phone)</li> + <li><a href="https://discourse.mozilla-community.org/t/flame-builds/8548">Flame </a>(developer phone)</li> + <li><a href="https://discourse.mozilla-community.org/t/zte-open-c/8402">ZTE Open C</a></li> + <li><a href="https://discourse.mozilla-community.org/t/test-b2gos-on-nexus-5/9405/1">Nexus 5</a></li> + <li>WileyFox Swift</li> + <li>Nexus 4 (WIP*)</li> + <li><a href="https://discourse.mozilla-community.org/t/fairphone-2-support-for-b2g-installer-landed/8334">Fairphone 2 </a> (WIP*)</li> + <li><a href="https://discourse.mozilla-community.org/t/b2g-os-flamingo-sony-xperia-e3-builds/8361">Sony Xperia E3 </a> (WIP*)</li> + <li><a href="https://discourse.mozilla-community.org/t/support-for-amami-xperia-z1c-building-debugging-providing-builds/8348">Sony Xperia Z1C</a> (WIP*)</li> + <li><a href="https://discourse.mozilla-community.org/t/wip-xiaomi-redmi-1s-hongmi-1s/10273">Xiaomi Redmi 1S</a> (WIP*)</li> +</ul> + +<p>For more information see this <a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">page</a>.<br> + Flash you device easily with <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/B2G_installer_add-on">B2G installer</a>.<br> + Your device is not in the list ? Try <a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Mulet">Mulet </a>on desktop.</p> + +<p>*WIP = Work In Progress.</p> +</div> +</div> + +<div class="hidden"> +<h2 id="Subnav">Subnav</h2> + +<section class="Quick_links" id="Quick_Links"> +<ol> + <li><strong><a href="/en-US/docs/Archive/B2G_OS">B2G OS</a></strong></li> + <li><strong><a href="/en-US/docs/Archive/B2G_OS/Firefox_OS_apps">Firefox OS apps</a></strong></li> + <li class="toggle"> + <details><summary><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS">Build and install</a></summary> + <ol> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building">Building B2G OS</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details><summary><a href="/en-US/docs/Archive/B2G_OS/Porting_B2G_OS">Porting B2G OS</a></summary> + <ol> + <li><a href="/en-US/docs/Archive/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details><summary><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia">Developing Gaia</a></summary> + <ol> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li> + <li><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li> + </ol> + </details> + </li> + <li><a href="/en-US/docs/Archive/B2G_OS/API">B2G OS APIs</a></li> +</ol> +</section> +</div> diff --git a/files/ca/archive/b2g_os/introduction/index.html b/files/ca/archive/b2g_os/introduction/index.html new file mode 100644 index 0000000000..45154f5cc2 --- /dev/null +++ b/files/ca/archive/b2g_os/introduction/index.html @@ -0,0 +1,106 @@ +--- +title: Introducció a Firefox OS +slug: Archive/B2G_OS/Introduction +translation_of: Archive/B2G_OS/Introduction +--- +<p><strong>Firefox OS</strong> (també conegut amb el nom en codi "Boot to Gecko" o "B2G") és el sistema mòbil de codi obert desenvolupat per Mozilla basat en la Linux i la tecnologia Mozilla Gecko. Firefox OS és un sistema operatiu per mòbils lliure de tecnologia propietària mentre és una potent plataforma que prové als desenvolupadors d'aplicacions la oportunitat de crear productes excel·lents. A més, és flexible i prou capaç de fer feliç a l’usuari final.</p> +<p>Per als desenvolupadors web, la part més important d'entendre és que la interfície d'usuari sencera és una aplicació web, que és capaç de mostrar i llançar altres aplicacions web. Qualsevol modificació que es faci en la interfície d'usuari i l'aplicació que es crea per córrer sota Firefox OS son pàgines web, tot i que amb un accés millorat al maquinari del dispositiu mòbil i els seus serveis.</p> +<p>Pots aprendre com compilar i instal·lar Firefox OS <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">seguint la nostra guia pràctica</a>.</p> +<div> + <h2 id="Necessitats_de_maquinari"><strong>Necessitats de maquinari</strong></h2> +</div> +<p>Pot ser possible transportar a Firefox OS els dispositius més actuals basats en ARM. Aquesta secció cobreix les necessitats bàsiques de maquinari i també les característiques recomanades.</p> +<table> + <thead> + <tr> + <th> + <p align="center"><strong>Component</strong></p> + </th> + <th> + <p align="center"><strong>Mínim</strong></p> + </th> + <th> + <p align="center"><strong>Recomanat</strong></p> + </th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p align="center"><strong>CPU</strong></p> + </td> + <td> + <p>ARMv6</p> + </td> + <td> + <p>Cortex classe A5 o superior<br> + ARMv7a amb NEON</p> + </td> + </tr> + <tr> + <td> + <p align="center"><strong>GPU</strong></p> + </td> + <td> + <p>—</p> + </td> + <td> + <p>Adreno classe 200 o superior</p> + </td> + </tr> + <tr> + <td> + <p align="center"><strong>Connectivitat</strong></p> + </td> + <td> + <p>—</p> + </td> + <td> + <p>WiFi<br> + 3G</p> + </td> + </tr> + <tr> + <td> + <p align="center"><strong>Sensors</strong></p> + </td> + <td> + <p>—</p> + </td> + <td> + <p>Acceleròmetre<br> + Proximitat<br> + Lluminositat ambient<br> + A-GPS</p> + </td> + </tr> + </tbody> +</table> +<p>També és recomana que el dispositiu ofereixi un perfil de color uniforme (que serà implementat per el driver gràfic del dispositiu) i suport als auriculars amb funcions silenci/so i atura/reprodueix. Aquestes son unes característiques comuns en la majoria de smarthphones moderns.</p> +<div> + <h2 id="Consells_d'ús"><strong>Consells d'ús</strong></h2> + <p>Aquesta secció proporciona alguns consells alguns consells que t’ajudaran realment utilitzen Firefox OS. Això és una cosa d'un marcador de posició fins que tinguem documentació d'ús real.</p> + <h3 id="Desbloquejant_el_Telèfon"><strong>Desbloquejant el Telèfon</strong></h3> + <p>Si la teva versió de Firefox OS s'inicia sol · licitant un codi d'accés per desbloquejar el dispositiu, el codi predeterminat és 0000. Algunes versions és fan mentre es desenvolupa i prova la pantalla de bloqueig.</p> + <h3 id="Captura_d'una_captura_de_pantalla"><strong>Captura d'una captura de pantalla</strong></h3> + <p>Capturar una imatge és tan senzill com prémer el botó d'alimentació i Inici al mateix temps. La imatge de la pantalla estarà en / sdcard / captures de pantalla del seu dispositiu.</p> + <p>Si per alguna raó això no funciona, també pot fer-ho des de la terminal de Linux o Mac OS X que tingui un Firefox OS sistema de generació instal·lada.</p> +</div> +<p> </p> +<p>1. Assegurat que tens ffmpeg instal·lat.</p> +<p>1. A Mac, si utilitzes els ports del Mac, ho pots fer amb sudo port install ffmpeg. Per homebrew, fes brew install ffmpeg.</p> +<p>2. A Linux (Ubuntu/Debian), utilitza sudo apt-get install ffmpeg.</p> +<p>2. Connecta el teu telèfon a l’ordinador mitjançant un cable USB.</p> +<p>3. Navega per el teu telèfon fins on vulguis la captura de pantalla.</p> +<p>4. cd dins el directori B2G/gaia </p> +<p>5. make screenshot (fes captura de pantalla)</p> +<p>6. Ara disposaràs duna captura de pantalla anomenada screenshot.png.</p> +<h3 id="Botons_i_controls"><strong>Botons i controls</strong></h3> +<p>Un dispositiu típic Firefox OS te un petit nombre de botons físics.</p> +<p><em>Botó Home</em></p> +<p style="margin-left: 36.0pt;">Aquest botó normalment està centrat sota la pantalla. Pressionant-lo et retornarà al llançador d’aplicacions. Mantenint-lo obre la commutació de vista; llisca a munt sobre una aplicació per tancar-la.</p> +<p><em>Control rotatiu de volum</em></p> +<p style="margin-left: 36.0pt;">Al llarg de la part esquerra està el control de volum; pressionant la part superior augmenta el volum i pressionant la part inferior disminuirà el volum.</p> +<p><em>Botó d'encesa</em></p> +<p style="margin-left: 36.0pt;">El botó d'encesa està situat a la part superior dreta del dispositiu.</p> +<p> </p> diff --git a/files/ca/archive/b2g_os/platform/gaia/hacking/index.html b/files/ca/archive/b2g_os/platform/gaia/hacking/index.html new file mode 100644 index 0000000000..5db1c70186 --- /dev/null +++ b/files/ca/archive/b2g_os/platform/gaia/hacking/index.html @@ -0,0 +1,126 @@ +--- +title: Hacking Gaia +slug: Archive/B2G_OS/Platform/Gaia/Hacking +translation_of: Firefox_OS/Developing_Gaia +--- +<div class="warning"> + <p>Aquesta pàgina està dirigida a desenvolupadors Gaia. Si busques sobre com crear i arrencar una aplicació Firefox OS, tindries que consultar <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Creant i instal·lant una pàgina Firefox OS</a>.</p> +</div> +<p>Gaia és un conjunt <a href="https://developer.mozilla.org/apps" rel="nofollow">d'aplicacions web</a> que formen la cara visible de <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS">Firefox OS</a>. Tot el que veus a la pantalla de Firefox OS està creat amb tecnología web de codi obert. Això inclou la pantalla inicial i les seves aplicacions inicials. </p> +<h2 id="Obtenint_el_codi">Obtenint el codi</h2> +<p>Per obternir el codi font de Gaia, <a href="https://github.com/mozilla-b2g/gaia" title="https://github.com/mozilla-b2g/gaia">fork us on GitHub</a> and then clone your fork using <a href="http://git-scm.com/" title="http://git-scm.com/">git</a>.</p> +<pre>$ git clone https://github.com/mozilla-b2g/gaia.git</pre> +<h2 id="Running_Gaia">Running Gaia</h2> +<p>You can either run Gaia on the desktop, in Firefox, or on a compatible mobile device.</p> +<h3 id="B2G_desktop">B2G desktop</h3> +<p>B2G desktop is a desktop build of the app runtime used on Firefox OS devices which you can use to run Gaia on your desktop computer.</p> +<p>You can download a nightly build of B2G desktop from <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/">here</a>. Depending on what version you are targeting, you may want a specific version of latest-mozilla-b2g18. There are builds for Linux (32 bit and 64 bit), Mac OS X and Windows.</p> +<p>Nightly builds come packaged with a recent version of gaia. Once you've downloaded the archive, all your need to do is extract it to a folder and run the b2g binary from the extracted folder.</p> +<pre>$ cd b2g +$ ./b2g</pre> +<p>To run B2G with your own version of Gaia for development purposes you first need to build a profile from your clone:</p> +<pre>$ cd /path/to/gaia +$ DEBUG=1 DESKTOP=0 make</pre> +<p>This will generate a directory in your <code>gaia</code> directory called <code>profile</code>. The <code>DEBUG</code> part runs Gaia as hosted apps on a built-in web server, rather than the default packaged apps which have to be re-packaged after every change. You can find the path to the profile directory by taking a look at last line of output after running the above command, which should look like:</p> +<pre>Profile Ready: please run [b2g|firefox] -profile /path/to/gaia/profile</pre> +<p>You can then run B2G Desktop with your generated profile like so:</p> +<pre>$ ./b2g /path/to/gaia/profile</pre> +<p>If you want to you can build your own B2G desktop from source.</p> +<h3 id="Using_Gaia_in_Firefox">Using Gaia in Firefox</h3> +<p>It's also possible to run Gaia inside of Firefox. This gives you the advantages of having a rapid development cycle, as well as standard web development tools and debuggers. See <a href="/en-US/docs/Mozilla/Firefox_OS/Using_Gaia_in_Firefox" title="/en-US/docs/Mozilla/Firefox_OS/Using_Gaia_in_Firefox">Using Gaia in Firefox</a> for details on how to do this.</p> +<h3 id="Using_Gaia_on_a_device">Using Gaia on a device</h3> +<p>If you have a compatible mobile device you can also run Gaia by flashing it with Firefox OS. See <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Building and installing Firefox OS</a> for details on how to do this. We also have documentation for <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Testing">how to test Firefox OS</a>.</p> +<h2 id="Unit_tests">Unit tests</h2> +<p>See <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests" title="Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">Gaia unit tests</a> for documentation about how to create and run unit tests for Gaia.</p> +<h2 id="Filing_bugs">Filing bugs</h2> +<p>Bugs are filed on Bugzilla under <a href="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---" rel="nofollow">Boot2Gecko > Gaia</a>. File a new bug <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Boot2Gecko" title="https://bugzilla.mozilla.org/enter_bug.cgi?product=Boot2Gecko">under the Gaia component</a> (or one of the sub-components).</p> +<h2 id="Contributing_to_Gaia">Contributing to Gaia</h2> +<p>Mozilla depends on contributions from the open source community to help develop Gaia apps and we'd love you to get involved.</p> +<p>Some great places to find some bugs to start hacking on:</p> +<ul> + <li><a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=component:gaia%20sw:polish%20@nobody;list_id=4566236" rel="nofollow">Unowned Gaia polish bugs on Bugzilla</a></li> + <li><a href="http://www.joshmatthews.net/bugsahoy/?b2g=1" rel="nofollow">Mentored bugs</a></li> +</ul> +<h3 id="Coding_style_basics">Coding style basics</h3> +<ul> + <li>Background: + <ul> + <li><a href="/en-US/docs/Developer_Guide/Coding_Style#General_practices" title="Developer_Guide/Coding_Style#General_practices">Coding Style: General practices</a></li> + <li><a href="/en-US/docs/Developer_Guide/Coding_Style#JavaScript_practices" title="Developer_Guide/Coding_Style#JavaScript_practices">Coding Style: JavaScript practices</a></li> + <li><a href="/en-US/docs/Developer_Guide/Coding_Style#Naming_and_formatting_guide" title="Developer_Guide/Coding_Style#Naming_and_formatting_guide">Coding Style: Naming and formatting guide</a></li> + </ul> + </li> + <li>Make sure HTML files are declared <code><!DOCTYPE html></code> (that is, as HTML5 documents). If you don't, Internet Explorer 9 and later will load them in compatibility mode.</li> + <li>Include the <code>"use strict";</code> statement (just like that, including the quotes) to the top of your JavaScript files to put them into strict mode.</li> + <li>Always use two spaces for indentation, rather than tabs.</li> + <li>Please use line breaks to separate logical bits of code!</li> + <li>Multi-word file names should use the "underscore" character to separate words, <code>like_this.js</code>.</li> + <li>Use single quotes instead of double quotes for strings.</li> +</ul> +<h4 id="Additional_rules">Additional rules</h4> +<p>Bad:</p> +<pre>if (expression) doSomething(); +</pre> +<p>Correct:</p> +<pre>if (expression) { + doSomething(); +} +</pre> +<p>If you're working on the system app, check out the guidance listed <a href="https://groups.google.com/d/msg/mozilla.dev.gaia/rEhSrw6XmT4/UNvE7qW9pgYJ" title="See_here_for_some_rules._https://groups.google.com/d/msg/mozilla.dev.gaia/rEhSrw6XmT4/UNvE7qW9pgYJ">here</a>.</p> +<p>Before submitting a patch we recommend you run <a href="http://closure-linter.googlecode.com/svn/trunk/closure_linter/gjslint.py" title="http://closure-linter.googlecode.com/svn/trunk/closure_linter/gjslint.py">gjslint</a> on it to check for any style errors:</p> +<pre>gjslint --nojsdoc my_file.js</pre> +<h3 id="Submitting_a_patch">Submitting a patch</h3> +<p>First file or assign a bug to yourself on <a href="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---" title="https://bugzilla.mozilla.org/buglist.cgi?product=Boot2Gecko&component=Gaia&resolution=---">Bugzilla</a>, you'll need a Bugzilla account.</p> +<p>Then create a branch on your fork of Gaia:</p> +<pre>$ git branch branchname +$ git checkout branchname</pre> +<p>Commit your changes:</p> +<pre>$ git add /file/to/add +$ git commit -m "Bug XXXXX - Fix the broken Gaia and save the world"</pre> +<p>Push your branch:</p> +<pre>$ git push origin branchname</pre> +<p>Send a pull request by navigating to the branch in your fork on GitHub and finding the pull request button.</p> +<p>To request a review of your patch, <a href="http://globau.wordpress.com/2013/10/21/github-pull-requests-and-bugzilla/">attach the pull request</a> to the bug in Bugzilla by referencing the URL of the pull request, and set the review ("r") flag to "?" and enter the bugzilla ID of one of the <a href="https://wiki.mozilla.org/Modules/FirefoxOS" title="https://wiki.mozilla.org/Modules/FirefoxOS">module owners and peers</a> (very important - otherwise your bug will not likely be seem by anyone). The <a href="https://addons.mozilla.org/en-US/firefox/addon/github-tweaks-for-bugzilla/" title="https://addons.mozilla.org/en-US/firefox/addon/github-tweaks-for-bugzilla/">Github tweaks for bugzilla extension on AMO</a> can help automate this process by automatically creating the attachment and adding it to the bug; you will still need to set the review flag on Bugzilla.</p> +<p>The reviewer may ask you to make some changes; you may need to amend the original commit and force push it to the original branch/pull request. Once they're is happy with your patch, they will merge it into the master branch for you. Before they do this they would prefer it if you could squash all your changes into a single commit, so your contribution can be tracked easily.</p> +<p>The person who merge the commit (usually the reviewer) would add a <code>r=</code> flag in the comment of the merge commit.</p> +<h2 id="Make_options">Make options</h2> +<p>There are many undocumented nor unsupported environment variable presists in the Makefile. Do not depend on them as they may be removed in the future.</p> +<h3 id="Default">Default</h3> +<pre>make</pre> +<p>Make a profile with packaged apps, lunachable by B2G Desktop and can be pushed to device.</p> +<h3 id="Debug_make">Debug make</h3> +<pre>DEBUG=1 make</pre> +<p>The <code>DEBUG</code> part runs Gaia as hosted apps on a built-in web server, rather than the default packaged apps which have to be re-packaged after every change. Launch the profile with the latest Firefox Nightly will also give you nice B2G specific panels on the Firefox Developer Tools.</p> +<h3 id="Push_to_device">Push to device</h3> +<pre>make install-gaia + +make reset-gaia</pre> +<p>With <code>adb</code> (Android Debug Bridge) setup, these make targets will push Gaia to the device. <code>reset-gaia</code> will purge the profile and all other webapps before pushing the new Gaia copy.</p> +<h3 id="Selective_build">Selective build</h3> +<pre>APP=system make + +APP=system make install-gaia</pre> +<p>With a profile already exists, <code>APP</code> allow you to specify which app to re-package, instead of re-pack and re-push all the Gaia apps.</p> +<h3 id="High_resolution_image_assets">High resolution image assets</h3> +<pre>GAIA_DEV_PIXELS_PER_PX=1.5 make</pre> +<p>When packaging the app, replace images with their <code>*@1.5x.(gif|jpg|png)</code> ones if such image exists.</p> +<p>Gaia is currently targetting HBGA (320x240), qHD (540×960) and WVGA (480×800) only; use GAIA_DEV_PIXELS_PER_PX to make sure the images looks sharp on qHD and WVGA devices. see <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag#A_pixel_is_not_a_pixel" title="https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag#A_pixel_is_not_a_pixel">A pixel is not a pixel</a> for more information about device pixels per css pixels.</p> +<h3 id="Script_compression_and_optimization">Script compression and optimization</h3> +<pre>GAIA_OPTIMIZE=1 make</pre> +<p>Concate and optimize build-in app's javascript to improve load time.</p> +<h3 id="Preference_shortcuts">Preference shortcuts</h3> +<pre>NOFTU=1 +</pre> +<p>Disable First time user guide.</p> +<pre>REMOTE_DEBUGGER=1</pre> +<p>Enable debug with adb tool</p> +<pre>DEVICE_DEBUG=1</pre> +<p>While in OS version > 1.2, specify this param when you want debug FirefoxOS webapp with App Manager</p> +<h3 id="Distribution_and_market_customization_build">Distribution and market customization build</h3> +<pre>GAIA_DISTRIBUTION_DIR=./dir</pre> +<p>Read <a href="https://wiki.mozilla.org/B2G/MarketCustomizations" title="https://wiki.mozilla.org/B2G/MarketCustomizations">Customization Overview</a> for detail.</p> +<h2 id="Contacting_the_Team">Contacting the Team</h2> +<ul> + <li><a href="https://lists.mozilla.org/listinfo/dev-gaia" rel="nofollow">Gaia Mailing List</a></li> + <li>#gaia IRC channel on irc.mozilla.org</li> +</ul> diff --git a/files/ca/archive/b2g_os/platform/gaia/index.html b/files/ca/archive/b2g_os/platform/gaia/index.html new file mode 100644 index 0000000000..9fcfc619f0 --- /dev/null +++ b/files/ca/archive/b2g_os/platform/gaia/index.html @@ -0,0 +1,75 @@ +--- +title: Gaia +slug: Archive/B2G_OS/Platform/Gaia +tags: + - B2G + - Gaia + - Mobile + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS/Platform/Gaia +--- +<p>Gaia is the user interface level of <a href="/en-US/docs/Mozilla/Firefox_OS" title="Mozilla/Firefox_OS">Firefox OS</a>. Everything that appears on the screen after Firefox OS starts up is drawn by Gaia, including the lock screen, home screen, dialer, and other applications. Gaia is written entirely in <a href="/en-US/docs/en-US/HTML" title="HTML">HTML</a>, <a href="/en-US/docs/CSS" title="CSS">CSS</a>, and <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>. Its only interface to the underlying operating system and hardware is through standard Web APIs, which are implemented by <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a>.</p> +<p>Because of this design, Gaia can not only be run on Firefox OS devices, but on other operating systems and in other web browsers (albeit with potentially degraded functionality depending on the capabilities of the browser).</p> +<p>Third party applications onto the device installed alongside Gaia can be launched by Gaia.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Documentation about Gaia</h2> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia" title="Mozilla/Boot_to_Gecko/Introduction to Gaia">Introduction to Gaia</a></dt> + <dd> + Gaia is the user interface application for Firefox OS devices; it's simply a Web application running atop the Firefox OS software stack. This guide introduces Gaia at a high level.</dd> + <dt> + <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps</a></dt> + <dd> + Information on each of the default apps available in the Gaia family, including tips on how to use them, and how to modify them.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking" title="Mozilla/Boot_to_Gecko/Gaia hacking guide">Gaia hacking guide</a></dt> + <dd> + A guide to hacking and modifying the Gaia interface.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer">Gaia Build System Primer</a></dt> + <dd> + Most of the meaningful work for the build steps are performed by the scripts that live inside the build/ subdirectory of Gaia.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking_Tips_And_FAQ" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking_Tips_And_FAQ">Gaia Hacking Tips And FAQ</a></dt> + <dd> + A list of helpful tips and frequently asked questions around hacking on Gaia.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Gaia" title="tag/B2G">View All...</a></span></p> + </td> + <td> + <h2 class="Community" id="Community" name="Community">Getting help from the community</h2> + <p>If you're working with Gaia, or developing Gaia applications, there are community resources to help you!</p> + <ul> + <li>Consult the Boot to Gecko project forum: {{ DiscussionList("dev-gaia", "mozilla.dev.gaia") }}</li> + </ul> + <ul> + <li>Ask your question on Mozilla's Gaia IRC channel: <a href="irc://irc.mozilla.org/gaia" title="irc://irc.mozilla.org/gaia">#gaia</a></li> + </ul> + <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p> + <br> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related topics</h2> + <ul> + <li><a href="/en-US/docs/Mobile" title="Mobile">Mobile</a></li> + <li><a href="/en-US/docs/Web" title="/en-US/docs/Web">Web Technology for developer</a> + <ul> + <li><a href="/en-US/docs/HTML" title="HTML">HTML</a></li> + <li><a href="/en-US/docs/CSS" title="CSS">CSS</a></li> + <li><a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a></li> + </ul> + </li> + <li><a href="/en-US/docs/WebAPI" title="/en-US/docs/WebAPI">WebAPI</a></li> + </ul> + <h2 class="Tools" id="Resources" name="Resources">Resources</h2> + <ul> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Architecture" title="Mozilla/Firefox_OS/Architecture">Firefox OS architecture overview</a></li> + </ul> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/ca/archive/b2g_os/platform/index.html b/files/ca/archive/b2g_os/platform/index.html new file mode 100644 index 0000000000..5708ef1ee5 --- /dev/null +++ b/files/ca/archive/b2g_os/platform/index.html @@ -0,0 +1,82 @@ +--- +title: The Firefox OS platform +slug: Archive/B2G_OS/Platform +tags: + - B2G + - Firefox OS + - Landing + - NeedsTranslation + - TopicStub +translation_of: Archive/B2G_OS/Platform +--- +<p>The Firefox OS platform consists of many components. While you don't need to understand its architecture in order to build applications that run on Firefox OS, if you're working on developing or porting the platform—or are simply curious—the following documentation may be of interest to you.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="Documentation" name="Documentation">Documentation about the Firefox OS platform</h2> + <dl> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></dt> + <dd> + Documentation about Gaia, the user interface application for Firefox OS devices; this is a Web application running atop the Firefox OS software stack.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></dt> + <dd> + Documentation about Gonk, the operating system layer underneath Gaia. This consists of a Linux kernel and a hardware abstraction layer to which Gecko communicates.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a></dt> + <dd> + Gecko is the layer of Firefox OS that provides the same open web standards implementation used by Firefox and Thunderbird, as well as many other applications.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Security" title="/en-US/docs/Mozilla/Firefox_OS/Security"> Security</a></dt> + <dd> + Documentation about security in Firefox OS; this includes topics about security devices from every perspective: for app developers, device integrators, and so forth.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart">Feature support chart</a></dt> + <dd> + A chart of which features are available in which types of Firefox OS builds.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture">Firefox OS architecture overview</a></dt> + <dd> + An overview of how Firefox OS is structured internally; this is primarily of interest to platform developers and people doing porting work.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture">Firefox OS apps architecture</a></dt> + <dd> + An overview of the application model on Firefox OS.</dd> + <dt> + <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list">Firefox OS settings list</a></dt> + <dd> + A list of common setting names that can be used with the <a href="/en-US/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings</a> API.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">View All...</a></span></p> + </td> + <td> + <h2 class="Community" id="Community" name="Community">Getting help from the community</h2> + <p>If you're working with Firefox OS, or developing applications you'd like to run on Firefox OS devices, there are community resources to help you!</p> + <ul> + <li>Consult the Boot to Gecko project forum: {{ DiscussionList("dev-b2g", "mozilla.dev.b2g") }}</li> + </ul> + <ul> + <li>Ask your question on Mozilla's Boot to Gecko IRC channel: <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a></li> + </ul> + <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p> + <br> + <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related topics</h2> + <ul> + <li><a href="/en-US/docs/Mobile" title="en-US/docs/Mobile">Mobile</a></li> + <li><a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a></li> + <li><a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a></li> + <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a></li> + </ul> + <h2 class="Tools" id="Resources">Resources</h2> + <ul> + <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li> + <li><a class="link-https" href="https://wiki.mozilla.org/B2G/Schedule_Roadmap" title="https://wiki.mozilla.org/B2G/Schedule_Roadmap">Roadmap</a></li> + <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature support chart</a></li> + </ul> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/ca/archive/b2g_os/using_the_b2g_emulators/index.html b/files/ca/archive/b2g_os/using_the_b2g_emulators/index.html new file mode 100644 index 0000000000..412c1d6236 --- /dev/null +++ b/files/ca/archive/b2g_os/using_the_b2g_emulators/index.html @@ -0,0 +1,75 @@ +--- +title: Ús de l'emulador B2G +slug: Archive/B2G_OS/Using_the_B2G_emulators +translation_of: Archive/B2G_OS/Using_the_B2G_emulators +--- +<p><span id="result_box" lang="ca"><span class="hps">Aquest</span> <span class="hps">article</span> <span class="hps">proporciona una</span> <span class="hps">guia</span> abreujada <span class="hps atn">d'</span><span>alguns</span> <span class="hps">punts</span> <span class="hps">clau que</span> <span class="hps">has</span><span class="hps"> de saber</span> <span class="hps">quan</span> <span class="hps">s'utilitza</span> <span class="hps">l'arrencada</span> <span class="hps">per</span> <span class="hps">emular Gecko</span><span>.</span> <span class="hps">Això no</span> <span class="hps">pretén ser un</span> <span class="hps">manual d'usuari</span><span>,</span> <span class="hps">sinó</span> <span class="hps">que simplement</span> <span class="hps">et</span> <span class="hps">dirà</span> <span class="hps">algunes</span> <span class="hps">coses</span> <span class="hps">útils</span> <span class="hps">que</span> <span class="hps">no</span> <span class="hps">pot</span>s <span class="hps">aprendre</span> <span class="hps">pel teu</span> <span class="hps">compte</span><span>.</span><br> + <br> + <span class="hps">Aquesta</span> <span class="hps">guia</span> <span class="hps">assumeix</span> <span class="hps">que</span> <span class="hps">ja ha</span>s <span class="hps">construït</span> <span class="hps">un dels</span> <span class="hps">emuladors</span><span>,</span> <span class="hps">i</span> <span class="hps">si</span> <span class="hps">no</span> <span class="hps">és</span> <span class="hps">així</span><span>,</span> <span class="hps">retornar a </span></span> <a href="/en/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">Construint i instal·lant l'arrencada amb Gecko</a>!</p> +<h2 id="Sobre_els_emulators_B2G">Sobre els emulators B2G</h2> +<p><span id="result_box" lang="ca"><span class="hps">Hi ha dos</span> <span class="hps">emuladors</span> <span class="hps">B2G</span><span> (Built to Gecko).</span> <span class="hps">El primer</span><span>,</span> <span class="hps">construït</span> <span class="hps">mitjançant</span> <span class="hps">la configuració de</span> <span class="hps atn">"</span><span>emulador</span> <span class="hps">x86</span><span>"</span> <span class="hps">quan</span> <span class="hps">s'executa</span> <span class="hps">config.sh</span><span>,</span> <span class="hps">és</span> <span class="hps">un emulador</span> <span class="hps">de dispositius</span> <span class="hps">x86</span><span>.</span> <span class="hps">Si</span> <span class="hps">bé</span> <span class="hps">això és</span> <span class="hps">molt</span> <span class="hps">més</span> <span class="hps">ràpid que</span> <span class="hps">emula</span>r <span class="hps">el processador</span> <span class="hps">ARM</span><span>,</span> <span class="hps">no</span> <span class="hps">és</span> <span class="hps">tan precis</span> <span class="hps">una representació</span> <span class="hps">de com funcionarà en un</span> <span class="hps">dispositiu</span> <span class="hps">real</span><span>.</span> <span class="hps">Configuri l'</span> <span class="hps atn">"</span><span>emulador</span><span>"</span> <span class="hps">quan</span> <span class="hps">s'executa</span> <span class="hps">config.sh</span> <span class="hps">per mostra</span>r <span class="hps">l'emulador</span> <span class="hps">de dispositius</span> <span class="hps">ARM</span><span>.</span></span></p> +<div class="note"> + <strong>Nota:</strong> <span id="result_box" lang="ca"><span class="hps">En</span> <span class="hps">els</span> <span class="hps">últims</span> <span class="hps">mesos</span> <span class="hps">l'equip</span> <span class="hps">d'automatització</span> <span class="hps">ha</span> <span class="hps">deixat</span> <span class="hps">d'usar</span> <span class="hps">l'emulador</span> <span class="hps">x86</span> per <span class="hps">causes de</span> <span class="hps">problemes</span> <span class="hps">d'estabilitat</span><span>.</span> <span class="hps">Per</span> <span class="hps">tant</span><span>,</span> <span class="hps">hi ha una</span> <span class="hps">bona</span> <span class="hps">possibilitat que</span> <span class="hps">les</span> <span class="hps">coses</span> <span class="hps">podrien no</span><span class="hps"> funcionar</span> <span class="hps">en absolut en</span> <span class="hps">un emulador</span> <span class="hps">x86</span><span>.</span> <span class="hps">Utilitzeu</span> <span class="hps">l'emulador</span> <span class="hps">ARM</span> <span class="hps">si no</span> <span class="hps">teniu molt bones raons</span> <span class="hps">per</span> <span class="hps">fer el</span> <span class="hps">contrari</span></span>.</div> +<p><span id="result_box" lang="ca"><span class="hps">Quan hagueu</span> <span class="hps">seleccionat</span><span>,</span> <span class="hps">configurat</span> <span class="hps">i</span> <span class="hps">construït un</span> <span class="hps">emulador</span><span>,</span> <span class="hps">la resta</span> <span class="hps">funciona de la</span> <span class="hps">mateixa</span> <span class="hps">manera</span> <span class="hps">des del</span> <span class="hps">punt de</span> <span class="hps">vista de l'usuari</span><span>,</span> <span class="hps">de manera que</span> <span class="hps">la resta</span> <span class="hps">d'aquesta</span> <span class="hps">guia</span> <span class="hps">és</span> <span class="hps">comuna a</span> <span class="hps">tots dos</span><span>.</span></span></p> +<div class="note"> + <strong>Nota:</strong> <span id="result_box" lang="ca"><span class="hps">En</span> <span class="hps">Mac</span> <span class="hps">OS</span> <span class="hps">X</span><span>,</span> <span class="hps">l'emulador</span> <span class="hps">B2G</span> <span class="hps">requereix un</span> <span class="hps">processador</span> <span class="hps">Core</span> <span class="hps">2 Duo</span> <span class="hps">o</span> <span class="hps">superior</span><span>,</span> <span class="hps">és a dir</span><span>,</span> <span class="hps">un sistema</span> <span class="hps">que</span> <span class="hps">sigui</span> <span class="hps">compatible</span> <span class="hps">amb</span> <span class="hps">Mac</span> <span class="hps">OS</span> <span class="hps">X</span> <span class="hps">10.7</span> <span class="hps atn">"</span><span>Lion</span><span>"</span><span>.</span> <span class="hps">En</span> <span class="hps">realitat</span> <span class="hps">no ha d'estar</span> <span class="hps atn">executant </span><span>Lion</span><span>,</span> <span class="hps">només</span> <span class="hps">ha de ser</span> <span class="hps">compatible</span> <span class="hps">amb</span> <span class="hps">ell</span></span>.</div> +<h2 id="Iniciant_lemulador">Iniciant l'emulador</h2> +<p><span id="result_box" lang="ca"><span class="hps">Per iniciar</span> <span class="hps">l'emulador</span> <span class="hps">B2G</span><span>,</span> <span class="hps">escriviu el següent ordre</span></span>:</p> +<pre>./run-emulator.sh +</pre> +<p><span id="result_box" lang="ca"><span class="hps">Aquest</span> <span class="hps">s'encarregarà</span> <span class="hps">de</span> <span class="hps">totes</span> <span class="hps">les</span> <span class="hps">tasques</span> <span class="hps">d'inici</span> <span class="hps">de l'emulador per a tu</span><span>.</span> <span class="hps">Ara</span> <span class="hps">a esperar</span> <span class="hps">pacientment que</span> <span class="hps">l'emulador</span> <span class="hps">s'inicii</span> <span class="hps">i</span> <span class="hps">arrenqui</span> <span class="hps">Gecko</span><span>.</span> <span class="hps">Es</span> <span class="hps">pot</span> <span class="hps">prendre un</span> <span class="hps">parell</span> <span class="hps">de minuts</span><span>,</span> <span class="hps">així</span> <span class="hps">que</span> <span class="hps">sigui</span> <span class="hps">pacient</span><span>.</span></span></p> +<h2 id="Quan_lemulador_no_funciona">Quan l'emulador no funciona</h2> +<p><span id="result_box" lang="ca"><span class="hps">De vegades</span><span>,</span> <span class="hps">l'emulador</span> <span class="hps">no s'inicia</span><span>.</span> <span class="hps">Benvingut</span> <span class="hps">a la vora sagnant</span> <span class="hps">de la tecnologia</span><span>!</span> <span class="hps">Aquests</span> <span class="hps">són</span> <span class="hps">alguns</span> <span class="hps">consells</span> <span class="hps">per a la</span> <span class="hps">resolució</span> <span class="hps">de problemes</span></span>.</p> +<h3 id="Assegureu-vos_que_el_servidor_adb_sestà_executant"><span class="short_text" id="result_box" lang="ca"><span class="hps">Assegureu-vos que</span> <span class="hps">el servidor</span> <span class="hps">adb s'està</span> <span class="hps">executant</span></span></h3> +<p><span id="result_box" lang="ca"><span class="hps">Això</span> <span class="hps">sol succeir</span> <span class="hps">perquè</span> <span class="hps">el servidor</span> <span class="hps">adb</span> <span class="hps">que s'encarrega</span> <span class="hps">d'interactuar</span> <span class="hps">amb</span> <span class="hps">el dispositiu</span> <span class="hps">emulat</span> <span class="hps">no</span> <span class="hps">està</span> <span class="hps">funcionant</span> <span class="hps">bé</span> <span class="hps">o</span> <span class="hps">funciona malament</span><span>.</span></span></p> +<div class="note"> + <p><strong>Nota:</strong> <span id="result_box" lang="ca"><span class="hps">Si</span> <span class="hps"> estàs</span> <span class="hps">utilitzant el</span> <span class="hps">adb</span> <span class="hps">construït</span> <span class="hps">pel sistema</span> <span class="hps">de construcció</span> <span class="hps">B2G</span> <span class="hps atn">(</span><span>que</span> <span class="hps">probablement</span> <span class="hps">és</span><span>)</span><span>,</span> <span class="hps">és que</span> <span class="hps">està al directoti </span></span><code>$B2G/out/host/<platform>/bin</code><span id="result_box" lang="ca"><span>.</span> <span class="hps">En</span> <span class="hps">Mac</span><span>,</span> <span class="hps">és a </span></span><code>$B2G/out/host/darwin-x86/bin</code><span id="result_box" lang="ca"><span>,</span> <span class="hps">per</span> <span class="hps">exemple</span><span>.</span></span></p> +</div> +<p>Mira a veure si <code>adb</code> el feu treballar mentre s'executa:</p> +<pre>ps aux | grep adb +</pre> +<p><span id="result_box" lang="ca"><span class="hps">Si</span> <span class="hps">ho fa</span><span>, fes</span> <span class="hps">el següent</span> <span class="hps">per</span> <span class="hps">eliminar-lo,</span> <span class="hps">perquè</span> <span class="hps">és</span> <span class="hps">probable</span> <span class="hps">que</span> <span class="hps">no</span> <span class="hps">funcioni</span> <span class="hps">correctament</span></span>.</p> +<pre>adb kill-server +</pre> +<p>Si no ho fa, fes això:</p> +<pre>adb start-server +</pre> +<p><span id="result_box" lang="ca"><span class="hps">A</span> <span class="hps">continuació</span><span>,</span> <span class="hps">prova d'executar</span> <span class="hps">l'emulador de</span> <span class="hps">nou</span><span>.</span> <span class="hps">Si</span> <span class="hps">encara no</span> <span class="hps">funciona</span><span>,</span> <span class="hps">és hora</span> <span class="hps">de visitar</span>l'</span><span id="result_box" lang="ca"><span class="hps">ajuda</span></span><span id="result_box" lang="ca"> <a href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g"><span class="hps">#</span> <span class="hps">b2g</span></a> <span class="hps">a</span> <span class="hps">irc.mozilla.org</span></span></p> +<h3 id="Esborra_els_valors_de_configuració"><span class="short_text" id="result_box" lang="ca"><span class="hps">Esborra</span> <span class="hps">els</span> <span class="hps">valors</span> <span class="hps">de configuració</span></span></h3> +<p><span id="result_box" lang="ca"><span class="hps">De vegades</span><span>,</span> <span class="hps">les no actualitzacions</span> <span class="hps">de configuració</span> <span class="hps">del</span> <span class="hps">dispositiu</span> <span class="hps">emulat</span> <span class="hps">pot</span> <span class="hps">fer que</span> <span class="hps">es</span> <span class="hps">comportin malament</span><span>.</span> <span class="hps">Pots</span> <span class="hps">eliminar la</span> <span class="hps">base</span> <span class="hps">de dades</span> <span class="hps">IndexedDB</span> <span class="hps">per fixar-ho, per fer això</span> <span class="hps">és de la següent manera</span><span>:</span><br> + <br> + <span class="hps">Assegura't que</span> <span class="hps">adb</span> <span class="hps">està en</span> <span class="hps">marxa</span><span>,</span> <span class="hps">tal com</span> <span class="hps">es</span> <span class="hps">descriu</span> <span class="hps">en</span> <span class="hps atn">{</span><span class="atn">{</span><span>anch</span> <span class="hps atn">(</span><span class="hps atn">"</span><span>Comproveu que el</span> <span class="hps">servidor</span> adb <span class="hps">s'està</span> <span class="hps">executant</span><span>"</span><span>)</span><span>}</span><span>}</span><span>.</span><br> + <span class="hps">Inicieu</span> <span class="hps">l'emulador</span><span>.</span><br> + <span class="hps">al terminal</span> <span class="hps">de l'amfitrió</span><span>,</span> <span class="hps">aneu al directori</span> <span class="hps">arrel</span> <span class="hps">de construcció</span> <span class="hps">de codi</span> <span class="hps">per</span> <span class="hps">l'emulador</span><span>,</span> <span class="hps">a continuació</span><span>,</span> <span class="hps">escriviu</span><span>:</span> </span><code>out/host/<platform>/bin/adb -e shell</code><span id="result_box" lang="ca"><span>,</span> <span class="hps">pel</span> <span class="hps">Mac</span><span>,</span> <span class="hps">aquest</span> <span class="hps">seria</span> </span><br> + <code>out/host/darwin-x86/bin/adb -e shell</code>.</p> +<p><span id="result_box" lang="ca"> <span class="hps">Ara</span> <span class="hps">ets al</span> <span class="hps">terminal</span> <span class="hps">adb</span><span>,</span> <span class="hps">i</span> <span class="hps">pot</span>s <span class="hps">executar</span> <span class="hps">comandaments </span><span class="hps">del dispositiu</span> <span class="hps">emulat</span><span>.</span> <span class="hps">Anem</span> <span class="hps">a aturar el</span> <span class="hps">B2G</span> <span class="hps">al</span> <span class="hps">dispositiu</span><span>:</span> </span><code>stop b2g</code><br> + <span id="result_box" lang="ca"> <span class="hps">Elimina la</span> <span class="hps">base</span> <span class="hps">de dades</span> <span class="hps">IndexedDB</span><span>:</span> </span><code>rm -rf /data/local/indexedDB</code>.<span id="result_box" lang="ca"><span>.</span><br> + <span class="hps">Reinicieu</span> <span class="hps">B2G</span> <span class="hps">al</span> <span class="hps">dispositiu</span> <span class="hps">emulat</span><span>:</span> </span><code>start b2g</code>.</p> +<p><br> + <span lang="ca"><span class="hps">Esperem</span> <span class="hps">que en aquest</span> <span class="hps">punt</span> <span class="hps">siguis</span><span class="hps"> a la</span> <span class="hps">interfície</span> <span class="hps">de Gaia</span> <span class="hps">i</span> <span class="hps">tot vagi</span> <span class="hps">bé</span><span>.</span></span></p> +<h2 id="Configurant_lemulador">Configurant l'emulador</h2> +<p><span id="result_box" lang="ca"><span class="hps">Hi ha diverses</span> <span class="hps">opcions que</span> <span class="hps">es</span> <span class="hps">poden</span> <span class="hps">canviar</span> <span class="hps">per ajustar</span> <span class="hps">l'emulador</span> <span class="hps">per ser</span> <span class="hps">més</span> <span class="hps">similar al</span> <span class="hps">dispositiu que</span> <span class="hps">voleu</span> <span class="hps">emular</span><span>.</span> <span class="hps">Aquesta</span> <span class="hps">secció</span> <span class="hps">proporciona informació</span> <span class="hps">bàsica</span> <span class="hps">sobre com</span> <span class="hps">fer això</span><span>.</span> <span class="hps">Podeu ajustar</span> <span class="hps">la configuració</span> <span class="hps">de l'emulador</span> <span class="hps">editant</span> <span class="hps">l'script</span> </span><code>run-emulator.sh</code><span id="result_box" lang="ca"> <span class="hps atn">(</span><span>o</span><span>,</span> <span class="hps">ideal</span><span>,</span> <span class="hps">fent una còpia</span> <span class="hps">de la mateixa)</span><span>.</span> <span class="hps">Només</span> <span class="hps">alguns</span> <span class="hps">dels</span> <span class="hps">paràmetres</span> <span class="hps">més</span> <span class="hps">útils</span> <span class="hps">són</span> <span class="hps">discutits</span> <span class="hps">aquí</span><span>,</span> <span class="hps">hauràs de buscar</span> <span class="hps">en el<a href="http://www.qemu.org/" title="http://www.qemu.org/"> lloc</a></span><a href="http://www.qemu.org/" title="http://www.qemu.org/"> <span class="hps">de</span> <span class="hps">qemu</span></a> <span class="hps">per</span> <span class="hps">obtenir</span> <span class="hps">detalls</span> <span class="hps">sobre</span> <span class="hps">la resta</span><span>.</span></span></p> +<div class="note"> + <strong>Apunt:</strong> <span id="result_box" lang="ca"><span class="hps">Crear una</span> <span class="hps">còpia</span> </span><code>run-emulator.sh</code><span id="result_box" lang="ca"> <span class="hps">per a cada</span> <span class="hps">dispositiu que voleu</span> <span class="hps">simular</span><span>, el que</span> <span class="hps">fa</span>rà <span class="hps">que</span> <span class="hps">sigui</span> <span class="hps">fàcil</span> <span class="hps">de posar en</span> <span class="hps">marxa</span> <span class="hps">amb</span> <span class="hps">diferents</span> <span class="hps">configuracions</span></span>.</div> +<h3 id="Canviant_skins">Canviant skins</h3> +<p><br> + <span id="result_box" lang="ca"><span class="hps">Per defecte</span><span>,</span> <span class="hps">l'emulador</span> <span class="hps">s'inicia</span> <span class="hps">en mode</span> <span class="hps">HVGA</span><span>,</span> <span class="hps">això</span> <span class="hps">és mig</span><span class="atn">-</span><span>VGA</span><span>,</span> <span class="hps">o 320x480</span> <span class="hps">píxels</span><span>.</span> <span class="hps">Això</span> <span class="hps">s'especifica</span> <span class="hps">amb el </span><span>paràmetre</span> </span><code>-skin </code><span id="result_box" lang="ca"><span class="hps">donat</span> <span class="hps">per</span> <span class="hps">l'emulador</span> <span class="hps">quan</span> <span class="hps">s'arrenca</span><span>.</span> P<span class="hps">ots</span> <span class="hps">canviar</span> <span class="hps">a una </span><span class="hps">visualització</span> <span class="hps">diferent</span> <span class="hps">en editar</span> <span class="hps">l'script</span> </span><code>run-emulator.sh</code><span id="result_box" lang="ca"> <span class="hps atn">(</span><span>o</span><span>,</span> <span class="hps">ideal</span><span>,</span> <span class="hps">fent una còpia</span> <span class="hps">de la mateixa)</span><span>.</span> <span class="hps">Els skins</span> <span class="hps">són</span><span>:</span></span></p> +<ul> + <li>HVGA (320x480)</li> + <li>QVGA (240x320)</li> + <li>WQVGA (240x400)</li> + <li>WQVGA432 (240x432)</li> + <li>WSVGA (1024x600)</li> + <li>WVGA800 (480x800)</li> + <li>WVGA854 (480x854)</li> + <li>WXGA720 (1280x720)</li> + <li>WXGA800 (1280x800)</li> +</ul> +<p><span id="result_box" lang="ca"><span class="hps">Els</span> <span class="hps">aspectes</span> <span class="hps">es</span> <span class="hps">troben</span> <span class="hps">al directori</span> </span><code>B2G/development/tools/emulator/skins</code><span id="result_box" lang="ca"><span>.</span> <span class="hps">Val la</span> <span class="hps">pena</span> <span class="hps">assenyalar que</span> <span class="hps">el format</span> <span class="hps">dels skins</span> <span class="hps">és</span> <span class="hps">molt simple</span><span>,</span> <span class="hps">si</span> <span class="hps">ens</span> <span class="hps">fixem</span> <span class="hps">en ells</span><span>,</span> <span class="hps">són</span> <span class="hps">simplement</span> <span class="hps">carpetes</span> <span class="hps">plenes</span> <span class="hps">d'arxius</span> <span class="hps">PNG</span> <span class="hps">per als diversos</span> <span class="hps">objectes de la</span> <span class="hps">interfície</span> <span class="hps">d'usuari</span> <span class="hps">i</span> <span class="hps">un arxiu</span> <span class="hps">de text</span> <span class="hps">anomenat</span> </span><code>layout</code><span id="result_box" lang="ca"><span class="hps"> que</span> <span class="hps">descriu</span> <span class="hps">el disseny de la</span> <span class="hps">interfície</span> <span class="hps">i</span> <span class="hps">l'àrea de la</span> <span class="hps">pantalla</span><span>.</span> <span class="hps">És</span> <span class="hps">bastant simple</span> <span class="hps">de crear</span> <span class="hps">skins</span> <span class="hps">personalitzats</span> <span class="hps">si cal</span><span>.</span></span></p> +<h3 id="Canviant_la_capacitat_de_la_memoria">Canviant la capacitat de la memoria</h3> +<p><span id="result_box" lang="ca"><span class="hps">Una altra</span> <span class="hps">opció</span> <span class="hps">que potser desitgis o</span> <span class="hps">necessiti</span>s <span class="hps">és configurar</span> <span class="hps">el tamany</span> <span class="hps">de la memòria del</span> <span class="hps">dispositiu</span><span>.</span> <span class="hps">El valor</span> <span class="hps">per</span> <span class="hps">defecte</span> <span class="hps">és</span> <span class="hps">de 512</span> <span class="hps">MB</span><span>, però,</span> <span class="hps">si</span> <span class="hps">el</span> <span class="hps">dispositiu que</span> <span class="hps">està</span> <span class="hps">emulant</span> <span class="hps">té </span></span><span id="result_box" lang="ca"><span class="hps">més</span> <span class="hps">o menys</span></span><span id="result_box" lang="ca"> <span class="hps">memòria</span> <span>,</span> <span class="hps">és</span> <span class="hps">important</span> <span class="hps">que ho</span> <span class="hps">ajustis</span><span> a</span> mida<span>,</span> <span class="hps">per garantir</span> <span class="hps">que la teva aplicació</span> <span class="hps">s'executarà en el</span> <span class="hps">dispositiu</span> <span class="hps">d'inici on </span><span class="hps">desitjis</span> <span class="hps">treballar</span><span>.</span> <span class="hps">Per</span> <span class="hps">fer això</span><span>, canvia el</span> <span class="hps">valor</span> <span class="hps">del</span><span class="hps"> paràmetre </span></span><code>-memory </code><span id="result_box" lang="ca"> <span class="hps">per a la mida</span> <span class="hps">que necessites</span> <span class="hps">en megabytes</span><span>.</span> <span class="hps">Altres</span> <span class="hps">de</span> <span class="hps">la predeterminada</span> <span class="hps">de 512</span> <span class="hps">MB</span><span>, com son la de 256</span> <span class="hps">MB</span> <span class="hps">i 1024</span> <span class="hps">MB</span> <span class="hps">les capacitats </span> <span class="hps">probables</span> <span class="hps">que </span><span class="hps">voldràs</span> <span class="hps">provar</span><span>.</span><br> + <br> + <span class="hps">Per canviar</span> <span class="hps">la quantitat</span> <span class="hps">de capacitat</span> <span class="hps">d'emmagatzematge</span> <span class="hps">emulada</span> <span class="hps">per al</span> <span class="hps">dispositiu</span> <span class="hps atn">(</span><span>és a dir</span><span>,</span> <span class="hps">l'espai d'emmagatzematge</span> <span class="hps">per a les dades</span> <span class="hps">locals</span><span>,</span> <span class="hps">com</span> <span class="hps">l'emmagatzematge</span> <span class="hps">flaix</span> <span class="hps">en un telèfon</span> <span class="hps">mòbil</span> <span class="hps">o</span> <span class="hps">el disc</span> <span class="hps">dur</span> <span class="hps">d'un</span> <span class="hps">ordinador</span><span>)</span><span>, canvieu el</span> <span class="hps">valor</span> <span class="hps">del</span> <span class="hps">paràmetre</span><span> </span></span><code>-partition-size</code><span id="result_box" lang="ca"><span>.</span> <span class="hps">El valor</span> <span class="hps">per</span> <span class="hps">defecte</span> <span class="hps">és</span> <span class="hps">de 512</span> <span class="hps">MB</span><span>,</span> <span class="hps">però pot</span>s <span class="hps">especificar</span> <span class="hps">qualsevol</span> <span class="hps">mida</span> <span class="hps">en MB</span> <span class="hps">per tal</span> <span class="hps">de simular</span> <span class="hps">el tipus</span> <span class="hps">de dispositiu</span> <span class="hps">que necessites</span> <span class="hps">provar</span></span></p> +<h3 id="Connectivitat_de_la_xarxa">Connectivitat de la xarxa</h3> +<p><span id="result_box" lang="ca"><span class="hps">Si</span> <span class="hps">per</span> <span class="hps">alguna raó</span> <span class="hps">no</span> <span class="hps">pot</span>s <span class="hps">connectar</span> <span class="hps">l'emulador</span> <span class="hps">a Internet pots</span> <span class="hps">executar</span> l'ordre <span class="hps">següent</span> <span class="hps">des de la teva</span> <span class="hps">línia</span> <span class="hps">de comandament</span><span>:</span></span></p> +<pre>adb shell setprop net.dns1 10.0.2.3</pre> diff --git a/files/ca/archive/estàndards_web/index.html b/files/ca/archive/estàndards_web/index.html new file mode 100644 index 0000000000..f8c413f55c --- /dev/null +++ b/files/ca/archive/estàndards_web/index.html @@ -0,0 +1,48 @@ +--- +title: Estàndards web +slug: Archive/Estàndards_web +tags: + - Estàndards_web +translation_of: Archive/Web_Standards +--- +<p> +</p> +<div>Els <b>estàndards web</b> estan dissenyats amb la idea de poder oferir el major nombre beneficis al major nombre d'usuaris, i al mateix temps, garantir la major viabilitat possible per als documents que es publiquen a la Web. Acostumar-se a utilitzar aquests estàndards, simplifica i redueix els costs de producció, i al mateix temps, es proporciona llocs que són accessibles a més gent i també més tipus de dispositius d'Internet. Aquells llocs que segueixen aquestes indicacions, continuaran funicionant correctament paral·lalelament a l'evolució dels navegadors d'escriptori, com també a mesura que altres dispositius d'Internet arribin al mercat. {{ Ref(1) }}</div> +<table class="topicpage-table"> +<tbody><tr><td> +<h4 id="Documentaci.C3.B3" name="Documentaci.C3.B3"> <a>Documentació</a> </h4> +<dl><dt> <a class="external" href="http://www.mozilla.org/docs/web-developer/upgrade_2.html">Fer servir els estàndards web a les vostres pàgines web (en anglès)</a> +</dt><dd> <small>Aquest article explica com actualitzar el contingut de les vostres pàgines web per tal que siguin compatibles amb els estàndards web del W3C.</small> +</dd><dt> <a class="external" href="http://www.neuroticweb.com/benefits/ca/Els%20beneficis%20dels%20Estandards%20Web">Els beneficis dels Estàndards Web pels teus visitants, pels teus clients i per tu!</a> +</dt></dl> +<dl><dt><a class="external" href="http://www.softcatala.org/articles/article11.htm">Els estàndards oberts garanteixen la llibertat a escollir</a> +</dt></dl> +<p><span class="alllinks"><a>Vegeu-ho tot...</a></span> +</p> +</td> +<td> +<h4 id="Comunitat" name="Comunitat"> Comunitat </h4> +<ul><li> Els fòrums de Mozilla... +</li></ul> +<p>{{ DiscussionList("dev-web-development", "mozilla.dev.web-development") }} +</p> +<ul><li> <a class="external" href="http://webstandards.org/">The Web Standards Project</a> +</li><li> <a class="external" href="http://webdevfeedhouse.com/">WebDev FeedHouse</a> +</li></ul> +<h4 id="Eines" name="Eines"> Eines </h4> +<ul><li> <a class="link-https" href="https://addons.mozilla.org/extensions/moreinfo.php?id=60&application=firefox">Extensió Web Developer</a> +</li><li> <a class="external" href="http://validator.w3.org/">Servei de validació del codi web (W3C)</a> +</li><li> <a class="external" href="http://jigsaw.w3.org/css-validator/">Servei de validació dels fulls CSS (W3C)</a> +</li></ul> +<p><span class="alllinks"><a>Vegeu-ho tot...</a></span> +</p> +<h4 id="Temes_relacionats" name="Temes_relacionats"> Temes relacionats </h4> +<dl><dd> <a href="ca/CSS">CSS</a>, <a href="ca/DHTML">DHTML</a>, <a href="ca/HTML">HTML</a>, <a href="ca/Web_Development">Web Development</a>, <a href="ca/XHTML">XHTML</a>, <a href="ca/XML">XML</a> +</dd></dl> +</td></tr></tbody></table> +<hr> +<p><small>{{ Note(1) }} - <a class="external" href="http://webstandards.org/">The Web Standards Project</a></small> +</p><p><span class="comment">Categories</span> +</p><p><span class="comment">Interwiki Language Links</span> +</p><p><br> +</p>{{ languages( { "de": "de/Web-Standards", "en": "en/Web_Standards", "fr": "fr/Standards_du_Web" } ) }} diff --git a/files/ca/archive/index.html b/files/ca/archive/index.html new file mode 100644 index 0000000000..ecede3f417 --- /dev/null +++ b/files/ca/archive/index.html @@ -0,0 +1,20 @@ +--- +title: Archive of obsolete content +slug: Archive +translation_of: Archive +--- +<p>(ca translation)</p> + +<p>Here at MDN, we try to avoid outright deleting content that might be useful to people targeting legacy platforms, operating systems, and browsers. Perhaps your target audience is people that are using older hardware, for example, and can't upgrade to the latest and greatest browsers. Or for "reasons," your company is required to use very old software and you need to build Web content that runs on that software. Or perhaps you're just curious about the history of an obsolete feature or API, and how it worked.</p> + +<p>There are many reasons older documentation can be useful. So, we've established this area into which we can archive older documentation. Material in this Archived content zone should <strong>not</strong> be used for building new Web sites or apps for modern browsers. It's here for historical reference only.</p> + +<div class="note"> +<p><strong>Note to writers:</strong> We need to try to keep the subpages here organized instead of all dumped into one large folder. Try to create subtrees for categories of material. Also, only move pages here that are <strong>extremely</strong> obsolete. If anyone might realistically need the information in a living product, it may not be appropriate to move it here. In general, it may be best to discuss it in the <a href="https://chat.mozilla.org/#/room/#mdn:mozilla.org">MDN Web Docs chat room</a> before moving content here.</p> +</div> + +<p>{{SubpagesWithSummaries}}</p> + +<h2 id="Subnav">Subnav</h2> + +<p>{{ListSubpages("/en-US/docs/Archive", 2, 0, 1)}}</p> diff --git a/files/ca/archive/mozilla/index.html b/files/ca/archive/mozilla/index.html new file mode 100644 index 0000000000..0acec76e6d --- /dev/null +++ b/files/ca/archive/mozilla/index.html @@ -0,0 +1,10 @@ +--- +title: Archived Mozilla and build documentation +slug: Archive/Mozilla +tags: + - NeedsTranslation + - TopicStub +translation_of: Archive/Mozilla +--- +<p>These articles are archived, obsolete documents about Mozilla, Gecko, and the process of building Mozilla projects.</p> +<p>{{SubpagesWithSummaries}}</p> diff --git a/files/ca/archive/mozilla/xul/controls_xul/index.html b/files/ca/archive/mozilla/xul/controls_xul/index.html new file mode 100644 index 0000000000..a192e2288c --- /dev/null +++ b/files/ca/archive/mozilla/xul/controls_xul/index.html @@ -0,0 +1,479 @@ +--- +title: Controls XUL +slug: Archive/Mozilla/XUL/Controls_XUL +translation_of: Archive/Mozilla/XUL/XUL_controls +--- +<p>LA taula següent llista els controls d'interfície d'usuari que proveeix <a class="internal" href="/Ca/XUL" title="ca/XUL">XUL</a>. Consulta el <a class="internal" href="/Ca/XUL_Tutorial" title="ca/XUL Tutorial">Tutorial de XUL</a> per una guia pas a pas de com es fan servir i la <a class="internal" href="/Ca/XUL_Reference" title="ca/XUL Reference">Referència XUL</a> per més informació.</p> +<table class="standard-table"> + <tbody> + <tr> + <td><strong><button></strong> + <p>A button that can be pressed by the user.</p> + <pre> +<button label="Save" accesskey="S"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Adding_Buttons" title="en/XUL_Tutorial/Adding_Buttons">More information about the button element</a>.</li> + <li><a href="/en/XUL/button" title="en/XUL/button">Button Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlsguide-button.gif" class="internal" src="/@api/deki/files/150/=Controlsguide-button.gif"></td> + </tr> + <tr> + <td><strong><button type="menu"></strong> + <p>A button that has a drop down menu attached to it. Pressing the button opens the menu.</p> + <pre> +<button type="menu" label="View"> + <menupopup> + <menuitem label="List"/> + <menuitem label="Details"/> + </menupopup> +</button> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/More_Button_Features#Button_with_menupopup" title="en/XUL_Tutorial/More_Button_Features#Button_with_menupopup">More information about this type of menu button element</a>.</li> + <li><a href="/en/XUL/button" title="en/XUL/button">Button Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlsguide-button-menu.gif" class="internal" src="/@api/deki/files/147/=Controlsguide-button-menu.gif"></td> + </tr> + <tr> + <td><strong><button type="menu-button"></strong> + <p>A button that that has a separate arrow button with a menu attached to it. Unlike with the '<code>menu</code>' type, a separate action may be performed when the main part of the button is pressed.</p> + <pre> +<button type="menu-button" label="New"> + <menupopup> + <menuitem label="New Document"/> + <menuitem label="New Image"/> + </menupopup> +</button> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/More_Button_Features#Button_with_menupopup" title="en/XUL_Tutorial/More_Button_Features#Button_with_menupopup">More information about this type of menu button element</a>.</li> + <li><a href="/en/XUL/button" title="en/XUL/button">Button Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlsguide-button-menu-button.gif" class="internal" src="/@api/deki/files/146/=Controlsguide-button-menu-button.gif"></td> + </tr> + <tr> + <td><strong><checkbox></strong> + <p>A control that may be turned on and off, typically used to create options which may be enabled or disabled.</p> + <pre> +<checkbox label="Show Toolbar Labels" checked="true"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Elements" title="en/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Elements">More information about the checkbox element</a>.</li> + <li><a href="/en/XUL/checkbox" title="en/XUL/checkbox">Checkbox Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlsguide-checkbox.gif" class="internal" src="/@api/deki/files/152/=Controlsguide-checkbox.gif"></td> + </tr> + <tr> + <td><strong><colorpicker></strong> + <p>A control that may be used to select a color.</p> + <pre> +<colorpicker color="#FF0000"/> +</pre> + <ul> + <li><a href="/en/XUL/colorpicker" title="en/XUL/colorpicker">Colorpicker Reference</a></li> + </ul> + </td> + <td><span class="comment">Image:Controlsguide-colorpicker.png</span></td> + </tr> + <tr> + <td><strong><colorpicker type="button"></strong> + <p>A specialized type of color picker which shows only a button but when pressed, a popup will be displayed to select a color from.</p> + <pre> +<colorpicker type="button" color="#CC0080"/> +</pre> + <ul> + <li><a href="/en/XUL/colorpicker" title="en/XUL/colorpicker">Colorpicker Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlsguide-colorpicker-button.png" class="internal" src="/@api/deki/files/154/=Controlsguide-colorpicker-button.png"></td> + </tr> + <tr> + <td><strong><datepicker></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A set of textboxes which may be used to allow the entry of a date.</p> + <pre> +<datepicker value="2007/03/26"/> +</pre> + <ul> + <li><a href="/en/XUL/datepicker" title="en/XUL/datepicker">Datepicker Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlsguide-datepicker.gif" class="internal" src="/@api/deki/files/157/=Controlsguide-datepicker.gif"></td> + </tr> + <tr> + <td><strong><datepicker type="grid"></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A datepicker which displays a calendar grid for selecting a date.</p> + <pre> +<datepicker type="grid" value="2007/02/20"/> +</pre> + <ul> + <li><a href="/en/XUL/datepicker" title="en/XUL/datepicker">Datepicker Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlsguide-datepicker-grid.png" class="internal" src="/@api/deki/files/156/=Controlsguide-datepicker-grid.png"></td> + </tr> + <tr> + <td><strong><datepicker type="popup" ></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A datepicker which displays a set of textboxes for date entry, but also has a button for displaying a popup calendar grid.</p> + <pre> +<datepicker type="popup" value="2008/08/24"/> +</pre> + <ul> + <li><a href="/en/XUL/datepicker" title="en/XUL/datepicker">Datepicker Reference</a></li> + </ul> + </td> + <td> </td> + </tr> + <tr> + <td><strong><description></strong> + <p>The description element is used for descriptive text.</p> + <pre> +<description> + Select a time for the event to start +</description> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#Description_Element" title="en/XUL_Tutorial/Adding_Labels_and_Images#Description_Element">More information about the description element</a>.</li> + <li><a href="/en/XUL/description" title="en/XUL/description">Description Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-description.gif" class="internal" src="/@api/deki/files/118/=Controlguide-description.gif"></td> + </tr> + <tr> + <td><strong><groupbox></strong> + <p>A groupbox displays a labelled box around other user interface controls.</p> + <pre> +<groupbox> + <caption label="Network"/> +</groupbox> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Groupboxes" title="en/XUL_Tutorial/Groupboxes">More information about the groupbox element</a>.</li> + <li><a href="/en/XUL/groupbox" title="en/XUL/groupbox">Groupbox Reference</a></li> + <li>Related Elements: {{ XULElem("caption") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-groupbox.png" class="internal" src="/@api/deki/files/120/=Controlguide-groupbox.png"></td> + </tr> + <tr> + <td><strong><image></strong> + <p>An image specified by a URL.</p> + <pre> +<image src="start.png"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#Images" title="en/XUL_Tutorial/Adding_Labels_and_Images#Images">More information about the image element</a>.</li> + <li><a href="/en/XUL/image" title="en/XUL/image">Image Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-image.png" class="internal" src="/@api/deki/files/121/=Controlguide-image.png"></td> + </tr> + <tr> + <td><strong><label></strong> + <p>A label is used to create text which labels a nearby control.</p> + <pre> +<label control="volume" value="Volume:"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#Label_Element" title="en/XUL_Tutorial/Adding_Labels_and_Images#Label_Element">More information about the label element</a>.</li> + <li><a href="/en/XUL/label" title="en/XUL/label">Label Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-label.gif" class="internal" src="/@api/deki/files/122/=Controlguide-label.gif"></td> + </tr> + <tr> + <td><strong><listbox></strong> + <p>The listbox is used to select an item from a list of labelled items.</p> + <pre> +<listbox> + <listitem label="Chocolate"/> + <listitem label="Jelly Beans"/> +</listbox> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/List_Controls#List_Boxes" title="en/XUL_Tutorial/List_Controls#List_Boxes">More information about the listbox element</a>.</li> + <li><a href="/en/XUL/listbox" title="en/XUL/listbox">Listbox Reference</a></li> + <li>Related Elements: {{ XULElem("listcell") }} {{ XULElem("listcols") }} {{ XULElem("listcol") }} {{ XULElem("listhead") }} {{ XULElem("listheader") }} {{ XULElem("listitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-listbox.gif" class="internal" src="/@api/deki/files/124/=Controlguide-listbox.gif"></td> + </tr> + <tr> + <td><strong><menulist></strong> + <p>A menulist (or combobox) is used to create a control with a drop down to select a value.</p> + <pre> +<menulist> + <menupopup> + <menuitem label="Lions" value="l"/> + <menuitem label="Tigers" value="t"/> + <menuitem label="Bears" value="b"/> + </menupopup> +</menulist> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/List_Controls#Drop-down_Lists" title="en/XUL_Tutorial/List_Controls#Drop-down_Lists">More information about the menulist element</a>.</li> + <li><a href="/en/XUL/menulist" title="en/XUL/menulist">Menulist Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-menulist.gif" class="internal" src="/@api/deki/files/127/=Controlguide-menulist.gif"></td> + </tr> + <tr> + <td><strong><menulist editable="true"></strong> + <p>An editable menulist is like a standard menulist except that the selected value is displayed in a textbox where it may be modified directly or values not in the popup list may be entered.</p> + <pre> +<menulist editable="true"> + <menupopup> + <menuitem label="Elephants" value="Elephants"/> + <menuitem label="Kangaroos" value="Kangaroos"/> + <menuitem label="Bats" value="Bats"/> + </menupopup> +</menulist> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/List_Controls#Editable_menulist" title="en/XUL_Tutorial/List_Controls#Editable_menulist">More information about the editable menulist element</a>.</li> + <li><a href="/en/XUL/menulist" title="en/XUL/menulist">Menulist Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-menulist-editable.png" class="internal" src="/@api/deki/files/126/=Controlguide-menulist-editable.png"></td> + </tr> + <tr> + <td><strong><progressmeter></strong> + <p>A progress meter is used to display the progress of a lengthy task.</p> + <pre> +<progressmeter value="40"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Progress_Meters" title="en/XUL_Tutorial/Progress_Meters">More information about the progressmeter element</a>.</li> + <li><a href="/en/XUL/progressmeter" title="en/XUL/progressmeter">Progressmeter Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-progressmeter.png" class="internal" src="/@api/deki/files/129/=Controlguide-progressmeter.png"></td> + </tr> + <tr> + <td><strong><radio></strong> + <p>A radio button is used when only one of a set of options may be selected at a time.</p> + <pre> +<radiogroup> + <radio label="Light" value="light"/> + <radio label="Heavy" value="heavy"/> +</radiogroup> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Buttons" title="en/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Buttons">More information about the radio element</a>.</li> + <li><a href="/en/XUL/radio" title="en/XUL/radio">Radio Reference</a></li> + <li>Related Elements: {{ XULElem("radiogroup") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-radio.png" class="internal" src="/@api/deki/files/130/=Controlguide-radio.png"></td> + </tr> + <tr> + <td><strong><richlistbox></strong> + <p>The richlistbox displays a list of items where one or more may selected. Unlike the listbox which is designed to display only text, the richlistbox may display any type of content.</p> + <pre> +<richlistbox> + <richlistitem> + <image src="happy.png"/> + </richlistitem> + <richlistitem> + <image src="sad.png"/> + </richlistitem> + <richlistitem> + <image src="angry.png"/> + </richlistitem> +</richlistbox> +</pre> + <ul> + <li><a href="/en/XUL/richlistbox" title="en/XUL/richlistbox">Richlistbox Reference</a></li> + <li>Related Elements: {{ XULElem("richlistitem") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-richlistbox.gif" class="internal" src="/@api/deki/files/131/=Controlguide-richlistbox.gif"></td> + </tr> + <tr> + <td><strong><scale></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A scale displays a bar with a thumb that may be slid across the bar to select between a range of values.</p> + <pre> +<scale min="1" max="10"/> +</pre> + <ul> + <li><a href="/en/XUL/scale" title="en/XUL/scale">Scale Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-scale.png" class="internal" src="/@api/deki/files/134/=Controlguide-scale.png"></td> + </tr> + <tr> + <td><strong><textbox></strong> + <p>A textbox which allows a single line of text to be entered.</p> + <pre> +<textbox value="firefox"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Input_Controls#Text_Entry_Fields" title="en/XUL_Tutorial/Input_Controls#Text_Entry_Fields">More information about the textbox element</a>.</li> + <li><a href="/en/XUL/textbox" title="en/XUL/textbox">Textbox Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-textbox.png" class="internal" src="/@api/deki/files/140/=Controlguide-textbox.png"></td> + </tr> + <tr> + <td><strong><textbox multiline="true"></strong> + <p>A textbox which allows multiple lines of text to be entered.</p> + <pre> +<textbox multiline="true"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Input_Controls#Multiline_textbox" title="en/XUL_Tutorial/Input_Controls#Multiline_textbox">More information about the multiple line textbox element</a>.</li> + <li><a href="/en/XUL/textbox" title="en/XUL/textbox">Textbox Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-textbox-multiline.gif" class="internal" src="/@api/deki/files/135/=Controlguide-textbox-multiline.gif"></td> + </tr> + <tr> + <td><strong><textbox type="autocomplete"></strong> + <p>A textbox which provides a dropdown showing matches that would complete what the user types. The user can select one to have it filled into the textbox.</p> + <pre> +<textbox type="autocomplete" autocompletesearch="history"/> +</pre> + <ul> + <li><a href="/en/XUL/textbox" title="en/XUL/textbox">Textbox Reference</a></li> + </ul> + </td> + <td> </td> + </tr> + <tr> + <td><strong><textbox type="number"></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A textbox for entering numbers. Two arrow buttons are displayed for cycling through values.</p> + <pre> +<textbox type="number" min="1" max="20"/> +</pre> + <ul> + <li><a href="/en/XUL/textbox" title="en/XUL/textbox">Textbox Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-textbox-number.png" class="internal" src="/@api/deki/files/138/=Controlguide-textbox-number.png"></td> + </tr> + <tr> + <td><strong><textbox type="password"></strong> + <p>A textbox that hides the characters typed, used for entering passwords.</p> + <pre> +<textbox type="password"/> +</pre> + <ul> + <li><a href="/en/XUL/textbox" title="en/XUL/textbox">Textbox Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-textbox-password.png" class="internal" src="/@api/deki/files/139/=Controlguide-textbox-password.png"></td> + </tr> + <tr> + <td><strong><timepicker></strong> + <p>{{ Fx_minversion_inline(3) }}</p> + <p>A timepicker displays a set of textboxes for entering a time.</p> + <pre> +<timepicker value="12:05"/> +</pre> + <ul> + <li><a href="/en/XUL/timepicker" title="en/XUL/timepicker">Timepicker Reference</a></li> + </ul> + </td> + <td><img alt="Image:Controlguide-timepicker.gif" class="internal" src="/@api/deki/files/141/=Controlguide-timepicker.gif"></td> + </tr> + <tr> + <td><strong><toolbarbutton></strong> + <p>A button that is displayed on a toolbar.</p> + <pre> +<toolbarbutton label="Reload"/> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Toolbars" title="en/XUL_Tutorial/Toolbars">More information about the toolbarbutton element</a>.</li> + <li><a href="/en/XUL/toolbarbutton" title="en/XUL/toolbarbutton">Toolbarbutton Reference</a></li> + <li>Related Elements: {{ XULElem("toolbar") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-toolbarbutton.png" class="internal" src="/@api/deki/files/143/=Controlguide-toolbarbutton.png"></td> + </tr> + <tr> + <td><strong><toolbarbutton type="menu"></strong> + <p>A button that is displayed on a toolbar with a drop down menu attached to it.</p> + <pre> +<toolbarbutton type="menu" label="Show"> + <menupopup> + <menuitem label="Toolbars"/> + <menuitem label="Status Bar"/> + </menupopup> +</toolbarbutton> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Toolbars" title="en/XUL_Tutorial/Toolbars">More information about this type of menu toolbarbutton element</a>.</li> + <li><a href="/en/XUL/toolbarbutton" title="en/XUL/toolbarbutton">Toolbarbutton Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }} {{ XULElem("toolbar") }}</li> + </ul> + </td> + <td> </td> + </tr> + <tr> + <td><strong><toolbarbutton type="menu-button"></strong> + <p>A button on a toolbar that that has a separate arrow button with a menu attached to it. Unlike with the '<code>menu</code>' type, a separate action may be performed when the main part of the button is pressed.</p> + <pre> +<toolbarbutton type="menu-button" label="Open"> + <menupopup> + <menuitem label="Open Changed Files"/> + <menuitem label="Open All"/> + </menupopup> +</toolbarbutton> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Toolbars" title="en/XUL_Tutorial/Toolbars">More information about this type of menu toolbarbutton element</a>.</li> + <li><a href="/en/XUL/toolbarbutton" title="en/XUL/toolbarbutton">Toolbarbutton Reference</a></li> + <li>Related Elements: {{ XULElem("menupopup") }} {{ XULElem("menuitem") }} {{ XULElem("toolbar") }}</li> + </ul> + </td> + <td> </td> + </tr> + <tr> + <td><strong><tree></strong> + <p>A tree displays a hierarchy of items in multiple columns.</p> + <pre> +<tree> + <treecols> + <treecol label="Name" flex="1"/> + <treecol label="Size" flex="1"/> + </treecols> + <treechildren> + <treeitem> + <treerow> + <treecell label="Popcorn"/> + <treecell label="Large"/> + </treerow> + </treeitem> + <treeitem> + <treerow> + <treecell label="Root Beer"/> + <treecell label="Small"/> + </treerow> + </treeitem> + </treechildren> +</tree> +</pre> + <ul> + <li><a href="/en/XUL_Tutorial/Trees" title="en/XUL_Tutorial/Trees">More information about the tree element</a>.</li> + <li><a href="/en/XUL/tree" title="en/XUL/tree">Tree Reference</a></li> + <li>Related Elements: {{ XULElem("treecell") }} {{ XULElem("treechildren") }} {{ XULElem("treecol") }} {{ XULElem("treecols") }} {{ XULElem("treeitem") }} {{ XULElem("treerow") }}</li> + </ul> + </td> + <td><img alt="Image:Controlguide-tree.gif" class="internal" src="/@api/deki/files/144/=Controlguide-tree.gif"></td> + </tr> + </tbody> +</table> +<p>{{ languages( { "fr": "fr/Les_contr\u00f4les_XUL", "ja": "ja/XUL_controls", "pl": "pl/Kontrolki_XUL" } ) }}</p> diff --git a/files/ca/archive/mozilla/xul/index.html b/files/ca/archive/mozilla/xul/index.html new file mode 100644 index 0000000000..6ce1b2260e --- /dev/null +++ b/files/ca/archive/mozilla/xul/index.html @@ -0,0 +1,108 @@ +--- +title: XUL +slug: Archive/Mozilla/XUL +translation_of: Archive/Mozilla/XUL +--- +<p> </p> +<div class="callout-box"> + <strong><a class="internal" href="/ca/XUL_Tutorial" title="ca/XUL Tutorial">Tutorial de XUL</a></strong><br> + Un tutorial guiat que t'ajudarà a iniciar-te amb XUL, font original de <a class="external" href="http://www.xulplanet.com">XULPlanet</a>.</div> +<div> + <strong>XUL</strong> (Llenguatge d'interfície d'usuari amb XML) és el llenguatge basat en <a class="internal" href="/ca/XML" title="ca/XML">XML</a> de Mozilla que proporciona la característica de construir aplicacions multi plataforma que poden ser executades mentre estàs connectat o no a Internet. Aquestes aplicacions són fàcilment configurables amb texts alternatius, gràfics i dissenys de manera que poden ser portades i traduïdes per diversos mercats. El desenvolupador web ja familiaritzat amb l'HTML dinàmic (<a class="internal" href="/ca/DHTML" title="ca/DHTML">DHTML</a>) aprendrà XUL ràpidament i podrà començar a desenvolupar aplicacions de forma immediata. Consulta la <a class="external" href="http://www.hevanet.com/acorbin/xul/top.xul" title="http://www.hevanet.com/acorbin/xul/top.xul">Taula Periòdica de XUL</a> en Firefox o un altre navegador basat en <a class="internal" href="/ca/Gecko" title="ca/Gecko">Gecko</a> per veure exemples i demostracions.</div> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=XUL&language=ca" title="Special:Tags?tag=XUL&language=ca">Documentació</a></h4> + <dl> + <dt> + <a href="/ca/XUL_Reference" title="ca/XUL_Reference">Referència XUL</a></dt> + <dd> + <small>Consulta també la documentació de <a href="/ca/Preferences_System" title="ca/Preferences_System">prefwindow</a> al MDC.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/XUL_controls" title="ca/XUL_controls">Controls XUL</a></dt> + <dd> + <small>Un llistat ràpid de tots els controls diponibles a XUL.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/The_Joy_of_XUL" title="ca/The_Joy_of_XUL">Descripció General de XUL</a></dt> + <dd> + <small>Exposa les principals característiques i components de XUL.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/XUL/PopupGuide" title="ca/XUL/PopupGuide">Guia de Menus i Finestres emergents</a></dt> + <dd> + <small>Una guia per fer servir els panells de menus i finestres emergents.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/XUL/Template_Guide" title="ca/XUL/Template_Guide">Guia de Plantilles</a></dt> + <dd> + <small>Una guia detallada sobre les plantilles de XUL, que vol dir generant contingut desde una font de dades.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/DragDrop/Drag_and_Drop" title="Drag and Drop">Arrossegar i Deixar anar</a></dt> + <dd> + <small>Com gestionar les operacions d'arrossegar i deixar anar.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/XUL_Overlays" title="ca/XUL_Overlays">Superposicions</a></dt> + <dd> + <small>Les Superposicions es fan servir per descriure contingut extra a la interfície. Proveeixen un mecanisme poderós per extendre i personalitzar aplicacions XUL existents.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/XUL_improvements_in_Firefox_3" title="ca/XUL_improvements_in_Firefox_3">Adaptant Aplicacions per Firefox 3.0</a></dt> + <dd> + <small>Un llistat de canvis en <a href="/ca/Firefox_3_for_developers" title="ca/Firefox_3_for_developers">Firefox 3.0</a> que afecten als desenvolupadors XUL.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/Firefox_2_for_developers#For_XUL_and_extension_developers" title="ca/Firefox_2_for_developers#For_XUL_and_extension_developers">Adaptant Aplicacions XUL per Firefox 2.0</a></dt> + <dd> + <small>Un llistat de canvis en <a href="/ca/Firefox_2_for_developers" title="ca/Firefox_2_for_developers">Firefox 2.0</a> que afecten als desenvolupadors XUL.</small></dd> + </dl> + <dl> + <dt> + <a href="/ca/Adapting_XUL_Applications_for_Firefox_1.5" title="ca/Adapting_XUL_Applications_for_Firefox_1.5">Adaptant Aplicacions XUL per Firefox 1.5</a></dt> + <dd> + <small>Un llistat de canvis en <a href="/ca/Firefox_1.5_for_developers" title="ca/Firefox_1.5_for_developers">Firefox 1.5</a> que afecten als desenvolupadors XUL.</small></dd> + </dl> + <p><span class="alllinks"><a href="/Special:Tags?tag=XUL&language=ca" title="Special:Tags?tag=XUL&language=ca">Veure Tots...</a></span></p> + </td> + <td> + <h4 id="Community" name="Community">Comunitat</h4> + <ul> + <li>Consulta els forums de Mozilla...</li> + </ul> + <p>{{ DiscussionList("dev-tech-xul", "mozilla.dev.tech.xul") }}</p> + <ul> + <li><a class="external" href="http://xulplanet.com/forum/">Forums de XULPlanet</a></li> + <li><a class="link-irc" href="irc://irc.mozilla.org/xul">#xul on irc.mozilla.org</a></li> + </ul> + <h4 id="Tools" name="Tools">Utilitats</h4> + <ul> + <li><a class="external" href="/ca/docs/XUL_Explorer" title="ca/docs/XUL_Explorer">XUL Explorer</a> (a IDE XUL lleuger)</li> + <li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension developer's extension</a> (disposa un editor en temps real de XUL)</li> + <li><a class="external" href="http://forum.addonsmirror.net/index.php?showtopic=751" title="http://forum.addonsmirror.net/index.php?showtopic=751">XULRef sidebar</a></li> + <li><a class="external" href="http://www.getfirebug.com/">Firebug</a></li> + <li><a href="/ca/DOM_Inspector" title="ca/DOM_Inspector">DOM Inspector</a></li> + <li><a class="external" href="http://www.spket.com/">Spket IDE</a>, IDE per XUL/XBL</li> + </ul> + <p><span class="alllinks"><a href="/Special:Tags" title="Site Tags">Veure Tots...</a></span></p> + <h4 id="Related_Topics" name="Related_Topics">Temes Rel·lacionats</h4> + <dl> + <dd> + <a href="/ca/JavaScript" title="ca/JavaScript">JavaScript</a>, <a href="/ca/XBL" title="ca/XBL">XBL</a>, <a href="/ca/CSS" title="ca/CSS">CSS</a>, <a href="/ca/RDF" title="ca/RDF">RDF</a>, <a href="/ca/Extensions" title="ca/Extensions">Extensions</a>, <a href="/ca/XULRunner" title="ca/XULRunner">XULRunner</a></dd> + </dl> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/ca/archive/mozilla/xul/xul_reference/index.html b/files/ca/archive/mozilla/xul/xul_reference/index.html new file mode 100644 index 0000000000..bfe1e7bcad --- /dev/null +++ b/files/ca/archive/mozilla/xul/xul_reference/index.html @@ -0,0 +1,374 @@ +--- +title: XUL Reference +slug: Archive/Mozilla/XUL/XUL_Reference +translation_of: Archive/Mozilla/XUL/XUL_Reference +--- +<p>« <a href="/en-US/docs/XUL" title="en-US/XUL">XUL Reference</a> «</p> +<table class="fullwidth-table"> + <tbody> + <tr> + <th colspan="3">Tots els elements de XUL (alfabèticament)</th> + </tr> + <tr> + <td> + <p><a href="/ca/XUL/action" title="ca/XUL/action">action</a><br> + <a href="/ca/XUL/arrowscrollbox" title="ca/XUL/arrowscrollbox">arrowscrollbox</a><br> + <a href="/ca/XUL/assign" title="ca/XUL/assign">assign</a><br> + <a href="/ca/XUL/bbox" title="ca/XUL/bbox">bbox</a><br> + <a href="/ca/XUL/binding" title="ca/XUL/binding">binding</a><br> + <a href="/ca/XUL/bindings" title="ca/XUL/bindings">bindings</a><br> + <a href="/ca/XUL/box" title="ca/XUL/box">box</a><br> + <a href="/ca/XUL/broadcaster" title="ca/XUL/broadcaster">broadcaster</a><br> + <a href="/ca/XUL/broadcasterset" title="ca/XUL/broadcasterset">broadcasterset</a><br> + <a href="/ca/XUL/button" title="ca/XUL/button">button</a><br> + <a href="/ca/XUL/browser" title="ca/XUL/browser">browser</a><br> + <a href="/ca/XUL/checkbox" title="ca/XUL/checkbox">checkbox</a><br> + <a href="/ca/XUL/caption" title="ca/XUL/caption">caption</a><br> + <a href="/ca/XUL/colorpicker" title="ca/XUL/colorpicker">colorpicker</a><br> + <a href="/ca/XUL/column" title="ca/XUL/column">column</a><br> + <a href="/ca/XUL/columns" title="ca/XUL/columns">columns</a><br> + <a href="/ca/XUL/commandset" title="ca/XUL/commandset">commandset</a><br> + <a href="/ca/XUL/command" title="ca/XUL/command">command</a><br> + <a href="/ca/XUL/conditions" title="ca/XUL/conditions">conditions</a><br> + <a href="/ca/XUL/content" title="ca/XUL/content">content</a><br> + <a href="/ca/XUL/datepicker" title="ca/XUL/datepicker">datepicker</a><br> + <a href="/ca/XUL/deck" title="ca/XUL/deck">deck</a><br> + <a href="/ca/XUL/description" title="ca/XUL/description">description</a><br> + <a href="/ca/XUL/dialog" title="ca/XUL/dialog">dialog</a><br> + <a href="/ca/XUL/dialogheader" title="ca/XUL/dialogheader">dialogheader</a><br> + <a href="/ca/XUL/dropmarker" title="ca/XUL/dropmarker">dropmarker</a><br> + <a href="/ca/XUL/editor" title="ca/XUL/editor">editor</a><br> + <a href="/ca/XUL/grid" title="ca/XUL/grid">grid</a><br> + <a href="/ca/XUL/grippy" title="ca/XUL/grippy">grippy</a><br> + <a href="/ca/XUL/groupbox" title="ca/XUL/groupbox">groupbox</a><br> + <a href="/ca/XUL/hbox" title="ca/XUL/hbox">hbox</a><br> + <a href="/ca/XUL/iframe" title="ca/XUL/iframe">iframe</a><br> + <a href="/ca/XUL/image" title="ca/XUL/image">image</a><br> + <a href="/ca/XUL/key" title="ca/XUL/key">key</a><br> + <a href="/ca/XUL/keyset" title="ca/XUL/keyset">keyset</a><br> + <a href="/ca/XUL/label" title="ca/XUL/label">label</a><br> + <a href="/ca/XUL/listbox" title="ca/XUL/listbox">listbox</a><br> + <a href="/ca/XUL/listcell" title="ca/XUL/listcell">listcell</a><br> + <a href="/ca/XUL/listcol" title="ca/XUL/listcol">listcol</a><br> + <a href="/ca/XUL/listcols" title="ca/XUL/listcols">listcols</a><br> + <a href="/ca/XUL/listhead" title="ca/XUL/listhead">listhead</a><br> + <a href="/ca/XUL/listheader" title="ca/XUL/listheader">listheader</a><br> + <a href="/ca/XUL/listitem" title="ca/XUL/listitem">listitem</a></p> + </td> + <td> + <p><a href="/ca/XUL/member" title="ca/XUL/member">member</a><br> + <a href="/ca/XUL/menu" title="ca/XUL/menu">menu</a><br> + <a href="/ca/XUL/menubar" title="ca/XUL/menubar">menubar</a><br> + <a href="/ca/XUL/menuitem" title="ca/XUL/menuitem">menuitem</a><br> + <a href="/ca/XUL/menulist" title="ca/XUL/menulist">menulist</a><br> + <a href="/ca/XUL/menupopup" title="ca/XUL/menupopup">menupopup</a><br> + <a href="/ca/XUL/menuseparator" title="ca/XUL/menuseparator">menuseparator</a><br> + <a href="/ca/XUL/notification" title="ca/XUL/notification">notification</a><br> + <a href="/ca/XUL/notificationbox" title="ca/XUL/notificationbox">notificationbox</a><br> + <a href="/ca/XUL/observes" title="ca/XUL/observes">observes</a><br> + <a href="/ca/XUL/overlay" title="ca/XUL/overlay">overlay</a><br> + <a href="/ca/XUL/page" title="ca/XUL/page">page</a><br> + <a href="/ca/XUL/panel" title="ca/XUL/panel">panel</a><br> + <a href="/ca/XUL/param" title="ca/XUL/param">param</a><br> + <a href="/ca/XUL/popupset" title="ca/XUL/popupset">popupset</a><br> + <a href="/ca/XUL/preference" title="ca/XUL/preference">preference</a><br> + <a href="/ca/XUL/preferences" title="ca/XUL/preferences">preferences</a><br> + <a href="/ca/XUL/prefpane" title="ca/XUL/prefpane">prefpane</a><br> + <a href="/ca/XUL/prefwindow" title="ca/XUL/prefwindow">prefwindow</a><br> + <a href="/ca/XUL/progressmeter" title="ca/XUL/progressmeter">progressmeter</a><br> + <a href="/ca/XUL/query" title="ca/XUL/query">query</a><br> + <a href="/ca/XUL/queryset" title="ca/XUL/queryset">queryset</a><br> + <a href="/ca/XUL/radio" title="ca/XUL/radio">radio</a><br> + <a href="/ca/XUL/radiogroup" title="ca/XUL/radiogroup">radiogroup</a><br> + <a href="/ca/XUL/resizer" title="ca/XUL/resizer">resizer</a><br> + <a href="/ca/XUL/richlistbox" title="ca/XUL/richlistbox">richlistbox</a><br> + <a href="/ca/XUL/richlistitem" title="ca/XUL/richlistitem">richlistitem</a><br> + <a href="/ca/XUL/row" title="ca/XUL/row">row</a><br> + <a href="/ca/XUL/rows" title="ca/XUL/rows">rows</a><br> + <a href="/ca/XUL/rule" title="ca/XUL/rule">rule</a><br> + <a href="/ca/XUL/scale" title="ca/XUL/scale">scale</a><br> + <a href="/ca/XUL/script" title="ca/XUL/script">script</a><br> + <a href="/ca/XUL/scrollbar" title="ca/XUL/scrollbar">scrollbar</a><br> + <a href="/ca/XUL/scrollbox" title="ca/XUL/scrollbox">scrollbox</a><br> + <a href="/ca/XUL/scrollcorner" title="ca/XUL/scrollcorner">scrollcorner</a><br> + <a href="/ca/XUL/separator" title="ca/XUL/separator">separator</a><br> + <a href="/ca/XUL/spacer" title="ca/XUL/spacer">spacer</a><br> + <a href="/ca/XUL/spinbuttons" title="ca/XUL/spinbuttons">spinbuttons</a><br> + <a href="/ca/XUL/splitter" title="ca/XUL/splitter">splitter</a><br> + <a href="/ca/XUL/stack" title="ca/XUL/stack">stack</a><br> + <a href="/ca/XUL/statusbar" title="ca/XUL/statusbar">statusbar</a></p> + </td> + <td> + <p><a href="/ca/XUL/statusbarpanel" title="ca/XUL/statusbarpanel">statusbarpanel</a><br> + <a href="/ca/XUL/stringbundle" title="ca/XUL/stringbundle">stringbundle</a><br> + <a href="/ca/XUL/stringbundleset" title="ca/XUL/stringbundleset">stringbundleset</a><br> + <a href="/ca/XUL/tab" title="ca/XUL/tab">tab</a><br> + <a href="/ca/XUL/tabbrowser" title="ca/XUL/tabbrowser">tabbrowser</a> (Només Firefox desde<br> + Firefox 3/Gecko 1.9)<br> + <a href="/ca/XUL/tabbox" title="ca/XUL/tabbox">tabbox</a><br> + <a href="/ca/XUL/tabpanel" title="ca/XUL/tabpanel">tabpanel</a><br> + <a href="/ca/XUL/tabpanels" title="ca/XUL/tabpanels">tabpanels</a><br> + <a href="/ca/XUL/tabs" title="ca/XUL/tabs">tabs</a><br> + <a href="/ca/XUL/template" title="ca/XUL/template">template</a><br> + <a href="/ca/XUL/textnode" title="ca/XUL/textnode">textnode</a><br> + <a href="/ca/XUL/textbox" title="ca/XUL/textbox">textbox</a><br> + <a href="/ca/XUL/textbox_(Firefox_autocomplete)" title="ca/XUL/textbox_(Firefox_autocomplete)">textbox (Firefox autocompletació)</a><br> + <a href="/ca/XUL/textbox_(Mozilla_autocomplete)" title="ca/XUL/textbox_(Mozilla_autocomplete)">textbox (Mozilla autocompletació)</a><br> + <a href="/ca/XUL/timepicker" title="ca/XUL/timepicker">timepicker</a><br> + <a href="/ca/XUL/titlebar" title="ca/XUL/titlebar">titlebar</a><br> + <a href="/ca/XUL/toolbar" title="ca/XUL/toolbar">toolbar</a><br> + <a href="/ca/XUL/toolbarbutton" title="ca/XUL/toolbarbutton">toolbarbutton</a><br> + <a href="/ca/XUL/toolbargrippy" title="ca/XUL/toolbargrippy">toolbargrippy</a><br> + <a href="/ca/XUL/toolbaritem" title="ca/XUL/toolbaritem">toolbaritem</a><br> + <a href="/ca/XUL/toolbarpalette" title="ca/XUL/toolbarpalette">toolbarpalette</a><br> + <a href="/ca/XUL/toolbarseparator" title="ca/XUL/toolbarseparator">toolbarseparator</a><br> + <a href="/ca/XUL/toolbarset" title="ca/XUL/toolbarset">toolbarset</a><br> + <a href="/ca/XUL/toolbarspacer" title="ca/XUL/toolbarspacer">toolbarspacer</a><br> + <a href="/ca/XUL/toolbarspring" title="ca/XUL/toolbarspring">toolbarspring</a><br> + <a href="/ca/XUL/toolbox" title="ca/XUL/toolbox">toolbox</a><br> + <a href="/ca/XUL/tooltip" title="ca/XUL/tooltip">tooltip</a><br> + <a href="/ca/XUL/tree" title="ca/XUL/tree">tree</a><br> + <a href="/ca/XUL/treecell" title="ca/XUL/treecell">treecell</a><br> + <a href="/ca/XUL/treechildren" title="ca/XUL/treechildren">treechildren</a><br> + <a href="/ca/XUL/treecol" title="ca/XUL/treecol">treecol</a><br> + <a href="/ca/XUL/treecols" title="ca/XUL/treecols">treecols</a><br> + <a href="/ca/XUL/treeitem" title="ca/XUL/treeitem">treeitem</a><br> + <a href="/ca/XUL/treerow" title="ca/XUL/treerow">treerow</a><br> + <a href="/ca/XUL/treeseparator" title="ca/XUL/treeseparator">treeseparator</a><br> + <a href="/ca/XUL/triple" title="ca/XUL/triple">triple</a><br> + <a href="/ca/XUL/vbox" title="ca/XUL/vbox">vbox</a><br> + <a href="/ca/XUL/where" title="ca/XUL/where">where</a><br> + <a href="/ca/XUL/window" title="ca/XUL/window">window</a><br> + <a href="/ca/XUL/wizard" title="ca/XUL/wizard">wizard</a><br> + <a href="/ca/XUL/wizardpage" title="ca/XUL/wizardpage">wizardpage</a></p> + </td> + </tr> + </tbody> +</table> +<h1 id="XUL_Reference">XUL Reference</h1> +<p>« <a href="/en-US/docs/XUL" title="en-US/XUL">XUL Reference</a> «</p> +<table class="fullwidth-table"> + <tbody> + <tr> + <th colspan="3">Elements XUL per c</th> + </tr> + <tr> + <td> + <p> </p> + <p><u><strong>WINDOWS</strong></u></p> + <p><strong>Finestres</strong></p> + <p><a href="/ca/XUL/dialog" title="ca/XUL/dialog">dialog</a><br> + <a href="/ca/XUL/overlay" title="ca/XUL/overlay">overlay</a><br> + <a href="/ca/XUL/page" title="ca/XUL/page">page</a><br> + <a href="/ca/XUL/window" title="ca/XUL/window">window</a></p> + <p><strong>Finestres Especials</strong></p> + <p><a href="/ca/XUL/wizard" title="ca/XUL/wizard">wizard</a><br> + <a href="/ca/XUL/wizardpage" title="ca/XUL/wizardpage">wizardpage</a></p> + <p><a href="/ca/XUL/preference" title="ca/XUL/preference">preference</a><br> + <a href="/ca/XUL/preferences" title="ca/XUL/preferences">preferences</a><br> + <a href="/ca/XUL/prefpane" title="ca/XUL/prefpane">prefpane</a><br> + <a href="/ca/XUL/prefwindow" title="ca/XUL/prefwindow">prefwindow</a></p> + <p><strong>Alertes/Finestres emergents</strong></p> + <p><a href="/ca/XUL/notification" title="ca/XUL/notification">notification</a><br> + <a href="/ca/XUL/notificationbox" title="ca/XUL/notificationbox">notificationbox</a></p> + <p><a href="/ca/XUL/menupopup" title="ca/XUL/menupopup">menupopup</a><br> + <a href="/ca/XUL/popupset" title="ca/XUL/popupset">popupset</a><br> + <a href="/ca/XUL/tooltip" title="ca/XUL/tooltip">tooltip</a><br> + <a href="/ca/XUL/panel" title="ca/XUL/panel">panel</a></p> + <p><strong>Finestres de contingut en línia</strong><br> + <a href="/ca/XUL/browser" title="ca/XUL/browser">browser</a><br> + <a href="/ca/XUL/tabbrowser" title="ca/XUL/tabbrowser">tabbrowser</a> (Firefox-only starting<br> + with Firefox 3/Gecko 1.9)<br> + <a href="/ca/XUL/editor" title="ca/XUL/editor">editor</a><br> + <a href="/ca/XUL/iframe" title="ca/XUL/iframe">iframe</a></p> + <p><strong>Afegits a Finestres</strong></p> + <p><a href="/ca/XUL/titlebar" title="ca/XUL/titlebar">titlebar</a><br> + <a href="/ca/XUL/resizer" title="ca/XUL/resizer">resizer</a></p> + <p><u><strong>SECCIONS ESPECIALS DE FINESTRA</strong></u></p> + <p><strong>Barra de Menú</strong></p> + <p><a href="/ca/XUL/menu" title="ca/XUL/menu">menu</a><br> + <a href="/ca/XUL/menubar" title="ca/XUL/menubar">menubar</a></p> + <p><strong>Barra d'estat</strong></p> + <p><a href="/ca/XUL/statusbar" title="ca/XUL/statusbar">statusbar</a><br> + <a href="/ca/XUL/statusbarpanel" title="ca/XUL/statusbarpanel">statusbarpanel</a></p> + <p><br> + <span style="font-weight: bold;">Barra d'eines</span><strong> (i Paleta)</strong><br> + <br> + <a href="/ca/XUL/toolbar" title="ca/XUL/toolbar">toolbar</a><br> + <a href="/ca/XUL/toolbarbutton" title="ca/XUL/toolbarbutton">toolbarbutton</a><br> + <a href="/ca/XUL/toolbargrippy" title="ca/XUL/toolbargrippy">toolbargrippy</a><br> + <a href="/ca/XUL/toolbaritem" title="ca/XUL/toolbaritem">toolbaritem</a><br> + <a href="/ca/XUL/toolbarpalette" title="ca/XUL/toolbarpalette">toolbarpalette</a><br> + <a href="/ca/XUL/toolbarseparator" title="ca/XUL/toolbarseparator">toolbarseparator</a><br> + <a href="/ca/XUL/toolbarset" title="ca/XUL/toolbarset">toolbarset</a><br> + <a href="/ca/XUL/toolbarspacer" title="ca/XUL/toolbarspacer">toolbarspacer</a><br> + <a href="/ca/XUL/toolbarspring" title="ca/XUL/toolbarspring">toolbarspring</a><br> + <a href="/ca/XUL/toolbox" title="ca/XUL/toolbox">toolbox</a></p> + <p> </p> + <p><u><strong>ESTRUCTURES I FORMAT NAVEGABLES</strong></u></p> + <p><strong>Pestanyes</strong><br> + <a href="/ca/XUL/tab" title="ca/XUL/tab">tab</a><br> + <a href="/ca/XUL/tabbrowser" title="ca/XUL/tabbrowser">tabbrowser</a> (Firefox-only starting<br> + with Firefox 3/Gecko 1.9)<br> + <a href="/ca/XUL/tabbox" title="ca/XUL/tabbox">tabbox</a><br> + <a href="/ca/XUL/tabpanel" title="ca/XUL/tabpanel">tabpanel</a><br> + <a href="/ca/XUL/tabpanels" title="ca/XUL/tabpanels">tabpanels</a><br> + <a href="/ca/XUL/tabs" title="ca/XUL/tabs">tabs</a></p> + <p><strong>Desplaçament</strong></p> + <p><a href="/ca/XUL/scrollbar" title="ca/XUL/scrollbar">arrowscrollbox</a><br> + <a href="/ca/XUL/scrollbar" title="ca/XUL/scrollbar">scrollbar</a><br> + <a href="/ca/XUL/scrollbox" title="ca/XUL/scrollbox">scrollbox</a><br> + <a href="/ca/XUL/scrollcorner" title="ca/XUL/scrollcorner">scrollcorner</a></p> + <p><strong>Cobertes</strong></p> + <p><a href="/ca/XUL/deck" title="ca/XUL/deck">deck</a></p> + </td> + <td> + <p> </p> + <p><u><strong>ESTRUCTURES I FORMAT</strong></u></p> + <p><strong>Caixes/Piles</strong></p> + <p><a href="/ca/XUL/bbox" title="ca/XUL/bbox">bbox</a><br> + <a href="/ca/XUL/box" title="ca/XUL/box">box</a><br> + <a href="/ca/XUL/hbox" title="ca/XUL/hbox">hbox</a><br> + <a href="/ca/XUL/vbox" title="ca/XUL/vbox">vbox</a></p> + <p><a href="/ca/XUL/stack" title="ca/XUL/stack">stack</a></p> + <p><strong>Grups de caixes</strong></p> + <p><a href="/ca/XUL/groupbox" title="ca/XUL/groupbox">groupbox</a><br> + <a href="/ca/XUL/caption" title="ca/XUL/caption">caption</a></p> + <p><br> + <span style="font-weight: bold;">Graelles</span><strong> (Taules)</strong><br> + <a href="/ca/XUL/column" title="ca/XUL/column">column</a><br> + <a href="/ca/XUL/columns" title="ca/XUL/columns">columns</a><br> + <a href="/ca/XUL/grid" title="ca/XUL/grid">grid</a><br> + <a href="/ca/XUL/row" title="ca/XUL/row">row</a><br> + <a href="/ca/XUL/rows" title="ca/XUL/rows">rows</a></p> + <p><strong>Llistes</strong><br> + <a href="/ca/XUL/listbox" title="ca/XUL/listbox">listbox</a><br> + <a href="/ca/XUL/listcell" title="ca/XUL/listcell">listcell</a><br> + <a href="/ca/XUL/listcol" title="ca/XUL/listcol">listcol</a><br> + <a href="/ca/XUL/listcols" title="ca/XUL/listcols">listcols</a><br> + <a href="/ca/XUL/listhead" title="ca/XUL/listhead">listhead</a><br> + <a href="/ca/XUL/listheader" title="ca/XUL/listheader">listheader</a><br> + <a href="/ca/XUL/listitem" title="ca/XUL/listitem">listitem</a><br> + <a href="/ca/XUL/richlistbox" title="ca/XUL/richlistbox">richlistbox</a><br> + <a href="/ca/XUL/richlistitem" title="ca/XUL/richlistitem">richlistitem</a></p> + <p><br> + Arbres<br> + <a href="/ca/XUL/tree" title="ca/XUL/tree">tree</a><br> + <a href="/ca/XUL/treecell" title="ca/XUL/treecell">treecell</a><br> + <a href="/ca/XUL/treechildren" title="ca/XUL/treechildren">treechildren</a><br> + <a href="/ca/XUL/treecol" title="ca/XUL/treecol">treecol</a><br> + <a href="/ca/XUL/treecols" title="ca/XUL/treecols">treecols</a><br> + <a href="/ca/XUL/treeitem" title="ca/XUL/treeitem">treeitem</a><br> + <a href="/ca/XUL/treerow" title="ca/XUL/treerow">treerow</a><br> + <a href="/ca/XUL/treeseparator" title="ca/XUL/treeseparator">treeseparator</a></p> + <p> </p> + <p><u><strong>TEXT & VISUALS</strong></u></p> + <p><strong>Text</strong><br> + <br> + <a href="/ca/XUL/description" title="ca/XUL/description">description</a><br> + <a href="/ca/XUL/label" title="ca/XUL/label">label</a></p> + <p><a href="/ca/XUL/tooltip" title="ca/XUL/tooltip">tooltip</a></p> + <p><strong>Capceleres</strong></p> + <p><a href="/ca/XUL/dialogheader" title="ca/XUL/dialogheader">dialogheader</a><br> + <a href="/ca/XUL/titlebar" title="ca/XUL/titlebar">titlebar</a></p> + <p><br> + <strong>Espaiat</strong><br> + <a href="/ca/XUL/separator" title="ca/XUL/separator">separator</a><br> + <a href="/ca/XUL/spacer" title="ca/XUL/spacer">spacer</a></p> + <p><br> + <strong>Redimensionament</strong></p> + <p><a href="/ca/XUL/grippy" title="ca/XUL/grippy">grippy</a><br> + <a href="/ca/XUL/splitter" title="ca/XUL/splitter">splitter</a></p> + <p><a href="/ca/XUL/resizer" title="ca/XUL/resizer">resizer</a></p> + <p><strong>Imatges</strong></p> + <p><a href="/ca/XUL/image" title="ca/XUL/image">image</a></p> + <p>(May also insert <a href="/ca/SVG" title="ca/SVG">SVG</a>)</p> + <p><strong>Retroacció Visual</strong></p> + <p><a href="/ca/XUL/progressmeter" title="ca/XUL/progressmeter">progressmeter</a></p> + <p> </p> + <br> + <p> </p> + </td> + <td> + <p> </p> + <p><u><strong>CONTROLS DE FORMULARI</strong></u></p> + <p>(Es pot fer servir també <a href="/ca/XHTML" title="ca/XHTML">XHTML</a>, e.x., <form/>)</p> + <p><strong>Menus (general)</strong></p> + <p><a href="/ca/XUL/menu" title="ca/XUL/menu">menu</a><br> + <a href="/ca/XUL/menuitem" title="ca/XUL/menuitem">menuitem</a><br> + <a href="/ca/XUL/menuseparator" title="ca/XUL/menuseparator">menuseparator</a></p> + <p><strong>Menus (desplegables)</strong><br> + <a href="/ca/XUL/menulist" title="ca/XUL/menulist">menulist</a></p> + <p><strong>Menus (finestra emergent/contexte)</strong><br> + <a href="/ca/XUL/menupopup" title="ca/XUL/menupopup">menupopup</a><br> + <a href="/ca/XUL/popupset" title="ca/XUL/popupset">popupset</a><br> + <a href="/ca/XUL/panel" title="ca/XUL/panel">panel</a></p> + <p><strong>Botons</strong></p> + <p><a href="/ca/XUL/button" title="ca/XUL/button">button</a><br> + <a href="/ca/XUL/toolbarbutton" title="ca/XUL/toolbarbutton">toolbarbutton</a></p> + <p><a href="/ca/XUL/dropmarker" title="ca/XUL/dropmarker">dropmarker</a><br> + <a href="/ca/XUL/spinbuttons" title="ca/XUL/spinbuttons">spinbuttons</a></p> + <p><strong>Controls de Selector</strong></p> + <p><a href="/ca/XUL/checkbox" title="ca/XUL/checkbox">checkbox</a></p> + <p><a href="/ca/XUL/radio" title="ca/XUL/radio">radio</a><br> + <a href="/ca/XUL/radiogroup" title="ca/XUL/radiogroup">radiogroup</a></p> + <p><a href="/ca/XUL/scale" title="ca/XUL/scale">scale</a></p> + <p><strong>Controls de Selector especialitzats</strong></p> + <p><a href="/ca/XUL/colorpicker" title="ca/XUL/colorpicker">colorpicker</a><br> + <a href="/ca/XUL/datepicker" title="ca/XUL/datepicker">datepicker</a><br> + <a href="/ca/XUL/timepicker" title="ca/XUL/timepicker">timepicker</a></p> + <p><strong>Caixes de texte</strong></p> + <p><a href="/ca/XUL/textbox" title="ca/XUL/textbox">textbox</a><br> + <a href="/ca/XUL/textbox_(Firefox_autocomplete)" title="ca/XUL/textbox_(Firefox_autocomplete)">textbox (Firefox autocomplete)</a><br> + <a href="/ca/XUL/textbox_(Mozilla_autocomplete)" title="ca/XUL/textbox_(Mozilla_autocomplete)">textbox (Mozilla autocomplete)</a></p> + <p> </p> + <p><u><strong>PLANTILLES</strong></u></p> + <p><strong>Plantilles</strong></p> + <p><a href="/ca/XUL/action" title="ca/XUL/action">action</a><br> + <a href="/ca/XUL/assign" title="ca/XUL/assign">assign</a><br> + <a href="/ca/XUL/binding" title="ca/XUL/binding">binding</a><br> + <a href="/ca/XUL/bindings" title="ca/XUL/bindings">bindings</a><br> + <a href="/ca/XUL/conditions" title="ca/XUL/conditions">conditions</a><br> + <a href="/ca/XUL/content" title="ca/XUL/content">content</a><br> + <a href="/ca/XUL/member" title="ca/XUL/member">member</a><br> + <a href="/ca/XUL/param" title="ca/XUL/param">param</a><br> + <a href="/ca/XUL/query" title="ca/XUL/query">query</a><br> + <a href="/ca/XUL/queryset" title="ca/XUL/queryset">queryset</a><br> + <a href="/ca/XUL/rule" title="ca/XUL/rule">rule</a><br> + <a href="/ca/XUL/template" title="ca/XUL/template">template</a><br> + <a href="/ca/XUL/textnode" title="ca/XUL/textnode">textnode</a><br> + <a href="/ca/XUL/triple" title="ca/XUL/triple">triple</a><br> + <a href="/ca/XUL/where" title="ca/XUL/where">where</a></p> + <p><br> + <u><strong>NO VISUAL</strong></u></p> + <p><strong>Script</strong><br> + <br> + <a href="/ca/XUL/script" title="ca/XUL/script">script</a></p> + <p><a href="/ca/XUL/commandset" title="ca/XUL/commandset">commandset</a><br> + <a href="/ca/XUL/command" title="ca/XUL/command">command</a></p> + <p><strong>Canvi d'Estat</strong></p> + <p><a href="/ca/XUL/broadcaster" title="ca/XUL/broadcaster">broadcaster</a><br> + <a href="/ca/XUL/broadcasterset" title="ca/XUL/broadcasterset">broadcasterset</a></p> + <p><a href="/ca/XUL/observes" title="ca/XUL/observes">observes</a></p> + <p><strong>Teclat</strong></p> + <p><a href="/ca/XUL/key" title="ca/XUL/key">key</a><br> + <a href="/ca/XUL/keyset" title="ca/XUL/keyset">keyset</a></p> + <br> + <p><strong>Internacionalització/Text Dinàmic</strong></p> + <p><a href="/ca/XUL/stringbundle" title="ca/XUL/stringbundle">stringbundle</a><br> + <a href="/ca/XUL/stringbundleset" title="ca/XUL/stringbundleset">stringbundleset</a></p> + <p> </p> + </td> + </tr> + </tbody> +</table> +<h3 id="Other_XUL_lists" name="Other_XUL_lists">Altres llistats XUL</h3> +<ul> + <li><a href="/ca/XUL/Attribute" title="ca/XUL/Attribute">Tots els atributs</a></li> + <li><a href="/ca/XUL/Property" title="ca/XUL/Property">Totes les propietats</a></li> + <li><a href="/ca/XUL/Method" title="ca/XUL/Method">Tots els mètodes</a></li> + <li><a href="/ca/XUL_element_attributes" title="ca/XUL_element_attributes">Atributs definits per tots els elements XUL</a></li> + <li><a href="/ca/XUL/Style" title="ca/XUL/Style">Classes d'Estil</a></li> + <li><a href="/ca/XUL/Events" title="ca/XUL/Events">Gestor d'Events</a></li> + <li><a href="/ca/XUL/Deprecated//Defunct_Markup" title="ca/XUL/Deprecated//Defunct_Markup">Sintàxi Obsoleta</a></li> +</ul> diff --git a/files/ca/archive/mozilla/xul/xul_tutorial/index.html b/files/ca/archive/mozilla/xul/xul_tutorial/index.html new file mode 100644 index 0000000000..c1397677c8 --- /dev/null +++ b/files/ca/archive/mozilla/xul/xul_tutorial/index.html @@ -0,0 +1,137 @@ +--- +title: XUL Tutorial +slug: Archive/Mozilla/XUL/XUL_Tutorial +translation_of: Archive/Mozilla/XUL/Tutorial +--- +<p> </p> +<p>Aquest tutorial descriu <a class="internal" href="/ca/XUL" title="ca/XUL">XUL</a>, el llenguatge d'interfície d'usuari en <a class="internal" href="/ca/XML" title="ca/XML">XML</a>. Aquest, ha sigut creat per l'aplicació Mozilla i s'utilitza per descriure tota la seva interfície.</p> +<h5 id="Introduction" name="Introduction">Introducció</h5> +<ul> + <li><a class="internal" href="/ca/XUL_Tutorial/Introduction" title="ca/XUL Tutorial/Introduction">Introducció</a></li> + <li><a class="internal" href="/ca/XUL_Tutorial/XUL_Structure" title="ca/XUL Tutorial/XUL Structure">Estructura de XUL</a></li> + <li><a class="internal" href="/ca/XUL%20Tutorial/The%20Chrome%20URL" title="ca/XUL Tutorial/The Chrome URL">La URL Chrome</a></li> + <li><a class="internal" href="/ca/XUL%20Tutorial/Manifest%20Files" title="ca/XUL Tutorial/Manifest Files">Fitxers de Manifest</a></li> +</ul> +<h5 id="Simple_Elements" name="Simple_Elements">Simple Elements</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Creating_a_Window" title="en/XUL_Tutorial/Creating_a_Window">Creating a Window</a></li> + <li><a href="/en/XUL_Tutorial/Adding_Buttons" title="en/XUL_Tutorial/Adding_Buttons">Adding Buttons</a></li> + <li><a href="/en/XUL_Tutorial/Adding_Labels_and_Images" title="en/XUL_Tutorial/Adding_Labels_and_Images">Adding Labels and Images</a></li> + <li><a href="/en/XUL_Tutorial/Input_Controls" title="en/XUL_Tutorial/Input_Controls">Input Controls</a></li> + <li><a href="/en/XUL_Tutorial/Numeric_Controls" title="en/XUL_Tutorial/Numeric_Controls">Numeric Controls</a></li> + <li><a href="/en/XUL_Tutorial/List_Controls" title="en/XUL_Tutorial/List_Controls">List Controls</a></li> + <li><a href="/en/XUL_Tutorial/Progress_Meters" title="en/XUL_Tutorial/Progress_Meters">Progress Meters</a></li> + <li><a href="/en/XUL_Tutorial/Adding_HTML_Elements" title="en/XUL_Tutorial/Adding_HTML_Elements">Adding HTML Elements</a></li> + <li><a href="/en/XUL_Tutorial/Using_Spacers" title="en/XUL_Tutorial/Using_Spacers">Using Spacers</a></li> + <li><a href="/en/XUL_Tutorial/More_Button_Features" title="en/XUL_Tutorial/More_Button_Features">More Button Features</a></li> +</ul> +<h5 id="The_Box_Model" name="The_Box_Model">The Box Model</h5> +<ul> + <li><a href="/en/XUL_Tutorial/The_Box_Model" title="en/XUL_Tutorial/The_Box_Model">The Box Model</a></li> + <li><a href="/en/XUL_Tutorial/Element_Positioning" title="en/XUL_Tutorial/Element_Positioning">Element Positioning</a></li> + <li><a href="/en/XUL_Tutorial/Box_Model_Details" title="en/XUL_Tutorial/Box_Model_Details">Box Model Details</a></li> + <li><a href="/en/XUL_Tutorial/Groupboxes" title="en/XUL_Tutorial/Groupboxes">Groupboxes</a></li> + <li><a href="/en/XUL_Tutorial/Adding_More_Elements" title="en/XUL_Tutorial/Adding_More_Elements">Adding More Elements</a></li> +</ul> +<h5 id="More_Layout_Elements" name="More_Layout_Elements">More Layout Elements</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Stacks_and_Decks" title="en/XUL_Tutorial/Stacks_and_Decks">Stacks and Decks</a></li> + <li><a href="/en/XUL_Tutorial/Stack_Positioning" title="en/XUL_Tutorial/Stack_Positioning">Stack Positioning</a></li> + <li><a href="/en/XUL_Tutorial/Tabboxes" title="en/XUL_Tutorial/Tabboxes">Tabboxes</a></li> + <li><a href="/en/XUL_Tutorial/Grids" title="en/XUL_Tutorial/Grids">Grids</a></li> + <li><a href="/en/XUL_Tutorial/Content_Panels" title="en/XUL_Tutorial/Content_Panels">Content Panels</a></li> + <li><a href="/en/XUL_Tutorial/Splitters" title="en/XUL_Tutorial/Splitters">Splitters</a></li> +</ul> +<h5 id="Toolbars_and_Menus" name="Toolbars_and_Menus">Toolbars and Menus</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Toolbars" title="en/XUL_Tutorial/Toolbars">Toolbars</a></li> + <li><a href="/en/XUL_Tutorial/Simple_Menu_Bars" title="en/XUL_Tutorial/Simple_Menu_Bars">Simple Menu Bars</a></li> + <li><a href="/en/XUL_Tutorial/More_Menu_Features" title="en/XUL_Tutorial/More_Menu_Features">More Menu Features</a></li> + <li><a href="/en/XUL_Tutorial/Popup_Menus" title="en/XUL_Tutorial/Popup_Menus">Popup Menus</a></li> + <li><a href="/en/XUL_Tutorial/Scrolling_Menus" title="en/XUL_Tutorial/Scrolling_Menus">Scrolling Menus</a></li> +</ul> +<h5 id="Events_and_Scripts" name="Events_and_Scripts">Events and Scripts</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Adding_Event_Handlers" title="en/XUL_Tutorial/Adding_Event_Handlers">Adding Event Handlers</a></li> + <li><a href="/en/XUL_Tutorial/More_Event_Handlers" title="en/XUL_Tutorial/More_Event_Handlers">More Event Handlers</a></li> + <li><a href="/en/XUL_Tutorial/Keyboard_Shortcuts" title="en/XUL_Tutorial/Keyboard_Shortcuts">Keyboard Shortcuts</a></li> + <li><a href="/en/XUL_Tutorial/Focus_and_Selection" title="en/XUL_Tutorial/Focus_and_Selection">Focus and Selection</a></li> + <li><a href="/en/XUL_Tutorial/Commands" title="en/XUL_Tutorial/Commands">Commands</a></li> + <li><a href="/en/XUL_Tutorial/Updating_Commands" title="en/XUL_Tutorial/Updating_Commands">Updating Commands</a></li> + <li><a href="/en/XUL_Tutorial/Broadcasters_and_Observers" title="en/XUL_Tutorial/Broadcasters_and_Observers">Broadcasters and Observers</a></li> +</ul> +<h5 id="Document_Object_Model" name="Document_Object_Model">Document Object Model</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Document_Object_Model" title="en/XUL_Tutorial/Document_Object_Model">Document Object Model</a></li> + <li><a href="/en/XUL_Tutorial/Modifying_a_XUL_Interface" title="en/XUL_Tutorial/Modifying_a_XUL_Interface">Modifying a XUL Interface</a></li> + <li><a href="/en/XUL_Tutorial/Manipulating_Lists" title="en/XUL_Tutorial/Manipulating_Lists">Manipulating Lists</a></li> + <li><a href="/en/XUL_Tutorial/Box_Objects" title="en/XUL_Tutorial/Box_Objects">Box Objects</a></li> + <li><a href="/en/XUL_Tutorial/XPCOM_Interfaces" title="en/XUL_Tutorial/XPCOM_Interfaces">XPCOM Interfaces</a></li> + <li><a href="/en/XUL_Tutorial/XPCOM_Examples" title="en/XUL_Tutorial/XPCOM_Examples">XPCOM Examples</a></li> +</ul> +<h5 id="Trees" name="Trees">Trees</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Trees" title="en/XUL_Tutorial/Trees">Trees</a></li> + <li><a href="/en/XUL_Tutorial/More_Tree_Features" title="en/XUL_Tutorial/More_Tree_Features">More Tree Features</a></li> + <li><a href="/en/XUL_Tutorial/Tree_Selection" title="en/XUL_Tutorial/Tree_Selection">Tree Selection</a></li> + <li><a href="/en/XUL_Tutorial/Custom_Tree_Views" title="en/XUL_Tutorial/Custom_Tree_Views">Custom Tree Views</a></li> + <li><a href="/en/XUL_Tutorial/Tree_View_Details" title="en/XUL_Tutorial/Tree_View_Details">Tree View Details</a></li> + <li><a href="/en/XUL_Tutorial/Tree_Box_Objects" title="en/XUL_Tutorial/Tree_Box_Objects">Tree Box Objects</a></li> +</ul> +<h5 id="RDF_and_Templates" name="RDF_and_Templates">RDF and Templates</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Introduction_to_RDF" title="en/XUL_Tutorial/Introduction_to_RDF">Introduction to RDF</a></li> + <li><a href="/en/XUL_Tutorial/Templates" title="en/XUL_Tutorial/Templates">Templates</a></li> + <li><a href="/en/XUL_Tutorial/Trees_and_Templates" title="en/XUL_Tutorial/Trees_and_Templates">Trees and Templates</a></li> + <li><a href="/en/XUL_Tutorial/RDF_Datasources" title="en/XUL_Tutorial/RDF_Datasources">RDF Datasources</a></li> + <li><a href="/en/XUL_Tutorial/Advanced_Rules" title="en/XUL_Tutorial/Advanced_Rules">Advanced Rules</a></li> + <li><a href="/en/XUL_Tutorial/Persistent_Data" title="en/XUL_Tutorial/Persistent_Data">Persistent Data</a></li> +</ul> +<h5 id="Skins_and_Locales" name="Skins_and_Locales">Skins and Locales</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Adding_Style_Sheets" title="en/XUL_Tutorial/Adding_Style_Sheets">Adding Style Sheets</a></li> + <li><a href="/en/XUL_Tutorial/Styling_a_Tree" title="en/XUL_Tutorial/Styling_a_Tree">Styling a Tree</a></li> + <li><a href="/en/XUL_Tutorial/Modifying_the_Default_Skin" title="en/XUL_Tutorial/Modifying_the_Default_Skin">Modifying the Default Skin</a></li> + <li><a href="/en/XUL_Tutorial/Creating_a_Skin" title="en/XUL_Tutorial/Creating_a_Skin">Creating a Skin</a></li> + <li><a href="/en/XUL_Tutorial/Localization" title="en/XUL_Tutorial/Localization">Localization</a></li> + <li><a href="/en/XUL_Tutorial/Property_Files" title="en/XUL_Tutorial/Property_Files">Property Files</a></li> +</ul> +<h5 id="Bindings" name="Bindings">Bindings</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Introduction_to_XBL" title="en/XUL_Tutorial/Introduction_to_XBL">Introduction to XBL</a></li> + <li><a href="/en/XUL_Tutorial/Anonymous_Content" title="en/XUL_Tutorial/Anonymous_Content">Anonymous Content</a></li> + <li><a href="/en/XUL_Tutorial/XBL_Attribute_Inheritance" title="en/XUL_Tutorial/XBL_Attribute_Inheritance">XBL Attribute Inheritance</a></li> + <li><a href="/en/XUL_Tutorial/Adding_Properties_to_XBL-defined_Elements" title="en/XUL_Tutorial/Adding_Properties_to_XBL-defined_Elements">Adding Properties</a></li> + <li><a href="/en/XUL_Tutorial/Adding_Methods_to_XBL-defined_Elements" title="en/XUL_Tutorial/Adding_Methods_to_XBL-defined_Elements">Adding Methods</a></li> + <li><a href="/en/XUL_Tutorial/Adding_Event_Handlers_to_XBL-defined_Elements" title="en/XUL_Tutorial/Adding_Event_Handlers_to_XBL-defined_Elements">Adding Event Handlers</a></li> + <li><a href="/en/XUL_Tutorial/XBL_Inheritance" title="en/XUL_Tutorial/XBL_Inheritance">XBL Inheritance</a></li> + <li><a href="/en/XUL_Tutorial/XBL_Example" title="en/XUL_Tutorial/XBL_Example">XBL Example</a></li> +</ul> +<h5 id="Specialized_Window_Types" name="Specialized_Window_Types">Specialized Window Types</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Features_of_a_Window" title="en/XUL_Tutorial/Features_of_a_Window">Features of a Window</a></li> + <li><a href="/en/XUL_Tutorial/Creating_Dialogs" title="en/XUL_Tutorial/Creating_Dialogs">Creating Dialogs</a></li> + <li><a href="/en/XUL_Tutorial/Open_and_Save_Dialogs" title="en/XUL_Tutorial/Open_and_Save_Dialogs">Open and Save Dialogs</a></li> + <li><a href="/en/XUL_Tutorial/Creating_a_Wizard" title="en/XUL_Tutorial/Creating_a_Wizard">Creating a Wizard</a></li> + <li><a href="/en/XUL_Tutorial/More_Wizards" title="en/XUL_Tutorial/More_Wizards">More Wizards</a></li> + <li><a href="/en/XUL_Tutorial/Overlays" title="en/XUL_Tutorial/Overlays">Overlays</a></li> + <li><a href="/en/XUL_Tutorial/Cross_Package_Overlays" title="en/XUL_Tutorial/Cross_Package_Overlays">Cross Package Overlays</a></li> +</ul> +<h5 id="Installation" name="Installation">Installation</h5> +<ul> + <li><a href="/en/XUL_Tutorial/Creating_an_Installer" title="en/XUL_Tutorial/Creating_an_Installer">Creating an Installer</a></li> + <li><a href="/en/XUL_Tutorial/Install_Scripts" title="en/XUL_Tutorial/Install_Scripts">Install Scripts</a></li> + <li><a href="/en/XUL_Tutorial/Additional_Install_Features" title="en/XUL_Tutorial/Additional_Install_Features">Additional Install Features</a></li> +</ul> +<div class="note"> + <p>This XUL tutorial was originally created by <a class="external" href="http://www.xulplanet.com/ndeakin/">Neil Deakin</a>. He has graciously given us permission to use it as part of the <a href="/Project:en/About" title="Project:en/About">MDC</a>.</p> +</div> +<div class="originaldocinfo"> + <h5 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h5> + <ul> + <li>Author: <a class="external" href="http://www.xulplanet.com/ndeakin/">Neil Deakin</a></li> + <li>Copyright Information: © 1999-2005 XULPlanet.com</li> + </ul> +</div> +<p><span class="comment">Interwiki Language Links</span></p> +<p>{{ languages( { "zh-cn": "cn/XUL_\u6559\u7a0b", "de": "de/XUL_Tutorial", "es": "es/Tutorial_de_XUL", "fr": "fr/Tutoriel_XUL", "ja": "ja/XUL_Tutorial", "ko": "ko/XUL_Tutorial", "pl": "pl/Kurs_XUL", "ru": "ru/\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043f\u043e_XUL" } ) }}</p> diff --git a/files/ca/archive/mozilla/xul/xul_tutorial/introducció/index.html b/files/ca/archive/mozilla/xul/xul_tutorial/introducció/index.html new file mode 100644 index 0000000000..c2b05d8386 --- /dev/null +++ b/files/ca/archive/mozilla/xul/xul_tutorial/introducció/index.html @@ -0,0 +1,45 @@ +--- +title: XUL_Tutorial/Introducció +slug: Archive/Mozilla/XUL/XUL_Tutorial/Introducció +tags: + - Being translated... +translation_of: Archive/Mozilla/XUL/Tutorial/Introduction +--- +<p>{{ Next("XUL Tutorial:XUL Structure") }}</p> +<p>Aquest tutorial és una guia per aprendre XUL ( Llenguatge d'Interfície d'Usuari XML ) el qual és un llenguatge multiplataforma per descriure interfícies d'usuari per aplicacions.</p> +<p>Aquest tutorial demostrarà la creació d'una simple interfície per cercar fitxers, semblant a la provsta al programa Sherlock del Macintosh en el diàleg cerca fitxer en Windows. Cal tenir en compte que només crearem la interfície amb una funcionalitat limitada i la cerca de fitxers no serà implementada. Una línia blava apareixerà a la dreta del paràgraf quan el diàleg de cerca s'estigui modificant. Pots seguir endavant directament a través d'aquestes seccions.</p> +<h3 id="What_is_XUL_and_why_was_it_created.3F" name="What_is_XUL_and_why_was_it_created.3F">Què és XUL i perquè ha sigut creat?</h3> +<p>XUL (pronunciat "zool" i que rima amb "cool" ) s'ha creat per fer el desenvolupament del navegador de Mozilla més fàcil i ràpid. És un llenguatge basat en XML amb el que totes les característiques i funcions d'XML són a XUL.</p> +<p>La gran majoria d'aplicacions s'han de desenvolupar fent servir característiques d'una plataforma en concret fent la construcció de programari multiplataforma molt difícil i llarga. En el passat però ja s'han desenvolupat sol·lucions multiplataforma. Java, per exemple té la portabilitat com a principal característica. XUL és un altre llenguatge d'aques tipus que ha sigut dissenyat específicament per construir interfícies d'usuari portables. Cal molt de temps per construir una aplicació encara que sigui per una sola plataforma. El temps requerit per compilar i depurar pot ser molt llarga. Amb XUL, l'interfície pot ser implementada i modificada fàcilment i ràpidament. </p> +<p>XUL té tots els avantatges dels llenguatges basats en XML. Per exemple XHTML o altres llenguatges XML com MathML o SVG es poden inserir al mig. També, el text que s'utilitza amb XUL és fàcilment localitzable, que vol dir que es pot traduïr a altres idiomes amb poc esforç.</p> +<h3 id="What_kinds_of_user-interfaces_can_be_made_with_XUL.3F" name="What_kinds_of_user-interfaces_can_be_made_with_XUL.3F">Quins tipus d'interfícies es poden crear amb XUL?</h3> +<p>XUL proporciona l'habilitat de crear la gran majoría d'elements trobats en les intefícies gràfiques modernes. Alguns elements que es poden crear són :</p> +<ul> + <li>Controls d'entrada com caixes de text i caselles de selecció</li> + <li>Barres d'eines amb botons o d'altres continguts</li> + <li>Menús en una barra d'eines o en menus emergents</li> + <li>Diàlegs amb pestanyes</li> + <li>Àrbres per informació jerarquitzada o tabular</li> + <li>Dreçeres de teclat</li> +</ul> +<p>El contingut que s'ensenya pot ser creat directament a un fitxer XUL o amb dades provinents d'una font de dades. A Mozilla, aquestes fonts de dades inclouen la bústia de correu de l'usuari, els seus marcadors i els resultats de les cerques. El contingut dels menús, àrbres i altres elements poden ser emplenats amb aquestes dades o amb les que proporciones tu mateix a dins un fitxer RDF.</p> +<p>Hi ha diverses maneres d'utilitzar XUL:</p> +<ul> + <li>Extensió del Firefox -- una extensió afegeix functionalitat al navegador mateix, sovint en forma de barres d'eines extra, menús contextuals, o modificacions de la interfície d'usuari (UI) del navegador. Això es fa utilitzant una característica de XUL anomanada <strong>overlay</strong>, que permet la UI provinent d'una font, en aquest cas, el navegador Firefox, ser mesclada en la UI per extensió. Les extensions també poden ser aplicades a altres productes basats en Mozilla com Thunderbird.</li> + <li>Aplicació per separat XULRunner -- XULRunner és una versió empaquetada de la plataforma Mozilla que us permet crear aplicacions XUL per separat. No es requereix un navegador per correr aquestes aplicacions, com si tinguessinel seu propi fitxer executable.</li> + <li>Paquet XUL -- in between the other two are applications which are created in the same way as an extension, but they act like a separate application in a separate window. This is used when you don't want to have the larger size of a complete XULRunner application, but don't mind requiring a Mozilla browser to be installed to be able to run the application.</li> + <li>Remote XUL application -- you can also just place XUL code on a web server and open it in a browser, as you would any other web page. This method is limited however, as there are security concerns that will limit the kinds of things you will be able to do, such as opening other windows.</li> +</ul> +<p>The first three types all require an installation to be performed on the user's machine. However, these types of applications do not have security restrictions placed on them, so they may access local files and read and write preferences, for example. For extensions, the XUL files and associated scripts and images used by an application would be packaged into a single file and downloaded and installed by the user. Mozilla applications such as Firefox provide an extension manager which allows packages to be installed without having to write a lot of complex code.</p> +<p>It is also possible to open XUL files directly from the file system or from a remote web site; however they will be restricted in the kinds of operations they can do, and some aspects of XUL will not work. However, if you do want to load XUL content from a remote site, the Web server must be set up to send XUL files with the content type "application/vnd.mozilla.xul+xml". XUL is usually stored in files with a <code>.xul</code> extension. You can open a XUL file with Mozilla as you would any other file, using the Open File command from the File menu or typing the URL into the address bar.</p> +<h3 id="What_do_I_need_to_know_to_use_this_tutorial.3F" name="What_do_I_need_to_know_to_use_this_tutorial.3F">What do I need to know to use this tutorial?</h3> +<p>You should have an understanding of <abbr title="HyperText Markup Language">HTML</abbr> and at least a basic understanding of XML and <abbr title="Cascading Style Sheets">CSS</abbr>. Here are some guidelines to keep in mind:</p> +<ul> + <li>XUL elements and attributes should all be entered in lowercase as XML is case-sensitive (unlike HTML).</li> + <li>Attribute values in XUL must be placed inside quotes, even if they are numbers.</li> + <li>XUL files are usually split into four files, one each for the layout and elements, for style declarations, for entity declarations (used for localization) and for scripts. In addition, you may have extra files for images or for platform specific data.</li> +</ul> +<p>XUL is supported in Mozilla and browsers that are also based upon on the Gecko engine, such as Netscape 6 or later and Mozilla Firefox. Due to various changes in XUL syntax over time, you will want to get the latest version for the examples to work properly. Most examples should work in Mozilla 1.0 or later. XUL is fairly similar in Firefox and to other browsers, although it has some specific differences such as support for customizable toolbars.</p> +<p>This tutorial attempts to cover much of XUL's functionality, however, not all features are discussed. Once you are familiar with XUL, you can use the <a href="/en/XUL_Reference" title="en/XUL_Reference">XUL Reference</a> to find out about other features supported by specific elements.</p> +<p>{{ Next("XUL Tutorial:XUL Structure") }}</p> +<p>{{ languages( { "de": "de/XUL_Tutorial/Einfuehrung", "es": "es/Tutorial_de_XUL/Introducci\u00f3n", "fr": "fr/Tutoriel_XUL/Introduction", "ja": "ja/XUL_Tutorial/Introduction", "pl": "pl/Kurs_XUL/Wprowadzenie", "zh-cn": "cn/XUL_\u6559\u7a0b/\u5f15\u8a00", "ru": "ru/\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e_\u043f\u043e_XUL/\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435" } ) }}</p> diff --git a/files/ca/archive/mozilla/xulrunner/index.html b/files/ca/archive/mozilla/xulrunner/index.html new file mode 100644 index 0000000000..61290f6117 --- /dev/null +++ b/files/ca/archive/mozilla/xulrunner/index.html @@ -0,0 +1,17 @@ +--- +title: XULRunner +slug: Archive/Mozilla/XULRunner +tags: + - XULRunner +translation_of: Archive/Mozilla/XULRunner +--- +<p> </p> +<div class="callout-box"><strong><a class="external" href="http://blogs.acceleration.net/ryan/archive/2005/05/06/1073.aspx">Tutorial de XULRunner (en)</a></strong><br> +Una breu introducció a XULRunner.</div> +<div>El <strong>XULRunner</strong> és un paquet d'execució que es pot usar per crear aplicacions <a href="/Ca/XUL" title="Ca/XUL">XUL</a>+<a href="/ca/XPCOM" title="ca/XPCOM">XPCOM</a> tan potents com el Firefox i el Thunderbird. Oferirà mecanismes per instal·lar, actualitzar i desinstal·lar aquestes aplicacions. El XULRunner també proporcionarà el <a href="/ca/Libxul" title="ca/Libxul">libxul</a>, una solució que permet integrar la tecnologia de Mozilla en altres projectes i productes.</div> +<table class="topicpage-table"> <tbody> <tr> <td> <h4 id="Versions" name="Versions">Versions</h4> <div class="note"> <p>S'ha alliberat XULRunner 1.9 i pot ser <a class="external" href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/" rel="external nofollow" title="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/">alliberat desde releases.mozilla.org</a>. Sisuplau llegeix les <a href="../../../../ca/XULRunner_1.9_Release_Notes" rel="internal">notes d'alliberament </a> per més informació sobre la instal·lació i desinstalació.</p> <p>Firefox 3 disposa un paquet privat de XULRunner, que pot executar qualsevol aplicació compatible fent servir el modificador <code>-app</code>.</p> <p>Hi ha <a href="../../../../ca/XULRunner%2f%2fOld_Releases" rel="internal">altres binaris</a> disponibles.</p> </div> <h4 id="Panor.C3.A0mica" name="Panor.C3.A0mica">Descripció General</h4> <ul> <li>{{ interwiki('wikimo', 'XULRunner:Roadmap', 'Planificació de desenvolupament (en)') }}</li> <li><a href="/Ca/XULRunner/Què_ofereix_XULRunner" title="ca/XULRunner/Què_ofereix_XULRunner">Què ofereix XULRunner</a></li> <li><a href="/ca/PMF_de_XULRunner" title="ca/PMF_de_XULRunner">PMF de XULRunner</a></li> <li>Compilacions nocturnes: <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-mozilla1.8.0/">stable-1.9branch</a> </li> </ul> <h4 id="Documentation" name="Documentation">Documentació</h4> <dl> <dt><a href="/Special:Tags?tag=XULRunner&language=ca" title="Special:Tags?tag=XULRunner&language=ca">Veure Tot...</a></dt> </dl> <dl> <dt><a href="/ca/Getting_started_with_XULRunner" title="ca/Getting_started_with_XULRunner">Començant amb XULRunner</a></dt> <dd><small>Un petit tutorial sobre construïr aplicacions d'escriptori amb XULRunner.</small></dd> </dl> <dl> <dt><a class="external" href="http://zenit.senecac.on.ca/wiki/index.php/XULRunner_Guide">Guia de XULRunner</a></dt> <dd><small>Una introducció complerta i un tutorial per XULRunner que cobreix molta de la documentació aquí trobada.</small></dd> </dl> <dl> <dt><a class="external" href="http://blogs.acceleration.net/ryan/archive/2005/05/06/1073.aspx">Un Tutorial de XULRunner</a></dt> <dd><small>Una petita introducció a XULRunner.</small></dd> </dl> <dl> <dt><a href="/ca/XULRunner_tips" title="ca/XULRunner_tips">Consells per XULRunner</a></dt> <dd><small>Una col·lecció de consells i receptes per treballar amb XULRunner.</small></dd> </dl> <dl> <dt><a href="/ca/XULRunner/Deploying_XULRunner_1.8" title="ca/XULRunner/Deploying_XULRunner_1.8">Desplegant XULRunner 1.8</a></dt> <dd><small>XULRunner 1.8 és una versió preliminar estable; aquí trobaràs com es pot fer servir per desplegar aplicacions XUL en un entorn de producció.</small></dd> </dl> <dl> <dt><a href="/ca/XULRunner_Hall_of_Fame" title="ca/XULRunner_Hall_of_Fame">Saló de la fama de XULRunner</a></dt> <dd><small>Llista totes les aplicacions disponibles basades en XULRunner.</small></dd> </dl> <dl> <dt><a href="/ca/Build_Documentation" title="ca/Build_Documentation">Documentatió d'instal·lació</a></dt> <dd><small>Aprén com obtenir el codi font i instal·lar-lo enel teu sistema.</small></dd> </dl> <dl> <dt> <dl> <dt><a href="/ca/Debugging_a_XULRunner_Application" title="ca/Debugging_a_XULRunner_Application">Documentació sobre Depuració</a></dt> </dl> </dt><dd><small>Passos per configurar Venkman per debugar la teva aplicació.</small></dd> </dl> </td> <td> <h4 id="Community" name="Community">Community</h4> <ul> <li>Consulta els forums de Mozilla ...</li> </ul> <p>{{ DiscussionList("dev-platform", "mozilla.dev.platform") }}</p> <ul> <li><a class="link-irc" href="irc://irc.mozilla.org/#xulrunner">#xulrunner on irc.mozilla.org</a></li> <li><a href="/ca/XULRunner/Community" title="ca/XULRunner/Community">Altres hipervincles...</a></li> </ul> <h4 id="Related_Topics" name="Related_Topics">Temes Rel·lacionats</h4> <dl> <dd><a href="/Ca/XUL" title="ca/XUL">XUL</a></dd> </dl> </td> </tr> </tbody> +</table> +<p><span class="comment">Categories</span></p> +<p><span class="comment">Interwiki Language Links</span></p> +<p> </p> +<p>{{ languages( { "en": "ca/XULRunner", "es": "es/XULRunner", "fr": "fr/XULRunner", "it": "it/XULRunner", "zh-cn": "cn/XULRunner", "ja": "ja/XULRunner", "pl": "pl/XULRunner" } ) }}</p> diff --git a/files/ca/archive/mozilla/xulrunner/què_ofereix_xulrunner/index.html b/files/ca/archive/mozilla/xulrunner/què_ofereix_xulrunner/index.html new file mode 100644 index 0000000000..c7bba11eec --- /dev/null +++ b/files/ca/archive/mozilla/xulrunner/què_ofereix_xulrunner/index.html @@ -0,0 +1,61 @@ +--- +title: Què ofereix XULRunner +slug: Archive/Mozilla/XULRunner/Què_ofereix_XULRunner +translation_of: Archive/Mozilla/XULRunner/What_XULRunner_Provides +--- +<p> </p> +<p>El propòsit de <a href="/en/XULRunner" title="en/XULRunner">XULRunner</a> és el de proveir una solució per el desplegament d'aplicacions XUL ( principalment Firefox i Thunderbird ), també proveint un mecanisme d'incrustracio. Les següents característiques ja estan implementades o bé estan planejades :</p> +<h3 id="Gecko_Features" name="Gecko_Features">Característiques de Gecko</h3> +<ul> + <li><a href="/en/XPCOM" title="en/XPCOM">XPCOM</a></li> + <li>Xarxa</li> + <li>Motor de renderització Gecko</li> + <li>Suport d'edició i transacció DOM (sense Interfície)</li> + <li>Criptografia</li> + <li><a href="/en/XBL" title="en/XBL">XBL</a> (XBL2 planificat)</li> + <li><a href="/en/XUL" title="en/XUL">XUL</a></li> + <li><a href="/en/SVG" title="en/SVG">SVG</a></li> + <li><a href="/en/XSLT" title="en/XSLT">XSLT</a></li> + <li>Extres XML (<code><a href="/en/XMLHttpRequest" title="en/XMLHttpRequest">XMLHttpRequest</a></code>, <code><a href="/en/DOMParser" title="en/DOMParser">DOMParser</a></code>, etc.)</li> + <li>Serveis Web (SOAP)</li> + <li>Suport per Auto-actualització <em>(encara no finalitzat)</em></li> + <li>Type ahead find toolbar</li> + <li>History implementation (the places implementation in the 1.9 cycle)</li> + <li>Accessibility support</li> + <li>IPC services for communication between gecko-based apps <em>(not yet complete)</em></li> + <li><a href="/en/Storage" title="en/Storage">Storage</a>/sqlite interfaces <em>(not yet turned on by default)</em></li> +</ul> +<h3 id="User_Interface_Features" name="User_Interface_Features">User Interface Features</h3> +<p>The following user interface is supplied by XULRunner, and may be overridden by embedders under certain circumstances:</p> +<ul> + <li>APIs and user interface for installing, uninstalling, and upgrading XUL applications. See the {{ interwiki('wikimo', 'XUL:Installation_Story', 'wikimo:XUL:Installation Story') }}.</li> + <li>Extension Manager</li> + <li>File picker (uses native OS filepicker as appropriate)</li> + <li>Find toolbar</li> + <li>Helper app dialog/UI</li> + <li>Security UI (maintenance of SSL keychains, etc)</li> +</ul> +<h3 id="Embedding_APIs" name="Embedding_APIs">Embedding APIs</h3> +<p>The following embedding APIs are provided by XULRunner:</p> +<ul> + <li>Cross-platform embedding (XRE_InitEmbedding)</li> + <li><a href="/en/JavaXPCOM" title="en/JavaXPCOM">JavaXPCOM</a> embedding</li> + <li>gtkmozembed (Linux only)</li> + <li>ActiveX control (Windows only) <em>(not yet complete)</em></li> + <li>NSView-based-widget (Mac OS X only) <em>(not yet complete)</em></li> +</ul> +<h3 id="The_.22Maybe.22_List" name="The_.22Maybe.22_List">The "Maybe" List</h3> +<p>The following features have been discussed and may be included if developer time permits and code size is controlled:</p> +<ul> + <li>LDAP support</li> + <li>Spellchecking support (with or without dictionaries provided) see <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=285977">bug 285977</a></li> + <li>Core support for profile roaming (with application-specific extensibility)</li> + <li><a href="/en/PyXPCOM" title="en/PyXPCOM">PyXPCOM</a> embedding <em>(not yet complete)</em> - but it does work, if you compile a custom build that includes the PyXPCOM bindings and there is a working python available. ActiveState uses PyXPCOM in their products.</li> +</ul> +<h3 id="What.27s_out" name="What.27s_out">What's out</h3> +<p>XULRunner will not supply:</p> +<ul> + <li>Bookmarks or History UI (must be managed by the application/embedder)</li> + <li>XForms (XForms will be available as an extension)</li> +</ul> +<p><span class="comment">Interwiki Language Links</span></p> diff --git a/files/ca/creació_d'un_microsumari/index.html b/files/ca/creació_d'un_microsumari/index.html new file mode 100644 index 0000000000..4ad9660818 --- /dev/null +++ b/files/ca/creació_d'un_microsumari/index.html @@ -0,0 +1,207 @@ +--- +title: Creació d'un microsumari +slug: Creació_d'un_microsumari +translation_of: Archive/Mozilla/Creating_a_microsummary +--- +<p> + Un generador de microsumaris és un conjunt d'instruccions per a crear un microsumari a partir del contingut d'una pàgina. Les pàgines web poden fer referència als generadors a través d'elements <code><link rel="microsummary"></code> en llurs elements de capçalera <head>. Els generadors també poden baixar-se i instaŀlar-se de forma independent pels usuaris si aquests inclouen una llista de les pàgines a les quals s'apliquen.</p> +<p> + En aquest tutorial crearem un generador de microsumaris per a la <a class="external" href="http://www.spreadfirefox.com/">pàgina d'inici d'Spread Firefox</a>. Es mostrarà el recompte actual de baixades del Firefox juntament amb l'etiqueta <cite>baixades del Firefox</cite>; per exemple: <cite>174475447 baixades del Firefox</cite>.</p> +<p> + També crearem un full de transformació XSLT que converteix la pàgina en el seu microsumari, aprendrem com especificar que el generador s'apliqui en aqueixa pàgina, i esbrinarem com fer el generador disponible perquè pugui baixar-se i instaŀlar-se.</p> +<p> + En cada pas de la revisió del full de transformació, com altre codi del tutorial, el text que s'afegeixi es mostrarà <b>en negreta</b> perquè el procés pugui seguir-se més fàcilment.</p> +<h2 id="Inici" name="Inici"> + Inici</h2> +<p> + Els generadors són documents XML que tenen com element arrel l'etiqueta <code><generator></code> en l'espai de noms <cite><a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a></cite>. Per a començar a crear un generador, partim d'un nou fitxer de text buit i li afegim una declaració XML i un element <generator> buit:</p> +<pre class="eval"><b><?xml version="1.0" encoding="UTF-8"?> </b> +<b><generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>"> </b> +<b></generator></b> +</pre> +<h2 id="Donant-li_un_nom" name="Donant-li_un_nom"> + Donant-li un nom</h2> +<p> + Els generadors cal que tinguin atributs de nom que són descripcions arbitràries dels microsumaris que el generador crea. Cal que els noms siguin suficientment descriptius perquè els usuaris puguin fer-se una idea de quina informació es proporciona des dels microsumaris. Atès que el nostre generadpr crearà microsumaris que mostren el recompte baixades del Firefox, un nom adequat pot ser «Recompte de baixades del Firefox»:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + <b>name="Recompte de baixades del Firefox"</b>> +</generator> +</pre> +<h2 id="Addici.C3.B3_d.27un_full_de_transformaci.C3.B3_XSLT" name="Addici.C3.B3_d.27un_full_de_transformaci.C3.B3_XSLT"> + Addició d'un full de transformació XSLT</h2> +<p> + Els generadors han d'incloure un full de transformació XSLT (també conegut com full d'estil XSLT) que transformi el contingut de la pàgina en el seu microsumari. L'XLST és un potent llenguatge per a transformar documents en diferents representacions de la mateixa informació.</p> +<p> + Afegiu el full de transformació XSLT al generador incloent-hi l'element <code><template></code>:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <b><template></b> + <b><transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"></b> + <b></transform></b> + <b></template></b> +</generator> +</pre> +<p> + Tingueu en compte que mentre els generadors de microsumaris poden incloure codi XSLT arbitrari, si incorporeu XSLT que produeixi sortida en text ric, el Firefox actualment només podrà mostrar-la en text net.</p> +<h2 id="Especificaci.C3.B3_d.27un_tipus_de_sortida" name="Especificaci.C3.B3_d.27un_tipus_de_sortida"> + Especificació d'un tipus de sortida</h2> +<p> + Atès que el full de transformació XSLT generarà un microsumari en format text, cal que ho indiquem amb l'element <output>:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + </transform> + </template> +</generator> +</pre> +<h2 id=".C3.9As_d.27una_plantilla_d.27XSLT_simple.2C_.3Ctemplate.3E" name=".C3.9As_d.27una_plantilla_d.27XSLT_simple.2C_.3Ctemplate.3E"> + Ús d'una plantilla d'XSLT simple, <template></h2> +<p> + El processador d'XSLT transforma els documents comparant cada element XSLT en el full de transformació amb el conjunt de nodes del document. Quan un atribut de <template> coincideix amb el d'un node, el processador realitza les transformacions que s'especifiquen en el contingut de l'element.</p> +<p> + Aquest és un potent mecanisme, perquè us permet recòrrer l'àrbol de nodes d'un document, generant recursivament una sortida basada en els continguts del document. Per a generar un microsumari per a la pàgina d'Spread Firefox page, només ens cal un únic element <template> que coincideixi amb el node arrel del document i que es processi d'una vegada:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + <template match="/"> + </template> + </transform> + </template> +</generator> +</pre> +<h2 id="Incloure_el_recompte_de_baixades" name="Incloure_el_recompte_de_baixades"> + Incloure el recompte de baixades</h2> +<p> + Per a incloure el recompte de baixades en la sortida del full de transformació XSLT, cal que afegim l'element XSLT <code><value-of></code> a la plantilla del qual l'atribut de selecció <code>select</code> conté una expressió XPath que apunta al node que conté el recompte.</p> +<p> + L'XPath és un llenguatge per a identificar nodes en documents HTML/XML. També conté funcions bàsiques per a manipular aqueixos nodes i llur contingut. La forma més fàcil d'obtenir una expressió XPath que apunti al node en qüestió és utilitzar l'[<a class="link-https" href="https://addons.mozilla.org/firefox/1095/">extensió XPath Checker</a>.</p> +<p> + Instaŀleu l'extensió (reinicie el Firefox per a completar la instaŀlació), a continuació aneu a la <a class="external" href="http://www.spreadfirefox.com/">pàgina d'inici d'Spread Firefox</a>, cerqueu el recompte de baixades del Firefox (un gran número a sota de la columna dreta), cliqueu amb el botó secondari al número, i seleccioneu <cite>Visualitza l'XPath</cite> des del menú contextual.</p> +<p> + L'XPath Checker obrirà una nova finestra. Aquesta inclourà un camp d'XPath que conté l'expressió <cite>XPath</cite> que a punta al node del recompte de baixades: <cite>id('download-count')</cite>.</p> +<p> + Afegeix un element <code><value-of></code> a l'element XSLT <code><template></code>, el qual el seu atribut <code><select></code> conté l'expressió XPath:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + <template match="/"> + <b><value-of select="id('download-count')"/></b> + </template> + </transform> + </template> +</generator> +</pre> +<h2 id="Addici.C3.B3_d.27un_text" name="Addici.C3.B3_d.27un_text"> + Addició d'un text</h2> +<p> + Per a incloure l'etiqueta de baixades del Fx en el microsumari, cal que afegim un element XSLT a l'element XSLT <code><template></code>, el contingut del qual és el text que volem afegir.</p> +<p> + Afegeix un element <code><text></code> a la plantilla XSLT amb el contingut de <cite>baixades del Firefox</cite>:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + <template match="/"> + <value-of select="id('download-count')"/> + <b><text>Baixades del Firefox</text></b> + </template> + </transform> + </template> +</generator> +</pre> +<p> + Tingueu en compte que l'espai en blanc entre les etiquetes XSLT no apareix a la sortida de l'XSLT, a diferència de l'HTML, on aquell espai en blanc esdevé un espai simple. Per això, assegureu-vos llavors d'incloure un espai a la frase per a separar-la del recompte de baixades.</p> +<p> + Amb aquesta addició, hem acabat d'escriure el full de transformació XSLT que permet crear un microsumari a partir de la pàgina d'inici de l'Spread Firefox.</p> +<h2 id="Especifar_en_quina_p.C3.A0gina_s.27aplica_el_generador" name="Especifar_en_quina_p.C3.A0gina_s.27aplica_el_generador"> + Especifar en quina pàgina s'aplica el generador</h2> +<p> + Ara que ja hem escrit un full de transformació, hem d'especificar la pàgina on s'aplica. Si fóssim els webmestres d'Spread Firefox, podríem simplement referenciar el generador dins de la mateixa pàgina afegint l'etiqueta <code><link rel="microsummary"></code> dins de l'element <code><head></code>:</p> +<pre class="eval"><head> + ... + <b><link rel="microsummary" href="camí/al/nostre/generador.xml"></b> +</head> +</pre> +<p> + Atès que no en som els webmestres, podem especificar la pàgina on s'aplica dins del mateix generador i fer-lo disponible perquè pugui baixar-se i instaŀlar-se. Per a especificar les pàgines on s'aplica el generador, utilitzem l'element <code><pages></code> dins de l'element <code><generator></code>:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" + name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + <template match="/"> + <value-of select="id('download-count')"/> + <text>Baixades del Firefox</text> + </template> + </transform> + </template> + <b><pages></b> + <b></pages></b> +</generator> +</pre> +<p> + L'element <code><pages></code> pot contenir una seqüència d'elements <code><include></code> i <code><exclude></code> que especifica les pàgines on el generador s'aplica i no s'aplica, respectivament.</p> +<p> + Per a fer que un generador s'apliqui a una pàgina, afegiu un element <code><include></code> el contingut del qual sigui una expressió regular que coincideixi amb la pàgina. Per a fer que el generador no s'apliqui a una pàgina, afegiu un element <code><exclude></code> el contingut del qual sigui una expressió regular que també coincideixi amb la pàgina.</p> +<p> + Per defecte, els generadors no s'apliquen a cap pàgina, per això heu de llistar-les explícitament a les pàgines on s'apliquen, i no heu d'excloure cap pàgina excepte si les haguéssiu inclós anteriorment.</p> +<p> + Afegiu un element <code><include></code> que coincideixi amb la pàgina d'Spread Firefox:</p> +<pre class="eval"><?xml version="1.0" encoding="UTF-8"?> +<generator xmlns="<a class="external" href="http://www.mozilla.org/microsummaries/0.1" rel="freelink">http://www.mozilla.org/microsummaries/0.1</a>" name="Recompte de baixades del Firefox"> + <template> + <transform xmlns="<a class="external" href="http://www.w3.org/1999/XSL/Transform" rel="freelink">http://www.w3.org/1999/XSL/Transform</a>" version="1.0"> + <output method="text"/> + <template match="/"> + <value-of select="id('download-count')"/> + <text> Fx downloads</text> + </template> + </transform> + </template> + <pages> + <b><include><a class="external" href="http://(www" rel="freelink">http://(www</a>\.)?spreadfirefox\.com/(index\.php)?</include></b> + </pages> +</generator> +</pre> +<h2 id="Fer_el_generador_disponible_per_a_baixar-se" name="Fer_el_generador_disponible_per_a_baixar-se"> + Fer el generador disponible per a baixar-se</h2> +<p> + Ara que el generador s'aplica a la pàgina d'inici de l'Spread Firefox, només queda fer-lo disponible per a ser descarregat. Per a fer-ho, cal que el posem al web i creem un enllaç Javascript en alguna pàgina web que faci una crida al mètode del Firefox <cite>window.sidebar.addMicrosummaryGenerator()</cite> per a baixar i instaŀlar el generador.</p> +<p> + Per exemple, si posem el fitxer del generador a <a class="external" href="http://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml" rel="freelink">http://people.mozilla.com/~myk/micro...-generator.xml</a>, i volguéssim que els usuaris poguessin instaŀlar-lo de from <a class="external" href="http://people.mozilla.com/~myk/microsummaries/tutorial/index.html" rel="freelink">http://people.mozilla.com/~myk/micro...ial/index.html</a>, podríem afegir el següent codi a la pàgina <cite>index.html</cite>:</p> +<pre class="eval"><b><a href="javascript:window.sidebar.addMicrosummaryGenerator('<span class="nowiki">http://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml</span>')">Instaŀla el microsumari de la pàgina d'inici de l'Spread Firefox!</a></b> +</pre> +<p> + En clicar aquest enllaç, es generarà un error de JavaScript en els navegadors que no permeten utilitzar microsumaris, no obstant això, per a millorar la navegació d'aqueixos usuaris, hauríem de comprovar si utilitzen un navegador que accepti microsumaris, i per altra banda, mostrar un missatge explicatiu si no. Podem fer-ho amb aquest codi:</p> +<pre class="eval"><b> <script></b> +<b> const warning = "Us cal un navegador que permeti utilitzar microsumaris, com ara el Firefox 2.0, per a instaŀlar i utilitzar generadors de microsumaris.";</b> +<b> function addGenerator(url) {</b> +<b> if (typeof window.sidebar == "object" &&</b> +<b> typeof window.sidebar.addMicrosummaryGenerator == "function")</b> +<b> window.sidebar.addMicrosummaryGenerator(url);</b> +<b> else</b> +<b> alert(warning);</b> +<b> }</b> +<b> </script></b> +<b><a href="javascript:addGenerator('<span class="nowiki">http://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml</span>')">Instaŀla el microsumari de la pàgina d'inici de l'Spread Firefox!</a></b> +</pre> +<h2 id="Conclusi.C3.B3" name="Conclusi.C3.B3"> + Conclusió</h2> +<p> + Ara ja hauríeu de tenir un generador de microsumaris que mostri el recompte de baixades del Firefox quan l'instaŀleu. Afegiu la pàgina d'inici de l'Spread Firefox a les adreces d'interès, i seleccioneu-ne el microsumari del menú desplegable en el diàleg <cite>Afegeix a les adreces d'interès</cite>.</p> +<p> + Per a més informació, consulteu la <a class="external" href="http://wiki.mozilla.org/Microsummaries">pàgina d'inici dels microsumaris</a> (en anglès).</p> diff --git a/files/ca/creació_de_connectors_mozsearch/index.html b/files/ca/creació_de_connectors_mozsearch/index.html new file mode 100644 index 0000000000..a99b257469 --- /dev/null +++ b/files/ca/creació_de_connectors_mozsearch/index.html @@ -0,0 +1,53 @@ +--- +title: Creació_de_connectors_MozSearch +slug: Creació_de_connectors_MozSearch +tags: + - Complements + - Connectors_de_cerca +translation_of: Mozilla/Creating_MozSearch_plugins +--- +<p>El <a href="ca/Firefox_2">Firefox 2</a> utilitza una forma simplificada del format <a class="external" href="http://opensearch.org/">OpenSearch</a> per a emmagatzemar els connectors de cerca. Un connector de cerca MozSearch és un fitxer XML que descriu el motor de cerca, el seu URL, i els paràmetres que cal passar a l'URL. +</p> +<div class="warning"><b>Avís:</b> MozSearch no és estàndard i només és per a ús intern dins del projecte Mozilla. Només hauria d'utilitzar-se si la vostra intenció és distribuir el connector de cerca juntament amb una extensió del Firefox, o si n'esteu creant perquè puguin anar-hi per defecte amb el programa. Per a crear connectors de cerca que s'instal·lin des del web, consulteu <a href="ca/Creaci%c3%b3_de_connectors_OpenSearch_per_al_Firefox">Creació de connectors OpenSearch per al Firefox</a></div> +<h2 id="El_fitxer_del_connector" name="El_fitxer_del_connector">El fitxer del connector</h2> +<p>El format MozSearch és similar al de l'<a href="ca/Creaci%c3%b3_de_connectors_OpenSearch_per_al_Firefox">OpenSearch</a>. L'única diferència és l'element arrel i l'espai de noms XML. +</p> +<h2 id="Exemple:_cercar_amb_Yahoo.21" name="Exemple:_cercar_amb_Yahoo.21">Exemple: cercar amb Yahoo!</h2> +<p>El següent XML és el connector de cerca de Yahoo! que s'inclou al Firefox 2: +</p> +<pre><SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> +<ShortName>Yahoo</ShortName> +<Description>Cerca de Yahoo!</Description> +<InputEncoding>UTF-8</InputEncoding> +<SuggestionUrl>http://ff.search.yahoo.com/gossip?output=fxjson&command=</SuggestionUrl> +<Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image> +<Url type="text/html" method="GET" template="http://ct.search.yahoo.com/search"> + <Param name="p" value="{searchTerms}"/> + <Param name="ei" value="UTF-8"/> + <Param name="fr" value="moz2"/> +</Url> +<SearchForm>http://ct.search.yahoo.com/</SearchForm> +</SearchPlugin> +</pre> +<p>Suposem que l'usuari tria el connector del motor de cerca de Yahoo! i introdueix «mozilla» en el quadre de cerca, i a continuacó prem la tecla Retorn. El Firefox farà servir la descripció del motor de cerca anterior per a construir la següent URL de cerca: +</p><p><span class="nowiki">http://ct.search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2</span> +</p><p>Si l'usuari clica la icona de la lupa de barra de cerca, o bé tria l'opció de Cerca Web al menú d'Eines quan la barra de cerca no sigui visible, el navegador el portarà a <tt><span class="nowiki">http://ct.search.yahoo.com/</span></tt>, el valor de l'element <code><SearchForm></code>. +</p> +<h2 id="Exemple:_cercar_al_MDC" name="Exemple:_cercar_al_MDC">Exemple: cercar al MDC</h2> +<p>Aquest connector us permet cercar fàcilment el lloc web del Centre de desenvolupament de Mozilla. +</p> +<pre><SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> +<ShortName>MDC</ShortName> +<Description>Cerca del Centre de desenvolupament de Mozilla</Description> +<InputEncoding>UTF-8</InputEncoding> +<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz%2F%2Fz8DJQAggJiQOe%2Ffv2fv7Oz8rays%2FN%2BVkfG%2FiYnJfyD%2F1%2BrVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw%2F8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi%2FG%2BQKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo%2BMXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia%2BCuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq%2FvLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg%2FkdypqCg4H8lUIACnQ%2FSOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD%2BaDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D</Image> +<Url type="text/html" method="GET" template="http://developer.mozilla.org/ca/docs/Special:Search?search={searchTerms}"/> +<SearchForm>http://developer.mozilla.org/ca/docs/Special:Search</SearchForm> +</SearchPlugin> +</pre> +<p>Tingueu en compte que en aquest cas, en comptes de fer servir <code><Param></code> per a definir els paràmetres per al motor de cerca, aquests simplement s'inclouen dins de l'URL de plantilla. Aquesta és, de fet, la forma recomanable de fer-ho quan s'utilitzi <code>GET</code> com a mètode. <code><Param></code> ha d'utilitzar-se per a <code>POST</code>. +</p> +<h2 id="Vegeu_tamb.C3.A9" name="Vegeu_tamb.C3.A9">Vegeu també</h2> +<ul><li><a href="ca/Creaci%c3%b3_de_connectors_OpenSearch_per_al_Firefox#Resoluci.C3.B3_de_problemes">Resolució de problemes</a> +</li></ul> +{{ languages( { "en": "en/Creating_MozSearch_plugins", "es": "es/Creaci\u00f3n_de_plugins_MozSearch", "fr": "fr/Cr\u00e9ation_de_plugins_MozSearch", "ja": "ja/Creating_MozSearch_plugins", "it": "it/Creare_Plugin_MozSearch", "pl": "pl/Tworzenie_wtyczek_MozSearch" } ) }} diff --git a/files/ca/fent_servir_mòduls_de_codi_javascript/index.html b/files/ca/fent_servir_mòduls_de_codi_javascript/index.html new file mode 100644 index 0000000000..c2ae03da87 --- /dev/null +++ b/files/ca/fent_servir_mòduls_de_codi_javascript/index.html @@ -0,0 +1,102 @@ +--- +title: Fent servir mòduls de codi Javascript +slug: Fent_servir_mòduls_de_codi_Javascript +translation_of: Mozilla/JavaScript_code_modules/Using +--- +<p> </p> +<p> </p> +<p>{{ Fx_minversion_header(3) }}</p> +<p>Els mòduls de codi és són un concepte introduït a Firefox 3 (Gecko 1.9) i es poden fer servir per compartir codi entre diferents àmbits. Els mòduls a més es poden fer servir per crear codi Javascript que segueix el patró singleton i que anteriorment hagin necessitat fer servir objectes XPCOM Javascript. Un mòdul és simplement codi Javascript registrat i desat en una localització específica. El mòdul serà carregat en un àmbit Javascript específic segons sigui un script XUL o un script XPCOM fent servir <a href="/en/Components.utils.import" title="en/Components.utils.import">Components.utils.import</a>.</p> +<p>Un mòdul simple pot ser aquest :</p> +<pre>var EXPORTED_SYMBOLS = ["foo", "bar"] + +function foo() { + return "foo"; +} + +var bar = { + name : "bar", + size : "3" +}; + +var dummy = "dummy"; +</pre> +<p>Cal tenir en compte que el mòdul fa servir sintàxi tradicional per crear funcions, objectes, constants i qualsevol altre tipus Javascript. El mòdul també defineix una llista especial anomenada EXPORTED_SIMBOLS que serà exportat desde el codi i s'injectarà en l'àmbit d'importació. Per exemple :</p> +<pre>Components.utils.import("resource://app/modules/my_module.jsm"); + +alert(foo()); // displays "foo" +alert(bar.size + 3); // displays "6" +alert(dummy); // displays "dummy is not defined" because 'dummy' was not exported from the module +</pre> +<p>Un comportament extremadament important és el de <a href="/en/Components.utils.import" title="en/Components.utils.import">Components.utils.import</a>, ja que els mòduls són desats en un cache temporal de manera que les següents importacions del mateix no recarregaran el codi si no que faran servir la versió cachejada. Això vol dir que un mòdul pot ser compartit per vàries importacions. Qualsevol modificació que es faci a les funcions, variables o objectes del mòdul en un àmbit d'execució estarà disponible a tots els altres àmbits automàticament. Per exemple en el mòdul simple que hem presentat abans si havessim importat en dos llocs diferents els canvis d'un restarien disponibles en l'altre de manera automàtica.</p> +<p>Àmbit 1:</p> +<pre>Components.utils.import("resource://app/modules/my_module.jsm"); + +alert(bar.size + 3); // Imprimeix "6" + +bar.size = 10; +</pre> +<p>Àmbit 2:</p> +<pre>Components.utils.import("resource://app/modules/my_module.jsm"); + +alert(foo()); // Imprimeix "foo" +alert(bar.size + 3); // Imprimeix "13" +</pre> +<p>Aquest comportament de compartir codi es pot fer servir per crear objectes que segueixin el patró singleton per compatir data entre finestres, scripts XUL i components XPCOM.</p> +<p>{{ Note("Cada àmbit que import aun mòdul el rep per valor els símbols importats en aquest mòdul. Els canvis als símbols no seran propagats a altres àmbits.") }}</p> +<p>Àmbit 1:</p> +<pre>Components.utils.import("resource://app/modules/my_module.jsm"); + +bar = "foo"; +alert(bar); // Imprimeix "foo" +</pre> +<p>Àmbit 2:</p> +<pre>Components.utils.import("resource://app/modules/my_module.jsm"); + +alert(bar); // Imprimeix "[object Object]" +</pre> +<p>L'efecte principal de la còpia per valor és que les variables globals o els tipus simples no seràn compartits per els diferents àmbits d'execució disponibles. Posa sempre les variables a dins d'una classe i exporta aquesta ( tal i com fem amb bar en l'exemple anterior ).</p> +<h4 id="resource:_Protocol" name="resource:_Protocol">resource: Protocol</h4> +<p>Quan ferm servir <a href="/en/Components.utils.import" title="en/Components.utils.import">Components.utils.import</a>, et donaràs compte que els mòduls són carregats fent servir el protocol "<a class="external" rel="freelink">resource://</a>". La sintàxi bàsica per a un recurs en una URL és la següent :</p> +<pre class="eval"><a class="external" rel="freelink">resource://</a><alias>/<cami-relatiu>/<file.js|jsm> +</pre> +<p>El <code><alias></code> és un àlies al lloc que sempre és un camí relatiu a l'aplicació o al entorn d'execució XUL. Hi ha vàris àlies predefinits que configura l'entorn d'execució XUL automàticament:</p> +<ul> + <li><code>app</code> - Àlies al camí de l'aplicació XUL.</li> + <li><code>gre</code> - Àlies al camí de l'entorn d'execució i sdk XUL.</li> +</ul> +<p>El <code><relative-path></code> pot ser varis nivells més endins i sempre és relatiu al camí ja definit a <alias>. El camí més comú és "modules" tal i com fa servir Firefox i XUL Runner. Els mòduls són fitxers Javascript amb l'extensió .js o .jsm.</p> +<p>La manera més fàcil d'afegir un mòdul a una aplicació XUL o una extensió Firefox és definir-la amb un àlies en el fitxer <a href="/en/Chrome_Registration" title="en/Chrome_Registration">chrome manifest</a> de la següent manera:</p> +<pre class="eval">resource <em>aliasname</em> <em>uri/to/files/</em> +</pre> +<p>Per exemple, si el XPI per l'extensió <em>foo</em> inclou un directori principal per als mòduls i que conté el <em>bar.js</em>, pots crear un àlies a aquest directori amb la següent instrucció :</p> +<pre class="eval">resource foo modules/ +</pre> +<p>Llavors ja podràs importar el mòdul en el teu codi Javascript amb la següent sintàxi :</p> +<pre class="eval">Components.utils.import("<a class="external" rel="freelink">resource://foo/bar.js</a>"); +</pre> +<h3 id="Programmatically_adding_aliases" name="Programmatically_adding_aliases">Afegint àlies de manera automatitzada</h3> +<p>Els àlies es poden afegir de manera automatitzada a través de codi font també. Per exemple :</p> +<pre>var ioService = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); +var resProt = ioService.getProtocolHandler("resource") + .QueryInterface(Components.interfaces.nsIResProtocolHandler); + +var aliasFile = Components.classes["@mozilla.org/file/local;1"] + .createInstance(Components.interfaces.nsILocalFile); +aliasFile.initWithPath("/some/absolute/path"); + +var aliasURI = ioService.newFileURI(aliasFile); +resProt.setSubstitution("myalias", aliasURI); + +// Assumeix que el codi dels móduls són en el directori de l'àlies i no en cap subdirectori +Components.utils.import("resource://myalias/file.jsm"); + +// ... +</pre> +<h3 id="See_also" name="See_also">Veure més</h3> +<ul> + <li><a class="external" href="http://wiki.mozilla.org/Labs/JS_Modules">Mozilla Labs JS Modules</a> - Aquesta pàgina conté un llistat de mòduls Javascript, amb la seva documentació i un hipervincle per baixar-los de manera que es puguin fer servir en el nostre codi.</li> +</ul> +<p> </p> +<p>{{ languages( { "ca":"ca/Fent_servir_mòduls_de_codi_Javascript","es": "es/Usando_m\u00f3dulos_de_c\u00f3digo_JavaScript", "fr": "fr/Utilisation_de_modules_de_code_JavaScript", "ja": "ja/Using_JavaScript_code_modules", "pl": "pl/Zastosowanie_modu\u0142\u00f3w_JavaScript" } ) }}</p> diff --git a/files/ca/firefox_2_per_a_desenvolupadors/index.html b/files/ca/firefox_2_per_a_desenvolupadors/index.html new file mode 100644 index 0000000000..911a4004f5 --- /dev/null +++ b/files/ca/firefox_2_per_a_desenvolupadors/index.html @@ -0,0 +1,46 @@ +--- +title: Firefox 2 per a desenvolupadors +slug: Firefox_2_per_a_desenvolupadors +translation_of: Mozilla/Firefox/Releases/2 +--- +<h2 id="Noves_caracter.C3.ADstiques_de_desenvolupament_en_el_Firefox_2">Noves característiques de desenvolupament en el Firefox 2</h2> +<p>El Firefox 2 introdueix un gran nombre de noves funcionalitats i possibilitats. Aquest article us proporciona tot un seguit d'articles que cobreixen aquestes noves característiques.</p> +<h3 id="Per_a_desenvolupadors_de_llocs_web_i_d.27aplicacions">Per a desenvolupadors de llocs web i d'aplicacions</h3> +<dl> <dt><a class="external" href="http://wiki.mozilla.org/Microsummaries">Microsumaris</a> (en anglès)</dt> <dd>Els microsumaris són breus compilacions del contingut més important de certes pàgines web que s'actualitzen regularment. Els desenvolupadors del lloc web o de terceres aplicacions poden proporcionar-los. Els usuaris poden llavors triar mostrar microsumaris en comptes de títols estàtics en afegir les pàgines a les adreces d'interès juntament amb microsumaris.</dd> +</dl> +<dl> <dt><a href="/ca/Creació_d'un_microsumari" title="ca/Creació_d'un_microsumari">Creació d'un microsumari</a></dt> <dd>Un programa d'aprenentatge per a la creació d'un generador de microsumaris.</dd> +</dl> +<dl> <dt><a href="/ca/Creació_de_connectors_MozSearch" title="ca/Creació_de_connectors_MozSearch">Creació de connectors MozSearch</a></dt> <dd>El Firefox 2 implementa MozSearch, un format de connector de cerca basat en OpenSearch.</dd> +</dl> +<dl> <dt><a href="/ca/Implementació_de_suggeriments_en_els_connectors_de_cerca" title="ca/Implementació_de_suggeriments_en_els_connectors_de_cerca">Implementació de suggeriments en els connectors de cerca</a></dt> <dd>Com fer que el vostre connector MozSearch pugui incorporar suggeriments de cerca, que apareixen en forma de desplegable quan teclegeu en la barra de cerca.</dd> +</dl> +<dl> <dt><a href="/en/New_in_JavaScript_1.7">Novetats en JavaScript 1.7</a> (en anglès)</dt> <dd>El Firefox 2 pot utilitzar JavaScript 1.7, que inclou noves característiques com ara <code>let</code>, assignació destructurada, generadors i iteradors, i comprensions de matrius.</dd> +</dl> +<dl> <dt><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side">Sessions i emmagatzemament persistent visual (WHATWG) des del client</a> (en anglès)</dt> +</dl> +<p><span>XXX maybe find some more attractive description</span></p> +<dl> <dd>Es permet a les aplicacions web emmagatzemar dades estructurades des del client.</dd> +</dl> +<dl> <dt><a href="/en/SVG_in_Firefox">SVG en el Firefox</a> (en anglès)</dt> <dd>El Firefox 2 millora l'ús dels «gràfics vectorials escalables» (SVG), implementant-s'hi l'element <code><textPath></code> com també altres atributs que no ho estaven anteriorment.</dd> +</dl> +<h2 id="Per_a_desenvolupadors_de_XUL_i_extensions">Per a desenvolupadors de XUL i extensions</h2> +<dl> <dt><a href="/en/Session_restore_API">API de restauració de sessions</a> (anglès)</dt> <dd>Elements que es desaran i restauraran entre sessions del Firefox.</dd> +</dl> +<dl> <dt>API d'accés al contingut del canal</dt> <dd><em>API en revisió. Més informació aviat.</em></dd> +</dl> +<dl> <dt><a href="/en/SAX">Ús de SAX</a> (anglès)</dt> <dd>API d'anàlisi d'XML basada en esdeveniments.</dd> +</dl> +<dl> <dt><a href="/ca/Addició_de_motors_de_cerca_a_les_pàgines_web" title="ca/Addició_de_motors_de_cerca_a_les_pàgines_web">Addició de motors de cerca a les pàgines web</a></dt> <dd>Codi de JavaScript que descriu al Firefox com instaŀlar un connector d'un nou motor de cerca. Aquest pot escriure's en format Sherlock or OpenSearch.</dd> +</dl> +<dl> <dt><a href="/en/Adding_phishing_protection_data_providers">Addició de proveïdors de dades de protecció davant la pesca electrònica</a> (anglès)</dt> <dd>Pot millorar-se la protecció del Firefox davant la pesca electrònica afegint dades addicionals de proveïdors i fer així una navegació més segura.</dd> +</dl> +<dl> <dt><a href="/en/Storage">Emmagatzemament</a> (anglès)</dt> <dd>El Firefox 2 introdueix mozStorage, una arquitectura de base de dades basada en sqlite.</dd> +</dl> +<h2 id="Noves_caracter.C3.ADstiques_per_als_usuaris_finals">Noves característiques per als usuaris finals</h2> +<h3 id="Experi.C3.A8ncia_d.27usuari">Experiència d'usuari</h3> +<ul> <li><strong>Verificació ortogràfica en línia de les àrees de text</strong>. Us permet escriure amb plena confiança en els formularis web.</li> <li><strong>Microsumaris</strong>. Proporcionen una forma de crear adreces d'interès que mostren informació extreta del mateix lloc al qual es refereixen, podent-se així actualitzar automàticament. Molt útil per a seguir la borsa, les subhastes, els esports, etc.</li> <li>S'ha millorat la <strong>interfície d'usuari del gestor d'extensions</strong>.</li> <li>El <strong>gestor dels motors de cerca</strong> us permet ordenar i suprimir els motors de cerca que es mostren a la barra de cerca.</li> <li><strong>Millora en la navegació per pestanyes</strong>. S'inclou un botó de tancament en cada pestanya, es fan canvis en com el Firefox decideix quina pestanya es porta davant quan en tanqueu una, i se'n simplifiquen les preferències.</li> <li><strong>Detecció automàtica dels motors de cerca</strong>. Es permet que les pàgines web dels motors cerca ofereixin instaŀlar connectors propis a la barra de cerca.</li> <li><strong>Suggeriments de cerca</strong>. Es permet als motors de cerca oferir suggeriments de termes de cerca a partir del que hàgiu pogut anar escrivint a la barra cerca.</li> +</ul> +<h3 id="Seguretat_i_privadesa">Seguretat i privadesa</h3> +<ul> <li><strong>Pesca electrònica</strong>. S'avisa als usuaris quan el lloc web que estiguin visitant pugui ser una falsificació.</li> +</ul> +<p>{{ languages( { "en": "en/Firefox_2_for_developers", "fr": "fr/Firefox_2_pour_les_d\u00e9veloppeurs", "it": "it/Firefox_2_per_Sviluppatori", "ja": "ja/Firefox_2_for_developers", "pt": "pt/Firefox_2_para_desenvolvedores", "pl": "pl/Firefox_2_dla_programist\u00f3w" } ) }}</p> diff --git a/files/ca/glossary/adreça_ip/index.html b/files/ca/glossary/adreça_ip/index.html new file mode 100644 index 0000000000..8e855d55ac --- /dev/null +++ b/files/ca/glossary/adreça_ip/index.html @@ -0,0 +1,21 @@ +--- +title: adreça IP (IP address) +slug: Glossary/adreça_IP +tags: + - Beginner + - Glossary + - Infrastructure + - Web +translation_of: Glossary/IP_Address +--- +<p>Una adreça IP (IP address) és un nombre assignat a cada dispositiu connectat a una xarxa que utilitza el protocol d'Internet.</p> + +<p>"Adreça IP" normalment encara es refereix a les adreces IPv4 de 32 bits fins que IPv6 s'implementi de manera més àmplia.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{interwiki("wikipedia", "IP address", "IP address")}} on Wikipedia</li> +</ul> diff --git a/files/ca/glossary/ajax/index.html b/files/ca/glossary/ajax/index.html new file mode 100644 index 0000000000..9c6bcdee0f --- /dev/null +++ b/files/ca/glossary/ajax/index.html @@ -0,0 +1,28 @@ +--- +title: AJAX +slug: Glossary/AJAX +tags: + - AJAX + - CodingScripting + - Glossary + - Infrastructure + - 'l10n:priority' +translation_of: Glossary/AJAX +--- +<p>AJAX (Asynchronous {{glossary("JavaScript")}} i {{glossary("XML")}}) és una pràctica de programació de combinar {{glossary("HTML")}}, {{glossary("CSS") }}, JavaScript, el {{glossary("DOM")}} i el {{glossary("objecte")}} XMLHttpRequest per construir pàgines web més complexes. AJAX el que us permet fer és actualitzar parts d'una pàgina web en lloc d'haver de recarregar la pàgina sencera. AJAX també us permet treballar de forma asíncrona, és a dir, el codi continua executant-se mentre que una part de la vostra pàgina web està tractant de recarregar-se (comparada amb la sincrònica, bloquejarà l'execució del vostre codi fins que aquesta part de la vostra pàgina web s'hagi recàrregat).</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{interwiki("wikipedia", "AJAX")}} en Wikipedia</li> + <li><a href="http://peoplesofttutorial.com/difference-between-synchronous-and-asynchronous-messaging/">Comunicacions Síncrones vs. Asíncrones</a></li> +</ul> + +<h3 id="Informació_tècnica"><span id="result_box" lang="ca"><span>Informació</span> <span>tècnica</span></span></h3> + +<ul> + <li>El objecte {{domxref("XMLHttpRequest")}}.</li> + <li><a href="/en-US/docs/AJAX">Documentació AJAX en MDN</a></li> +</ul> diff --git a/files/ca/glossary/api/index.html b/files/ca/glossary/api/index.html new file mode 100644 index 0000000000..fe674b532c --- /dev/null +++ b/files/ca/glossary/api/index.html @@ -0,0 +1,35 @@ +--- +title: API +slug: Glossary/API +tags: + - CodingScripting + - Glossary + - Infrastructure +translation_of: Glossary/API +--- +<p>Un API (Application Programming Interface) és un conjunt de característiques i normes que existeixen dins d'un programa de programari que permet la interacció entre el programari i altres elements, com un altre programari o maquinari.</p> + +<p>En el desenvolupament web, un API generalment és un conjunt de funcions de codi (per exemple, {{glossary("method","methods")}}, {{Glossary("property","properties")}}, esdeveniments i {{Glossary("URL","URLs")}}) que un desenvolupador pot utilitzar en les seves aplicacions per interactuar amb els components del navegador web d'un usuari o un altre programari/maquinari a l'ordinador de l'usuari, o llocs web i serveis de tercers.</p> + +<p>Per exemple:</p> + +<ul> + <li>La <a href="/en-US/docs/Web/API/MediaDevices/getUserMedia">getUserMedia</a> es pot utilitzar per capturar àudio i vídeo de la càmera web d'un usuari, que pot utilitzar-se de qualsevol forma que el desenvolupador li agradi, per exemple, gravar vídeo i àudio, transmetre-ho a un altre usuari en una trucada de conferència o capturar imatges d'imatges del video.</li> + <li>La <a href="/en-US/docs/Web/API/Geolocation">Geolocation API</a> es pot utilitzar per recuperar informació d'ubicació de qualsevol servei que l'usuari té a la seva disposició al dispositiu (per exemple, GPS), que després es pot utilitzar en conjunció amb el <a href="https://developers.google.com/maps/">Google Maps APIs</a>, per exemple, per traçar la ubicació de l'usuari en un mapa personalitzat i mostrar quines atraccions turístiques estan en la seva àrea.</li> + <li>La <a href="https://dev.twitter.com/overview/api">Twitter APIs</a> es poden utilitzar per a recuperar dades de comptes de twitter d'un usuari, per exemple per mostrar els seus últims tweets en una pàgina web.</li> + <li>La <a href="/en-US/docs/Web/API/Web_Animations_API">Web Animations API</a> es poden utilitzar per animar parts d'una pàgina web - per exemple, per fer que les imatges es moguin o girin.</li> +</ul> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Application_programming_interface", "API")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica">Referència tècnica</h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/API">Web API reference</a></li> +</ul> diff --git a/files/ca/glossary/argument/index.html b/files/ca/glossary/argument/index.html new file mode 100644 index 0000000000..def213cec5 --- /dev/null +++ b/files/ca/glossary/argument/index.html @@ -0,0 +1,24 @@ +--- +title: Argument +slug: Glossary/Argument +tags: + - CodingScripting + - Glossary + - JavaScript +translation_of: Glossary/Argument +--- +<p>Un <strong>argument</strong> és un {{glossary("valor")}} ({{Glossary("primitiiu")}} o {{Glossary("objecte")}}) passat com a entrada a una {{Glossary("funció") }}</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Parameter_(computer_programming)", "Diferència entre Paràmetre i Argument")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span class="short_text" id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li>L'objecte {{jsxref("Functions/arguments","arguments")}} en {{glossary("JavaScript")}}</li> +</ul> diff --git a/files/ca/glossary/ascii/index.html b/files/ca/glossary/ascii/index.html new file mode 100644 index 0000000000..001473484e --- /dev/null +++ b/files/ca/glossary/ascii/index.html @@ -0,0 +1,15 @@ +--- +title: ASCII +slug: Glossary/ASCII +tags: + - Glossary + - Infrastructure +translation_of: Glossary/ASCII +--- +<p><strong>ASCII</strong> (<em>American Standard Code for Information Interchange</em>) és un dels mètodes de codificació més popular utilitzat pels ordinadors per a la conversió de lletres, nombres, codis de puntuació i control en forma digital. Des de 2007, {{Glossary("UTF-8")}} ho ha substituït a la web.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<p>{{Interwiki("wikipedia", "ASCII")}} en Wikipedia</p> diff --git a/files/ca/glossary/atribut/index.html b/files/ca/glossary/atribut/index.html new file mode 100644 index 0000000000..8cb4795ca4 --- /dev/null +++ b/files/ca/glossary/atribut/index.html @@ -0,0 +1,19 @@ +--- +title: Atribut +slug: Glossary/Atribut +tags: + - CodingScripting + - Glossary + - HTML +translation_of: Glossary/Attribute +--- +<p>Un atribut estén una {{Glossary("etiqueta")}}, canviant el comportament de l'etiqueta o proporcionant metadades. Un atribut té sempre la forma nom = valor (donant l'identificador de l'atribut i el valor associat a l'atribut).</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/Web/HTML/Attributes">HTML attribute reference</a></li> + <li>Informació sobre <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a> HTML.</li> +</ul> diff --git a/files/ca/glossary/boolean/index.html b/files/ca/glossary/boolean/index.html new file mode 100644 index 0000000000..8e85a6ad08 --- /dev/null +++ b/files/ca/glossary/boolean/index.html @@ -0,0 +1,55 @@ +--- +title: Boolean +slug: Glossary/Boolean +tags: + - Boolean + - CodingScripting + - Glossary + - JavaScript + - Programming Languages + - data types +translation_of: Glossary/Boolean +--- +<p>En informàtica, un <strong>boolean</strong> és un tipus de dada lògica que només pot tenir els valors <em>true</em> o <em>false</em>. Un valor booleà és com un llenguatge de programació que permet representar <em>true </em>i <em>false</em>. Sense la capacitat per representar els valors booleans una sèrie de coses en un llenguatge, deixarian de funcionar. Per exemple, en Javascript, una <em>instrucció if</em> condicional ha de produir com a resultat un valor booleà perquè s'executi tot. En un bucle JavaScript sense la seva condició booleana el bucle mai sabrà si vol executar-ho o no la codificació</p> + +<pre>***JavaScript if Statement*** +if(boolean conditional) { + //coding +} + +if(true) { + console.log("boolean conditional resolved to true"); +} else { + console.log("boolean conditional resolved to false"); + } + + + +***JavaScript for Loop*** +for(control variable; boolean conditional; counter) { + //coding +} + +for(var i=0; i<4; i++) { + console.log("I print only when the boolean conditional is true"); +} +</pre> + +<p> </p> + +<p> </p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Boolean data type", "Boolean")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li>L'objecte global JavaScript: {{jsxref("Boolean")}}</li> + <li><a href="/en-US/docs/Web/JavaScript/Data_structures">JavaScript tipus i estructures de dades</a></li> +</ul> diff --git a/files/ca/glossary/caràcter/index.html b/files/ca/glossary/caràcter/index.html new file mode 100644 index 0000000000..4c887673a2 --- /dev/null +++ b/files/ca/glossary/caràcter/index.html @@ -0,0 +1,22 @@ +--- +title: Caràcter +slug: Glossary/Caràcter +tags: + - CodingScripting + - Glossary + - strings +translation_of: Glossary/Character +--- +<p>Un <em>caràcter</em> és o bé un símbol (lletres, nombres, puntuació) o "control" no imprès (per exemple, retorn de carro o guió suau). {{Glossary("UTF-8")}} és el conjunt de caràcters més comuna i inclou els grafemes dels idiomes humans més populars.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{interwiki("wikipedia", "Caràcter (computació)")}} en Wikipedia</li> + <li>{{interwiki("wikipedia", "Caràcter encoding")}} en Wikipedia</li> + <li>{{interwiki("wikipedia", "ASCII")}} en Wikipedia</li> + <li>{{interwiki("wikipedia", "UTF-8")}} en Wikipedia</li> + <li>{{interwiki("wikipedia", "Unicode")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/codificació_de_caràcters/index.html b/files/ca/glossary/codificació_de_caràcters/index.html new file mode 100644 index 0000000000..40179b5e89 --- /dev/null +++ b/files/ca/glossary/codificació_de_caràcters/index.html @@ -0,0 +1,26 @@ +--- +title: Codificació de caràcters +slug: Glossary/Codificació_de_caràcters +tags: + - Composing + - Glossary +translation_of: Glossary/character_encoding +--- +<p>La codificació de caràcters proporciona un sistema de codificació dels caràcters específics en els diferents idiomes, per permetre que tots ells existeixen i poguin ser manejats consistentment en un sistema informàtic o entorn de programació.</p> + +<p>Per exemple, en HTML declarem normalment una codificació de caràcters UTF-8, mitjançant la següent línia:</p> + +<div class="example"> +<pre class="brush: html"><code><meta charset="utf-8"></code></pre> + +<p>Això assegura que poden utilitzar caràcters de gairebé qualsevol llenguatge humà en el nostre document HTML, i ser mostrats de manera fiable.</p> +</div> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li><a href="https://www.w3.org/International/articles/definitions-characters/">Codificació de caràcters en W3C</a></li> + <li>{{Interwiki("wikipedia", "Codificació de caràcters")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/css/index.html b/files/ca/glossary/css/index.html new file mode 100644 index 0000000000..df90967cb6 --- /dev/null +++ b/files/ca/glossary/css/index.html @@ -0,0 +1,43 @@ +--- +title: CSS +slug: Glossary/CSS +tags: + - CSS + - CodingScripting + - Glossary + - Web + - 'l10n:priority' +translation_of: Glossary/CSS +--- +<p><strong>CSS</strong> (Cascading Style Sheets) és un llenguatge declaratiu que controla com es veuen les pàgines web en el {{glossary("navegador")}}. El navegador aplica declaracions d'estils CSS als elements seleccionats per mostrar-los correctament. Una declaració d'estil conté les propietats i els seus valors, que determinen l'aparença d'una pàgina web.</p> + +<p>CSS és una de les tres tecnologies principals de la Web, juntament amb {{Glossary("HTML")}} i {{Glossary("JavaScript")}}. Generalment els estils CSS s'aplican en els {{Glossary("Element","elements HTML")}}, però també es poden utilitzar amb altres llenguatges de marcat com {{Glossary("SVG")}} o {{Glossary("XML")}} .</p> + +<p>Una regla CSS és un conjunt de {{Glossary("CSS Property","propietats")}} associades amb un {{Glossary("CSS selector", "selector")}}. Aquí hi ha un exemple que fa que cada paràgraf HTML sigui groc contra un fons negre:</p> + +<pre class="brush: css">/* El selector "p" indica que tots els paràgrafs en el document es veuràn afectats per aquesta regla. */ +p { + /* La propietat "color" defineix el color del text, en aquest cas groc. */ + color: yellow; + + /* La propietat "background-color" defineix el color de fons, en aquest cas negre. */ + background-color: black +}</pre> + +<p><span id="result_box" lang="ca"><span>"</span><span>Cascada</span><span>"</span> <span>es</span> <span>refereix</span> <span>a les regles que</span> <span>governen</span> <span>com es</span> <span>prioritzen els</span> <span>selectors</span> <span>per canviar</span> <span>l'aparença d'una</span> <span>pàgina</span><span>.</span> <span>Aquesta</span> <span>és</span> <span>una característica molt</span> <span>important, ja</span> <span>que un lloc web</span> <span>complex pot</span> <span>tenir</span> <span>milers</span> <span>de regles</span> <span>CSS.</span></span></p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/Learn/CSS">Aprendre CSS</a></li> + <li>{{interwiki("wikipedia", "CSS")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS">Documentació CSS en MDN</a></li> + <li><a href="http://www.w3.org/Style/CSS/current-work" rel="external">El treball actual del grup de treball de CSS</a></li> +</ul> diff --git a/files/ca/glossary/dom/index.html b/files/ca/glossary/dom/index.html new file mode 100644 index 0000000000..3018ea2148 --- /dev/null +++ b/files/ca/glossary/dom/index.html @@ -0,0 +1,29 @@ +--- +title: DOM +slug: Glossary/DOM +tags: + - CodingScripting + - DOM + - Glossary +translation_of: Glossary/DOM +--- +<p>El DOM (Document Object Model) és un {{glossary("API")}} que representa i interactua amb qualsevol document {{glossary("HTML")}} o {{glossary("XML")}}. El DOM és un model de document carregat en el {{glossary("navegadorr")}} i representa el document com un arbre de nodes, on cada node representa una part del document (per exemple, un {{Glossary("element")}}, cadena de text o comentari).</p> + +<p>El DOM és una de les {{Glossary("API")}}s més utilitzades en la {{glossary("World Wide Web", "Web")}}, ja que permet que el codi s'executi en un navegador per accedir i interactuar amb cada node en el document. Els nodes poden ser creats, moure i canviar. Els detectors d'esdeveniments poden afegir-se als nodes i es desencadenen sobre l'ocurrència d'un esdeveniment donat.</p> + +<p>DOM no es va especificar originalment, va sorgir quan els navegadors van començar a implementar {{Glossary("Javascript")}}. Aquest llegat de DOM és de vegades anomenat DOM 0. Avui, el W3C porta l'especificació DOM, i el Grup de Treball DOM està preparant la versió 4.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{interwiki("wikipedia", "Document_Object_Model", "The Document Object Model")}} en Wikipedia</li> +</ul> + +<h3 id="Informació_tècnica"><span id="result_box" lang="ca"><span>Informació</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/DOM">Documentació de DOM en MDN</a></li> + <li><a href="http://www.w3.org/DOM/DOMTR" rel="external">Diferents especificacions de DOM en W3C</a></li> +</ul> diff --git a/files/ca/glossary/ecmascript/index.html b/files/ca/glossary/ecmascript/index.html new file mode 100644 index 0000000000..99d8783e05 --- /dev/null +++ b/files/ca/glossary/ecmascript/index.html @@ -0,0 +1,23 @@ +--- +title: ECMAScript +slug: Glossary/ECMAScript +tags: + - Glossary + - WebMechanics +translation_of: Glossary/ECMAScript +--- +<p><strong>ECMAScript</strong> és el llenguatge de script en el qual es basa {{glossary("JavaScript")}}. <a href="http://www.ecma-international.org">Ecma International</a> està a càrrec de la normalització d'ECMAScript.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "ECMAScript")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="http://www.ecmascript.org/">ECMAScript</a></li> +</ul> diff --git a/files/ca/glossary/etiqueta/index.html b/files/ca/glossary/etiqueta/index.html new file mode 100644 index 0000000000..e52b3f29a2 --- /dev/null +++ b/files/ca/glossary/etiqueta/index.html @@ -0,0 +1,30 @@ +--- +title: Etiqueta +slug: Glossary/Etiqueta +tags: + - CodingScripting + - Glossary + - HTML + - Intro +translation_of: Glossary/Tag +--- +<p>En {{Glossary("HTML")}} una etiqueta s'utilitza per a la creació d'un {{Glossary("element")}}. El nom d'un element HTML és el nom usat en parèntesis angulars, com <p> per al paràgraf. Recordeu que el nom de l'etiqueta final és precedit per un caràcter de barra, "</p>", i que en els elements buits l'etiqueta final no és necessària ni permesa. Si els atributs no s'esmenten, els valors per omissió s'utilitzen en cada cas.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "HTML element")}} en Wikipedia</li> + <li><a href="http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html">Etiquetas HTML en W3 </a></li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/Learn/HTML/HTML_tags">Quines són les etiquetes HTML & com utilitzar-les [en-US]</a></li> +</ul> + +<p> </p> + +<p> </p> diff --git a/files/ca/glossary/ftp/index.html b/files/ca/glossary/ftp/index.html new file mode 100644 index 0000000000..d8f57cef14 --- /dev/null +++ b/files/ca/glossary/ftp/index.html @@ -0,0 +1,24 @@ +--- +title: FTP +slug: Glossary/FTP +tags: + - CodingScripting + - FTP + - Glossary + - Protocol +translation_of: Glossary/FTP +--- +<p>FTP (File Transfer Protocol) va ser el {{glossary("protocol")}} estàndard durant molts anys per a la transferència d'arxius d'un {{glossary("host")}} a un altre a través d'Internet. Cada vegada més, però, els equips i els comptes d'allotjament no permeten FTP i en el seu lloc es basen en un sistema de control de versions com Git. Encara es pot trobar la seva utilització en comptes d'allotjament més antigues, però és segur dir que el FTP ja no es considera la millor pràctica.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li><a href="/en-US/Learn/Upload_files_to_a_web_server">Guia de principiants per carregar arxius via FTP</a></li> + <li>{{interwiki("wikipedia", "File Transfer Protocol", "FTP")}} en Wikipedia + <p> </p> + </li> +</ul> + +<p> </p> diff --git a/files/ca/glossary/funció/index.html b/files/ca/glossary/funció/index.html new file mode 100644 index 0000000000..d022b3196b --- /dev/null +++ b/files/ca/glossary/funció/index.html @@ -0,0 +1,74 @@ +--- +title: Funció +slug: Glossary/Funció +tags: + - CodingScripting + - Glossary + - IIFE + - Immediately Invoked Function Expressions (IIFE) + - JavaScript +translation_of: Glossary/Function +--- +<p>Una <strong>funció</strong> és un fragment de codi que pot ser cridat per altres codis o per si mateix, o una {{Glossary("variable")}} que fa referència a la funció. Quan una funció es cridada, es passan {{Glossary("argument", "arguments")}} a la funció com a entrada, i opcionalment la funció pot retornar una sortida. Una funció de {{glossary("JavaScript")}} és també un {{glossary("objecte")}}.</p> + +<p>Un nom de funció és un {{Glossary("identificador")}} definit com a part d'una declaració de la funció o expressió de funció. El {{Glossary("àmbit")}} del nom de la funció depèn de si el nom de la funció és una declaració o expressió.</p> + +<h3 id="Diferents_tipus_de_funcions">Diferents tipus de funcions</h3> + +<p>Una <strong>funció anònima</strong>és una funció sense un nom de funció:</p> + +<pre class="brush: js">function () {}</pre> + +<p>Una <strong>funció nomenada</strong> és una funció amb un nom de funció:</p> + +<pre class="brush: js">function foo() {}</pre> + +<p>Una <strong>funció interna</strong> és una funció dins d'una altra funció (<code>square</code> en aquest cas). Una <strong>funció externa</strong> és una funció que conté una funció (<code>addSquares</code> en aquest cas):</p> + +<pre class="brush: js">function addSquares(a,b) { + function square(x) { + return x * x; + } + return square(a) + square(b); +}</pre> + +<p>Una <strong>funció recursiva</strong> és una funció que es crida a si mateixa. Veure {{Glossary("Recursion","recursivitat")}}..</p> + +<pre class="brush: js">function loop(x) { + if (x >= 10) + return; + loop(x + 1); +} + +</pre> + +<p>Un <strong>Immediately Invoked Function Expressions</strong> (IIFE) és una funció que es crida directament després de que la funció es carregui en el compilador del navegador. La manera d'identificar un IIFE és mitjançant la localització dels parèntesis extra d'esquerra i dreta al final de la declaració de la funció. Hi ha molts avantatges d'aquest tipus d'expressió de funció, però que està fora de l'abast del curs.</p> + +<pre class="brush: js">// Error (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) +/* +function foo() { + console.log('Hello Foo'); +}(); +*/ + +(function foo() { + console.log("Hello Foo"); +}()); +// Douglas Crockford's style + + +(function food() { + console.log("Hello Food"); +})(); + +</pre> + +<p>Si voleu saber més sobre IIFEs, feu un cop d'ull a la següent pàgina a la Wikipedia: <a href="https://en.wikipedia.org/wiki /Immediately-invoked_function_expression">Immediately Invoked Function Expression</a></p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> tècnica</span></h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions" title="en-US/docs/Web/JavaScript/Guide/Functions">Funcions</a></li> +</ul> diff --git a/files/ca/glossary/html/index.html b/files/ca/glossary/html/index.html new file mode 100644 index 0000000000..bf8aed59fc --- /dev/null +++ b/files/ca/glossary/html/index.html @@ -0,0 +1,51 @@ +--- +title: HTML +slug: Glossary/HTML +tags: + - CodingScripting + - Glossary + - HTML + - 'l10n:priority' +translation_of: Glossary/HTML +--- +<div>{{QuickLinksWithSubpages("/en-US/docs/Glossary")}}</div> + +<p><span id="result_box" lang="ca"><strong><span>HTML</span></strong> <span>(</span><span>HyperText</span> <span>Markup</span> <span>Language</span><span>)</span> <span>és</span> <span>un llenguatge</span> <span>descriptiu que</span> <span>especifica</span> <span>l'estructura de la</span> <span>pàgina</span> <span>web.</span></span></p> + +<h2 id="Breu_història">Breu història</h2> + +<p>El 1990, com a part de la seva visió de la {{Glossary("World Wide Web", "Web")}}, Tim Berners-Lee defineix el concepte de {{Glossary("hipertext")}}, que Berners-Lee formalitzat l'any següent a través d'un marcatge basat principalment en {{Glossary("SGML")}}. El {{Glossary("IETF")}} va iniciar formalment l'especificació HTML en 1993, i després de diversos esborranys va llançar la versió 2.0 en 1995. En 1994, Berners-Lee va fundar la {{Glossary("W3C")}} per al desenvolupament de la web. El 1996, la W3C es va fer càrrec del treball HTML i va publicar la Recomanació HTML 3.2 un any més tard. HTML 4.0 va ser llançat en 1999 i es va convertir en un {{Glossary("ISO")}} estàndard en 2000.</p> + +<p>En aquest moment, la W3C gairebé abandona HTML a favor de {{Glossary("XHTML")}}, el que va provocar la fundació d'un grup independent anomenat {{Glossary("WHATWG")}} el 2004. Gràcies a WHATWG, el treball en {{Glossary("HTML5")}} va continuar: les dues organitzacions van publicar el primer esborrany en 2008 i la norma final el 2014.</p> + +<h2 id="Concepte_i_sintaxi"><span id="result_box" lang="ca"><span>Concepte</span> <span>i</span> <span>sintaxi</span></span></h2> + +<p>Un document HTML és un document de text pla estructurat amb {{Glossary("element", "elements")}}. Els elements estan envoltats per una obertura i tancament coincidents {{Glossary("tag","etiquetes")}}. Cada etiqueta comença i acaba amb parèntesis angulars (<code><></code>). Hi ha algunes etiquetes buides que no poden incloure cap text, per exemple {{htmlelement("img")}}.</p> + +<p>Podeu estendre les etiquetes HTML amb {{Glossary("atribute","atributs")}}, que proporcionen informació addicional que afecta la forma en què el navegador interpreta l'element:</p> + +<p><img alt="Detail of the structure of an HTML element" src="https://mdn.mozillademos.org/files/7659/anatomy-of-an-html-element.png" style="height: 181px; width: 609px;"></p> + +<p>Un arxiu HTML normalment es guarda amb una extensió <code>.htm</code> o <code>.html</code>, es servit per un {{Glossary("Server","servidor web")}}, i pot ser representat per qualsevol {{Glossary("Browser","navegador web")}}.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{interwiki("wikipedia", "HTML", "HTML")}} en Wikipedia</li> +</ul> + +<h3 id="Aprèn_HTML">Aprèn HTML</h3> + +<ul> + <li><a href="http://developer.mozilla.org/en-US/Learn/HTML">Tutorial HTML</a></li> + <li><a href="http://www.codecademy.com/en/tracks/web" rel="external">Curs web en codecademy.com</a></li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/Web/HTML">Documentació HTML en MDN</a></li> + <li><a href="http://www.w3.org/TR/html5/" rel="external">L'especificació HTML </a></li> +</ul> diff --git a/files/ca/glossary/http/index.html b/files/ca/glossary/http/index.html new file mode 100644 index 0000000000..34ad38c95b --- /dev/null +++ b/files/ca/glossary/http/index.html @@ -0,0 +1,23 @@ +--- +title: HTTP +slug: Glossary/HTTP +tags: + - Beginner + - Glossary + - HTTP + - Infrastructure + - 'l10n:priority' +translation_of: Glossary/HTTP +--- +<p>HTTP (HyperText Transfer Protocol) és el {{glossary("protocol")}} bàsic que permet la transferència d'arxius en el {{glossary("World Wide Web","Web")}}. HTTP és textual (tota la comunicació es realitza en text pla) i apàtrida (ninguna comunicació és conscient de les comunicacions anteriors).</p> + +<div> +<h2 id="Aprèn_més">Aprèn més</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP">HTTP en MDN</a></li> + <li>{{interwiki("wikipedia", "Hypertext Transfer Protocol", "HTTP")}} en Wikipedia</li> +</ul> +</div> + +<p> </p> diff --git a/files/ca/glossary/index.html b/files/ca/glossary/index.html new file mode 100644 index 0000000000..8e1c81312d --- /dev/null +++ b/files/ca/glossary/index.html @@ -0,0 +1,45 @@ +--- +title: Glossary +slug: Glossary +tags: + - Beginner + - Glossary + - Index + - Landing + - NeedsTranslation + - TopicStub +translation_of: Glossary +--- +<div style="width: 44%; float: right; margin: 4px 0 .5em 1em; line-height: 1.4;">{{LearnBox({"title":"Learn a new term:"})}}</div> + +<p class="summary" style="padding-top: 0; border-top-width: 0;"><span class="seoSummary">Web technologies contain long lists of jargon and abbreviations that are used in documentation and coding. This glossary provides definitions of words and abbreviations you need to know to successfully understand and build for the web.</span></p> + +<h2 id="Glossary_of_Terms"><strong>Glossary of Terms</strong></h2> + +<p>{{GlossaryList({"split": "h3", "css": "multiColumnList"})}}</p> + +<h2 id="Contribute_to_the_glossary">Contribute to the glossary</h2> + +<p>This glossary is a never ending work in progress. You can help improving it by <a href="/en-US/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary">writing new entries</a> or by making the existing ones better. The easiest way to start is to hit the following link or to pick one of the suggested terms below.</p> + +<p><strong><a href="/en-US/docs/new?parent=4391">Add a new entry to the glossary</a></strong></p> + +<p>{{GlossaryList({"terms":["at-rule", "ALPN", "Attack", "Byte-Order Mark", "client", "Character set", "cryptosystem", "debug", "digital signature", "execution", "flex-direction", "GLSL", "Interface", "Library", "Memory management", "routers", "Self-Executing Anonymous Function", "Stylesheet", "Vector image"], "filter": "notdefined", "css": "multiColumnList"})}}</p> + +<p>If you want to know more on how to contribute to the glossary, check out <a href="/en-US/docs/MDN/Doc_status/Glossary">the glossary documentation status page</a>.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/MDN/Community">Join the MDN community</a></li> +</ul> + +<div class="hidden"> +<h2 id="Subnav">Subnav</h2> + +<section id="Quick_Links"> +<ol> + <li><strong><a href="/en-US/docs/Glossary">MDN Web Docs Glossary</a></strong>{{ListSubpagesForSidebar("/en-us/docs/Glossary", 1)}}</li> +</ol> +</section> +</div> diff --git a/files/ca/glossary/indexeddb/index.html b/files/ca/glossary/indexeddb/index.html new file mode 100644 index 0000000000..9f52845280 --- /dev/null +++ b/files/ca/glossary/indexeddb/index.html @@ -0,0 +1,19 @@ +--- +title: IndexedDB +slug: Glossary/IndexedDB +tags: + - API + - CodingScripting + - Database + - Glossary + - Sql +translation_of: Glossary/IndexedDB +--- +<p>IndexedDB és un Web {{glossary("API")}} per a l'emmagatzematge de grans estructures de dades dins dels navegadors i indexar-les per recerques d'alt rendiment. Igual que un <a href="https://en.wikipedia.org/wiki/Relational_database_management_system">RDBMS</a> basat en {{glossary("SQL")}}, IndexedDB és un sistema de base de dades transaccional. No obstant això, utilitza objectes {{glossary("JavaScript")}} en lloc de taules de columnes fixes per emmagatzemar dades.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<ul> + <li>El {{domxref('IndexedDB_API','IndexedDB API','',1)}} en MDN</li> + <li><a href="http://w3c.github.io/IndexedDB/">L'especificació W3C per IndexedDB</a></li> +</ul> diff --git a/files/ca/glossary/internet/index.html b/files/ca/glossary/internet/index.html new file mode 100644 index 0000000000..5c1cc532a4 --- /dev/null +++ b/files/ca/glossary/internet/index.html @@ -0,0 +1,22 @@ +--- +title: Internet +slug: Glossary/Internet +tags: + - Beginner + - Glossary + - Guide + - Intro + - NeedsContent + - Tutorial + - TutorialWebMechanics +translation_of: Glossary/Internet +--- +<p>La Internet és una xarxa mundial de xarxes que utilitza el conjunt de protocols d'Internet (també anomenat {{glossary("TCP")}}/{{glossary("IPv6", "IP")}} els seus dos {{glossary("protocol", "protocols")}}) més importants.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Aprèn_sobre">Aprèn sobre</h3> + +<ul> + <li><a href="/en-US/Learn/How_the_Internet_works">Com funciona internet</a> ( <span id="result_box" lang="ca"><span>introducció</span> <span>per a principiants</span></span> )</li> +</ul> diff --git a/files/ca/glossary/ipv4/index.html b/files/ca/glossary/ipv4/index.html new file mode 100644 index 0000000000..4e5f43a005 --- /dev/null +++ b/files/ca/glossary/ipv4/index.html @@ -0,0 +1,20 @@ +--- +title: IPv4 +slug: Glossary/IPv4 +tags: + - Glossary + - IPv4 + - Infrastructure + - Internet Protocol + - Protocol +translation_of: Glossary/IPv4 +--- +<p>IPv4 és la quarta versió del {{Glossary("protocol")}} de comunicació subjacent a {{glossary("Internet")}} i la primera versió que es desplega àmpliament.></p> + +<p>Primera formalització el 1981, IPv4 té les seves arrels en el treball de desenvolupament iniciat per ARPAnet. IPv4 és un protocol sense connexió que s'utilitza a les xarxes de capa d'enllaç commutades per paquets (ethernet). El {{glossary("IPv6")}} està reemplaçant gradualment a IPv4 a causa dels problemes de seguretat de IPv4 i les limitacions del seu camp d'adreça. (La versió número 5 va ser assignada en 1979 al protocol experimental d'Internet Stream, que no obstant això mai s'ha cridat IPv5).</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<p>{{interwiki("wikipedia", "IPv4", "IPv4")}} en Wikipedia</p> diff --git a/files/ca/glossary/ipv6/index.html b/files/ca/glossary/ipv6/index.html new file mode 100644 index 0000000000..1dee64a105 --- /dev/null +++ b/files/ca/glossary/ipv6/index.html @@ -0,0 +1,21 @@ +--- +title: IPv6 +slug: Glossary/IPv6 +tags: + - Glossary + - IPv6 + - Infrastructure + - Intermediate + - Web + - WebMechanics +translation_of: Glossary/IPv6 +--- +<p id="Summary"><strong>IPv6</strong> és la versió actual del {{glossary("protocol")}} de comunicació subjacent a {{glossary("Internet")}}. Lentament IPv6 està reemplaçant {{Glossary("IPv4")}}, entre altres raons perquè IPv6 permet moltes {{Glossary("IP address","adreces IP ")}} diferents.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{interwiki("wikipedia", "IPv6", "IPv6")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/javascript/index.html b/files/ca/glossary/javascript/index.html new file mode 100644 index 0000000000..bbba2abe74 --- /dev/null +++ b/files/ca/glossary/javascript/index.html @@ -0,0 +1,46 @@ +--- +title: JavaScript +slug: Glossary/JavaScript +tags: + - CodingScripting + - Glossary + - JavaScript + - 'l10n:priority' +translation_of: Glossary/JavaScript +--- +<p>JavaScript (JS) és un llenguatge de programació utilitzat principalment en el costat del client amb scripts dinàmics per le pàgines web, però sovint també costat {{Glossary("Server","Servidor")}}.</p> + +<p>JavaScript no està estretament relacionat amb Java, però veure <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction#JavaScript_and_Java">aquí</a> per a una comparació..</p> + +<p>Concebut com un llenguatge del costat del servidor per Brendan Eich (llavors empleat de Netscape Corporation), JavaScript aviat va arribar a Netscape Navigator 2.0 al setembre de 1995. JavaScript va gaudir d'un èxit immediat i {{glossary("Microsoft Internet Explorer", "Internet Explorer 3.0")}} va introduir el suport de JavaScript amb el nom de JScript a l'agost de 1996.</p> + +<p>Al novembre de 1996, Netscape va començar a treballar amb ECMA International per fer de Javascript un estàndard de la indústria. Des de llavors, el Javascript estandarditzat es diu ECMAScript i s'especifica sota ECMA-262, que la seva última (setena) edició està disponible al juny de 2016.</p> + +<p>JavaScript s'utilitza sobretot en el navegador, permetent als desenvolupadors manipular el contingut de la pàgina web a través del {{Glossary("DOM")}}, manipular dades amb {{Glossary("AJAX")}} i {{Glossary("IndexedDB")}}, dibuixar gràfics amb {{Glossary("canvas")}}, interactuar amb el dispositiu que executa el navegador a través de diversos {{Glossary("API","APIs")}}, i així successivament. Javascript és un dels llenguatjes més utilitzats en el món, a causa del recent creixement i millora en el rendiment dels {{Glossary("API","APIs")}} disponibles en els navegadors.</p> + +<p>Recentment, Javascript va tornar al servidor amb la reeixida plataforma Node.js, l'entorn d'execució de Javascript multiplataforma més popular fora del navegador. Node.js us permet usar Javascript com a llenguatge de scripting per automatitzar les coses en una PC i crear servidors {{Glossary("HTTP")}} i {{Glossary("Web Sockets")}} completament funcionals.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{interwiki("wikipedia", "JavaScript", "JavaScript")}} en Wikipedia</li> +</ul> + +<h3 id="Aprendre_JavaScript"><span id="result_box" lang="ca"><span>Aprendre</span></span> JavaScript</h3> + +<ul> + <li>La {{Link("/en-US/docs/Web/JavaScript/Guide")}} en MDN</li> + <li><a href="http://nodeschool.io/#workshoppers">Taller de "javascripting" en NodeSchool</a></li> + <li><a href="http://www.codecademy.com/tracks/javascript" rel="external">Curs de JavaScript en codecademy.com</a></li> + <li><a href="http://ejohn.org/apps/learn/" rel="external">Aprenentatge Avançat de JavaSrcipt per John Resig's</a></li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm" rel="external">L'ùltim standàrd ECMAScript</a></li> + <li>La {{Link("/en-US/docs/Web/JavaScript/reference")}} en MDN</li> + <li><a href="http://eloquentjavascript.net/" rel="external">El llibre <em>Eloqüent JavaScript</em></a></li> +</ul> diff --git a/files/ca/glossary/mètode/index.html b/files/ca/glossary/mètode/index.html new file mode 100644 index 0000000000..65838733f8 --- /dev/null +++ b/files/ca/glossary/mètode/index.html @@ -0,0 +1,29 @@ +--- +title: Mètode +slug: Glossary/Mètode +tags: + - CodingScripting + - Glossary + - JavaScript +translation_of: Glossary/Method +--- +<p>Un <strong>mètode</strong> és una {{glossary("funció")}} que és {{glossary("propietat")}} d'un {{glossary("objecte")}}. Existeixen dos tipus de mètodes: <em>Mètode Instància</em> que estan incorporades en les tasques dutes a terme per una instància d'objecte, o <em>Mètodes Estàtics</em> que són tasques que es poden realitzar sense necessitat d'una instància d'objecte.</p> + +<div class="note"> +<p><strong>Nota:</strong> En JavaScript les funcion són en si objectes, de manera que, en aquest context, un mètode és en realitat un {{glossary("referència d'objecte")}} per a una funció.</p> +</div> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Aprendre_sobre"><span class="short_text" id="result_box" lang="ca"><span>Aprendre sobre</span></span></h3> + +<ul> + <li>{{InterWiki("wikipedia","Mètode (<span>programació d'ordinador</span>)")}} en Wikipedia</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions">Definir un mètode en JavaScript</a> (Comparació de la sintaxi tradicional i la nova abreviatura)</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Methods_Index">Llista de mètodes incorporats en JavaScript</a></li> +</ul> diff --git a/files/ca/glossary/navegador/index.html b/files/ca/glossary/navegador/index.html new file mode 100644 index 0000000000..c3280d723b --- /dev/null +++ b/files/ca/glossary/navegador/index.html @@ -0,0 +1,27 @@ +--- +title: Navegador +slug: Glossary/Navegador +tags: + - Glossary + - Navigation +translation_of: Glossary/Browser +--- +<p>Un <em>navegador web</em> és un programa que recupera i mostra les pàgines de la {{Glossary("World Wide Web","Web")}}, i permet als usuaris accedir a més pàgines a través {{Glossary("hyperlink","hipervincles")}}.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Navegador Web")}} en Wikipedia</li> + <li><a href="http://www.evolutionoftheweb.com/" rel="external">La evolució de la web</a></li> +</ul> + +<h3 id="Descarregar_un_navegador">Descarregar un navegador</h3> + +<ul> + <li><a href="http://www.mozilla.org/en-US/firefox/features/">Mozilla Firefox</a></li> + <li><a href="http://www.google.com/chrome/" rel="external">Google Chrome</a></li> + <li><a href="http://windows.microsoft.com/en-US/internet-explorer/browser-ie" rel="external">Microsoft Internet Explorer</a></li> + <li><a href="http://www.opera.com/" rel="external">Opera Browser</a></li> +</ul> diff --git a/files/ca/glossary/null/index.html b/files/ca/glossary/null/index.html new file mode 100644 index 0000000000..16300aac03 --- /dev/null +++ b/files/ca/glossary/null/index.html @@ -0,0 +1,26 @@ +--- +title: 'Null' +slug: Glossary/Null +tags: + - CodingScripting + - Glossary +translation_of: Glossary/Null +--- +<p>En informàtica, un valor <strong>null</strong> representa una referència que apunta, generalment intencionadament, a un {{glossary("objecte")}} o adreça inexistent o no vàlid. El significat d'una referència nul·la varia entre implementacions de llenguatge.</p> + +<p>En {{Glossary("JavaScript")}}, null és un dels {{Glossary("Primitive", "valors primitius")}}.</p> + +<h2 id="Learn_more">Learn more</h2> + +<h3 id="General_knowledge">General knowledge</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Null pointer")}} en Wikipedia</li> +</ul> + +<h3 id="Technical_reference">Technical reference</h3> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Data_structures">JavaScript tipus i estructures de dades</a></li> + <li>L'object global JavaScrip: {{jsxref("null")}}</li> +</ul> diff --git a/files/ca/glossary/number/index.html b/files/ca/glossary/number/index.html new file mode 100644 index 0000000000..3714859948 --- /dev/null +++ b/files/ca/glossary/number/index.html @@ -0,0 +1,27 @@ +--- +title: Number +slug: Glossary/Number +tags: + - English tags + - Glossary + - JavaScript +translation_of: Glossary/Number +--- +<p>En {{Glossary("JavaScript")}}, Number és un tipus de dada numèrica en el <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format">format de coma flotant de 64 bits de doble precisió (IEEE 754)</a>. En altres llenguatges de programació poden existir diferents tipus numèrics, per exemple: enters, flotants, dobles o Bignums.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li> + <p><span>{{Interwiki("wikipedia", "Data type#Numeric_types", "Tipus Numèrics")}} en Wikipedia</span></p> + </li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li>Estructura de dades de JavaScript: <a href="/en-US/docs/Web/JavaScript/Data_structures#Number_type">Number</a></li> + <li>L'objecte global JavaScript: {{jsxref("Number")}}</li> +</ul> diff --git a/files/ca/glossary/objecte/index.html b/files/ca/glossary/objecte/index.html new file mode 100644 index 0000000000..2688a42fed --- /dev/null +++ b/files/ca/glossary/objecte/index.html @@ -0,0 +1,21 @@ +--- +title: Objecte +slug: Glossary/Objecte +tags: + - CodingScripting + - Glossary + - Intro + - Object +translation_of: Glossary/Object +--- +<p><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Objecte,</a> es refereix a una estructura de dades que conté dades i instruccions per treballar amb les dades. Els objectes a vegades es refereixen a les coses del món real, per exemple, un objecte cotxe o mapa en un joc de carreres. {{glossary("JavaScript")}}, Java, C ++, Python i Ruby són exemples de llenguatges de {{glossary("OOP", "programació orientada a objectes")}}.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Programació orientada a objectes")}} en Wikipedia</li> + <li>El {{jsxref("Objecte")}} en la <a href="/en-US/docs/Web/JavaScript/Reference">referència de JavaScript</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Objects">Estructures de dades d'objectes en JavaScript</a></li> +</ul> diff --git a/files/ca/glossary/oop/index.html b/files/ca/glossary/oop/index.html new file mode 100644 index 0000000000..924f2b056d --- /dev/null +++ b/files/ca/glossary/oop/index.html @@ -0,0 +1,21 @@ +--- +title: OOP +slug: Glossary/OOP +tags: + - Beginner + - CodingScripting + - Glossary +translation_of: Glossary/OOP +--- +<p><strong>OOP </strong>(Object-Oriented Programming ) és un enfocament de programació en el qual s'encapsulan les dades dins de <strong>{{glossary("object","objectes")}}</strong> i l'objecte mateix és operat, en lloc dels seus components.</p> + +<p>{{Glossary("JavaScript")}} està fortament orientat a objectes. D'això es dedueix un model basat en prototipus (<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-based_vs._prototype-based_languages">en oposició a la classe de base</a>).</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Programació Orientada a Objectes")}} en Wikipedia</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introducció a JavaScript orientat a objectes</a></li> +</ul> diff --git a/files/ca/glossary/primitiu/index.html b/files/ca/glossary/primitiu/index.html new file mode 100644 index 0000000000..c0e1cd1ff3 --- /dev/null +++ b/files/ca/glossary/primitiu/index.html @@ -0,0 +1,36 @@ +--- +title: Primitiu +slug: Glossary/Primitiu +tags: + - CodingScripting + - Glossary + - JavaScript +translation_of: Glossary/Primitive +--- +<p>Un <strong>primitiu</strong> (valor primitiu, tipus de dades primitiu) és una dada que no és un {{Glossary("objecte")}} i no té {{glossary("method","mètodes")}}. En {{Glossary("JavaScript")}}, hi ha 6 tipus de dades primitius: {{Glossary("string")}}, {{Glossary("number")}}, {{Glossary("boolean")}}, {{Glossary("null")}}, {{Glossary("undefined")}}, {{Glossary("symbol")}} (nou en {{Glossary("ECMAScript")}} 2015).</p> + +<p>La majoria del temps, un valor primitiu es representa directament en el nivell més baix de la implementació del llenguatge.</p> + +<p>Tots els primitius són <strong>immutables</strong> (no es poden canviar)</p> + +<h2 id="Contenidors_d'objectes_primitius_en_Javascript">Contenidors d'objectes primitius en Javascript</h2> + +<p>A excepció de <code>null</code> i <code>undefined</code>, tots els valors primitius tenen objectes equivalents que s'emboliquen al voltant dels valors primitius:</p> + +<ul> + <li>{{jsxref("String")}} pels string primitius.</li> + <li>{{jsxref("Number")}} pels number primitius.</li> + <li>{{jsxref("Boolean")}} pels Boolean primitius.</li> + <li>{{jsxref("Symbol")}} pels Symbol primitius.</li> +</ul> + +<p>L'embolcall del mètode <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf"><code>valueOf()</code></a> retorna un valor primitiu.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures">Introducció als tipus de dades de JavaScript</a></li> + <li>{{Interwiki("wikipedia", "Tipus de dades primitius")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/propietat/index.html b/files/ca/glossary/propietat/index.html new file mode 100644 index 0000000000..a6b0970dd6 --- /dev/null +++ b/files/ca/glossary/propietat/index.html @@ -0,0 +1,17 @@ +--- +title: Propietat +slug: Glossary/Propietat +tags: + - Disambiguation + - Glossary +translation_of: Glossary/property +--- +<p><span id="result_box" lang="ca"><span>El terme</span> <span>propietat pot</span> <span>tenir diversos</span> <span>significats</span><span>, depenent del</span> <span>context.</span> <span>Es</span> <span>pot</span> <span>fer</span> <span>referència a</span><span>:</span></span></p> + +<p><span id="result_box" lang="ca"><strong><a href="https://developer.mozilla.org/en-US/docs/Glossary/property/CSS">Propietat (CSS)</a></strong><br> + <span>Una <strong>propietat</strong></span><strong> </strong><span><strong>CSS</strong> és</span> <span>una característica</span> <span>(</span><span>com el color</span><span>), el valor</span> <span>associat</span> <span>defineix un</span> <span>aspecte</span> <span>de com el</span> <span>navegador</span> <span>mostrarà el</span> <span>element.</span></span></p> + +<p><span id="result_box" lang="ca"><strong><a href="https://developer.mozilla.org/en-US/docs/Glossary/property/JavaScript">Propietat (JavaScript)</a></strong><br> + <span>Una propietat</span> <span>és una característica</span> <span>d'un</span> <span>objecte</span><span>, sovint</span> <span>descriu</span> <span>atributs</span> <span>associats</span> <span>amb una estructura</span> <span>de dades.</span> <span>Existeix per a</span> <span>tipus</span> <span>de propietats</span><span>:</span> <span>una <em>propietat</em></span><em> <span>d'instància</span></em> <span>que conté</span> <span>les dades específiques</span> <span>d'una</span> <span>instància</span> <span>d'objecte</span> <span>determinat</span><span>,</span> <span>o</span> <span>una <em>propietat</em></span><em> </em><span><em>estàtica</em> que</span> <span>manté</span> <span>les dades compartides</span> <span>entre totes les</span> <span>instàncies</span> <span>d'objectes.</span></span></p> + +<p>{{GlossaryDisambiguation}}</p> diff --git a/files/ca/glossary/protocol/index.html b/files/ca/glossary/protocol/index.html new file mode 100644 index 0000000000..8f34cf56e6 --- /dev/null +++ b/files/ca/glossary/protocol/index.html @@ -0,0 +1,21 @@ +--- +title: Protocol +slug: Glossary/Protocol +tags: + - Glossary + - Infrastructure + - Protocols +translation_of: Glossary/Protocol +--- +<p id="Summary">Un protocol és un sistema de regles que defineixen com s'intercanvien les dades dins o entre ordinadors. Les comunicacions entre dispositius requereixen que els dispositius estiguin d'acord en el format de les dades que s'intercanvien. El conjunt de regles que defineixen un format es diu un protocol.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span class="short_text" id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Protocol de comunicacions")}} en Wikipedia</li> + <li><a href="http://www.rfc-editor.org/search/standards.php">RFC Official Internet Protocol Standards</a></li> +</ul> + +<p> </p> diff --git a/files/ca/glossary/referències_a_objectes/index.html b/files/ca/glossary/referències_a_objectes/index.html new file mode 100644 index 0000000000..1eca91862d --- /dev/null +++ b/files/ca/glossary/referències_a_objectes/index.html @@ -0,0 +1,19 @@ +--- +title: Referències a objectes +slug: Glossary/referències_a_objectes +tags: + - CodingScripting + - Glossary +translation_of: Glossary/Object_reference +--- +<p>Un enllaç a un <strong>{{glossary("objecte")}}</strong>. Les referències a objectes poden usar-se exactament igual que els objectes vinculats.</p> + +<p>El concepte de referències a objectes es fa evident quan s'assigna el mateix objecte a més d'una {{glossary("propietat")}}. En lloc de mantenir una còpia de l'objecte, cada propietat assignada conté referències d'objectes que enllacen amb el mateix objecte, de manera que quan l'objecte canvia totes les propietats referents a l'objecte reflecteixen el canvi.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Referències (Ciències de la compputació)")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/rss/index.html b/files/ca/glossary/rss/index.html new file mode 100644 index 0000000000..3c2fd2a74a --- /dev/null +++ b/files/ca/glossary/rss/index.html @@ -0,0 +1,26 @@ +--- +title: RSS +slug: Glossary/RSS +tags: + - Glossary + - OpenPractices + - RSS + - Sharing + - WebMechanics +translation_of: Glossary/RSS +--- +<p><strong>RSS</strong> (Really Simple Syndication) es refereix a diversos formats de documents XML dissenyats per publicar actualitzacions de llocs. Quan us subscriviu a un lloc web de RSS, el lloc web envia informació i actualitzacions en el vostre lector RSS en un document RSS anomenat feed, de manera que no cal comprovar tots els seus llocs web favorits de forma manual.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "RSS")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="http://www.rssboard.org/rss-specification">Última especificació</a></li> +</ul> diff --git a/files/ca/glossary/servidor/index.html b/files/ca/glossary/servidor/index.html new file mode 100644 index 0000000000..cda9e7c3ea --- /dev/null +++ b/files/ca/glossary/servidor/index.html @@ -0,0 +1,25 @@ +--- +title: Servidor +slug: Glossary/Servidor +tags: + - Glossary + - Infrastructure + - Networking + - Protocol + - Server +translation_of: Glossary/Server +--- +<p>Un servidor de maquinari és un equip compartit en una xarxa que proporciona serveis a clients. Un servidor de programari és un programa que proporciona serveis als programes de client.</p> + +<p>Els serveis es proporcionen generalment a través de xarxes d'àrea local o xarxes d'àrea àmplia. Tradicionalment, un programa client i un programa de servidor es connecten en passar missatges codificats usant un {{glossary("protocol")}}.</p> + +<p>Els servidors més comuns en una xarxa d'àrea local són servidors d'arxiu, nom, correu electrònic, impressió i fax. Un altre exemple comú d'un servidor és un servidor web connectat a Internet. Els miniordinadors, ordinadors centrals, i super ordinadors en els centres de dades, són també servidors.</p> + +<h2 id="Aprèn_més"><strong>Aprèn més</strong></h2> + +<h3 id="Coneixement_general"><span class="short_text" id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/Learn/What_is_a_web_server">Introducció els servidors</a></li> + <li>{{Interwiki("wikipedia", "Servidors (computació)")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/sql/index.html b/files/ca/glossary/sql/index.html new file mode 100644 index 0000000000..5d7ac305e2 --- /dev/null +++ b/files/ca/glossary/sql/index.html @@ -0,0 +1,26 @@ +--- +title: SQL +slug: Glossary/SQL +tags: + - CodingScripting + - Database + - Glossary + - Sql +translation_of: Glossary/SQL +--- +<p><strong>SQL </strong>(Structured Query Language) és un llenguatge de programació descriptiu dissenyat per actualitzar, recuperar i calcular dades en bases de dades basades en taules.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "SQL")}} en Wikipedia</li> +</ul> + +<h3 id="Aprendre_SQL">Aprendre SQL</h3> + +<ul> + <li><a href="http://sqlzoo.net/wiki/SQL_Tutorial">Aprendre SQL en sqlzoo.net</a></li> + <li><a href="http://www.tutorialspoint.com/sql/">Tutorial Point</a></li> +</ul> diff --git a/files/ca/glossary/string/index.html b/files/ca/glossary/string/index.html new file mode 100644 index 0000000000..007819e464 --- /dev/null +++ b/files/ca/glossary/string/index.html @@ -0,0 +1,22 @@ +--- +title: String +slug: Glossary/String +tags: + - Beginner + - CodingScripting + - Glossary + - String +translation_of: Glossary/String +--- +<p>En qualsevol llenguatge de programació d'ordinadors, una cadena és una seqüència de {{Glossary("character","caràcters")}} utilitzat per representar text.</p> + +<p>En {{Glossary("JavaScript")}}, una cadena és un dels {{Glossary("Primitive", "valors primitius")}} i l'objecte {{jsxref("String")}} és un {{Glossary("contenidor")}} al voltant d'una cadena primitiva.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "String (Ciències de la computació)")}} en Wikipedia</li> + <li><a href="/en-US/docs/Web/JavaScript/Data_structures#String_type">JavaScript tipus i estructures de dades</a></li> +</ul> diff --git a/files/ca/glossary/svg/index.html b/files/ca/glossary/svg/index.html new file mode 100644 index 0000000000..45db3cda37 --- /dev/null +++ b/files/ca/glossary/svg/index.html @@ -0,0 +1,40 @@ +--- +title: SVG +slug: Glossary/SVG +tags: + - Beginner + - CodingScripting + - Glossary + - Graphics + - SVG + - 'l10n:priority' +translation_of: Glossary/SVG +--- +<p><em>Scalable Vector Graphics</em> (<strong>SVG</strong>) és un format d'imatge vectorial 2D basat en una sintaxi {{Glossary("XML")}}.</p> + +<p>La {{Glossary("W3C")}} va començar la feina de SVG a finals de 1990, però SVG només es va fer popular quan {{Glossary("Microsoft Internet Explorer","Internet Explorer")}} 9 va sortir amb suport per a SVG. Tots els principals {{Glossary("browser","navegadors")}} ara són compatibles amb SVG.</p> + +<p>Basat en una sintaxi {{Glossary("XML")}} , SVG pot tenir estil amb {{Glossary("CSS")}} i ser interactiu utilitzant {{Glossary("JavaScript")}}. HTML5 ara permet la incrustació directa d'{{Glossary("tag","etiquetes")}} SVG en un document {{Glossary("HTML")}}.</p> + +<p>Com un <a href="http://en.wikipedia.org/wiki/Vector_graphics">format d'imatge vectorial</a>, SVG gràfics es pot escalar infinitament, fent-lo molt valuos en {{Glossary("el disseny de resposta -responsive design-")}}, ja que es pot crear elements de interfície i gràfics que s'escalen a qualsevol mida de pantalla. SVG també proporciona un útil conjunt d'eines, com ara la retallada, màscares, filtres i animacions..</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "SVG")}} en Wikipedia</li> +</ul> + +<h3 id="Aprendre_SVG">Aprendre SVG</h3> + +<ul> + <li><a href="https://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html" rel="external">W3.org's SVG Primer</a></li> +</ul> + +<h3 id="Informació_tècnica"><span id="result_box" lang="ca"><span>Informació</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/Web/SVG">Documentació SVG en MDN</a></li> + <li><a href="http://www.w3.org/TR/SVG/" rel="external">Última especificació de SVG</a></li> +</ul> diff --git a/files/ca/glossary/symbol/index.html b/files/ca/glossary/symbol/index.html new file mode 100644 index 0000000000..83803fb36b --- /dev/null +++ b/files/ca/glossary/symbol/index.html @@ -0,0 +1,39 @@ +--- +title: Symbol +slug: Glossary/Symbol +tags: + - ECMAScript 2015 + - Glossary + - JavaScript + - Sharing +translation_of: Glossary/Symbol +--- +<p>Un símbol és un tipus de dades primitiu les instàncies de les quals són úniques i immutables. En alguns llenguatges de programació són també nomenats atoms.</p> + +<p>En {{Glossary("JavaScript")}}, Symbol és un dels {{Glossary("Primitive", "valors primitius")}} i el objecte {{jsxref("Symbol")}} és un {{Glossary("Wrapper","contenidor")}} al voltant d'un Symbol primitiu.</p> + +<p>Symbol pot tenir una descripció opcional, però per finalitats de depuració.</p> + +<p>El tipus Symbol és una nova característica de ECMAScript 2015 i no hi ha equivalent en ECMAScript 5 de Symbol.</p> + +<pre class="brush: js">Symbol("foo") !== Symbol("foo") +const foo = Symbol() +const bar = Symbol() +typeof foo === "symbol" +typeof bar === "symbol" +let obj = {} +obj[foo] = "foo" +obj[bar] = "bar" +JSON.stringify(obj) // {} +Object.keys(obj) // [] +Object.getOwnPropertyNames(obj) // [] +Object.getOwnPropertySymbols(obj) // [ foo, bar ]</pre> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "Symbol (programació)")}} en Wikipedia</li> + <li><a href="/en-US/docs/Web/JavaScript/Data_structures">JavaScript tipus i estructures de dades</a></li> +</ul> diff --git a/files/ca/glossary/tcp/index.html b/files/ca/glossary/tcp/index.html new file mode 100644 index 0000000000..6187f120d1 --- /dev/null +++ b/files/ca/glossary/tcp/index.html @@ -0,0 +1,21 @@ +--- +title: TCP +slug: Glossary/TCP +tags: + - Glossary + - Infrastructure + - Networking + - TCP + - Transmission Control Protocol + - data +translation_of: Glossary/TCP +--- +<p id="Summary">TCP (Transmission Control Protocol) és un {{Glossary("protocol")}} de xarxa important que permet a dos hosts es connectin i intercanvïin fluxos de dades. TCP garanteix el lliurament de dades i paquets en el mateix ordre en què van ser enviats. Vint Cerf i Bob Kahn, que eren científics de DARPA en aquest llavors, van dissenyar TCP en els anys 1970.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Transmission Control Protocol")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/undefined/index.html b/files/ca/glossary/undefined/index.html new file mode 100644 index 0000000000..67ff421943 --- /dev/null +++ b/files/ca/glossary/undefined/index.html @@ -0,0 +1,24 @@ +--- +title: undefined +slug: Glossary/undefined +tags: + - CodingScripting + - Glossary + - NeedsContent +translation_of: Glossary/undefined +--- +<p>Un valor <strong>{{Glossary("primitiu")}}</strong> assignat automàticament a les <strong>variables</strong> que acaben de ser declarades o per <strong>{{Glossary("Argument","arguments")}} formals</strong> per als quals no hi han <strong>arguments reals</strong>.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "valor Undefined")}} en Wikipedia</li> +</ul> + +<h3 id="Referència_tècnica"><span id="result_box" lang="ca"><span>Referència</span> <span>tècnica</span></span></h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures">JavaScript tipus i estructures de dades</a></li> +</ul> diff --git a/files/ca/glossary/url/index.html b/files/ca/glossary/url/index.html new file mode 100644 index 0000000000..d3eb24477d --- /dev/null +++ b/files/ca/glossary/url/index.html @@ -0,0 +1,28 @@ +--- +title: URL +slug: Glossary/URL +tags: + - Glossary + - Infrastructure + - 'l10n:priority' +translation_of: Glossary/URL +--- +<p><em>Uniform Resource Locator</em> (<strong>URL</strong>) és una cadena de text que especifica on es pot trobar un recurs en Internet.</p> + +<p>En el context de {{Glossary("HTTP")}}, les URLs es denominen "adreça web" o "enllaç". El vostre navegador mostra les URLs a la barra d'adreces, per exemple <code>https://developer.mozilla.org</code></p> + +<p>Les URLs també es poden utilitzar per a la transferència d'arxius ({{Glossary("FTP")}}), correus electrònics ({{Glossary("SMTP")}}) i altres aplicacions.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<ul> + <li>{{Interwiki("wikipedia", "URL")}} en Wikipedia</li> +</ul> + +<h3 id="Aprèn_sobre">Aprèn sobre</h3> + +<ul> + <li><a href="/en-US/Learn/Understanding_URLs">Entendre les URLs i la seva estructura</a></li> +</ul> diff --git a/files/ca/glossary/utf-8/index.html b/files/ca/glossary/utf-8/index.html new file mode 100644 index 0000000000..57193a00da --- /dev/null +++ b/files/ca/glossary/utf-8/index.html @@ -0,0 +1,23 @@ +--- +title: UTF-8 +slug: Glossary/UTF-8 +tags: + - CodingScripting + - Glossary + - HTML + - JavaScript + - Utf-8 +translation_of: Glossary/UTF-8 +--- +<p>UTF-8 (UCS Transformation Format 8) és el més comú de la World Wide Web en la {{Glossary("character encoding")}} (codificació de caràcters). Cada caràcter es representa per mitjà d'un a quatre bytes. UTF-8 és compatible amb versions anteriors amb {{Glossary("ASCII")}} i pot representar qualsevol caràcter Unicode estàndard.</p> + +<p>Els primers 128 caràcters UTF-8 coincideixin exactament amb els primers caràcters ASCII 128 (numerades 0-127), el que significa que el text ASCII existent ja és UTF-8 vàlid. Tots els altres caràcters utilitzen de dos a quatre bytes. Cada byte té alguns bits reservats per a propòsits de codificació. Atès que els caràcters no ASCII requereixen més d'un byte per a l'emmagatzematge, corren el risc de ser danyats si els bytes estan separats i no es tornen a combinar.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "UTF-8")}} en Wikipedia</li> + <li><a href="http://www.unicode.org/faq/utf_bom.html#UTF8">FAQ sobre UTF-8 en la pàgina web d'Unicode</a></li> +</ul> diff --git a/files/ca/glossary/valor/index.html b/files/ca/glossary/valor/index.html new file mode 100644 index 0000000000..972fd4303d --- /dev/null +++ b/files/ca/glossary/valor/index.html @@ -0,0 +1,18 @@ +--- +title: Valor +slug: Glossary/Valor +tags: + - CodingScripting + - Glossary + - NeedsContent +translation_of: Glossary/Value +--- +<p>En el context de les dades o un <strong>{{Glossary("Wrapper","contenidor")}}</strong> d'objectes al voltant d'aquestes dades, el valor és el <strong>{{Glossary("Primitive", "valor primitiu")}}</strong> que conté el contenidor d'objectes. En el context d'una <strong>{{Glossary("Variable","variable")}}</strong> or <strong>{{Glossary("Property","propietat")}}</strong>, el valor pot ser una primitiva o una <strong>{{Glossary("Object reference","referència d'objecte")}}</strong>.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia","Classe contenidora primitiva")}} en Wikipedia</li> +</ul> diff --git a/files/ca/glossary/world_wide_web/index.html b/files/ca/glossary/world_wide_web/index.html new file mode 100644 index 0000000000..a39e23320c --- /dev/null +++ b/files/ca/glossary/world_wide_web/index.html @@ -0,0 +1,41 @@ +--- +title: World Wide Web +slug: Glossary/World_Wide_Web +tags: + - Glossary + - Infrastructure + - WWW + - World Wide Web +translation_of: Glossary/World_Wide_Web +--- +<p>La <em>World Wide Web</em> - comunament coneguda com a WWW, W3 o Web és un sistema interconnectat de pàgines web públics accessibles a través de la {{Glossary("Internet")}}. La Web no és el mateix que Internet: la Web és una de les moltes aplicacions que es construeixen damunt d'Internet.</p> + +<p>Tim Berners-Lee va proposar l'arquitectura del que es coneix com la World Wide Web. Va crear la primera web {{Glossary("Server","servidor")}}, web {{Glossary("Browser", "navegador")}} i la pàgina web en el seu ordinador en el laboratori d'investigació de física del CERN el 1990. En 1991, es va anunciar la seva creació en el grup de notícies alt.hypertext, marcant el moment en que el web es va fer públic per primera vegada.</p> + +<p>El sistema que avui coneixem com "la Web" consta de diversos components:</p> + +<ul> + <li>El protocol <strong>{{Glossary("HTTP")}}</strong> regeix la transferència de dades entre un servidor i un client.</li> + <li>Per accedir a un component web, un client proporciona un identificador universal únic, anomenat <strong>{{Glossary("URL")}}</strong> (ubicació uniforme de recursos) o {{Glossary("URI")}} (identificador uniforme de recursos) (anomenat formalment identificador universal de Documents (UDI)).</li> + <li><strong>{{Glossary("HTML")}}</strong> (llenguatge de marcat d'hipertext) és el format més comú per a la publicació de documents web.</li> +</ul> + +<p>La vinculació o connexió de recursos a través de {{Glossary("Hyperlink", "hipervincles")}}, és un concepte que defineix a la web, ajudant a la seva identitat com una col·lecció de documents connectats.</p> + +<p>Poc després de la invenció de la web, Tim Berners-Lee va fundar la {{Glossary("W3C")}} (World Wide Web Consortium) per estandarditzar i desenvolupar la Web més enllà. Aquest consorci està format per grups d'interès en la Web, com ara els desenvolupadors de navegador web, entitats governamentals, investigadors i universitats. La seva missió inclou l'educació i la divulgació.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Aprèn_sobre">Aprèn sobre</h3> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/Learn">Aprendre la Web</a></li> + <li><a href="https://learning.mozilla.org/web-literacy">Mapa d'alfabetització Web</a> ( <span id="result_box" lang="ca"><span>un inventari</span> <span>de les</span> <span>habilitats</span> <span>necessàries</span> <span>en el desenvolupament</span> <span>del web</span></span> )</li> +</ul> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "World Wide Web")}} en Wikipedia</li> + <li><a href="http://w3.org">El lloc web W3C</a></li> +</ul> diff --git a/files/ca/glossary/wrapper/index.html b/files/ca/glossary/wrapper/index.html new file mode 100644 index 0000000000..fc2dd674a6 --- /dev/null +++ b/files/ca/glossary/wrapper/index.html @@ -0,0 +1,16 @@ +--- +title: Wrapper +slug: Glossary/Wrapper +tags: + - CodingScripting + - Glossary + - Wrapper +translation_of: Glossary/Wrapper +--- +<p>En els llenguatges de programació, com Javascript, un embolcall és una funció que té la intenció de cridar a una o més funcions, de vegades purament per conveniència, ja vegades adaptant-les per fer una tasca lleugerament diferent en el procés.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general"><span class="short_text" id="result_box" lang="ca"><span>Coneixement general</span></span></h3> + +<p>{{Interwiki("wikipedia", "funció Wrapper")}} en Wikipedia</p> diff --git a/files/ca/glossary/xml/index.html b/files/ca/glossary/xml/index.html new file mode 100644 index 0000000000..6e8f9a8e6c --- /dev/null +++ b/files/ca/glossary/xml/index.html @@ -0,0 +1,13 @@ +--- +title: XML +slug: Glossary/XML +tags: + - CodingScripting + - Glossary + - XML + - 'l10n:priority' +translation_of: Glossary/XML +--- +<p>eXtensible Markup Language (XML) és un llenguatge de marques genèric especificat pel W3C. La indústria de la tecnologia de la informació (IT) utilitza molts llenguatges basats en XML com a llenguatges de descripció de dades.</p> + +<p>Les etiquetes XML s'assemblen a les etiquetes HTML, però XML és molt més flexible, ja que permet als usuaris definir les seves pròpies etiquetes. D'aquesta manera, XML actua com un meta-llenguatge, és a dir, pot usar-se per definir altres llenguatges, com {{Glossary("RSS")}}. D'altra banda, l'HTML és un llenguatge de presentació, mentre que XML és un llenguatge de descripció de dades. Això vol dir que XML té aplicacions molt més àmplies que solsament la web. Per exemple, els serveis web poden utilitzar XML per intercanviar sol·licituds i respostes.</p> diff --git a/files/ca/glossary/àmbit/index.html b/files/ca/glossary/àmbit/index.html new file mode 100644 index 0000000000..10707ada0b --- /dev/null +++ b/files/ca/glossary/àmbit/index.html @@ -0,0 +1,19 @@ +--- +title: Àmbit +slug: Glossary/Àmbit +tags: + - CodingScripting + - Glossary +translation_of: Glossary/Scope +--- +<p>El context actual d'{{glossary("execute","execució")}}. El context en el qual {{glossary("value","valors")}} i <strong>expressions</strong> són "visibles", o poden ser referenciats. Si una <strong>{{glossary("variable")}}</strong> o una altra expressió no és "en l'àmbit actual", llavors no està disponible per al seu ús. Els àmbits també es poden superposar en una jerarquia, de manera que els àmbits fills tinguin accés als àmbits dels pares, però no viceversa.</p> + +<p>Un <strong>{{glossary("function")}}</strong> serveix com un <strong>tancament</strong> en {{glossary("JavaScript")}}, i per tant crea un àmbit, de manera que (per exemple) una variable definida exclusivament dins de la funció no es pot accedir des fora de la funció o dins d'altres funcions.</p> + +<h2 id="Aprèn_més">Aprèn més</h2> + +<h3 id="Coneixement_general">Coneixement general</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Àmbit (Informàtica)")}} en Wikipedia</li> +</ul> diff --git a/files/ca/learn/accessibility/accessibility_troubleshooting/index.html b/files/ca/learn/accessibility/accessibility_troubleshooting/index.html new file mode 100644 index 0000000000..170f46a570 --- /dev/null +++ b/files/ca/learn/accessibility/accessibility_troubleshooting/index.html @@ -0,0 +1,122 @@ +--- +title: 'Avaluació: solució de problemes d''accessibilitat' +slug: Learn/Accessibility/Accessibility_troubleshooting +translation_of: Learn/Accessibility/Accessibility_troubleshooting +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/Accessibility/Mobile", "Learn/Accessibility")}}</div> + +<p class="summary">A l'avaluació d'aquest mòdul, us presentem un lloc senzill amb diversos problemes d'accessibilitat que haureu de diagnosticar i solucionar.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixement bàsic d'informàtica, comprensió bàsica d’HTML, CSS i JavaScript, <a href="/ca/docs/Learn/Accessibility">comprensió dels articles anteriors del curs</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Posar a prova els coneixements bàsics dels fonaments d'accessibilitat.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida">Punt de partida</h2> + +<p>Per començar aquesta avaluació, heu d'agafar el <a href="https://github.com/mdn/learning-area/blob/master/accessibility/assessment-start/assessment-files.zip?raw=true">ZIP que conté els fitxers que formen l'exemple</a>. Descomprimiu el contingut en un directori nou en algun lloc de l'ordinador local.</p> + +<p>Com a alternativa, podeu fer servir un lloc com <a href="https://glitch.com/">JSBin</a> o <a href="https://glitch.com/">Glitch</a> per fer la vostra avaluació. Podeu enganxar l'HTML, CSS i JavaScript en un d'aquests editors en línia. Si l'editor en línia que utilitzeu no té un panell CSS / JS separat, no dubteu a posar-los en elements <code><style></code> / <code><script></code> adequats.</p> + +<p>El lloc d'avaluació acabat hauria de ser així:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14555/assessment-site-finished.png" style="border-style: solid; border-width: 1px; display: block; height: 457px; margin: 0px auto; width: 800px;"></p> + +<p>Veureu algunes diferències / problemes amb la visualització de l’estat inicial de l’avaluació; això es deu principalment a les diferències en el marcatge, que al seu torn provoquen alguns problemes d’estil, ja que el CSS no s’aplica correctament. No us preocupeu, solucionareu aquests problemes a les properes seccions.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> si us quedeu atrapats, demaneu-nos ajuda; consulteu la secció {{anch("Avaluació o ajuda addicional")}} a la part inferior d'aquesta pàgina.</p> +</div> + +<h2 id="Brífing_del_projecte">Brífing del projecte</h2> + +<p>Per a aquest projecte, se us presenta un lloc de natura fictícia que mostra un article "factual" sobre els óssos. Tal com està, té diversos problemes d’accessibilitat: la vostra tasca és explorar el lloc existent i solucionar-los al màxim de les vostres capacitats, responent a les preguntes que es donen a continuació.</p> + +<h3 id="Color">Color</h3> + +<p>El text és difícil de llegir a causa de l’esquema de colors actual. Podeu fer una prova del contrast de color actual (text / fons), informar dels resultats de la prova i després corregir-la canviant els colors assignats?</p> + +<h3 id="HTML_semàntic">HTML semàntic</h3> + +<ol> + <li>El contingut encara no és gaire accessible: informeu del que passa quan intenteu navegar-hi mitjançant un lector de pantalla.</li> + <li>Podeu actualitzar el text de l'article per facilitar la navegació dels usuaris de lectors de pantalla?</li> + <li>La part del menú de navegació del lloc (marcada per <code><div class = "nav"> </div></code>) es podria fer més accessible posant-la en un element semàntic HTML5 adequat. A quin s'ha d'actualitzar? Feu l'actualització.</li> +</ol> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> haureu d'actualitzar els selectors de regles CSS que donen estil a les etiquetes als seus equivalents adequats per als encapçalaments semàntics. Un cop afegiu elements de paràgraf, notareu que l'estil té un aspecte millor.</p> +</div> + +<h3 id="Les_imatges">Les imatges</h3> + +<p>Actualment, les imatges no són accessibles als usuaris de lectors de pantalla. Podeu solucionar-ho?</p> + +<h3 id="El_reproductor_dàudio">El reproductor d'àudio</h3> + +<ol> + <li>El reproductor <code><audio></code> no és accessible per a persones amb discapacitat auditiva (sordes). Podeu afegir algun tipus d'alternativa accessible per a aquests usuaris?</li> + <li>El reproductor <code><audio></code> no és accessible per a aquells que utilitzen navegadors antics que no admeten àudio HTML5. Com es pot permetre que continuïn accedint a l'àudio?</li> +</ol> + +<h3 id="Els_formularis"><font>Els formularis</font></h3> + +<ol> + <li>A l'element <code><input></code> del formulari de cerca de la part superior se li podria posar una etiqueta, però no volem afegir una etiqueta de text visible que pugui malmetre el disseny i que no sigui realment necessària per als usuaris vidents. Com es pot afegir una etiqueta que només sigui accessible per als lectors de pantalla?</li> + <li>Els dos elements <code><input></code> del formulari de comentaris tenen etiquetes de text visibles, però no s’associen sense ambigüitats amb les seves etiquetes; com ho podem aconseguir? Tingueu en compte que també haureu d’actualitzar algunes de les regles CSS.</li> +</ol> + +<h3 id="El_control_de_mostrar_amagar_comentaris">El control de mostrar / amagar comentaris</h3> + +<p>El botó de control de mostrar / amagar comentaris no és accessible per teclat actualment. Es pot fer accessible al teclat, tant pel que fa a donar-hi focus mitjançant la tecla de tabulació com per activar-lo amb la tecla de retorn?</p> + +<h3 id="La_taula">La taula</h3> + +<p>Actualment, la taula de dades no és gaire accessible: és difícil per als usuaris de lectors de pantalla associar files i columnes de dades, i la taula tampoc no té cap mena de resum per deixar clar què mostra. Podeu afegir algunes funcions al vostre codi HTML per solucionar aquest problema?</p> + +<h3 id="Altres_consideracions">Altres consideracions?</h3> + +<p>Podeu enumerar dues idees més per millorar que faran que el lloc web sigui més accessible?</p> + +<h2 id="Avaluació_o_ajuda_addicional">Avaluació o ajuda addicional</h2> + +<p>Si voleu que el vostre treball sigui avaluat o esteu atrapats i voleu demanar ajuda:</p> + +<ol> + <li>Poseu el vostre treball en un editor compartible en línia com CodePen, jsFiddle o Glitch.</li> + <li>Escriviu un missatge demanant avaluació i/o ajuda a <a href="https://discourse.mozilla.org/c/mdn/learn">la categoria d’aprenentatge del fòrum Discourse de la MDN</a>. La vostra publicació ha d'incloure: + <ul> + <li>Un títol descriptiu com ara "Avaluació per solucionar problemes d'accessibilitat".</li> + <li>Detalls del que ja heu provat i del que voleu que fem. P.ex. si esteu atrapats i necessiteu ajuda o voleu una valoració. + <ul> + <li>Un enllaç a l'exemple que vulgueu que s'avalui o amb el qual necessiteu ajuda en un editor compartible en línia (tal com s'esmenta al pas 1 anterior). Aquesta és una bona pràctica a adquirir: és molt difícil ajudar algú amb un problema de codi si no podeu veure el seu codi.</li> + <li>Un enllaç a la pàgina de tasca o avaluació real, de manera que podem trobar la pregunta amb la qual voleu obtenir ajuda.</li> + </ul> + </li> + </ul> + </li> +</ol> + +<p><font>{{PreviousMenu("Learn/Accessibility/Mobile", "Learn/Accessibility")}}</font></p> + +<h2 id="In_this_module">In this module</h2> + +<ul> + <li><a href="/en-US/docs/Learn/Accessibility/What_is_accessibility">What is accessibility?</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/HTML">HTML: A good basis for accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript">CSS and JavaScript accessibility best practices</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA basics</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessible multimedia</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Mobile">Mobile accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting">Accessibility troubleshooting</a></li> +</ul> diff --git a/files/ca/learn/accessibility/css_and_javascript/index.html b/files/ca/learn/accessibility/css_and_javascript/index.html new file mode 100644 index 0000000000..28aa1b9651 --- /dev/null +++ b/files/ca/learn/accessibility/css_and_javascript/index.html @@ -0,0 +1,355 @@ +--- +title: Bones pràctiques d'accessibilitat en CSS i JavaScript +slug: Learn/Accessibility/CSS_and_JavaScript +translation_of: Learn/Accessibility/CSS_and_JavaScript +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Accessibility/HTML","Learn/Accessibility/WAI-ARIA_basics", "Learn/Accessibility")}}</div> + +<p class="summary">El CSS i el JavaScript, quan s’utilitzen correctament, també tenen el potencial de permetre experiències web accessibles ... o poden perjudicar significativament l’accessibilitat si s’utilitzen malament. Aquest article descriu algunes de les pràctiques recomanades amb CSS i JavaScript que s’han de tenir en compte per garantir que fins i tot el contingut complex sigui el més accessible possible.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Alfabetització bàsica en informàtica, comprensió bàsica d’HTML, CSS i JavaScript, i comprensió de <a href="/ca/docs/Learn/Accessibility/Que_es_accessibilitat">què és l’accessibilitat.</a></td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Familiaritzar-vos amb l’ús adequat de CSS i JavaScript als vostres documents web per maximitzar l’accessibilitat i no restar-li importància.</td> + </tr> + </tbody> +</table> + +<h2 id="CSS_i_JavaScript_són_accessibles">CSS i JavaScript són accessibles?</h2> + +<p>CSS i JavaScript no tenen la mateixa importància immediata per a l’accessibilitat que l’HTML, però tot i això poden ajudar o perjudicar l’accessibilitat, segons com s’utilitzin. Dit d'una altra manera, és important que tingueu en compte alguns consells sobre bones pràctiques per assegurar-vos que l'ús de CSS i JavaScript no arruïni l'accessibilitat dels vostres documents.</p> + +<h2 id="CSS">CSS</h2> + +<p>Comencem considerant CSS.</p> + +<h3 id="Semàntica_correcta_i_expectatives_dels_usuaris">Semàntica correcta i expectatives dels usuaris</h3> + +<p>És possible utilitzar CSS per fer que qualsevol element HTML sembli qualsevol cosa, però això no vol dir que ho hàgiu de fer. Tal com hem esmentat amb freqüència en el nostre article <a href="/ca/docs/Learn/Accessibility/HTML">HTML: Una bona base per a l'accessibilitat</a>, heu d’utilitzar l’element semàntic adequat per a cada funcionalitat, sempre que sigui possible. Si no ho feu, pot causar problemes de confusió i usabilitat per a tothom, però sobretot per als usuaris amb discapacitat. L’ús de semàntica correcta té molt a veure amb les expectatives dels usuaris: els elements tenen un aspecte i un comportament determinats segons la seva funcionalitat, i els usuaris esperen aquestes convencions habituals.</p> + +<p>Per exemple, un usuari de lector de pantalla no pot navegar per una pàgina a través dels seus elements d’encapçalament si el desenvolupador no ha utilitzat adequadament elements d’encapçalament per marcar el contingut. De la mateixa manera, un encapçalament perd el seu propòsit visual si hi apliqueu estil perquè no sembli un encapçalament.</p> + +<h4 id="Estructura_de_contingut_textual_estàndard">Estructura de contingut textual "estàndard"</h4> + +<p>Encapçalaments, paràgrafs, llistes — el contingut bàsic del text de la vostra pàgina:</p> + +<pre class="brush: html notranslate"><h1>Encapçalament</h1> + +<p>Paràgraf</p> + +<ul> + <li>La meva llista</li> + <li>té dos ítems.</li> +</ul></pre> + +<p>Un CSS típics pot tenir aquest aspecte:</p> + +<pre class="brush: css notranslate">h1 { + font-size: 5rem; +} + +p, li { + line-height: 1.5; + font-size: 1.6rem; +}</pre> + +<p>Hauríeu de:</p> + +<ul> + <li>Seleccionar mides de lletra, alçades de línia, espaiat entre lletres, etc. raonables per fer que el vostre text sigui lògic, llegible i còmode de llegir.</li> + <li>Assegurar-vos que els títols destaquen del cos de text, normalment grans i en negreta, com l'estil predeterminat. Les vostres llistes haurien de semblar llistes.</li> + <li>El color del text hauria de contrastar bé amb el color de fons.</li> +</ul> + +<p>Consulteu <a href="/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Fonaments_de_text_HTML">Fonaments de text HTML </a>i <a href="/ca/docs/Learn/CSS/Estilitzar_text">Estilitzar text</a> per obtenir més informació.</p> + +<h4 id="Text_emfatitzat">Text emfatitzat</h4> + +<p>Marcatge en línia que confereix un èmfasi específic al text que embolcalla:</p> + +<pre class="brush: html notranslate"><p>L'aigua està <em>molt calenta</em>.</p> + +<p><span class="tlid-translation translation" lang="ca"><span title="">Les gotes d’aigua que es recullen a les superfícies s’anomenen <strong>condensació</strong>.</p></span></span> </pre> + +<p>Potser voldreu afegir un color simple al text emfatitzat:</p> + +<pre class="brush: css notranslate">strong, em { + color: #a60000; +}</pre> + +<p>Tot i això, poques vegades haureu d'aplicar estil als elements d’èmfasi de manera significativa. Les convencions estàndard del text en negreta i cursiva són molt reconeixibles i canviar l’estil pot provocar confusió. Per obtenir més informació sobre l’èmfasi, vegeu <a href="/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Fonaments_de_text_HTML#%C3%88mfasi_i_import%C3%A0ncia">Èmfasi i importància</a>.</p> + +<h4 id="Abreviatures">Abreviatures</h4> + +<p>Un element que permet associar una abreviatura, acrònim o inicialització a la seva expansió:</p> + +<pre class="brush: html notranslate"><p>El contingut web es marca fent servir <abbr title="Hypertext Markup Language">HTML</abbr>.</p></pre> + +<p>De nou, és possible que vulgueu donar-li estil de manera senzilla:</p> + +<pre class="brush: css notranslate">abbr { + color: #a60000; +}</pre> + +<p>La convenció d’estil reconeguda per a les abreviatures és un subratllat puntejat i no és prudent desviar-se’n significativament. Per obtenir més informació sobre les abreviatures, vegeu <a href="/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Format_de_text_avan%C3%A7at#Abreviatures">Abreviatures</a>.</p> + +<h4 id="Enllaços">Enllaços</h4> + +<p>Hiperenllaços — la manera d’arribar a nous llocs del web:</p> + +<pre class="brush: html notranslate"><p>Visiteu la <a href="https://www.mozilla.org">pàgina d'inici de Mozilla</a>.</p></pre> + +<p>A continuació es mostra un estil d’enllaços molt senzill:</p> + +<pre class="brush: css notranslate">a { + color: #ff0000; +} + +a:hover, a:visited, a:focus { + color: #a60000; + text-decoration: none; +} + +a:active { + color: #000000; + background-color: #a60000; +}</pre> + +<p>Les convencions d’enllaç estàndard són el subratllat i un color diferent (per defecte, el blau) en el seu estat estàndard, una altra variació de color quan l’enllaç s’ha visitat prèviament (per defecte: porpra) i un altre color quan l’enllaç està activat (per defecte: vermell). A més, el cursor canvia a una icona de punter quan es passa per sobre dels enllaços i l’enllaç rep un ressaltat quan està enfocat (per exemple, mitjançant la tecla de tabulació) o activat. La imatge següent mostra el destacat tant a Firefox (rodejat de punts) com a Chrome (rodejat de blau):</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14371/focus-highlight-firefox.png" style="display: block; height: 173px; margin: 0px auto; width: 319px;"></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14369/focus-highlight-chrome.png" style="display: block; height: 169px; margin: 0px auto; width: 309px;"></p> + +<p>Podeu ser creatius amb els estils d’enllaços, sempre que continueu donant informació als usuaris quan interactuen amb els enllaços. Definitivament, alguna cosa hauria de passar quan els estats canvien i no heu d’eliminar el cursor del punter ni el destacat (<em>outline</em>): tots dos són ajudes d’accessibilitat molt importants per a aquells que fan servir controls de teclat.</p> + +<h4 id="Elements_de_formulari">Elements de formulari</h4> + +<p>Elements que permeten als usuaris introduir dades als llocs web:</p> + +<pre class="brush: html notranslate"><div> + <label for="name">Entra el teu nom</label> + <input type="text" id="name" name="name"> +</div></pre> + +<p>Podeu veure un bon exemple de CSS al nostre exemple <a href="https://github.com/mdn/learning-area/blob/master/accessibility/css/form-css.html">form-css.html</a> (<a href="http://mdn.github.io/learning-area/accessibility/css/form-css.html">vegeu-lo també en viu</a>).</p> + +<p>La majoria de CSS que escriureu per als formularis serà per donar dimensions als elements, alinear etiquetes i entrades i aconseguir que es vegin ordenats i polits.</p> + +<p>Tanmateix, no us heu de desviar massa de la retroalimentació visual esperada que reben els elements de formulari quan prenen el focus, que és bàsicament la mateixa que als enllaços (vegeu més amunt). Podeu definir els estats de <em>focus</em> i <em>hover</em> del formulari per fer que aquest comportament sigui més coherent entre navegadors o que s’adapti millor al disseny de la vostra pàgina, però no us en desfeu del tot: de nou, la gent confia en aquestes pistes per ajudar-los a saber què passa.</p> + +<h4 id="Taules">Taules</h4> + +<p>Taules per presentar dades tabulars.</p> + +<p>Podeu veure un bon exemple d'HTML i CSS de taula al nostre exemple <a href="https://github.com/mdn/learning-area/blob/master/accessibility/css/table-css.html">table-css.html</a> (<a href="http://mdn.github.io/learning-area/accessibility/css/table-css.html">vegeu-lo també en viu</a>).</p> + +<p>Generalment, el CSS de les taules serveix perquè la taula s’adapti millor al vostre disseny i sigui menys lletja. És una bona idea assegurar-se que les capçaleres de les taules destaquen (normalment amb negreta) i fer servir les tires de zebra per fer més fàcil analitzar les diferents files.</p> + +<h3 id="Color_i_contrast_de_color">Color i contrast de color</h3> + +<p>Quan trieu un esquema de colors per al vostre lloc web, assegureu-vos que el color del text (primer pla) contrasta bé amb el color de fons. El vostre disseny pot semblar genial, però no és bo si les persones amb deficiències visuals com el daltonisme no poden llegir el vostre contingut.</p> + +<p>Hi ha una manera fàcil de comprovar si el vostre contrast és prou gran per no causar problemes. Hi ha una sèrie d’eines de comprovació de contrast en línia on podeu introduir els colors de primer pla i de fons per comprovar-los. Per exemple, el <a href="http://webaim.org/resources/contrastchecker/">Color Contrast Checker</a> de WebAIM és senzill d'utilitzar i proporciona una explicació del que necessiteu per adaptar-vos als criteris WCAG sobre contrast de color.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> una relació de contrast elevada també permetrà que tothom que faci servir un telèfon intel·ligent o una tauleta amb pantalla brillant pugui llegir millor les pàgines quan es troba en un entorn brillant, com ara al sol.</p> +</div> + +<p>Un altre consell és no confiar només en el color per a les indicacions/informació, ja que no servirà per a aquells que no poden veure el color. En lloc de marcar els camps de formulari obligatoris en vermell, per exemple, marqueu-los amb un asterisc i en vermell.</p> + +<h3 id="Amagar_coses">Amagar coses</h3> + +<p>Hi ha molts casos en què un disseny visual requereix que no es mostri tot el contingut alhora. Per exemple, a l’exemple del <a href="http://mdn.github.io/learning-area/css/css-layout/practical-positioning-examples/info-box.html">quadre d’informació amb pestanyes</a> (vegeu el <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/info-box.html">codi font</a>), tenim tres panells d’informació, però els <a href="/ca/docs/Learn/CSS/Disseny_CSS/Posicionament">posicionem</a> els uns sobre els altres i proporcionem pestanyes on es pot fer clic per mostrar-les (també és accessible per al teclat: podeu utilitzar alternativament el tabulador i Return/Enter per a seleccionar-les).</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13368/tabbed-info-box.png" style="display: block; height: 400px; margin: 0px auto; width: 450px;"></p> + +<p>Als usuaris del lector de pantalla no els importa res d’això: estan satisfets amb el contingut sempre que tingui sentit l’ordre al codi font i puguin arribar a tot. El posicionament absolut (tal com s’utilitza en aquest exemple) es considera generalment com un dels millors mecanismes per amagar el contingut per obtenir efectes visuals, perquè no impedeix que els lectors de pantalla hi accedeixin.</p> + +<p>D'altra banda, no heu d'utilitzar {{cssxref ("visibility")}}:<code>hidden</code> o {{cssxref ("display")}}<code>: none</code>, perquè oculten el contingut als lectors de pantalla. Tret que, per descomptat, hi hagi una bona raó per la qual vulgueu que aquest contingut quedi amagat als lectors de pantalla.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> <span class="subtitle"><a href="http://webaim.org/techniques/css/invisiblecontent/">Invisible Content Just for Screen Reader Users</a> </span>té molts més detalls útils sobre aquest tema.</p> +</div> + +<h3 id="Accepteu_que_els_usuaris_poden_sobreescriure_els_estils">Accepteu que els usuaris poden sobreescriure els estils</h3> + +<p>Els usuaris poden sobreescriure els vostres estils amb els seus propis estils personalitzats, per exemple:</p> + +<ul> + <li>Consulteu <a class="external external-icon" href="https://www.itsupportguides.com/knowledge-base/computer-accessibility/how-to-use-a-custom-style-sheet-css-with-firefox/" rel="noopener">How to use a custom style sheet (CSS) with Firefox,</a> de Sarah Maddox, una útil guia sobre com fer-ho manualment a Firefox i <a href="https://www.itsupportguides.com/knowledge-base/computer-accessibility/how-to-use-a-custom-style-sheet-css-with-internet-explorer/">How to use a custom style sheet (CSS) with Internet Explorer</a> d'Adrian Gordon per a les instruccions equivalents a Internet Explorer.</li> + <li>Probablement sigui més fàcil fer-ho mitjançant una extensió. Per exemple, l’extensió <em>Stylish</em> està disponible per a <a href="https://addons.mozilla.org/en-US/firefox/addon/stylish/">Firefox</a>, <a href="https://safari-extensions.apple.com/details/?id=com.sobolev.stylish-5555L95H45">Safari</a>, <a href="https://addons.opera.com/en/extensions/details/stylish/">Opera</a> i <a href="https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe">Chrome</a>.</li> +</ul> + +<p>Els usuaris poden fer-ho per diversos motius. Un usuari amb discapacitat visual pot voler fer més gran el text a tots els llocs web que visita o un usuari amb deficiència de color severa pot voler posar tots els llocs web en colors d’alt contrast que siguin fàcils de veure. Qualsevol que sigui la necessitat, hauríeu de sentir-vos còmodes amb això i fer que els vostres dissenys siguin prou flexibles perquè aquests canvis funcionin al vostre disseny. Per exemple, és possible que vulgueu assegurar-vos que la vostra àrea de contingut principal pot admetre text més gran (potser començarà a desplaçar-se per permetre que es vegi tot), i no només l’amagarà, ni es trencarà completament.</p> + +<h2 id="JavaScript">JavaScript</h2> + +<p>El JavaScript també pot trencar l'accessibilitat, segons com s'utilitzi.</p> + +<p>El JavaScript modern és un llenguatge potent i podem fer-hi moltes coses, avui dia, des de contingut senzill i actualitzacions d’interfície d’usuari fins a jocs 2D i 3D completament desenvolupats. No hi ha cap regla que digui que tot el contingut ha de ser accessible al 100% per a totes les persones; però cal que feu tot el que pugueu i que les vostres aplicacions siguin tan accessibles com sigui possible.</p> + +<p>El contingut i la funcionalitat senzills són fàcils de fer accessibles — per exemple, text, imatges, taules, formularis i botons que activen les funcions. Tal com hem vist al nostre article <a href="/ca/docs/Learn/Accessibility/HTML">HTML: Una bona base per l'accessibilitat</a>, les consideracions clau són:</p> + +<ul> + <li>Bona semàntica: utilitzar l'element adequat per a cada cosa. Per exemple, assegureu-vos que utilitzeu encapçalaments i paràgrafs, i elements {{htmlelement ("button")}} i {{htmlelement ("a")}}}.</li> + <li>Assegureu-vos que el contingut estigui disponible en forma textual, ja sigui directament com a contingut textual, amb bones etiquetes textuals per a elements de formulari o bé alternatives textuals, com ara text alternatiu per a imatges.</li> +</ul> + +<p>També vam veure un exemple de com utilitzar JavaScript per generar funcionalitats que hi falten - vegeu <a href="/ca/docs/Learn/Accessibility/HTML#Tornar_a_afegir_laccessibilitat_de_teclat">Tornar a afegir l'accessibilitat de teclat</a>. Això no és l'ideal; de fet, només hauríeu d'utilitzar l'element adequat per a cada feina, però demostra que és possible en situacions en què per alguna raó no es pot controlar el marcatge que s'utilitza. Una altra manera de millorar l’accessibilitat dels ginys JavaScript no semàntics és utilitzar WAI-ARIA per proporcionar semàntica addicional als usuaris de lectors de pantalla. El següent article també tractarà això en detall.</p> + +<p>Les funcionalitats complexes, com ara els jocs en 3D, no són tan fàcils de fer accessibles: un joc en 3D complex creat amb WebGL es mostrarà en un element {{htmlelement ("canvas")}}), que actualment no té cap capacitat per proporcionar alternatives textuals o altres informacions per a usuaris amb discapacitats visuals greus. És discutible que un joc d’aquest tipus tingui realment aquest grup de persones com a part del seu públic objectiu principal, i no seria raonable esperar que es fes 100% accessible per a persones invidents, tot i que es podrien implementar controls de teclat perquè el puguin utilitzar usuaris que no fan servir el ratolí, i fer que l’esquema de colors sigui prou contrastat per ser utilitzat per persones amb deficiències de color.</p> + +<h3 id="El_problema_de_massa_JavaScript">El problema de massa JavaScript</h3> + +<p>El problema sol venir quan la gent confia massa en JavaScript. De vegades veureu un lloc web on tot s’ha fet amb JavaScript: l’HTML l’ha generat JavaScript, el CSS l’ha generat JavaScript, etc. Això comporta tota mena de problemes d’accessibilitat i altres d'associats, de manera que no és aconsellable.</p> + +<p>A més d'utilitzar l'element adequat per a cada feina, també us heu d'assegurar que utilitzeu la tecnologia adequada per a cada cosa. Penseu bé si necessiteu aquest brillant quadre d’informació 3D basat en JavaScript o si amb un simple text ja faríeu. Penseu bé si necessiteu un complex giny de formulari no estàndard o si una entrada de text serviria. I no genereu tot el vostre contingut HTML mitjançant JavaScript, si és possible.</p> + +<h3 id="Feu-ho_no_obstructiu">Feu-ho no obstructiu</h3> + +<p>Hauríeu de fer servir <strong>JavaScript no obstructiu</strong> quan creeu el vostre contingut. La idea del JavaScript no obstructiu és que s’ha d’utilitzar sempre que sigui possible per millorar funcionalitats i no per construir-la del tot: les funcions bàsiques haurien de funcionar idealment sense JavaScript, tot i que ja sabem que això no sempre és una opció. Un altre cop, una gran part és fer servir la funcionalitat integrada del navegador sempre que sigui possible.</p> + +<p>Un bon exemple d'usos de JavaScript no obstructiu inclou:</p> + +<ul> + <li>Proporcionar validació de formulari al costat del client, que avisa els usuaris de problemes amb les seves entrades de formulari ràpidament, sense haver d’esperar que el servidor comprovi les dades. Si no està disponible, el formulari continuarà funcionant, però la validació pot ser més lenta.</li> + <li>Proporcionar controls personalitzats per als <code><video></code>s HTML5 que siguin accessibles per als usuaris de teclat, juntament amb un enllaç directe al vídeo que es pot utilitzar per accedir-hi si JavaScript no està disponible (els controls predeterminats del navegador per a <code><video></code> no són accessibles per teclat a la majoria de navegadors).</li> +</ul> + +<p>Com a exemple, hem escrit un exemple de validació de formulari al client "ràpid i brut": vegeu <a href="https://github.com/mdn/learning-area/blob/master/accessibility/css/form-validation.html">form-validation.html</a> (vegeu també la <a href="http://mdn.github.io/learning-area/accessibility/css/form-validation.html">demostració en viu</a>). Aquí veureu un formulari senzill: quan intenteu enviar el formulari amb un o ambdós camps buits, l'enviament falla i apareix un quadre de missatge d'error per indicar-vos què no funciona.</p> + +<p>Aquest tipus de validació de formularis és no obstructiu: podeu utilitzar el formulari perfectament sense que estigui disponible JavaScript, i qualsevol implementació de formulari assenyada també tindrà activa la validació del servidor, perquè és massa fàcil per als usuaris malintencionats saltar-se la validació al client (per exemple, desactivant JavaScript al navegador). Però la validació al client és molt útil per informar d'errors: els usuaris poden veure els errors que cometen a l'instant, en lloc d'haver d'esperar un viatge d'anada i tornada al servidor i una recàrrega de la pàgina. Aquest és un avantatge clar d’usabilitat.</p> + +<div class="blockIndicator note"> +<p>Nota: La validació al servidor no s'ha implementat en aquesta senzilla demostració.</p> +</div> + +<p>També hem fet que la validació d’aquest formulari sigui força accessible. Hem utilitzat elements {{htmlelement ("label")}}}) per assegurar-nos que les etiquetes del formulari estiguin lligades sense ambigüitats a les seves entrades, de manera que els lectors de pantalla les puguin llegir conjuntament:</p> + +<pre class="brush: html notranslate"><label for="name">Entra el teu nom:</label> +<input type="text" name="name" id="name"></pre> + +<p>La validació només la fem quan s’envia el formulari, de manera que no actualitzem la interfície d’usuari massa sovint, cosa que pot confondre als usuaris de lectors de pantalla (i possiblement d’altres):</p> + +<pre class="brush: js notranslate">form.onsubmit = validate; + +function validate(e) { + errorList.innerHTML = ''; + for(let i = 0; i < formItems.length; i++) { + const testItem = formItems[i]; + if(testItem.input.value === '') { + errorField.style.left = '360px'; + createLink(testItem); + } + } + + if(errorList.innerHTML !== '') { + e.preventDefault(); + } +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: En aquest exemple, amaguem i mostrem el quadre de missatge d'error mitjançant posicionament absolut en lloc d'un altre mètode, com ara <code>visibility</code> o <code>display</code>, perquè no interfereix amb el fet que el lector de pantalla pugui llegir-ne contingut.</p> +</div> + +<p>La validació real del formulari seria molt més complexa que això: voldríeu comprovar que el nom introduït sembli un nom, l’edat introduïda sigui realment un número i sigui realista (per exemple, no negativa i amb menys de 4 dígits). Aquí simplement hem implementat una comprovació senzilla: que s'ha introduït un valor a cada camp d'entrada (<code>if(testItem.input.value === '')</code>).</p> + +<p>Quan s’hagi realitzat la validació, si passa la prova, s’envia el formulari. Si hi ha errors (<code>if (errorList.innerHTML!== ")</code>), no enviem el formulari (utilitzant <code>preventDefault()</code>) i mostrem els missatges d'error creats (vegeu més avall). Aquest mecanisme significa que els errors només es mostraran si hi ha errors, cosa que és millor per a la usabilitat.</p> + +<p>Per a cada entrada que no tingui un valor completat quan s’envia el formulari, creem un element de llista amb un enllaç i l’inserim a <code>errorList</code>.</p> + +<pre class="brush: js notranslate">function createLink(testItem) { + const listItem = document.createElement('li'); + const anchor = document.createElement('a'); + + anchor.textContent = 'El camp ' + testItem.input.name + ' és buit: entreu ' + testItem.input.name + '.'; + anchor.href = '#' + testItem.input.name; + anchor.onclick = function() { + testItem.input.focus(); + }; + listItem.appendChild(anchor); + errorList.appendChild(listItem); +}</pre> + +<p>Cada enllaç té un doble propòsit: indica quin és l'error i, a més, permet fer-hi clic / activar-lo per saltar directament a l'element d'entrada en qüestió i corregir-lo.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> la part <code>focus()</code> d’aquest exemple és una mica complicada. Chrome i Edge (i les versions més recents d’IE) donen focus a l’element quan es fa clic a l’enllaç, sense necessitat del bloc <code>onclick</code> / <code>focus()</code>. Safari només ressaltarà l’element del formulari amb l’enllaç, de manera que necessita el bloc <code>onclick</code> / <code>focus()</code> per donar-hi focus realment. Firefox no dona focus correctament a les entrades en aquest context, de manera que els usuaris de Firefox no poden aprofitar-ho actualment (tot i que la resta funciona bé). El problema a Firefox s'hauria de solucionar aviat — s'està treballant per proporcionar a Firefox un comportament equivalent al d'altres navegadors (vegeu {{bug(277178)}}).</p> +</div> + +<p>A més, l’<code>errorField</code> es col·loca a la part superior del codi font (tot i que es posiciona de manera diferent a la interfície d'usuari mitjançant CSS), cosa que significa que els usuaris poden esbrinar exactament què passa amb els enviaments del formulari i accedir als elements d’entrada en qüestió tornant al començament de la pàgina.</p> + +<p>Com a nota final, hem utilitzat alguns atributs WAI-ARIA a la nostra demostració per ajudar a resoldre els problemes d’accessibilitat causats per àrees de contingut que s’actualitzen constantment sense que es recarregui la pàgina (els lectors de pantalla no ho recolliran ni avisaran els usuaris per defecte):</p> + +<pre class="notranslate"><div class="errors" role="alert" aria-relevant="all"> + <ul> + </ul> +</div></pre> + +<p>Explicarem aquests atributs al nostre proper article, que cobreix <a href="/ca/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA</a> amb molt més detall.</p> + +<div class="note"> +<p><strong>Nota</strong>: Probablement, alguns de vosaltres pensareu en el fet que els formularis HTML5 tenen mecanismes de validació integrats, com ara els atributs <code>required</code>, <code>min</code>/<code>minlength</code> i <code>max</code>/<code>maxlength</code> (vegeu la referència de l’element {{htmlelement("input")}}) per obtenir més informació ). No els hem utilitzat a la demostració perquè el suport de diversos navegadors per a ells és inadequat (per exemple, només existeix en IE10 i superior).</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: <a href="http://webaim.org/techniques/formvalidation/">Usable and Accessible Form Validation and Error Recovery</a>, de WebAIM, dona més informació útil sobre validació accessible de formularis.</p> +</div> + +<h3 id="Altres_problemes_d’accessibilitat_a_JavaScript">Altres problemes d’accessibilitat a JavaScript</h3> + +<p>Hi ha altres coses que cal tenir en compte a l’hora d’implementar JavaScript i pensar en l’accessibilitat. N’afegirem més a mesura que les trobem.</p> + +<h4 id="Esdeveniments_específics_del_ratolí">Esdeveniments específics del ratolí</h4> + +<p>Com ja deveu saber, la majoria de les interaccions dels usuaris s’implementen en JavaScript del costat del client mitjançant gestors d’esdeveniments (<em>event handlers</em>), que ens permeten executar funcions en resposta a determinats esdeveniments que succeeixen. Alguns esdeveniments poden tenir problemes d’accessibilitat. El principal exemple que trobareu són esdeveniments específics del ratolí, com ara <code>mouseover</code>, <code>mouseout</code>, <code>dblclick</code>, etc. La funcionalitat que s'executa en resposta a aquests esdeveniments no serà accessible mitjançant altres mecanismes, com ara els controls del teclat.</p> + +<p>Per mitigar aquests problemes, hauríeu de duplicar aquests esdeveniments amb esdeveniments similars que es puguin activar per altres mitjans (els anomenats controladors d’esdeveniments independents de dispositiu); <code>focus</code> i <code>blur</code> proporcionarien accessibilitat als usuaris de teclat.</p> + +<p>Vegem un exemple que destaca quan pot ser útil fer-ho. Potser volem proporcionar una imatge en miniatura que mostri una versió més gran de la imatge quan s'hi passi per sobre amb el ratolí o s'hi doni focus (com passaria en un catàleg de productes de comerç electrònic).</p> + +<p>Hem fet un exemple molt senzill que podeu trobar a <a href="http://mdn.github.io/learning-area/accessibility/css/mouse-and-keyboard-events.html">mouse-and-keyboard-events.html</a> (vegeu també el <a href="https://github.com/mdn/learning-area/blob/master/accessibility/css/mouse-and-keyboard-events.html">codi font</a>). El codi presenta dues funcions que mostren i amaguen la imatge ampliada; són executats per les línies següents que els configuren com a gestors d'esdeveniments:</p> + +<pre class="brush: js notranslate">imgThumb.onmouseover = showImg; +imgThumb.onmouseout = hideImg; + +imgThumb.onfocus = showImg; +imgThumb.onblur = hideImg;</pre> + +<p>Les dues primeres línies executen les funcions quan el punter del ratolí passa per sobre i surt de sobre de la miniatura, respectivament. Tot i això, no ens permetrà accedir a la vista ampliada mitjançant el teclat; per permetre-ho, hem inclòs les dues darreres línies, que executen les funcions quan la imatge agafa i perd focus. Això es pot fer prement el tabulador fins arribar a la imatge, perquè hi hem inclòs <code>tabindex="0"</code>.</p> + +<p>L’esdeveniment <code>click</code> és interessant: sembla que depengui del ratolí, però la majoria de navegadors activaran els controladors d’esdeveniments <code>onclick</code> en prémer Retorn sobre un enllaç o element de formulari que tingui focus, o quan es toqui a aquest element en un dispositiu de pantalla tàctil. Això no funciona de manera determinada, però, si permeteu que un esdeveniment al qual no es pot donar focus per defecte prengui el focus mitjançant <code>tabindex</code>. En aquests casos, heu de detectar específicament quan es prem aquesta tecla exacta (consulteu <a href="/ca/docs/Learn/Accessibility/HTML#Tornar_a_afegir_laccessibilitat_de_teclat">Tornar a afegir l'accessibilitat de teclat</a>).</p> + +<h2 id="Posa_a_prova_les_teves_habilitats!">Posa a prova les teves habilitats!</h2> + +<p>Heu arribat al final d’aquest article. En recordeu la informació més important? Podeu trobar algunes proves addicionals per verificar que reteniu aquesta informació abans de continuar. Vegeu <a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript/Test_your_skills:_CSS_and_JavaScript_accessibility">Test your skills: CSS and JavaScript accessibility</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Esperem que aquest article us hagi donat una bona quantitat de detalls i comprensió sobre els problemes d’accessibilitat relacionats amb l’ús de CSS i JavaScript a les pàgines web.</p> + +<p>Tot seguit, WAI-ARIA!</p> + +<div>{{PreviousMenuNext("Learn/Accessibility/HTML","Learn/Accessibility/WAI-ARIA_basics", "Learn/Accessibility")}}</div> + +<div> +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/Accessibility/What_is_accessibility">What is accessibility?</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/HTML">HTML: A good basis for accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript">CSS and JavaScript accessibility best practices</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA basics</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessible multimedia</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Mobile">Mobile accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting">Accessibility troubleshooting</a></li> +</ul> +</div> diff --git a/files/ca/learn/accessibility/html/index.html b/files/ca/learn/accessibility/html/index.html new file mode 100644 index 0000000000..ddcb351f85 --- /dev/null +++ b/files/ca/learn/accessibility/html/index.html @@ -0,0 +1,596 @@ +--- +title: 'HTML: Una bona base per l''accessibilitat' +slug: Learn/Accessibility/HTML +translation_of: Learn/Accessibility/HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Accessibility/What_is_Accessibility","Learn/Accessibility/CSS_and_JavaScript", "Learn/Accessibility")}}</div> + +<p class="summary">Es pot fer accessible una gran quantitat de contingut web només assegurant-se que els elements d'HTML correctes s’utilitzin en tot moment amb el propòsit correcte. Aquest article analitza detalladament com es pot utilitzar HTML per garantir la màxima accessibilitat.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td> + <p>Alfabetització bàsica en informàtica, comprensió bàsica d’HTML (vegeu <a href="/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML">Introducció a l’HTML</a>) i comprensió de <a href="/ca/docs/Learn/Accessibility/Que_es_accessibilitat">què és l’accessibilitat</a>.</p> + </td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Familiaritzar-vos amb les funcions d’HTML que tenen avantatges d’accessibilitat i com utilitzar-les adequadament als vostres documents web.</td> + </tr> + </tbody> +</table> + +<h2 id="HTML_i_accessibilitat">HTML i accessibilitat</h2> + +<p>A mesura que apreneu més sobre HTML —llegiu més recursos, mireu més exemples, etc.— anireu veient un tema comú: la importància d’utilitzar HTML semàntic (de vegades anomenat POSH o <em lang="en">Plain Old Semantic HTML</em>). Això significa utilitzar els elements HTML correctes per al propòsit previst en la mesura del possible.</p> + +<p>Us podeu preguntar per què és tan important. Al cap i a la fi, podeu utilitzar una combinació de CSS i JavaScript per fer que qualsevol element HTML es comporti de la manera que vulgueu. Per exemple, es podria marcar un botó de control per reproduir un vídeo al vostre lloc així:</p> + +<pre class="brush: html notranslate"><div>Reproduir vídeo</div></pre> + +<p>Però, com veureu amb més detall més endavant, té sentit utilitzar l'element correcte per a aquest objectiu:</p> + +<pre class="brush: html notranslate"><button>Reproduir vídeo</button></pre> + +<p>Els <code><button></code>s HTML no només tenen un estil adequat aplicat per defecte (que probablement voldreu substituir), sinó que també tenen accessibilitat de teclat integrada: els usuaris poden navegar entre els botons mitjançant la tecla <kbd>Tab</kbd> i activar la seva selecció mitjançant <kbd>Retorn</kbd> o <kbd>Enter</kbd>.</p> + +<p>No costa més escriure HTML semàntic que etiquetatge no semàntic (i incorrecte) si ho feu de manera constant des de l’inici del projecte. Encara millor, l’etiquetatge semàntic té altres avantatges més enllà de l’accessibilitat:</p> + +<ol> + <li><strong>Més fàcil de desenvolupar:</strong> com es va esmentar anteriorment, obtindreu algunes funcions de forma gratuïta, a més, és possiblement més fàcil d’entendre.</li> + <li><strong>Millor en dispositius mòbils:</strong> l’HTML semàntic és, sens dubte, més lleuger en mida de fitxer que el codi espagueti no semàntic i és més fàcil de fer <em>responsive</em>.</li> + <li><strong>Bo per al SEO:</strong> els motors de cerca donen més importància a les paraules clau dels encapçalaments, enllaços, etc. que les paraules clau incloses als <code><div></code> no semàntics, etc., de manera que els vostres clients podran trobar més fàcilment els vostres documents.</li> +</ol> + +<p>Continuem i vegem l'HTML accessible amb més detall.</p> + +<div class="note"> +<p><strong>Nota</strong>: És una bona idea tenir instal·lat un lector de pantalla a l'ordinador local perquè pugueu provar els exemples que es mostren a continuació. Consulteu la nostra <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Screenreaders">Screen readers guide</a> per obtenir més informació.</p> +</div> + +<h2 id="Bona_semàntica">Bona semàntica</h2> + +<p>Ja hem parlat de la importància d'una semàntica adequada i de per què hauríem d'utilitzar l'element HTML adequat per a cada cosa. Això no es pot ignorar, ja que és un dels principals llocs on l'accessibilitat es trenca greument si no es gestiona correctament.</p> + +<p>Al web, la veritat és que la gent fa coses molt estranyes amb el marcatge HTML. Alguns abusos d'HTML es deuen a pràctiques heretades que no s'han oblidat completament, i algunes són simplement ignorància. En qualsevol cas, hauríeu de substituir aquest codi tan dolent.</p> + +<p>De vegades no esteu en condicions de desfer-vos del marcat terrible: les vostres pàgines podrien ser generades per algun tipus de <em lang="en">framework</em> del servidor sobre el qual no teniu el control total, o bé podríeu tenir contingut de tercers a la vostra pàgina (com ara banners publicitaris) sobre els quals no teniu control.</p> + +<p>L'objectiu no és "tot o res". Tot i això, totes les millores que pugueu fer ajudaran a la causa de l’accessibilitat.</p> + +<h3 id="Contingut_textual">Contingut textual</h3> + +<p>Una de les millors ajudes d’accessibilitat que pot tenir un usuari de lector de pantalla és una estructura de contingut excel·lent amb encapçalaments, paràgrafs, llistes, etc. Un exemple semàntic excel·lent pot semblar-se al següent:</p> + +<pre class="brush: html example-good line-numbers language-html notranslate"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>h1</span><span class="punctuation token">>El meu encapçalament</span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>h1</span><span class="punctuation token">></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span>Aquesta és la primera secció del meu document.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">>Aquí hi afegiré un paràgraf també</span></span>.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">> + +<ol> + <li>Aquí tenim</li> + <li>una llista</li> + <li>per llegir</li> +</ol></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>h2</span><span class="punctuation token">>El meu sotsencapçalament</span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>h2</span><span class="punctuation token">></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">>Aquesta és la primera subsecció del document</span></span>. M'encantaria que tothom pogués trobar aquest document!<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>h2</span><span class="punctuation token">>El meu 2n sotsencapçalament</span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>h2</span><span class="punctuation token">></span></span> + +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">>Aquesta és la segona subsecció del meu contingut</span></span>. Crec que és més interessant que l'anterior.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span></code></pre> + +<p>Hem preparat una versió amb text més llarg per provar-la amb un lector de pantalla (vegeu <a href="https://mdn.github.io/learning-area/accessibility/html/good-semantics.html">good-semantics.html</a>). Si proveu de navegar-hi, veureu que és bastant fàcil:</p> + +<ol> + <li>El lector de pantalla llegeix cada capçalera a mesura que avança pel contingut i us notifica què és un encapçalament, què és un paràgraf, etc.</li> + <li>S'atura després de cada element, deixant-te anar al ritme que sigui més còmode per a tu.</li> + <li>Podeu passar a l’encapçalament següent / anterior en molts lectors de pantalla.</li> + <li>També podeu mostrar una llista de tots els encapçalaments a molts lectors de pantalla, cosa que us permetrà utilitzar-los com una taula de contingut útil per trobar contingut específic.</li> +</ol> + +<p>De vegades, la gent escriu encapçalaments, paràgrafs, etc. mitjançant HTML de presentació i salts de línia, com ara el següent:</p> + +<pre class="brush: html example-bad line-numbers language-html notranslate"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>font</span> <span class="attr-name token">size</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>7<span class="punctuation token">"</span></span><span class="punctuation token">></span></span></code>El meu encapçalament<code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>font</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +</code>Aquesta és la primera secció del meu document.<code class="language-html"> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +</code>Aquí hi afegiré un paràgraf també.<code class="language-html"> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">> +1. </span></span></code>Aquí tenim<code class="language-html"><span class="tag token"><span class="punctuation token"> +</span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">> +2. </span></span></code>una llista<code class="language-html"><span class="tag token"><span class="punctuation token"> +</span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">> +3. </span></span></code>per llegir<code class="language-html"><span class="tag token"><span class="punctuation token"> +</span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>font</span> <span class="attr-name token">size</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>5<span class="punctuation token">"</span></span><span class="punctuation token">></span></span></code>El meu sotsencapçalament<code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>font</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +</code>Aquesta és la primera subsecció del document. M'encantaria que tothom pogués trobar aquest document!<code class="language-html"> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>font</span> <span class="attr-name token">size</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>5<span class="punctuation token">"</span></span><span class="punctuation token">></span></span></code>El meu 2n sotsencapçalament<code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>font</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> +</code>Aquesta és la segona subsecció del meu contingut. Crec que és més interessant que l'anterior.</pre> + +<p>Si proveu la nostra versió més llarga amb un lector de pantalla (vegeu <a href="https://mdn.github.io/learning-area/accessibility/html/bad-semantics.html">bad-semantics.html</a>), no tindreu una experiència molt bona: el lector de pantalla no té res a utilitzar com a indicador, de manera que no podeu recuperar una útil taula de continguts i tota la pàgina es veu com un bloc gegant únic, de manera que només es llegeix d’una sola vegada, tot alhora.</p> + +<p>Hi ha altres qüestions més enllà de l’accessibilitat: és més difícil donar estils al contingut mitjançant CSS o manipular-lo amb JavaScript, per exemple, perquè no hi ha elements que s’utilitzin com a selectors.</p> + +<h4 id="Utilitzar_un_llenguatge_clar">Utilitzar un llenguatge clar</h4> + +<p>El llenguatge que utilitzeu també pot afectar l'accessibilitat. En general, heu d’utilitzar un llenguatge clar que no sigui massa complex i que no faci servir termes d’argot innecessaris. Això no només beneficia les persones amb discapacitats cognitives o d’altres; beneficia els lectors per als quals el text no està escrit en la seva primera llengua, la gent més jove... tothom, de fet! A part d'això, heu d'intentar evitar l'ús de llenguatge i caràcters que el lector de pantalla no llegeixi amb claredat. Per exemple:</p> + +<ul> + <li>No utilitzeu guions si podeu evitar-ho. En lloc d’escriure 5-7, escriviu 5 a 7.</li> + <li>Amplieu les abreviatures: en lloc d’escriure Gen, escriviu gener.</li> + <li>Amplieu les sigles, almenys una o dues vegades. En lloc d’escriure HTML en primera instància, escriviu Hypertext Markup Language.</li> +</ul> + +<h3 id="Disposicions_de_pàgina">Disposicions de pàgina</h3> + +<p>Antigament, la gent solia crear dissenys de pàgines amb taules HTML: utilitzaven diferents cel·les de taula per contenir la capçalera, el peu de pàgina, la barra lateral, la columna de contingut principal, etc. No és una bona idea perquè els lectors de pantalla faran lectures confuses, sobretot si el disseny és complex i té moltes taules imbricades.</p> + +<p>Proveu el nostre exemple <a href="https://mdn.github.io/learning-area/accessibility/html/table-layout.html">table-layout.html</a>, que té un aspecte semblant a aquest:</p> + +<pre class="brush: html notranslate"><table width="1200"> + <!-- main heading row --> + <tr id="heading"> + <td colspan="6"> + + <h1 align="center">Header</h1> + + </td> + </tr> + <!-- nav menu row --> + <tr id="nav" bgcolor="#ffffff"> + <td width="200"> + <a href="#" align="center">Home</a> + </td> + <td width="200"> + <a href="#" align="center">Our team</a> + </td> + <td width="200"> + <a href="#" align="center">Projects</a> + </td> + <td width="200"> + <a href="#" align="center">Contact</a> + </td> + <td width="300"> + <form width="300"> + <input type="search" name="q" placeholder="Search query" width="300"> + </form> + </td> + <td width="100"> + <button width="100">Go!</button> + </td> + </tr> + <!-- spacer row --> + <tr id="spacer" height="10"> + <td> + + </td> + </tr> + <!-- main content and aside row --> + <tr id="main"> + <td id="content" colspan="4" bgcolor="#ffffff"> + + <!-- main content goes here --> + </td> + <td id="aside" colspan="2" bgcolor="#ff80ff" valign="top"> + <h2>Related</h2> + + <!-- aside content goes here --> + + </td> + </tr> + <!-- spacer row --> + <tr id="spacer" height="10"> + <td> + + </td> + </tr> + <!-- footer row --> + <tr id="footer" bgcolor="#ffffff"> + <td colspan="6"> + <p>©Copyright 2050 by nobody. All rights reversed.</p> + </td> + </tr> + </table></pre> + +<p>Si intenteu navegar-hi mitjançant un lector de pantalla, probablement us dirà que hi ha una taula que cal mirar (tot i que alguns lectors de pantalla poden endevinar la diferència entre els dissenys amb taules i les taules de dades). És probable que (depenent del lector de pantalla que utilitzeu) hàgeu de baixar a la taula com a objecte i mirar-ne les cel·les una a una i tornar a sortir de la taula per continuar navegant pel contingut.</p> + +<p>Els dissenys de taules són una relíquia del passat: tenien sentit quan el suport de CSS no estava estès als navegadors, però ara només creen confusió per als usuaris de lectors de pantalla. A més, el seu codi font requereix més marcatge, cosa que els fa menys flexibles i més difícils de mantenir. Podeu verificar aquestes afirmacions comparant la vostra experiència anterior amb un <a href="https://mdn.github.io/learning-area/html/introduction-to-html/document_and_website_structure/">exemple d’estructura de lloc web més modern</a>, que podria semblar-se a:</p> + +<pre class="brush: html notranslate"><header> + <h1>Header</h1> +</header> + +<nav> + <!-- main navigation in here --> +</nav> + +<!-- Here is our page's main content --> +<main> + + <!-- It contains an article --> + <article> + <h2>Article heading</h2> + + <!-- article content in here --> + </article> + + <aside> + <h2>Related</h2> + + <!-- aside content in here --> + </aside> + +</main> + +<!-- And here is our main footer that is used across all the pages of our website --> + +<footer> + <!-- footer content in here --> +</footer></pre> + +<p>Si proveu el nostre exemple d’estructura més modern amb un lector de pantalla, veureu que l’etiquetatge de disseny ja no s’interposa i confon la lectura del contingut. També és molt més lleuger i reduït pel que fa a la mida del codi, cosa que significa que és més fàcil mantenir el codi i que necessita menys amplada de banda per a l'usuari (especialment important per a aquells que tenen connexions lentes).</p> + +<p>Una altra consideració a l’hora de crear dissenys és l’ús d’elements semàntics HTML5 tal com es veu a l’exemple anterior (vegeu <a href="/ca/docs/Web/HTML/Element#Seccionament_del_contingut">seccionat de contingut</a>): podeu crear un disseny utilitzant només elements {{htmlelement("div")}}) imbricats, però és millor utilitzar elements adequats per marcar la vostra navegació principal ({{htmlelement("nav")}}), peu de pàgina ({{htmlelement("footer")}}), unitats de contingut ({{htmlelement("article")}}), etc. Aquests proporcionen una semàntica addicional per als lectors de pantalla (i altres eines) per donar a l'usuari pistes addicionals sobre el contingut que navega (vegeu <a href="http://www.weba11y.com/blog/2016/04/22/screen-reader-support-for-new-html5-section-elements/">Screen Reader Support for new HTML5 Section Elements</a> per fer-vos una idea de com és el suport en els lectors de pantalla).</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> A més de tenir una bona semàntica i un disseny atractiu, el vostre contingut hauria de tenir un sentit lògic en el seu ordre de codi; sempre podeu col·locar-lo allà on vulgueu mitjançant CSS, però hauríeu de crear un ordre de codi correcte de sortida, de forma que el que es llegeixi als usuaris de lectors de pantalla tingui sentit.</p> +</div> + +<h3 id="Controls_dinterfície_dusuari">Controls d'interfície d'usuari</h3> + +<p>Per controls d’interfície d’usuari ens referim a les parts principals dels documents web amb les quals interactuen els usuaris, normalment botons, enllaços i controls de formulari. En aquesta secció analitzarem les qüestions bàsiques d’accessibilitat que cal tenir en compte a l’hora de crear aquests controls. Articles posteriors sobre WAI-ARIA i multimèdia examinaran altres aspectes de l'accessibilitat de la interfície d'usuari.</p> + +<p>Un aspecte clau de l’accessibilitat dels controls d’interfície d’usuari és que, per defecte, els navegadors permeten manipular-los mitjançant el teclat. Podeu provar-ho amb el nostre exemple <a href="https://mdn.github.io/learning-area/tools-testing/cross-browser-testing/accessibility/native-keyboard-accessibility.html">native-keyboard-accessibility.html</a> (consulteu el <a href="https://github.com/mdn/learning-area/blob/master/tools-testing/cross-browser-testing/accessibility/native-keyboard-accessibility.html">codi font</a>). Obriu-lo en una pestanya nova i proveu de prémer la tecla de tabulació; després de prémer algunes vegades, hauríeu de veure com el focus de la pestanya comença a moure's pels diferents elements enfocables. Els elements enfocats tenen un estil predeterminat ressaltat en tots els navegadors (difereix lleugerament entre els diferents navegadors) de manera que pugueu saber quin element està enfocat.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14215/button-focused-unfocused.png" style="border-style: solid; border-width: 1px; display: block; height: 39px; margin: 0px auto; width: 288px;"></p> + +<p>A continuació, podeu prémer Enter / Return per seguir un enllaç enfocat o prémer un botó (hem inclòs una mica de JavaScript per fer que els botons llancin un missatge) o començar a escriure per introduir text en una camp de formulari. Altres elements del formulari tenen controls diferents, per exemple, l'element {{htmlelement ("select")}}} pot mostrar les seves opcions i circular entre elles amb les tecles de fletxa amunt i avall.</p> + +<div class="note"> +<p><strong>Nota</strong>: Els diferents navegadors poden tenir diferents opcions de control de teclat disponibles. Consulteu <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Using_native_keyboard_accessibility">Using native keyboard accessibility</a> per obtenir més informació.</p> +</div> + +<p>Essencialment, obteniu aquest comportament gratis només fent servir els elements adequats, p.ex:</p> + +<pre class="brush: html example-good notranslate"><h1>Enllaços</h1> + +<p>Això és un enllaç a <a href="https://www.mozilla.org">Mozilla</a>.</p> + +<p>Un altre enllaç, a la <a href="https://developer.mozilla.org">Mozilla Developer Network</a>.</p> + +<h2>Botons</h2> + +<p> + <button data-message="Això és del primer botó">Fes-me clic!</button> + <button data-message="Això és del segon botó">Fes-me clic també!</button> + <button data-message="Això és del tercer botó">I a mi!</button> +</p> + +<h2>Formulari</h2> + +<form> + <div> + <label for="nom">Entra el teu nom:</label> + <input type="text" id="nom" name="nom"> + </div> + <div> + <label for="edat">Entra la teva edat:</label> + <input type="text" id="edat" name="edat"> + </div> + <div> + <label for="mood">Tria el teu humor:</label> + <select id="humor" name="humor"> + <option>Feliç</option> + <option>Trist(a)</option> + <option>Enfadat/da</option> + <option>Preocupat/da</option> + </select> + </div> +</form></pre> + +<p>Això vol dir utilitzar adequadament enllaços, botons, elements de formulari i etiquetes (inclòs l'element {{htmlelement("label")}}) per als controls de formulari).</p> + +<p>Tanmateix, es torna a donar el cas que la gent de vegades fa coses estranyes amb HTML. Per exemple, de vegades veieu botons marcats amb {{htmlelement("div")}}s, per exemple:</p> + +<pre class="brush: html example-bad notranslate"><div data-message="Això és del primer botó">Fes-me clic!</div> +<div data-message="Això és del segon botó">Fes-me clic també!</div> +<div data-message="Això és del tercer botó">I a mi!</div></pre> + +<p>Però no s’aconsella l’ús d’aquest codi: perdeu immediatament l’accessibilitat nativa de teclat que hauríeu tingut si acabeu d’utilitzar elements {{htmlelement("button")}}), a més de no obtenir cap estil CSS predeterminat.</p> + +<h4 id="Tornar_a_afegir_laccessibilitat_de_teclat">Tornar a afegir l'accessibilitat de teclat</h4> + +<p>Afegir aquests avantatges requereix una mica de feina (podeu veure un exemple al nostre exemple <a href="https://mdn.github.io/learning-area/tools-testing/cross-browser-testing/accessibility/fake-div-buttons.html">fake-div-buttons.html</a>; també podeu veure el <a href="https://github.com/mdn/learning-area/blob/master/tools-testing/cross-browser-testing/accessibility/fake-div-buttons.html">codi font</a>). Aquí hem donat als nostres botons falsos amb <code><div></code> la possibilitat d'agafar el focus (inclòs mitjançant la tecla de tabulació) donant a cadascun l'atribut <code>tabindex="0"</code>:</p> + +<pre class="brush: html notranslate"><div data-message="Això és del primer botó" tabindex="0">Fes-me clic!</div> +<div data-message="Això és del segon botó" tabindex="0">Fes-me clic també!</div> +<div data-message="Això és del tercer botó" tabindex="0">I a mi!</div></pre> + +<p>Bàsicament, l'atribut {{htmlattrxref("tabindex")}} està pensat principalment per permetre que els elements tabulables puguin tenir un ordre de tabulació personalitzat (especificat en ordre numèric positiu), en comptes del seu ordre de codi per defecte. Aquesta és gairebé sempre una mala idea, ja que pot provocar confusions importants. Utilitzeu-la només si ho necessiteu de debò; per exemple, si el disseny mostra les coses en un ordre visual molt diferent al codi font i voleu que les coses funcionin de manera més lògica. Hi ha dues opcions més per a tabindex:</p> + +<ul> + <li><code>tabindex = "0"</code>: tal com s'ha indicat anteriorment, aquest valor permet que els elements que normalment no són tabulables passin a ser tabulables. Aquest és el valor més útil de <code>tabindex</code>.</li> + <li><code>tabindex = "- 1"</code>: això permet que els elements no tabulables normalment puguin rebre el focus per programació, per exemple, mitjançant JavaScript o com a objectiu dels enllaços.</li> +</ul> + +<p>Tot i que l’addició anterior ens permet arribar als botons amb lña tecla de tabulació, no ens permet activar-los mitjançant la tecla Enter / Retorn. Per fer-ho, hem hagut d'afegir el següent truc amb JavaScript:</p> + +<pre class="brush: js line-numbers language-js notranslate"><code class="language-js">document<span class="punctuation token">.</span>onkeydown <span class="operator token">=</span> <span class="keyword token">function</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span> + <span class="keyword token">if</span><span class="punctuation token">(</span>e<span class="punctuation token">.</span>keyCode <span class="operator token">===</span> <span class="number token">13</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> <span class="comment token">// La tecla Enter/Return</span> + document<span class="punctuation token">.</span>activeElement<span class="punctuation token">.</span><span class="function token">click</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span> + <span class="punctuation token">}</span> +<span class="punctuation token">}</span><span class="punctuation token">;</span></code></pre> + +<p>Aquí afegim un 'listener' (oient) a l'objecte <code>document</code> per detectar quan s'ha premut un botó al teclat. Comprovem quin botó s'ha premut mitjançant la propietat <code>keyCode</code> de l'objecte d'esdeveniment; si és el codi de tecla que coincideix amb Return / Enetr, executem la funció emmagatzemada al controlador <code>onclick</code> del botó mitjançant <code>document.activeElement.click()</code>. <code>activeElement</code> ens proporciona l'element que té actualment el focus a la pàgina.</p> + +<p>Això suposa un munt de molèsties addicionals per recuperar la funcionalitat. I segurament hi haurà altres problemes. Millor utilitzar l’element adequat per al treball adequat en primer lloc.</p> + +<h4 id="Etiquetes_de_text_significatives">Etiquetes de text significatives</h4> + +<p>Les etiquetes de text dels controls de la interfície d’usuari són molt útils per a tots els usuaris, però fer-les correctament és particularment important per als usuaris amb discapacitat.</p> + +<p>Assegureu-vos que les etiquetes de text del botó i de l'enllaç siguin comprensibles i distintives. No només utilitzeu "Feu clic aquí" per a les etiquetes, ja que els usuaris del lector de pantalla de vegades obtenen una llista de botons i controls de formulari. La següent captura de pantalla mostra el que VoiceOver llista els nostres controls en Mac.</p> + +<p><img alt="Form controls. Click me! button. Click me too! button. And me! button. Fill me in: edit text. Fill me in: edit text. Happy collapsed pop up button. Happy menu item. Sad menu item. Angry menu item. Worried menu item." src="https://mdn.mozillademos.org/files/14335/voiceover-formcontrols.png" style="display: block; height: 604px; margin: 0px auto; width: 802px;"></p> + +<p>Assegureu-vos que les vostres etiquetes tinguin sentit fora del context, llegides per si mateixes, així com en el context del paràgraf en què es troben. Per exemple, el següent mostra un exemple de text de bon enllaç:</p> + +<pre class="brush: html example-good notranslate"><p>Les balenes són criatures realment fantàstiques. <a href="whales.html">Aprèn més sobre les balenes</a>.</p></pre> + +<p>Però això és mal text d'enllaç:</p> + +<pre class="brush: html example-bad notranslate"><p>Les balenes són criatures realment fantàstiques. Per tal d'aprendre més sobre les balenes, <a href="whales.html">fes clic aquí</a>.</p></pre> + +<div class="note"> +<p><strong>Nota</strong>: Podeu trobar molt més sobre la implementació d’enllaços i les pràctiques recomanades al nostre article Creació d’enllaços. També podeu veure alguns exemples bons i dolents a <a href="https://mdn.github.io/learning-area/accessibility/html/good-links.html">good-links.html</a> i <a href="https://mdn.github.io/learning-area/accessibility/html/bad-links.html">bad-links.html</a>.</p> +</div> + +<p>Les etiquetes del formulari també són importants per donar-vos una idea del que heu d’introduir a cada entrada del formulari. El següent sembla un exemple prou raonable:</p> + +<pre class="brush: html example-bad notranslate">Entra el teu nom: <input type="text" id="nom" name="nom"></pre> + +<p>Tot i això, això no és tan útil per a usuaris amb discapacitat. No hi ha res a l’exemple anterior per associar l’etiqueta sense ambigüitats amb l’entrada del formulari i deixar clar com emplenar-la si no la podeu veure. Si hi accediu amb alguns lectors de pantalla, podria ser que només se us donés una descripció seguint la línia de "edita text".</p> + +<p>El següent és un exemple molt millor:</p> + +<pre class="brush: html example-good notranslate"><div> + <label for="nom">Entra el teu nom:</label> + <input type="text" id="nom" name="nom"> +</div></pre> + +<p>Amb un codi com aquest, l'etiqueta s'associarà clarament a l'entrada; la descripció serà més semblant a "Entra el teu nom nom: editeu text".<br> + </p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14337/voiceover-good-form-label.png" style="display: block; margin: 0 auto;"></p> + +<p>Com a avantatge addicional, a la majoria de navegadors si associeu una etiqueta amb una entrada de formulari, podeu fer clic a l’etiqueta per seleccionar o activar l’element de formulari. Això proporciona a l’entrada una zona d’èxit més gran, cosa que facilita la selecció.</p> + +<div class="note"> +<p><strong>Nota</strong>: podeu veure alguns exemples de formularis bons i dolents a <a href="https://mdn.github.io/learning-area/accessibility/html/good-form.html">good-form.html</a> i <a href="https://mdn.github.io/learning-area/accessibility/html/bad-form.html">bad-form.html</a>.</p> +</div> + +<ol> +</ol> + +<h2 id="Taules_de_dades_accessibles">Taules de dades accessibles</h2> + +<p>Es pot escriure una taula de dades bàsica amb un marcatge molt senzill, per exemple:</p> + +<pre class="brush: html notranslate"><table> + <tr> + <td>Nom</td> + <td>Edat</td> + <td>Gènere</td> + </tr> + <tr> + <td>Gabriel</td> + <td>13</td> + <td>Masculí</td> + </tr> + <tr> + <td>Elva</td> + <td>8</td> + <td>Femení</td> + </tr> + <tr> + <td>Freida</td> + <td>5</td> + <td>Femení</td> + </tr> +</table></pre> + +<p>Però això té problemes: un usuari del lector de pantalla no pot associar files o columnes juntes com a agrupacions de dades. Per fer-ho, hauria de saber quines són les cel·les amb capçaleres i si encapçalen files, columnes, etc. Això només es pot fer visualment per a la taula anterior (consulteu <a href="https://mdn.github.io/learning-area/accessibility/html/bad-table.html">bad-table.html</a> i proveu l'exemple vosaltres mateixos).</p> + +<p>Vegeu ara el nostre <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/styling-tables/punk-bands-complete.html">exemple de taula de grups de punk</a>: podeu veure algunes ajudes d’accessibilitat en funcionament:</p> + +<ul> + <li>Les capçaleres de les taules es defineixen mitjançant elements {{htmlelement("th")}}); també podeu especificar si són capçaleres per a files o columnes mitjançant l'atribut <code>scope</code>. Això us proporciona grups complets de dades que els lectors de pantalla poden consumir com a unitats individuals.</li> + <li>L'element {{htmlelement("caption")}}} i l'atribut <code>summary</code> de <code><table></code> fan tasques similars: actuen com a text alternatiu per a una taula, donant a l'usuari de lector de pantalla un resum ràpid i útil del contingut de la taula. Generalment es prefereix l'element <code><caption></code>, ja que fa que el seu contingut és accessible també per als usuaris vidents, que també poden trobar-los útils. Realment no necessiteu les dues coses.</li> +</ul> + +<p>Nota: Consulteu l'article sobre funcions avançades i accessibilitat de la nostra taula HTML per obtenir més informació sobre les taules de dades accessibles.</p> + +<div class="note"> +<p><strong>Nota</strong>: Consulteu el nostre article <a href="/ca/docs/Learn/HTML/Taules_HTML/Taula_HTML_caracter%C3%ADstiques_avan%C3%A7ades_i_laccessibilitat">Taules HTML: característiques avançades i accessibilitat</a> per saber més sobre les taules de dades accessibles.</p> +</div> + +<h2 id="Alternatives_de_text">Alternatives de text</h2> + +<p>Mentre que el contingut textual és intrínsecament accessible, no es pot dir el mateix necessàriament del contingut multimèdia: les persones amb discapacitat visual no poden veure el contingut d’imatges ni de vídeo i les persones amb discapacitat auditiva no poden sentir l'àudio. Cobrim detalladament el contingut de vídeo i àudio a <a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessible multimedia</a>, però per a aquest article analitzarem l'accessibilitat de l'humil element {{htmlelement ("img")}}.</p> + +<p>Tenim un exemple senzill escrit, <a href="https://mdn.github.io/learning-area/accessibility/html/accessible-image.html">accessible-image.html</a>, que inclou quatre còpies de la mateixa imatge:</p> + +<pre class="notranslate"><img src="dinosaur.png"> + +<img src="dinosaur.png" + alt="A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth."> + +<img src="dinosaur.png" + alt="A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth." + title="The Mozilla red dinosaur"> + + +<img src="dinosaur.png" aria-labelledby="dino-label"> + +<p id="dino-label">The Mozilla red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth.</p> +</pre> + +<p>La primera imatge, quan la veu un lector de pantalla, no ofereix realment molta ajuda a l'usuari: VoiceOver, per exemple, llegeix "/dinosaur.png, imatge". Es llegeix el nom del fitxer per intentar proporcionar ajuda. En aquest exemple, l'usuari almenys sabrà que és un dinosaure d'alguna mena, però sovint es poden penjar fitxers amb noms de fitxers generats automàticament (per exemple, des d'una càmera digital) i és probable que aquests noms de fitxers no proporcionin context al contingut de la imatge.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> és per això que no heu d’incloure mai contingut de text dins d’una imatge; els lectors de pantalla simplement no hi poden accedir. També hi ha altres desavantatges: no podeu seleccionar-lo ni copiar-lo / enganxar-lo. Simplement no ho feu!</p> +</div> + +<p>Quan un lector de pantalla troba la segona imatge, llegeix l’atribut alt complet: "Un tiranosaure vermell Rex: un dinosaure de dues potes dret com un humà, amb braços petits i un cap gran amb moltes dents afilades".</p> + +<p>Això posa de manifest la importància d’utilitzar no només noms de fitxers significatius en cas que l’anomenat <strong>text alternatiu</strong> no estigui disponible, sinó també assegurar-se que el text alternatiu s’ofereixi en atributs <code>alt</code> sempre que sigui possible. Tingueu en compte que el contingut de l'atribut <code>alt</code> sempre ha de proporcionar una representació directa de la imatge i del que transmet visualment. Aquí no s’hi hauria d’incloure cap coneixement personal ni cap descripció addicional, ja que no és útil per a persones que no s’han trobat amb la imatge abans.</p> + +<p>Una cosa a tenir en compte és si les vostres imatges tenen significat dins del vostre contingut o si són exclusivament per a la decoració visual i, per tant, no tenen cap sentit. Si són decoratives, és millor escriure un text buit com a valor de l'atribut <code>alt</code> (ho veurem més endavant en aquest mateix article) o simplement incloure'ls a la pàgina com a imatges de fons CSS.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Llegiu <a href="/ca/docs/Learn/HTML/Multim%C3%A8dia_i_incrustar/Images_in_HTML">Imatges en HTML</a> i <a href="/ca/docs/Learn/HTML/Multim%C3%A8dia_i_incrustar/Imatges_sensibles">Imatges responsives</a> per obtenir molta més informació sobre la implementació d'imatges i les pràctiques recomanades.</p> +</div> + +<p>Si voleu proporcionar informació contextual addicional, l'heu de posar al text que envolta la imatge o dins d'un atribut de títol, tal com es mostra a continuació. En aquest cas, la majoria de lectors de pantalla llegiran el text alternatiu, l'atribut <code>title</code> i el nom del fitxer. A més, els navegadors mostren el text del títol quan es passa el ratolí per sobre.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14333/title-attribute.png" style="display: block; margin: 0 auto;"></p> + +<p>Fem una altra ullada ràpida al quart mètode:</p> + +<pre class="brush: html notranslate"><img src="dinosaur.png" aria-labelledby="dino-label"> + +<p id="dino-label">The Mozilla red Tyrannosaurus ... </p></pre> + +<p>En aquest cas, no utilitzem en absolut l’atribut <code>alt</code>; en canvi, hem presentat la nostra descripció de la imatge com a paràgraf de text normal, li hem donat un id i, a continuació, hem utilitzat l’atribut <code>aria-labelledby</code> per referir-nos a aquest id, que fa que els lectors de pantalla utilitzin aquest paràgraf com a text alternatiu / etiqueta per a aquesta imatge. Això és especialment útil si voleu utilitzar el mateix text com a etiqueta per a diverses imatges, cosa que no és possible amb <code>alt</code>.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> <code>aria-labelledby</code> forma part de l'especificació <a href="https://www.w3.org/TR/wai-aria-1.1/">WAI-ARIA</a>, que permet als desenvolupadors afegir semàntica addicional al seu marcatge per millorar l'accessibilitat del lector de pantalla quan sigui necessari. Per obtenir més informació sobre com funciona, llegiu el nostre article <a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA Basics</a>.</p> +</div> + +<h3 id="Daltres_mecanismes_de_text_alternatiu">D'altres mecanismes de text alternatiu</h3> + +<p>Les imatges també tenen un altre mecanisme disponible per proporcionar text descriptiu. Per exemple, hi ha un atribut <code>longdesc</code> destinat a apuntar a un document web independent que conté una descripció ampliada de la imatge, per exemple:</p> + +<pre class="brush: html notranslate"><img src="dinosaur.png" longdesc="dino-info.html"></pre> + +<p>Sembla una bona idea, especialment per a infografies i grans gràfics amb molta informació, que potser es podrien representar com una taula de dades accessible (n'hem parlat en aquest mateix article). No obstant això, <code>longdesc</code> no és compatible amb tots els lectors de pantalla i el contingut és completament inaccessible per als usuaris que no utilitzin lectors de pantalla. Sens dubte, és molt millor incloure la descripció llarga a la mateixa pàgina que la imatge o enllaçar-la amb un enllaç normal.</p> + +<p>HTML5 inclou dos elements nous: {{htmlelement("figure")}} i {{htmlelement("figcaption")}} que se suposa que associen una figura d'algun tipus (pot ser qualsevol cosa, no necessàriament una imatge) amb un títol de figura:</p> + +<pre class="brush: html notranslate"><figure> + <img src="dinosaur.png" alt="The Mozilla Tyrannosaurus"> + <figcaption>A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth.</figcaption> +</figure></pre> + +<p>Malauradament, la majoria dels lectors de pantalla sembla que encara no associen els subtítols de figures amb les seves figures. Dit això, l'estructura de l'element és útil per a aplicar-hi estil CSS; a més, proporciona una manera de col·locar una descripció de la imatge al costat al codi font.</p> + +<h3 id="Atributs_alt_buits">Atributs alt buits</h3> + +<pre class="brush: html notranslate"><h3> + <img src="article-icon.png" alt=""> + Tyrannosaurus Rex: the king of the dinosaurs +</h3></pre> + +<p>Pot haver-hi ocasions en què s’inclogui una imatge al disseny d’una pàgina, però el seu propòsit principal sigui la decoració visual. Notareu a l’exemple de codi anterior que l’atribut <code>alt</code> de la imatge és buit: es tracta de fer que els lectors de pantalla reconeguin la imatge, però no intentin descriure-la (en lloc d’això, només dirien “imatge” o alguna cosa similar).</p> + +<p>La raó per utilitzar un <code>alt</code> buit en lloc de no incloure'l és perquè molts lectors de pantalla anuncien tota la URL de la imatge si no es proporciona cap <code>alt</code>. A l'exemple anterior, la imatge actua com a decoració visual de l'encapçalament amb què s'associa. En casos com aquest, i en els casos en què una imatge només sigui decorativa i no tingui cap valor de contingut, hauríeu d'incloure un <code>alt</code> buit als elements <code>img</code>. Una altra alternativa és utilitzar l'atribut aria <code>role="presentation"</code>, ja que també impedeix que els lectors de pantalla llegeixin el text alternatiu.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> si és possible, heu d’utilitzar CSS per mostrar imatges només decoratives.</p> +</div> + +<h2 id="Més_sobre_els_enllaços">Més sobre els enllaços</h2> + +<p>Els enllaços (l'element <code><a></code> amb un atribut <code>href</code>), en funció de com s'utilitzin, poden ajudar o perjudicar l'accessibilitat. Per defecte, els enllaços són accessibles en aparença. Poden millorar l’accessibilitat ajudant l’usuari a navegar ràpidament a les diferents seccions d’un document. També poden perjudicar l’accessibilitat si s’elimina l’estil accessible o si JavaScript fa que es comportin de manera inesperada.</p> + +<h4 id="Estil_d’enllaç">Estil d’enllaç</h4> + +<p>Per defecte, els enllaços són visualment diferents de la resta del text en color i en decoració de text, amb els enllaços de color blau i subratllats per defecte, de color porpra i subratllats si s'han visitat, i amb un anell de focus quan reben el focus del teclat.</p> + +<p>No s’ha d’utilitzar el color com a únic mètode per distingir els enllaços del contingut que no enllaça. El color del text de l’enllaç, com tot el text, ha de diferir significativament del color de fons (<a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast">un contrast de 4,5:1</a>). A més, els enllaços han de ser significativament diferents del text que no enllaça. Amb un requisit de contrast mínim de 3:1 entre el text de l'enllaç i el text circumdant i entre els estats predeterminat, visitat i focus / actiu i un contrast de 4:5 entre tots els colors d'estat i el color de fons.</p> + +<h3 id="Esdeveniments_onclick">Esdeveniments onclick</h3> + +<p>Sovint s'abusa de les etiquetes d'ancoratge amb l'esdeveniment <code>onclick</code> per crear pseudo-botons configurant <strong>href</strong> a <code>"#"</code> o <code>"javascript:void(0)"</code> per evitar que la pàgina s'actualitzi.</p> + +<p>Aquests valors causen un comportament inesperat en copiar o arrossegar enllaços, en obrir enllaços en una pestanya o finestra nova, en afegir adreces d'interès i, quan el JavaScript encara s'està descarregant, es produeix un error o es desactiva. Això també transmet una semàntica incorrecta a les tecnologies d'assistència (per exemple, lectors de pantalla). En aquests casos, es recomana utilitzar un {{HTMLElement("button")}}. En general, només heu d'utilitzar un àncora per a la navegació mitjançant un URL adequat.</p> + +<h3 id="Enllaços_externs_i_enllaços_a_recursos_no_HTML">Enllaços externs i enllaços a recursos no HTML</h3> + +<p>Els enllaços que s'obrin en una nova pestanya o finestra mitjançant la declaració <code>target="_ blank"</code> i els enllaços el valor <code>href</code> dels quals apunti a un recurs de fitxer han d'incloure un indicador sobre el comportament que es produirà quan s'activi l'enllaç.</p> + +<p>Les persones amb problemes de visió baixa, que naveguen amb l'ajut de tecnologies de lectura de pantalla o que tenen problemes cognitius, poden confondre's quan s'obre inesperadament la nova pestanya, finestra o aplicació. És possible que versions antigues del programari de lectura de pantalla ni tan sols anunciïn el comportament.</p> + +<h4 id="Enllaç_que_obre_una_nova_pestanya_o_finestra">Enllaç que obre una nova pestanya o finestra</h4> + +<pre class="brush: html notranslate"><a target="_blank" href="https://www.wikipedia.org/">Wikipedia (opens in a new window)</a> +</pre> + +<h4 id="Enllaç_a_un_recurs_no_HTML">Enllaç a un recurs no HTML</h4> + +<pre class="brush: html notranslate"><a target="_blank" href="2017-annual-report.ppt">2017 Annual Report (PowerPoint)</a> +</pre> + +<p>Si s'utilitza una icona en comptes de text per assenyalar aquest tipus de comportament d'enllaç, assegureu-vos que inclou una {{HTMLAttrxRef("alt", "img", "descripció alternativa", "true")}}.</p> + +<ul> + <li><a href="https://webaim.org/techniques/hypertext/hypertext_links">WebAIM: Links and Hypertext - Hypertext Links</a></li> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Understandable#Guideline_3.2_—_Predictable_Make_Web_pages_appear_and_operate_in_predictable_ways">MDN Understanding WCAG, Guideline 3.2 explanations</a></li> + <li><a href="https://www.w3.org/TR/WCAG20-TECHS/G200.html">G200: Opening new windows and tabs from a link only when necessary | W3C Techniques for WCAG 2.0</a></li> + <li><a href="https://www.w3.org/TR/WCAG20-TECHS/G201.html">G201: Giving users advanced warning when opening a new window | W3C Techniques for WCAG 2.0</a></li> +</ul> + +<h3 id="Enllaços_de_salt">Enllaços de salt</h3> + +<p>Un enllaç de salt, també conegut com a "skipnav", és un element situat tan a prop com sigui possible de l'element d'obertura {{HTMLElement ("body")}} que enllaça amb el començament del contingut principal de la pàgina. Aquest enllaç permet saltar el contingut que es repeteix en diverses pàgines d’un lloc web, com ara la capçalera d’un lloc web i la navegació principal.</p> + +<p>Els enllaços de salt són especialment útils per a les persones que naveguen amb l'ajuda de tecnologies d'assistència, com ara controls de commutació, ordres de veu o les varetes de cap / boca, on el fet de moure's per enllaços repetitius pot ser una tasca laboriosa.</p> + +<ul> + <li><a href="https://webaim.org/techniques/skipnav/">WebAIM: "Skip Navigation" Links</a></li> + <li><a href="https://www.a11yproject.com/posts/2013-05-11-skip-nav-links/">How–to: Use Skip Navigation links - The A11Y Project</a></li> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Operable#Guideline_2.4_%E2%80%94_Navigable_Provide_ways_to_help_users_navigate_find_content_and_determine_where_they_are">MDN Understanding WCAG, Guideline 2.4 explanations</a></li> + <li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-skip.html">Understanding Success Criterion 2.4.1 | W3C Understanding WCAG 2.0</a></li> +</ul> + +<h3 id="Proximitat">Proximitat</h3> + +<p>Les grans quantitats de contingut interactiu (incloses les àncores) situades molt a prop les unes de les altres haurien de tenir espai inserit per separar-les. Aquest espaiat és beneficiós per a les persones que pateixen problemes de control motor fi i poden activar accidentalment el contingut interactiu equivocat durant la navegació.</p> + +<p>Es pot crear espai mitjançant propietats CSS com ara {{CSSxRef ("margin")}}.</p> + +<ul> + <li><a href="https://axesslab.com/hand-tremors/">Hand tremors and the giant-button-problem - Axess Lab</a></li> +</ul> + +<h2 id="Posa_a_prova_les_teves_habilitats!">Posa a prova les teves habilitats!</h2> + +<p>Heu arribat al final d’aquest article, però recordeu la informació més important? Consulteu <a href="/en-US/docs/Learn/Accessibility/Test_your_skills:_HTML_accessibility">Test your skills: HTML Accessibility</a> per verificar que heu conservat aquesta informació abans de continuar.</p> + +<h2 id="Resum">Resum</h2> + +<p>Ara hauríeu de tenir un bon coneixement de l’escriptura d’HTML accessible per a la majoria de les ocasions. El nostre article de fonaments de WAI-ARIA ajudarà a omplir els buits d’aquest coneixement, però aquest article s’ha ocupat dels conceptes bàsics. A continuació, explorarem CSS i JavaScript i com es veu afectada l’accessibilitat pel seu bon o mal ús.</p> + +<p>{{PreviousMenuNext("Learn/Accessibility/What_is_Accessibility","Learn/Accessibility/CSS_and_JavaScript", "Learn/Accessibility")}}</p> + +<h2 id="In_this_module">In this module</h2> + +<ul> + <li><a href="/en-US/docs/Learn/Accessibility/What_is_accessibility">What is accessibility?</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/HTML">HTML: A good basis for accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript">CSS and JavaScript accessibility best practices</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA basics</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessible multimedia</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Mobile">Mobile accessibility</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting">Accessibility troubleshooting</a></li> +</ul> diff --git a/files/ca/learn/accessibility/index.html b/files/ca/learn/accessibility/index.html new file mode 100644 index 0000000000..398a9ee96f --- /dev/null +++ b/files/ca/learn/accessibility/index.html @@ -0,0 +1,77 @@ +--- +title: Accessibility +slug: Learn/Accessibility +tags: + - ARIA + - Accessibility + - Articles + - Beginner + - CSS + - CodingScripting + - HTML + - JavaScript + - Landing + - Learn + - Module + - NeedsTranslation + - TopicStub +translation_of: Learn/Accessibility +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Learning some HTML, CSS, and JavaScript is useful if you want to become a web developer. Beyond mechanical use, it's important to learn how to use these technologies <strong>responsibly</strong> so that all readers might use your creations on the web. To help you achieve this, this module will cover general best practices (which are demonstrated throughout the <a href="/en-US/docs/Learn/HTML">HTML</a>, <a href="/en-US/docs/Learn/CSS">CSS</a>, and <a href="/en-US/docs/Learn/JavaScript">JavaScript</a> topics), <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing">cross browser testing</a>, and some tips on enforcing accessibility from the start. We'll cover accessibility in special detail.</p> + +<h2 id="Overview">Overview</h2> + +<p>When someone describes a site as "accessible," they mean that any user can use all its features and content, regardless of how the user accesses the web — even and especially users with physical or mental impairments.</p> + +<ul> + <li>Sites should be accessible to keyboard, mouse, and touch screen users, and any other way users access the web, including screen readers and voice assistants like Alexa and Google Home.</li> + <li>Applications should be understandable and usable by people regardless of auditory, visual, physical, or cognitive abilities.</li> + <li>Sites should also not cause harm: web features like motion can cause migraines or epileptic seizures.</li> +</ul> + +<p><strong>By default, HTML is accessible, if used correctly.</strong> Web accessibility involves ensuring that content remains accessible, regardless of who and how the web is accessed.</p> + +<h2 id="Prerequisites">Prerequisites</h2> + +<p>To get the most out of this module, it would be a good idea to either work through at least the first two modules of the <a href="/en-US/docs/Learn/HTML">HTML</a>, <a href="/en-US/docs/Learn/CSS">CSS</a>, and <a href="/en-US/docs/Learn/JavaScript">JavaScript</a> topics, or perhaps even better, work through the relevant parts of the accessibility module as you work through the related technology topics.</p> + +<div class="note"> +<p><strong>Note</strong>: If you are working on a computer/tablet/other devices where you don't have the ability to create your own files, you can try out most of the code examples in an online coding program such as <a href="http://jsbin.com/">JSBin</a> or <a href="https://glitch.com/">Glitch</a>.</p> +</div> + +<h2 id="Guides">Guides</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/Accessibility/What_is_accessibility">What is accessibility?</a></dt> + <dd>This article starts off the module with a good look at what accessibility is — this includes what groups of people we need to consider and why, what tools different people use to interact with the web, and how we can make accessibility part of our web development workflow.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility/HTML">HTML: A good basis for accessibility</a></dt> + <dd>A great deal of web content can be made accessible just by making sure the correct HTML elements are always used for the correct purpose . This article looks in detail at how HTML can be used to ensure maximum accessibility.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript">CSS and JavaScript accessibility best practices</a></dt> + <dd>CSS and JavaScript, when used properly, also have the potential to allow for accessible web experiences, but if misused they can significantly harm accessibility. This article outlines some CSS and JavaScript best practices that should be considered to ensure that even complex content is as accessible as possible.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA basics</a></dt> + <dd>Following on from the previous article, sometimes making complex UI controls that involve unsemantic HTML and dynamic JavaScript-updated content can be difficult. WAI-ARIA is a technology that can help with such problems by adding in further semantics that browsers and assistive technologies can recognize and use to let users know what is going on. Here we'll show how to use it at a basic level to improve accessibility.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessible multimedia</a></dt> + <dd>Another category of content that can create accessibility problems is multimedia — video, audio, and image content need to be given proper textual alternatives, so they can be understood by assistive technologies and their users. This article shows how.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility/Mobile">Mobile accessibility</a></dt> + <dd>With web access on mobile devices being so popular, and popular platforms such as iOS and Android having fully-fledged accessibility tools, it is important to consider the accessibility of your web content on these platforms. This article looks at mobile-specific accessibility considerations.</dd> +</dl> + +<h2 id="Assessments">Assessments</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting">Accessibility troubleshooting</a></dt> + <dd> + <p>In the assessment for this module, we present to you a simple site with several accessibility issues that you need to diagnose and fix.</p> + </dd> +</dl> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://egghead.io/courses/start-building-accessible-web-applications-today">Start Building Accessible Web Applications Today</a> — an excellent series of video tutorials by Marcy Sutton.</li> + <li><a href="https://dequeuniversity.com/resources/">Deque University resources</a> — includes code examples, screen reader references, and other useful resources.</li> + <li><a href="http://webaim.org/resources/">WebAIM resources</a> — includes guides, checklists, tools, and more.</li> + <li><a href="https://www.w3.org/WAI/ER/tools/">Web Accessibility Evaluation Tools List</a> - includes a list of web accessibility evaluation tools.</li> +</ul> diff --git a/files/ca/learn/accessibility/que_es_accessibilitat/index.html b/files/ca/learn/accessibility/que_es_accessibilitat/index.html new file mode 100644 index 0000000000..6d8891a20c --- /dev/null +++ b/files/ca/learn/accessibility/que_es_accessibilitat/index.html @@ -0,0 +1,211 @@ +--- +title: Què és l'accessibilitat? +slug: Learn/Accessibility/Que_es_accessibilitat +translation_of: Learn/Accessibility/What_is_accessibility +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/Accessibility/HTML", "Learn/Accessibility")}}</div> + +<p class="summary">Aquest article inicia el mòdul fent ullada a què és l’accessibilitat: aquesta visió general inclou quins grups de persones hem de considerar i per què, quines eines utilitzen les persones per a interactuar amb el web i com podem fer que l’accessibilitat sigui una part del nostre lloc web.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica i nocions bàsiques de com funcionen l'HTML i el CSS.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir familiaritat amb l’accessibilitat, inclòs què és i com t’afecta com a desenvolupador web.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_laccessibilitat">Què és l'accessibilitat?</h2> + +<p>L’accessibilitat és la pràctica de fer que els llocs web siguin utilitzables per tantes persones com sigui possible. Tradicionalment pensem que es tracta de persones amb discapacitat, però el fet de fer accessibles els llocs web també beneficia altres grups, com els qui utilitzen dispositius mòbils o els qui tenen connexions de xarxa lentes.</p> + +<p>També pots pensar en l’accessibilitat com el fet de tractar igual a tothom i oferir igualtat d’oportunitats, independentment de quines siguin les capacitats o les circumstàncies. De la mateixa manera que no està bé excloure algú d’accedir a un edifici perquè va en cadira de rodes (els edificis públics moderns solen tenir rampes o ascensors per a cadires de rodes), tampoc és correcte excloure d’un lloc web algú que té una discapacitat visual. Tots som diferents, però tots som humans, i tenim els mateixos drets com a humans.</p> + +<p>Per això hem de fer les coses accessibles. L’accessibilitat dels llocs web forma part de la legislació d’alguns països, i et pot obrir un mercat significatiu, que d'altra manera no podria utilitzar els teus serveis ni comprar els teus productes.</p> + +<p>La construcció de llocs accessibles beneficia a tothom:</p> + +<ul> + <li>Un HTML semàntic, que millora l’accessibilitat, també millora el posicionament en els motors de cerca (SEO), i incrementa la possibilitat que trobin el teu lloc web.</li> + <li>Preocupar-se per l’accessibilitat demostra valors ètics i morals, cosa que millora la teva imatge pública.</li> + <li>Altres bones pràctiques que milloren l’accessibilitat també milloren la usabilitat d’altres grups, com ara els usuaris de telèfons mòbils o els que tenen una velocitat d’accés a la xarxa lenta. De fet, tothom pot beneficiar-se de moltes d'aquestes millores.</li> + <li>Hem esmentat que també hi ha lleis al respecte en alguns països?</li> +</ul> + +<h2 id="En_quins_tipus_de_discapacitat_ens_hem_de_fixar">En quins tipus de discapacitat ens hem de fixar?</h2> + +<p>Les persones amb discapacitat són igual de diverses que les persones sense discapacitat, i també ho són les discapacitats. La lliçó clau aquí és pensar més enllà de com utilitzes el teu ordinador i el web i començar a aprendre com l'utilitzen els altres, <em>tu no ets els teus usuaris</em>. A continuació s’expliquen els tipus principals de discapacitat que pots tenir en compte i les eines especials que s’utilitzen per a accedir al contingut web (conegudes com a <strong>tecnologies d’assistència</strong> o <strong>AT</strong>, d’<em>assistive technologies</em>).</p> + +<div class="note"> +<p><strong>Nota</strong>: La fitxa informativa sobre <a href="https://www.who.int/en/news-room/fact-sheets/detail/disability-and-health">discapacitat i salut</a> de l'Organització Mundial de la Salut estableix que «Més d'un milió de persones, aproximadament el 15% de la població mundial, tenen algun tipus de discapacitat» i «Entre 110 i 190 milions d'adults tenen dificultats importants de funcionament».</p> +</div> + +<h3 id="Les_persones_amb_discapacitat_visual">Les persones amb discapacitat visual</h3> + +<p>Les persones amb discapacitat visual inclouen persones amb ceguesa, poca visió i daltonisme. Moltes persones amb deficiències visuals utilitzen lupes de pantalla, que poden ser lupes físiques o les funcions de zoom del programari. La majoria de navegadors i sistemes operatius actuals tenen la capacitat de fer zoom. Alguns usuaris confien en lectors de pantalla, un programari que llegeix el text digital en veu alta. Alguns exemples de lectors de pantalla són:</p> + +<ul> + <li>Uns són productes comercials de pagament, com ara <a class="external external-icon" href="https://www.freedomscientific.com/Products/software/JAWS/">JAWS</a> (Windows) i <a href="https://yourdolphin.com/screenreader">Dolphin Screen Reader</a> (Windows).</li> + <li>D’altres són productes gratuïts, com <a class="external external-icon" href="https://www.nvaccess.org/">NVDA</a> (Windows), <a class="external external-icon" href="https://www.chromevox.com/">ChromeVox</a> (Chrome, Windows i Mac OS X) i <a class="external external-icon" href="https://wiki.gnome.org/Projects/Orca">Orca</a> (Linux).</li> + <li>N’hi ha que estan incorporats dins el sistema operatiu, com <a class="external external-icon" href="https://www.apple.com/accessibility/mac/vision/">VoiceOver</a> (macOS, iPadOS, iOS), <a class="external external-icon" href="https://support.microsoft.com/en-us/help/22798/windows-10-narrator-get-started">Narrator</a> (Microsoft Windows), <a class="external external-icon" href="https://www.chromevox.com/">ChromeVox</a> (al sistema operatiu Chrome) i <a class="external external-icon" href="https://play.google.com/store/apps/details?id=com.google.android.marvin.talkback">TalkBack</a> (Android).</li> +</ul> + +<p>Seria bo que et familiaritzessis amb els lectors de pantalla; també hauries de configurar un lector de pantalla i experimentar-hi per a fer-te una idea de com funciona. Consulta la nostra <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Screenreaders">guia de lectors de pantalla per a proves de compatibilitat creuada entre navegadors</a> per a obtenir més detalls sobre el seu ús. El vídeo següent proporciona un breu exemple de com és l'experiència.</p> + +<p>{{EmbedYouTube("IK97XMibEws")}}</p> + +<p>En termes estadístics, l'Organització Mundial de la Salut estima que «hi ha al voltant de 285 milions de persones amb deficiències visuals a tot el món: 39 milions són cegues i 246 tenen un nivell de visió baix». (Consulta l’informe sobre <a href="https://www.who.int/mediacentre/factsheets/fs282/en/">Dificultat visual i ceguesa</a>). Es tracta d'una població d’usuaris molt gran i significativa, que no pots deixar escapar perquè el teu lloc web no es codifiqui correctament (parlem de gairebé el mateix nombre de persones que viuen a Estats Units d’Amèrica).</p> + +<h3 id="Les_persones_amb_discapacitat_auditiva">Les persones amb discapacitat auditiva</h3> + +<p>Altrament conegudes com persones amb deficiències auditives o persones sordes, aquest grup de persones es diferencia per tenir nivells auditius baixos o perquè, directament, no tenen sentit de l’oïda. Les persones amb deficiències auditives utilitzen AT (consulta els <a href="https://www.nidcd.nih.gov/health/assistive-devices-people-hearing-voice-speech-or-language-disorders">Dispositius assistents per a persones amb trastorns de l’audició, la veu, la parla o el llenguatge</a>), però realment no hi ha AT específics per a l’ús d'un ordinador o un lloc web.</p> + +<p>Tanmateix, hi ha tècniques específiques que proporcionen alternatives textuals al contingut d'àudio, que van des de transcripcions de text senzilles fins a pistes de text (és a dir, subtítols) que es poden mostrar juntament amb un vídeo. Més endavant, tractarem aquest tema en un article.</p> + +<p>Les persones amb discapacitat auditiva també representen una base d’usuaris important. «466 milions de persones a tot el món tenen pèrdua auditiva», diu el full informatiu de l'Organització Mundial de la Salut per a la <a href="https://www.who.int/mediacentre/factsheets/fs300/en/">Sordesa i pèrdua auditiva</a>.</p> + +<h3 id="Les_persones_amb_problemes_de_mobilitat">Les persones amb problemes de mobilitat</h3> + +<p>Aquestes persones tenen discapacitats motrius, que poden ser per problemes purament físics (com la pèrdua de les extremitats o una paràlisi), o per trastorns neurològics/genètics que condueixen a debilitat o pèrdua de control en les extremitats. Algunes persones podrien tenir dificultats per a fer els moviments de mà necessaris per a utilitzar un ratolí, mentre que d’altres poden tenir afectacions més greus, potser una paràlisi significativa, fins al punt que necessitin utilitzar un <a href="https://www.performancehealth.com/baseball-cap-head-pointer">punter de cap</a> per a interactuar amb els ordinadors.</p> + +<p>Aquest tipus de discapacitat també pot ser conseqüència d'una edat avançada, més que d'un traumatisme o una condició específica, o bé de les limitacions del maquinari (pot ser que alguns usuaris no tinguin un ratolí).</p> + +<p>La manera en què afecta habitualment el treball del desenvolupador web és en el requisit que els controls siguin accessibles pel teclat; tractarem l’accessibilitat del teclat en articles posteriors del mòdul, però és una bona idea provar d’accedir a alguns llocs web utilitzant només el teclat per veure com te'n surts. Per exemple, pots utilitzar la tecla de tabulació per a desplaçar-te entre els diferents controls d'un formulari web? Pots trobar més detalls sobre els controls de teclat a la nostra secció <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Using_native_keyboard_accessibility">Prova de compatibilitat creuada entre navegadors Ús original d’accessibilitat des del teclat</a>.</p> + +<p>En termes estadístics, un nombre important de persones presenta deficiències de mobilitat. Els centres dels EUA per al control i la prevenció de la <a href="https://www.cdc.gov/nchs/fastats/disability.htm">discapacitat i el funcionament (adults no institucionalitzats de més de 18 anys)</a> informen que el percentatge d’adults amb dificultats de motricitat física als Estats Units és del 16,1%.</p> + +<h3 id="Les_persones_amb_problemes_de_cognició">Les persones amb problemes de cognició</h3> + +<p>El deteriorament cognitiu es refereix a una àmplia gamma de discapacitats, des de persones amb discapacitat intel·lectual que tenen les capacitats més limitades, fins a tots nosaltres, que a mesura que envellim tenim més dificultats per a pensar i recordar. La gamma inclou les persones amb malalties mentals com la <a href="https://www.nimh.nih.gov/health/topics/depression/index.shtml">depressió</a> i l’<a href="https://www.nimh.nih.gov/health/topics/schizophrenia/index.shtml">esquizofrènia</a>. També inclou persones amb discapacitats d'aprenentatge com la <a href="https://www.ninds.nih.gov/Disorders/All-Disorders/Learning-Disabilities-Information-Page">dislèxia</a> o el <a href="https://www.nimh.nih.gov/health/topics/attention-deficit-hyperactivity-disorder-adhd/index.shtml">trastorn d'hiperactivitat i dèficit d'atenció</a>. És important destacar que, tot i que hi ha molta diversitat en les definicions clíniques de deficiències cognitives, les persones que les tenen experimenten un conjunt de problemes funcionals comuns, que inclouen dificultats per comprendre els continguts, recordar com fer tasques, i confusions causades per dissenys de pàgines web incoherents.</p> + +<p>Una bona base d’accessibilitat per a persones amb deficiències cognitives inclou:</p> + +<ul> + <li>proporcionar el contingut de més d'una manera, com ara de text a veu o en vídeo;</li> + <li>proporcionar continguts fàcils d’entendre, com ara text escrit amb estàndards de llenguatge normal;</li> + <li>centrar l’atenció en els continguts importants;</li> + <li>minimitzar les distraccions, com ara continguts innecessaris o anuncis;</li> + <li>proporcionar un sistema de navegació i un disseny de la pàgina web coherents;</li> + <li>fer servir elements familiars, com ara els enllaços subratllats en blau quan encara no s'han visitat i en violeta quan ja s'han visitat;</li> + <li>dividir els processos en passos lògics i essencials amb indicadors de progrés;</li> + <li>oferir un sistema d'autenticació de llocs web tan simple com sigui possible sense comprometre la seguretat; i</li> + <li>dissenyar formularis fàcils d’emplenar, amb missatges d’error clars i facilitat de recuperació dels errors.</li> +</ul> + +<h3 id="Notes">Notes</h3> + +<ul> + <li>Un disseny d’<a href="/en-US/docs/Web/Accessibility/Cognitive_accessibility">accessibilitat cognitiva</a> dóna lloc a bones pràctiques de disseny. Això beneficia a tothom.</li> + <li>Moltes persones amb deficiències cognitives també tenen discapacitats físiques. Els llocs web han d’ajustar-se a les <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Directrius d’accessibilitat per als continguts web</a> del W3C, que inclouen les <a href="/en-US/docs/Web/Accessibility/Cognitive_accessibility#Guidelines">directrius d’accessibilitat cognitiva</a>.</li> + <li>El Grup de <a href="https://www.w3.org/WAI/GL/task-forces/coga/">treball per a l'accessibilitat de persones amb discapacitats cognitives i d'aprenentatge</a> del W3C elabora directrius d'accessibilitat web per a persones amb deficiències cognitives.</li> + <li>WebAIM té una <a href="https://webaim.org/articles/cognitive/">pàgina sobre cognició</a>, amb informació i recursos rellevants<a name="_GoBack"></a>.</li> + <li>Els Centres de Control de Malalties dels Estats Units estimen que, del 2018 en endavant, 1 de cada 4 ciutadans dels Estats Units tenen alguna discapacitat, i que <a href="https://www.cdc.gov/media/releases/2018/p0816-disability.html">la més habitual en els joves és el deteriorament cognitiu</a>.</li> + <li>Als EUA, el terme «discapacitats intel·lectuals» és la nova manera de dir «retard mental». Al Regne Unit, les «discapacitats intel·lectuals» solen ser «discapacitats d'aprenentatge» o «dificultats d'aprenentatge».</li> +</ul> + +<h2 id="Implementar_laccessibilitat_del_teu_projecte">Implementar l'accessibilitat del teu projecte</h2> + +<p>Un mite comú de l’accessibilitat és que l’accessibilitat és un «cost afegit» a l'hora de crear un projecte. Aquest mite en realitat pot ser cert si:</p> + +<ul> + <li>Proves d’«incorporar» l'accessibilitat d’un lloc web que presenta problemes d'accessibilitat importants.</li> + <li>Has començat a plantejar-te l’accessibilitat i els problemes relacionats descoberts només en les últimes etapes d’un projecte.</li> +</ul> + +<p>Tanmateix, si consideres l'accessibilitat des del començament d'un projecte, el cost de fer la majoria del contingut accessible hauria de ser mínim.</p> + +<p>Quan planifiquis el teu projecte, inclou les proves d’accessibilitat en el teu règim de proves, conjuntament amb les proves per a qualsevol altre segment de públic objectiu important (per exemple, navegadors per a equips d’escriptori o per a dispositius mòbils). Fes les proves tan aviat com et sigui possible i de manera continuada, fes proves automatitzades per a descobrir les quines característiques de programació falten (com ara que falti el text alternatiu de les imatges o que hi hagi text d’enllaços erroni; observa les relacions entre els elements i el seu context) i fes proves amb grups d’usuaris discapacitats per veure com es desenvolupen amb els elements web més complexos. Per exemple:</p> + +<ul> + <li>La gent que utilitza lectors de pantalla pot fer servir el selector de dates?</li> + <li>Si el contingut s’actualitza de manera dinàmica, les persones amb deficiències visuals ho sabran?</li> + <li>Els botons d'interfície són accessibles des del teclat i les interfícies tàctils?</li> +</ul> + +<p>Pots i has de mantenir un seguiment de les possibles àrees problemàtiques del teu contingut que necessitaran més feina per a fer-lo accessible, assegura't que es fa una prova exhaustiva i pensa en solucions/alternatives. El contingut de text (com veuràs en l’article següent) és fàcil; però, i el contingut multimèdia i els gràfics 3D? Has de tenir present el pressupost del projecte i pensar de quines solucions disposes per a fer aquest contingut accessible. Una opció possible, tot i que costosa, és tenir transcrit tot el contingut multimèdia.</p> + +<p>Sigues realista. El «100% d'accessibilitat» és un ideal que no es pot assolir, sempre hi haurà algun cas que tingui com a resultat que un usuari determinat trobi uns continguts determinats difícils d'utilitzar, però tot i això, hauries de fer tot allò que et sigui possible. Si tens previst incloure un gràfic 3D elaborat amb WebGL, potser voldràs incloure una taula de dades com a representació alternativa accessible de les dades. O, simplement, voldràs incloure la taula i desfer-te del gràfic de taules 3D: és accessible per a tothom, més ràpida de codificar, empra menys recursos de la CPU i és més fàcil de mantenir.</p> + +<p>Ara bé, si treballes en un lloc web d’una galeria d’art que mostra obres d'art interessants en 3D, no seria raonable esperar que les obres fossin perfectament accessible per a persones amb deficiències visuals, ja que es tracta d'un mitjà totalment visual.</p> + +<p>Per demostrar que et preocupa i has pensat en l’accessibilitat, publica una declaració d’accessibilitat en el teu lloc web en què es detalli quina és la teva política d’accessibilitat i quins passos has fet per a aconseguir que el lloc sigui accessible. Si algú es queixa que el teu lloc web té un problema d’accessibilitat, estableix-hi un diàleg, mostra empatia i pren les mesures raonables per a intentar solucionar el problema.</p> + +<div class="note"> +<p><strong>Nota</strong>: El nostre article sobre la <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility">Gestió de problemes d’accessibilitat comuns</a> exposa especificacions d’accessibilitat que s’han de provar amb més detall.</p> +</div> + +<p>En resum:</p> + +<ul> + <li>Considera l’accessibilitat des de l’inici d’un projecte i prova-la tan aviat com et sigui possible i de manera continuada. Igual que qualsevol altre error, un problema d’accessibilitat es fa més car de resoldre com més tard es descobreix.</li> + <li>Tingues en compte que moltes pràctiques d’accessibilitat beneficien a tothom, no només els usuaris amb discapacitat. Per exemple, el marcatge semàntic no és bo només per als lectors de pantalla, sinó que a més resulta ràpid de carregar i presenta un bon rendiment. Això beneficia a tothom, sobretot els dispositius mòbils i les connexions lentes.</li> + <li>Publica una declaració d’accessibilitat al lloc web i relaciona't amb les persones que hi tinguin problemes.</li> +</ul> + +<h2 id="Directrius_d’accessibilitat_i_lleis">Directrius d’accessibilitat i lleis</h2> + +<p>Hi ha tantes llistes de comprovació i conjunts de pautes disponibles per a fonamentar les proves d’accessibilitat, que pot semblar aclaparador a primera vista. El nostre consell és que et familiaritzis amb les àrees bàsiques de què t’has d’ocupar i comprendre les estructures d’alt nivell de les directrius que més t'interessin.</p> + +<ul> + <li>Per començar, W3C ha publicat un document ampli i molt detallat que inclou criteris tecnològics i agnòstics molt precisos per a la conformitat de l'accessibilitat. S’anomenen <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">directrius d’accessibilitat per a continguts web</a> (WCAG) i no són en absolut una lectura curta. Els criteris es divideixen en quatre categories principals, que especifiquen com es pot aconseguir que les implementacions resultin percebudes, operables, comprensibles i coherents. El millor lloc per a obtenir una introducció lleugera i començar a aprendre és <a href="https://www.w3.org/WAI/standards-guidelines/wcag/glance/">WCAG at a Glance</a>. No cal que t’aprenguis el WCAG de memòria: tingues en compte les teves àrees de preocupació principals i utilitza diverses tècniques i eines per destacar les àrees que no s’ajusten als criteris del WCAG (continua més avall).</li> + <li>El teu país també pot disposar de legislació específica que reguli la necessitat que els llocs web al servei de la població siguin accessibles (per exemple, <a href="https://www.etsi.org/deliver/etsi_en/301500_301599/301549/02.01.02_60/en_301549v020102p.pdf">EN 301 549</a> a la UE, la <a href="https://www.section508.gov/training">secció 508 de la Llei de rehabilitació</a> als Estats Units, l'<a href="https://www.einfach-fuer-alle.de/artikel/bitv_english/">Ordenança Federal sobre Tecnologies de la Informació sense barreres</a> a Alemanya, les <a href="https://www.legislation.gov.uk/uksi/2018/952/introduction/made">Normes d’Accessibilitat del 2018</a> al Regne Unit, l'<a href="https://www.agid.gov.it/it/design-servizi/accessibilita-siti-web">Accessibilitat</a> a Itàlia, la <a href="https://www.humanrights.gov.au/world-wide-web-access-disability-discrimination-act-advisory-notes-ver-41-2014">Llei de discriminació per discapacitat</a> a Austràlia, etc.). L'W3C conté una <a href="https://www.w3.org/WAI/policies/">llista de les lleis i polítiques d’accessibilitat web</a> per país.</li> +</ul> + +<p>De manera que mentre que el WCAG és un conjunt de directrius, el teu país probablement disposa de lleis que regulen l’accessibilitat web o, almenys, l’accessibilitat dels serveis disponibles per al públic (que podrien incloure llocs web, televisió, espais físics, etc.). És una bona idea que et preocupis per esbrinar quines són aquestes lleis, perquè podria ser que tinguis algun tipus de responsabilitat legal si la gent es queixa.</p> + +<p>Tot i que sona molt seriós, de fet només cal que consideris l’accessibilitat com la prioritat principal de les teves pràctiques de desenvolupament web, tal com hem exposat abans. En cas de dubte, demana l’assessorament d’un advocat qualificat. Aquí no oferirem més consells sobre el tema, perquè no som advocats.</p> + +<h2 id="API_daccessibilitat">API d'accessibilitat</h2> + +<p>Els navegadors web fan ús de les <strong>API d’accessibilitat</strong> especial (proporcionades pel sistema operatiu subjacent), que exposen informació útil per a tecnologies assistencials (AT, <em>assistive technologies</em>): les AT solen fer ús d’informació semàntica, és a dir, que aquesta informació no inclou aplicació d’estil o JavaScript. Aquesta informació s’estructura en un arbre d’informació anomenat <strong>arbre d’accessibilitat</strong>.</p> + +<p>Els diferents sistemes operatius tenen diferents API d’accessibilitat disponibles:</p> + +<ul> + <li>Windows: MSAA/IAccessible, UIAExpress, IAccessible2</li> + <li>Mac OS X: NSAccessibility</li> + <li>Linux: AT-SPI</li> + <li>Android: Accessibility framework</li> + <li>iOS: UIAccessibility</li> +</ul> + +<p>Si cau la informació semàntica d’origen que proporcionen els elements HTML de les teves aplicacions web, pots completar-la amb funcions de l’<a href="https://www.w3.org/TR/wai-aria/">especificació WAI-ARIA</a>, que afegeixen informació semàntica a l’arbre d’accessibilitat per a millorar-ne l’accessibilitat. Pots obtenir més informació sobre WAI-ARIA en el nostre article <a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">WAI-ARIA bàsic</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Aquest article t'hauria d'haver proporcionat una panoràmica útil i de gran nivell sobre l'accessibilitat, i mostrat per què és important i com pots integrar-la en el teu flux de treball. Ara també hauries de frisar per conèixer els detalls d’implementació que poden fer que els llocs web siguin accessibles, i començarem a fer-ho en la secció següent, i veurem per què l’HTML és una bona base per a l'accessibilitat.</p> + +<p>{{NextMenu("Learn/Accessibility/HTML", "Learn/Accessibility")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/Accessibility/What_is_accessibility">Què és l'accessibilitat?</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/HTML">L’HTML: Una bona base per a l'accessibilitat</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/CSS_and_JavaScript">Bones pràctiques d’accessibilitat en CSS i JavaScript</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/WAI-ARIA_basics">Conceptes bàsics de WAI-ARIA</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Multimedia">Accessibilitat multimèdia</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Mobile">Accessibilitat mòbil</a></li> + <li><a href="/en-US/docs/Learn/Accessibility/Accessibility_troubleshooting">Resolució de problemes amb accessibilitat</a></li> +</ul> + +<h2 id="Consulta_també">Consulta també</h2> + +<ul> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG">WCAG</a> + + <ul> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable">Percebible</a></li> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Operable">Operable</a></li> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Understandable">Comprensible</a></li> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Robust">Robust</a></li> + </ul> + </li> +</ul> diff --git a/files/ca/learn/css/building_blocks/advanced_styling_effects/index.html b/files/ca/learn/css/building_blocks/advanced_styling_effects/index.html new file mode 100644 index 0000000000..4196ac9434 --- /dev/null +++ b/files/ca/learn/css/building_blocks/advanced_styling_effects/index.html @@ -0,0 +1,410 @@ +--- +title: Efectes avançats de la caixa +slug: Learn/CSS/Building_blocks/Advanced_styling_effects +tags: + - Article + - Beginner + - Blend modes + - Boxes + - CSS + - CodingScripting + - Filters + - Styling + - box shadows + - effects +translation_of: Learn/CSS/Building_blocks/Advanced_styling_effects +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Styling tables", "Learn/CSS/Styling_boxes/Creating_fancy_letterheaded_paper", "Learn/CSS/Styling_boxes")}}</div> + +<p class="summary">Aquest article actua com una caixa de trucs, que proporciona una introducció a algunes de les característiques avançades disponibles per a caixes d'estil que no encaixen a les altres categories anteriors - com ara ombres de caixa, modes de combinació i filtres.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Conceptes bàsics d'HTML</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a>), <span id="result_box" lang="ca"><span>i una idea de com funciona CSS</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Obtenir una idea sobre com utilitzar els efectes avançats de la caixa i conèixer algunes de les eines d'estil emergents que apareixen al llenguatge CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Ombres_de_caixa">Ombres de caixa</h2> + +<p>De tornada al nostre mòdul <a href="/en-US/docs/Learn/CSS/Styling_text">Estilitzar text</a> module, vam mirar la propietat {{cssxref("text-shadow")}}, que permet aplicar una o més ombres al text d'un element. Bé, existeix una propietat equivalent per les caixes - {{cssxref("box-shadow")}} que permet aplicar una o més ombres a una caixa de l'element actual. Igual que les ombres de text, les ombres de caixa són bastant ben suportades en tots els navegadors, però només a IE9+. Els usuaris de versions antigues d'IE podrien haver de fer front a no veure cap ombra, així que només cal que proveu els vostres dissenys per assegurar-vos que el vostre contingut sigui llegible sense elles.</p> + +<p>Podeu trobar els exemples d'aquesta secció a <a href="http://mdn.github.io/learning-area/css/styling-boxes/advanced_box_effects/box-shadow.html">box-shadow.html</a> (vegeu el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/advanced_box_effects/box-shadow.html">codi font</a> també).</p> + +<h3 id="Una_ombra_de_caixa_senzilla">Una ombra de caixa senzilla</h3> + +<p>Vegeu un exemple senzill per començar les coses. Primer, algun HTML:</p> + +<pre class="brush: html"><article class="simple"> + <p><strong>Warning</strong>: The thermostat on the cosmic transcender has reached a critical level.</p> +</article></pre> + +<p>Ara el CSS:</p> + +<pre class="brush: css">p { + margin: 0; +} + +article { + max-width: 500px; + padding: 10px; + background-color: red; + background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.25)); +} + +.simple { + box-shadow: 5px 5px 5px rgba(0,0,0,0.7); +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Això ens dóna el següent resultat:</span></span></p> + +<p>{{ EmbedLiveSample('A_simple_box_shadow', '100%', 100) }}</p> + +<p>Veureu que tenim quatre elements en el valor de la propietat <code>box-shadow</code>:</p> + +<ol> + <li>El primer valor de longitud és el desplaçament horitzontal (<strong>horizontal offset</strong>) - la distància a la dreta que l'ombra es desplaça des de la caixa original (o a l'esquerra, si el valor és negatiu).</li> + <li>El segon valor de longitud és el desplaçament vertical (<strong>vertical offset</strong>) - la distància cap avall que l'ombra es desplaça des de la caixa original (o cap amunt, si el valor és negatiu).</li> + <li>El tercer valor de longitud és el radi de difuminat (<strong>blur radius</strong>) - la quantitat de difuminació aplicada a l'ombra.</li> + <li>El valor de color és el color base (<strong>base color</strong>) de l'ombra.</li> +</ol> + +<p>Podeu utilitzar qualsevol longitud i unitats de color que tingui sentit fer-ho per definir aquests valors.</p> + +<h3 id="Múltiples_ombres_de_caixa">Múltiples ombres de caixa</h3> + +<p>També podeu especificar múltiples ombres de caixa en una única declaració <code>box-shadow</code>, separant-les amb comes:</p> + +<div class="hidden"> +<pre class="brush: html"><article class="multiple"> + <p><strong>Warning</strong>: The thermostat on the cosmic transcender has reached a critical level.</p> +</article></pre> +</div> + +<pre class="brush: css">p { + margin: 0; +} + +article { + max-width: 500px; + padding: 10px; + background-color: red; + background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.25)); +} + +.multiple { + box-shadow: 1px 1px 1px black, + 2px 2px 1px black, + 3px 3px 1px red, + 4px 4px 1px red, + 5px 5px 1px black, + 6px 6px 1px black; +}</pre> + +<p>Ara obtenim aquest resultat:</p> + +<p>{{ EmbedLiveSample('Multiple_box_shadows', '100%', 100) }}</p> + +<p>Hem fet alguna cosa divertida, aquí, creant una caixa elevada amb diverses capes de colors, però podeu utilitzar-la de la manera que vulgueu, per exemple, per crear un aspecte més realista amb ombres basades en múltiples fonts de llum.</p> + +<h3 id="Altres_característiques_d'ombra_de_caixa">Altres característiques d'ombra de caixa</h3> + +<p>A diferència de {{cssxref("text-shadow")}}, {{cssxref("box-shadow")}} té una paraula clau disponible <code>inset</code> - posar-la al principi d'una declaració ombra fa que es converteixi en una ombra interior, més aviat, que una ombra exterior. Fem un cop d'ull i vegem què volem dir.</p> + +<p>En primer lloc, anirem amb un codi HTML diferent per a aquest exemple:</p> + +<pre class="brush: html"><button>Press me!</button></pre> + +<pre class="brush: css">button { + width: 150px; + font-size: 1.1rem; + line-height: 2; + border-radius: 10px; + border: none; + background-image: linear-gradient(to bottom right, #777, #ddd); + box-shadow: 1px 1px 1px black, + inset 2px 3px 5px rgba(0,0,0,0.3), + inset -2px -3px 5px rgba(255,255,255,0.5); +} + +button:focus, button:hover { + background-image: linear-gradient(to bottom right, #888, #eee); +} + +button:active { + box-shadow: inset 2px 2px 1px black, + inset 2px 3px 5px rgba(0,0,0,0.3), + inset -2px -3px 5px rgba(255,255,255,0.5); +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Això ens dóna el següent resultat:</span></span></p> + +<p>{{ EmbedLiveSample('Other_box_shadow_features', '100%', 70) }}</p> + +<p>Aquí hem configurat un estil de botó juntament amb els estats focus/hover/active. El botó té una senzilla ombra de caixa negre que s'adapta a ella de manera predeterminada, a més d'un parell d'ombres d'inserció, una de llum i una altra fosca, situades a les cantonades oposades del botó per donar-li un bon efecte d'ombrejat.</p> + +<p>Quan es prem el botó, l'estat active fa que es canviï la primera ombra de la caixa per una ombra d'inserció molt fosca, donant l'aparença del botó que es prem.</p> + +<div class="note"> +<p><strong>Nota</strong>: Hi ha un altre element que es pot establir en el valor de <code>box-shadow</code> - un altre valor de longitud es pot configurar de manera opcional just abans del valor del color, que és un radi de dispersió (<strong>spread radius</strong>). Si s'estableix, això fa que l'ombra sigui més gran que la caixa original. No és molt utilitzat, però val la pena esmentar.</p> +</div> + +<h2 id="Filtres">Filtres</h2> + +<p>Els filtres CSS proporcionen una manera d'aplicar filtres a un element de la mateixa manera que podeu aplicar un filtre a una capa d'un paquet gràfic com Photoshop. Hi ha diverses opcions disponibles, i podeu llegir-les totes amb més detall a la pàgina de referència {{cssxref("filtre")}}. En aquesta secció, us explicarem la sintaxi i us mostrarem lo divertit que poden ser els resultats.</p> + +<p>Bàsicament, un filtre es pot aplicar a qualsevol element, bloc o en línia - simplement utilitzeu la propietat <code>filter</code> i li proporcioneu un valor d'una funció de filtre en particular. Algunes de les opcions de filtre, disponibles, fan coses molt similars a altres funcions CSS, per exemple, drop-shadow() funciona d'una manera molt similar i dóna un efecte similar a {{cssxref("box-shadow")}} o {{cssxref("text-shadow")}}. La cosa realment agradable sobre els filtres és que treballen sobre les formes exactes del contingut dins de la caixa, no només la caixa en si mateix com un gran tros, que pot semblar més bonic, encara que no sempre pot ser el que desitjeu. Vegem un exemple senzill per il·lustrar el que volem dir:</p> + +<p>En primer lloc, un senzill HTML:</p> + +<pre class="brush: html"><p class="filter">Filter</p> + +<p class="box-shadow">Box shadow</p> +</pre> + +<p><span id="result_box" lang="ca"><span>I ara, alguns CSS per aplicar una ombra a cadascuna</span></span>:</p> + +<pre class="brush: css">p { + margin: 1rem auto; + padding: 20px; + width: 100px; + border: 5px dashed red; +} + +.filter { + -webkit-filter: drop-shadow(5px 5px 1px rgba(0,0,0,0.7)); + filter: drop-shadow(5px 5px 1px rgba(0,0,0,0.7)); +} + +.box-shadow { + box-shadow: 5px 5px 1px rgba(0,0,0,0.7); +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Això ens dóna el següent resultat:</span></span></p> + +<p>{{ EmbedLiveSample('Filters', '100%', 200) }}</p> + +<p>Com podeu veure, el filtre drop-shadow segueix la forma exacta del text i els guions de la vora. L'ombra de la caixa només segueix el quadrat de la caixa.</p> + +<p>Algunes altres coses a destacar</p> + +<ul> + <li>Els filtres són molt nous - són compatibles amb la majoria de navegadors moderns, fins i tot Microsoft Edge, però no són compatibles en absolut amb Internet Explorer. Si utilitzeu filtres en els vostres dissenys, us heu de garantir que el vostre contingut es pugui utilitzar sense els filtres.</li> + <li>Veureu que hem inclòs una versió de la propietat <code>filtre</code> amb -<code>webkit</code>- prefixada. Es diu {{glossary("Vendor Prefix")}}, i és utilitzada de vegades per un navegador abans que finalitzi la implementació d'una nova característica, per suportar aquesta característica i experimentar amb ella sense coincidir amb la versió no prefixada. Els Vendor prefixes mai van ser destinats a ser utilitzats pels desenvolupadors web, però s'utilitzen de vegades a les pàgines de producció si realment es desitgen les característiques experimentals. En aquest cas, actualment, la versió -<code>webkit</code>- de la propietat és necessària per al suport de Chrome/Safari/ Opera, mentre que Edge i Firefox utilitzen la versió final, no prefixada.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Si decidiu utilitzar els prefixos en el vostre codi, assegureu-vos d'incloure tots els prefixos requerits, així com la versió no prefixada, de manera que el nombre màxim de navegadors possibles poguin utilitzar la característica, i quan els navegadors posteriorment deixin anar els prefixos, també poguin utilitzar la versió no prefixada. Tingueu també en compte que aquestes característiques experimentals podrien canviar, de manera que el codi podria trencar-se. Realment és millor experimentar amb aquestes característiques fins que s'eliminin els prefixos.</p> +</div> + +<p>Podeu veure altres exemples de filtres a <a href="http://mdn.github.io/learning-area/css/styling-boxes/advanced_box_effects/filters.html">filters.html</a> (vegeu també el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/advanced_box_effects/filters.html">codi font</a>).</p> + +<h2 id="Modes_de_mescla_(Blend)">Modes de mescla (Blend)</h2> + +<p>Els modes de mescla CSS ens permeten afegir modes de mescla a elements que especifiquen un efecte de mescla quan es superposen dos elements - el color final mostrat per a cada píxel serà el resultat d'una combinació del color del píxel original i el del píxel en la capa de sota. Els modes de mescla tornen a ser molt familiars per als usuaris d'aplicacions gràfiques com Photoshop.</p> + +<p>Hi ha dues propietats que utilitzen modes de mescla en CSS:</p> + +<ul> + <li>{{cssxref("background-blend-mode")}}, mescla diverses imatges de fons i colors establerts, en un sol element.</li> + <li>{{cssxref("mix-blend-mode")}}, mescla l'element que està establert amb elements que es superposen - tant de fons com de contingut.</li> +</ul> + +<p>Trobareu molts més exemples, que els disponibles aquí, a la nostra pàgina d'exemple <a href="http://mdn.github.io/learning-area/css/styling-boxes/advanced_box_effects/blend-modes.html">blend-modes.html</a> (consulteu el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/advanced_box_effects/blend-modes.html">codi font</a>), i a la pàgina de referència {{cssxref("<blend-mode>")}}.</p> + +<div class="note"> +<p><strong>Nota</strong>: Els modes de mescla són també molt nous i lleugerament menys compatibles que els filtres. Encara no hi ha cap suport a Edge, i Safari només admet algunes de les opcions de mode de mescla.</p> +</div> + +<h3 id="background-blend-mode">background-blend-mode</h3> + +<p>De nou, anem a veure alguns exemples perquè pugueu entendre millor això. En primer lloc, {{cssxref("background-blend-mode")}} - aquí mostrarem un parell de {{htmlelement("div")}}s senzills, de manera que pogueu comparar l'original amb la versió barrejada:</p> + +<pre class="brush: html"><div> +</div> +<div class="multiply"> +</div></pre> + +<p>Ara, alguns CSS - afegim dues imatges de fons als <code><div></code>s: un gradient lineal i un png:</p> + +<pre class="brush: css">div { + width: 280px; + height: 130px; + padding: 10px; + margin: 10px; + display: inline-block; + background: url(https://mdn.mozillademos.org/files/13090/colorful-heart.png) no-repeat center 20px; + background-color: green; +} + +.multiply { + background-blend-mode: multiply; +}</pre> + +<p>El resultat que obtenim és el següent - podeu veure l'original a l'esquerra i el mode de mescla <code>multiply</code> a la dreta:</p> + +<p>{{ EmbedLiveSample('background-blend-mode', '100%', 200) }}</p> + +<h3 id="mix-blend-mode">mix-blend-mode</h3> + +<p>Ara mirem {{cssxref("mix-blend-mode")}}. Aquí presentem els mateixos dos <code><div></code>s, però cadascun d'ells ara està assegut a la part superior d'un simple <code><div></code> amb un fons porpra, per mostrar com es barregen els elements:</p> + +<pre class="brush: html"><article> + No mix blend mode + <div> + + </div> + <div> + </div> +</article> + +<article> + Multiply mix + <div class="multiply-mix"> + + </div> + <div> + </div> +</article></pre> + +<p><span id="result_box" lang="ca"><span>Aquí teniu el CSS amb aquest estil:</span></span></p> + +<pre class="brush: css">article { + width: 300px; + height: 180px; + margin: 10px; + position: relative; + display: inline-block; +} + +div { + width: 250px; + height: 130px; + padding: 10px; + margin: 10px; +} + +article div:first-child { + position: absolute; + top: 10px; + left: 0; + background: url(https://mdn.mozillademos.org/files/13090/colorful-heart.png) no-repeat center 20px; + background-color: green; +} + +article div:last-child { + background-color: purple; + position: absolute; + bottom: -10px; + right: 0; + z-index: -1; +} + +.multiply-mix { + mix-blend-mode: multiply; +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Això ens dóna el següent resultat:</span></span></p> + +<p>{{ EmbedLiveSample('mix-blend-mode', '100%', 200) }}</p> + +<p>Aquí podeu veure que la mescla de la mescla de multiply ha combinat no només les dues imatges de fons, sinó també el color del <code><div></code> a sota.</p> + +<div class="note"> +<p><strong>Nota</strong>: No us preocupeu si no enteneu algunes de les propietats de disseny anteriors, com ara {{cssxref("position")}}, {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("z-index")}}, etc. Les cobrirem amb més detall en el nostre mòdul de <a href="/en-US/docs/Learn/CSS/CSS_layout">Disseny CSS</a>.</p> +</div> + +<h2 id="-webkit-background-clip_text">-webkit-background-clip: text</h2> + +<p>Una altra característica incipient que pensàvem esmentar breument abans de seguir endavant (actualment compatible amb Chrome, Safari i Opera i que es va implementar a Firefox) és el valor <code>text</code> de {{cssxref("background-clip")}}. Quan s'utilitza juntament amb el propietari -<code>webkit-text-fill-color: transparent</code>; la característica, això us permet retallar imatges de fons a la forma del text de l'element, fent-ne uns efectes agradables. Aquest no és un estàndard oficial, però s'ha implementat en diversos navegadors, ja que és popular i utilitzat àmpliament pels desenvolupadors. Quan s'utilitza en aquest context, ambdues propietats requeriran un -<code>webkit</code>- vendor prefix, fins i tot per a navegadors no basats en Webkit/Chrome:</p> + +<pre class="brush: css">.text-clip { + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +}</pre> + +<p>Llavors, per què altres navegadors han implementat un prefix -webkit-? Principalment per a la compatibilitat del navegador - així, que molts desenvolupadors web van començar a implementar llocs web amb prefixes -<code>webkit</code>- va començar a semblar que els altres navegadors estaven trencats, mentre que, de fet, seguien els estàndards. Així que es van veure forçats a implementar algunes característiques d'aquest tipus. Això posa de manifest el perill d'utilitzar característiques CSS no estàndard i/o prefixades en el vostre treball - no només causen problemes de compatibilitat amb el navegador, sinó que també estan subjectes a canvis, de manera que el vostre codi podria trencar-se en qualsevol moment. És molt millor complir amb els estàndards.</p> + +<p>Si voleu utilitzar aquestes característiques en el vostre treball de producció, assegurar-vos de provar, a fons, en tots els navegadors i comprovar que, en els casos en què aquestes característiques no funcionin, el lloc encara és utilitzable.</p> + +<div class="note"> +<p><strong>Nota</strong>: Per a un complet codi d'exemple sobre <code>-webkit-background-clip: text</code>, vegeu <a href="http://mdn.github.io/learning-area/css/styling-boxes/advanced_box_effects/background-clip-text.html">background-clip-text.html</a> (vegeu també el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/advanced_box_effects/background-clip-text.html">codi font</a>).</p> +</div> + +<h2 id="Aprenentatge_actiu_experimentar_amb_alguns_efectes">Aprenentatge actiu: experimentar amb alguns efectes</h2> + +<p>Ara és el vostre torn. Per a aquest aprenentatge actiu, volem que experimenteu alguns dels efectes que heu llegit anteriorment, utilitzant el codi proporcionat a continuació.</p> + +<p>Si cometeu un error, sempre podeu restablir l'exemple mitjançant el botó <em>Reset</em>.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html"><div class="body-wrapper" style="font-family: 'Open Sans Light',Helvetica,Arial,sans-serif;"> + <h2>HTML Input</h2> + <textarea id="code" class="html-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"><div class="style-me"> +</div></textarea> + + <h2>CSS Input</h2> + <textarea id="code" class="css-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;">.style-me { + width: 280px; + height: 130px; + padding: 10px; + margin: 10px; + display: inline-block; + background-color: red; + background: url(https://mdn.mozillademos.org/files/13090/colorful-heart.png) no-repeat center 20px, + linear-gradient(to bottom right, #f33, #a33); +} </textarea> + + <h2>Output</h2> + <div class="output" style="width: 90%;height: 15em;padding: 10px;border: 1px solid #0095dd;overflow:hidden;"></div> + <div class="controls"> + <input id="reset" type="button" value="Reset" style="margin: 10px 10px 0 0;"> + </div> +</div> +</pre> + +<pre class="brush: js">var htmlInput = document.querySelector(".html-input"); +var cssInput = document.querySelector(".css-input"); +var reset = document.getElementById("reset"); +var htmlCode = htmlInput.value; +var cssCode = cssInput.value; +var output = document.querySelector(".output"); + +var styleElem = document.createElement('style'); +var headElem = document.querySelector('head'); +headElem.appendChild(styleElem); + +function drawOutput() { + output.innerHTML = htmlInput.value; + styleElem.textContent = cssInput.value; +} + +reset.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = cssCode; + drawOutput(); +}); + +htmlInput.addEventListener("input", drawOutput); +cssInput.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 820) }}</p> + +<h2 id="Resum">Resum</h2> + +<p>Esperem que aquest article hagi demostrat ser divertit en general - jugar amb joguines brillants i sempre és interessant veure quins tipus d'eines només estan disponibles en navegadors d'avantguarda. Heu arribat al final dels articles de les <a href="/en-US/docs/Learn/CSS/Styling_boxes">Caixes d'estil</a> de manera que a continuació, provareu les vostres habilitats amb les caixes d'estil amb les nostres avaluacions.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Styling tables", "Learn/CSS/Styling_boxes/Creating_fancy_letterheaded_paper", "Learn/CSS/Styling_boxes")}}</p> diff --git a/files/ca/learn/css/building_blocks/cascada_i_herència/index.html b/files/ca/learn/css/building_blocks/cascada_i_herència/index.html new file mode 100644 index 0000000000..09a5e368eb --- /dev/null +++ b/files/ca/learn/css/building_blocks/cascada_i_herència/index.html @@ -0,0 +1,333 @@ +--- +title: Cascada i herència +slug: Learn/CSS/Building_blocks/Cascada_i_herència +translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance +--- +<div>{{LearnSidebar}}{{NextMenu("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks")}}</div> + +<p>L’objectiu d’aquest article és desenvolupar la comprensió d’alguns dels conceptes més fonamentals del CSS (la cascada, l’especificitat i l’herència) que controlen com s’aplica el CSS a l’HTML i com es resolen els conflictes.</p> + +<p>Si bé pot semblar que és menys rellevant i una mica més acadèmic que algunes altres parts del curs, la seva comprensió t'estalviarà feina més endavant! T’animem a treballar aquesta secció en profunditat i comprovar que entens els conceptes abans de continuar endavant.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre què són la cascada i l'especificitat, i com funciona l'herència en CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Regles_conflictives">Regles conflictives</h2> + +<p>CSS significa fulls d'estil en cascada (<strong>cascading style sheets</strong>), i es molt important entendre la paraula, <em>cascada</em>; el comportament de la cascada és clau per a comprendre el CSS.</p> + +<p>En algun moment treballaràs en un projecte i trobaràs que el CSS que creus que s’hauria d’aplicar a un element no funciona. Normalment, el problema és que has creat dues regles que podrien aplicar-se al mateix element. La <strong>cascada</strong> i el concepte d’<strong>especificitat</strong>, que estan estretament relacionats, són mecanismes que controlen quina regla s'aplica quan hi ha aquest conflicte. La regla que dona estil al teu element pot ser que no sigui la que esperaves, per la qual cosa has d'entendre com funcionen aquests mecanismes.</p> + +<p>Aquí també és important el concepte <strong>d'herència</strong>, que significa que algunes propietats CSS per defecte hereten valors establerts per a l'element pare, i d'altres no. Això també pot causar algun comportament que potser no esperes.</p> + +<p>Comencem per fer una ullada ràpida als elements clau que tractem i, a continuació, examinarem com interaccionen entre si i amb el CSS. Poden semblar un conjunt de conceptes complicats d’entendre. A mesura que vagis adquirint pràctica a l'hora d’escriure CSS, se’t farà més evident la manera que té de funcionar.</p> + +<h3 id="La_cascada">La cascada</h3> + +<p>Fulls d’estil en <strong>cascada</strong>: en un nivell molt senzill això significa que l’ordre de les regles CSS és important; quan s’apliquen dues regles que tenen la mateixa especificitat, la que s’utilitza és l'última que surt al codi CSS.</p> + +<p>En l’exemple següent hi ha dues regles que podrien aplicar-se a <code>h1</code>. <code>h1</code> acaba sent de color blau: aquestes regles tenen un selector idèntic i, per tant, porten la mateixa especificitat, de manera que l’última regla en el full d'estil guanya.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/cascade-simple.html", '100%', 400)}} </p> + +<h3 id="Especificitat">Especificitat</h3> + +<p>L’especificitat és la manera com el navegador decideix quina regla s’aplica si diverses regles tenen selectors diferents i poden aplicar-se al mateix element. Bàsicament és una mesura de com d'específica serà la selecció d'un selector:</p> + +<ul> + <li>Un selector d’elements és menys específic (selecciona tots els elements d’un mateix tipus que apareixen en una pàgina) i, per tant, obté una puntuació més baixa.</li> + <li>Un selector de classes és més específic: només selecciona els elements d'una pàgina que tenen un valor d'atribut <code>class</code> específic, de manera que obté una puntuació més alta.</li> +</ul> + +<p>Vegem-ne un exemple! A continuació, tornem a tenir dues regles que podrien aplicar-se a <code>h1</code>. L’encapçalament <code>h1</code> següent acaba sent de color vermell: el selector de classe dona a aquesta regla una especificitat més alta, i per tant s'aplica encara que la regla amb el selector d'elements apareix més avall en el full d'estil.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/specificity-simple.html", '100%', 500)}} </p> + +<p>Més endavant explicarem la puntuació de l'especificitat.</p> + +<h3 id="Herència">Herència</h3> + +<p>L’herència també s’ha d’entendre en aquest context: els elements fill hereten alguns valors de propietat CSS que s’han establert en els elements pare, i no n’hereten d’altres.</p> + +<p>Per exemple, si configures un element <code>color</code> i un <code>font-family</code> per a un element, aquest color i tipus de lletra també s’apliquen a tots els elements que hi hagi a dintre, tret que els hi hagis aplicat valors de color i lletra diferents directament.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/inheritance-simple.html", '100%', 550)}} </p> + +<p>Algunes propietats no s'hereten. Per exemple, si estableixes una amplada ({{cssxref("width")}}) del 50% per a un element, cap dels seus elements descendents adquireix una amplada del 50% de l'amplada de l'element pare. Si fos així, seria molt frustrant utilitzar CSS!</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: A les pàgines de referència de les propietats CSS de MDN, pots trobar un quadre d'informació tècnica, normalment a la part inferior de la secció d'especificacions, que enumera diversos punts de dades sobre aquesta propietat, inclòs si s'hereta o no. Consulta, per exemple, la secció <a href="/en-US/docs/Web/CSS/color#Specifications">Especificacions de la propietat del color</a>.</p> +</div> + +<h2 id="Entendre_com_interaccionen_els_conceptes">Entendre com interaccionen els conceptes</h2> + +<p>Aquests tres conceptes controlen quin CSS s'aplica a cada element. En les seccions següents veurem com funcionen conjuntament. De vegades pot semblar una mica complicat, però començaràs a recordar-los a mesura que guanyis experiència amb el CSS, i sempre ho pots tornar a buscar si se t'obliden els detalls. Fins i tot als desenvolupadors experimentats els costa recordar tots els detalls.</p> + +<h2 id="Comprendre_l’herència">Comprendre l’herència</h2> + +<p>Començarem per l'herència. En l'exemple següent hi ha un element {{HTMLElement("ul")}}, que conté dos nivells de llistes no ordenades. Hem definit per a l'element exterior <code><ul></code> una vora i un farciment, i n’hem canviat el color de la lletra.</p> + +<p>El color s’ha aplicat als fills directes i també als indirectes: els elements fill immediats (<code><li></code>) i els que hi ha a la primera llista imbricada. Després, hem afegit una classe <code>special</code> a la segona llista imbricada i hi hem aplicat un color diferent, el qual hereten els fills d’aquesta.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/inheritance.html", '100%', 700)}} </p> + +<p>No s'hereten propietats com l'amplada (com ja s'ha esmentat), els marges, els farciments i les vores. Si els fills de la nostra llista haguessin d’heretar una vora, cada llista i element de llista obtindria una vora, i probablement no sigui un efecte que vulguem.</p> + +<p>Quines propietats s'hereten de manera predeterminada i quines no, es en bona mesura qüestió de sentit comú.</p> + +<h3 id="Control_de_l’herència">Control de l’herència</h3> + +<p>El CSS proporciona quatre valors especials de propietat universal per a controlar l’herència. Totes les propietats CSS admeten aquests valors.</p> + +<dl> + <dt>{{cssxref("inherit")}}</dt> + <dd>Estableix el valor de la propietat aplicat a un element seleccionat perquè sigui igual que el de l’element pare. Això, en efecte, «activa l'herència».</dd> + <dt>{{cssxref("initial")}}</dt> + <dd>Estableix que el valor de la propietat que s’aplica a l’element que se selecciona sigui igual que el valor que el full d'estil predeterminat del navegador estableix per a la propietat d’aquest element. Si el full d’estil predeterminat del navegador no estableix cap valor i la propietat s’hereta de manera natural, el valor de la propietat s’estableix en <code>inherit</code>.</dd> + <dt>{{cssxref("unset")}}</dt> + <dd>Restableix la propietat al seu valor natural, cosa que significa que si la propietat s’hereta naturalment, actua com a <code>inherit</code>, i en cas contrari, actua com a <code>initial</code>.</dd> +</dl> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: També hi ha un valor més recent, {{cssxref("revert")}}, que té un suport limitat per part dels navegadors.</p> +</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Consulta la secció {{SectionOnPage("/en-US/docs/Web/CSS/Cascade", "Origin of CSS declarations")}} per obtenir més informació sobre cadascuna d'elles i el seu funcionament.</p> +</div> + +<p>Podem observar una llista d’enllaços i analitzar com funcionen els valors universals. L’exemple en viu següent et permet jugar amb el CSS i veure què passa si hi fas canvis. Jugar amb el codi és realment la millor manera d’arribar a conèixer l'HTML i el CSS.</p> + +<p>Per exemple:</p> + +<ol> + <li>El segon element de llista té aplicada la classe <code>my-class-1</code>. Estableix el color que hereta l’element <code><a></code> que té imbricat. Com canvia el color de l'enllaç si suprimeixes la regla?</li> + <li>Entens per què el tercer i el quart enllaços són del color que són? Si no és així, repassa la descripció dels valors anteriors.</li> + <li>Quin dels enllaços canvia de color si defineixes un color nou per a l'element <code><a></code>, per exemple <code>a { color: red; }</code>?</li> +</ol> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/keywords.html", '100%', 700)}} </p> + +<h3 id="Restablir_tots_els_valors_de_propietat">Restablir tots els valors de propietat</h3> + +<p>La propietat CSS abreviada <code>all</code> es pot utilitzar per a aplicar un d’aquests valors d’herència a (gairebé) totes les propietats alhora. El seu valor pot ser qualsevol dels valors d'herència (<code>inherit</code>, <code>initial</code>, <code>unset</code> o <code>revert</code>). És una manera còmoda de desfer els canvis que s’han aplicat a l’estil de manera que puguis tornar a un punt de partida conegut abans d'introduir canvis nous.</p> + +<p>En l’exemple següent hi ha dues citacions de bloc. La primera té un estil que s’aplica directament sobre la citació de bloc, mentre que la segona té una classe aplicada a la citació de bloc que estableix el valor de <code>all</code> en <code>unset</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/all.html", '100%', 700)}} </p> + +<p>Prova d’establir el valor <code>all</code> a alguns dels altres valors disponibles i observa quina és la diferència.</p> + +<h2 id="Entendre_la_cascada">Entendre la cascada</h2> + +<p>Ara entenem per què un paràgraf que està profundament imbricat dins l'estructura del teu HTML és del mateix color que el CSS que s’ha especificat per a <code>body</code>, i entenem per què canvia el CSS que, de les lliçons introductòries, hem aplicat a algun element en qualsevol punt del document, ja sigui assignant CSS a un element o creant una classe. Ara farem una ullada de més a prop a com la cascada defineix quines regles CSS s'apliquen quan hi ha més d'un situació que pot aplicar estil a un element.</p> + +<p>Cal considerar tres factors, en un ordre d'importància creixent. Els posteriors anul·len els anteriors:</p> + +<ol> + <li><strong>Ordre dins el codi</strong></li> + <li><strong>Especificitat</strong></li> + <li><strong>Importància</strong></li> +</ol> + +<p>Ara els analitzarem i descobrirem com els navegadors determinen quin CSS han d’aplicar.</p> + +<h3 id="Ordre_dins_el_codi">Ordre dins el codi</h3> + +<p>Ja hem vist com l’ordre dins el codi és important en la cascada. Si hi ha més d’una regla, amb exactament el mateix pes, guanya la que apareix última en el CSS. Pots veure-ho com que les regles que són més properes a l'element sobreescriuen les anteriors fins que l'última guanya i estableix el disseny que es dona a l'element.</p> + +<h3 id="Especificitat_2">Especificitat</h3> + +<p>Un cop entès el fet que l’ordre dins el codi importa, en algun moment et pots topar amb una situació en què saps que no s’aplica la regla que apareix l’última en el full d’estil, sinó una d’anterior. Això es deu al fet que aquesta regla anterior té una <strong>especificitat més elevada</strong>: és més específica i, per tant, el navegador la tria per donar estil a l'element.</p> + +<p>Com hem vist abans en aquest article, un selector de classes té més pes que un selector d’elements, de manera que les propietats definides per a la classe anul·len les que s’apliquen directament per a l’element.</p> + +<p>Una observació important que cal fer aquí és que, tot i que pensem en selectors i regles que s’apliquen a l'element que seleccionen, no es sobreescriu tota la regla, sinó només les propietats que són iguals.</p> + +<p>Aquest comportament ajuda a evitar repeticions dins el CSS. Una pràctica habitual és definir estils genèrics per als elements bàsics, i després crear classes per a aquells que són diferents. Per exemple, en el full d’estil següent hem definit estils genèrics per a títols d’encapçalament de nivell 2 i després hem creat algunes classes que canvien només algunes propietats i valors. Els valors definits inicialment s'apliquen a tots els títols d’encapçalament, i els valors més específics s'apliquen als títols d’encapçalament en què s'ha establert alguna classe.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/mixing-rules.html", '100%', 700)}} </p> + +<p>Observa ara com calcula l’especificitat el navegador. Ja saps que un selector d’elements té una especificitat baixa i una classe el pot sobreescriure. Essencialment s’atorga un valor en punts als diferents tipus de selectors i, si se sumen, s’obté el pes concret de cada selector, que pot avaluar-se respecte d’altres coincidències potencials.</p> + +<p>La quantitat d'especificitat que presenta un selector es mesura a partir de quatre valors (o components) diferents, que es poden entendre com si fossin milers, centenes, desenes i unitats; quatre dígits simples disposats en quatre columnes:</p> + +<ol> + <li><strong>Milers</strong>: suma un punt en aquesta columna si la declaració es troba continguda dins d’un atribut {{htmlattrxref("style")}}, també conegut com estil de línia. Aquestes declaracions no tenen selectors, de manera que la seva especificitat és sempre de 1.000.</li> + <li><strong>Centenes</strong>: suma un punt en aquesta columna per cada selector d’identificador que està contingut en el selector global.</li> + <li><strong>Desenes</strong>: suma un punt en aquesta columna per cada selector de classe, selector d'atributs o de pseudoclasse que està contingut dins del selector general.</li> + <li><strong>Unitats</strong>: suma un punt en aquesta columna per cada selector d'elements o pseudoelement que està contingut dins del selector general.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: El selector universal (<code>*</code>), els combinadors (<code>+</code>, <code>></code>, <code>~</code>, ' ') i la pseudoclasse de negació (<code>:not</code>) no tenen cap efecte sobre l'especificitat.</p> +</div> + +<p>La taula següent mostra alguns exemples aïllats per posar-te en situació. Estudia aquestes qüestions i assegura't d’entendre per què tenen aquestes especificitats. Encara no hem exposat detalladament els selectors, però pots trobar detalls de cada selector en la <a href="/ca/docs/Web/CSS/Selectors_CSS">pàgina de referència dels selectors</a> de MDN.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Milers</th> + <th scope="col">Centenes</th> + <th scope="col">Desenes</th> + <th scope="col">Unitats</th> + <th scope="col">Especificitat total</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>h1</code></td> + <td>0</td> + <td>0</td> + <td>0</td> + <td>1</td> + <td>0001</td> + </tr> + <tr> + <td><code>h1 + p::first-letter</code></td> + <td>0</td> + <td>0</td> + <td>0</td> + <td>3</td> + <td>0003</td> + </tr> + <tr> + <td><code>li > a[href*="en-US"] > .inline-warning</code></td> + <td>0</td> + <td>0</td> + <td>2</td> + <td>2</td> + <td>0022</td> + </tr> + <tr> + <td><code>#identifier</code></td> + <td>0</td> + <td>1</td> + <td>0</td> + <td>0</td> + <td>0100</td> + </tr> + <tr> + <td>Cap selector, amb una regla dins de l’atribut {{htmlattrxref ("style")}} d'un element</td> + <td>1</td> + <td>0</td> + <td>0</td> + <td>0</td> + <td>1000</td> + </tr> + </tbody> +</table> + +<p>Abans de continuar endavant, observa un exemple en acció.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/specificity-boxes.html", '100%', 700)}} </p> + +<p>Què hi passa, aquí? En primer lloc, només ens interessen les set primeres regles d’aquest exemple i, com ja deus haver observat, hem inclòs els seus valors d’especificitat en un comentari abans de cadascuna.</p> + +<ul> + <li>Els dos primers selectors competeixen per donar estil al color de fons de l'enllaç; el segon guanya i fa que el color de fons sigui blau perquè té un selector d’ID addicional en la cadena: l’especificitat és de 201 contra 101.</li> + <li>Els selectors tercer i quart competeixen per donar estil al color del text de l'enllaç: el segon guanya i fa que el text sigui blanc perquè, encara que té un selector d'elements de menys, el selector que falta es canvia per un selector de classe, que passa de valdre 1 a valdre 10. Així, doncs, l’especificitat guanyadora és de 113 contra 104.</li> + <li>Els selectors 5-7 competeixen per donar estil a la vora de l'enllaç quan el cursor hi passa per sobre. El selector sis perd clarament contra el cinc, amb una especificitat de 23 enfront d’una de 24: té un selector de menys en la cadena. El selector set, però, supera el cinc i el sis: té el mateix nombre de subselectors que cinc en la cadena, però un element ha estat canviat per un selector de classe. Així doncs, l’especificitat guanyadora és 33 contra 23 i 24.</li> +</ul> + +<ol> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Aquest ha estat només un exemple aproximat per facilitar-ne la comprensió. En realitat, cada tipus de selector té el seu nivell d'especificitat propi, que no pot ser sobreescrit per selectors amb un nivell d'especificitat inferior. Per exemple, una combinació de selectors d’una <strong>classe</strong> <em>milió</em> no podrien sobreescriure les regles d’un selector d’<strong>ID</strong> <em>unitat</em>.</p> + +<p>Una manera més precisa d’avaluar l’especificitat seria puntuar els nivells d’especificitat individualment començant pel més alt i descendint quan sigui necessari. Només quan hi hagi un empat entre puntuacions de selector dins d’un nivell d’especificitat, hauràs d'avaluar el nivell següent; en cas contrari, pots prescindir dels selectors de nivell d’especificitat inferior perquè mai podran sobreescriure els nivells d’especificitat més alts.</p> +</div> + +<h3 id="!important">!important</h3> + +<p>Hi ha una element especial de CSS que podries utilitzar per substituir tots els càlculs anteriors, però has de tenir molta cura a l'hora de fer-lo servir: <code>!important</code>. S’utilitza per fer que una propietat i un valor particulars tinguin l’especificitat màxima; per tant, anul·la les regles normals de la cascada.</p> + +<p>Observa aquest exemple, en què hi ha dos paràgrafs, un dels quals té un selector d’ID.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/cascade/important.html", '100%', 700)}} </p> + +<p>Fes-ne la prova i observa què succeeix. Si et costa d’entendre, prova d’eliminar algunes de les propietats i observa què passa:</p> + +<ol> + <li>Veuràs que els valors {{cssxref("color")}} i {{cssxref("padding")}} de la tercera regla s'han aplicat, però {{cssxref("background-color")}} no ho ha fet. Per què? Els tres haurien d’aplicar-se sense cap problema, perquè les regles posteriors en l’ordre del codi en general anul·len les regles anteriors.</li> + <li>Tanmateix, les regles anteriors guanyen perquè els selectors de classe tenen una especificitat més alta que els selectors d’element.</li> + <li>Els dos elements tenen una {{htmlattrxref("class")}} <code>better</code>, però el segon té un {{htmlattrxref("id")}} <code>winning</code>. Com que els ID tenen una especificitat <em>encara més elevada</em> que les classes (només es pot tenir un element amb un determinat ID en una mateixa pàgina, però es poden tenir molts elements amb la mateixa classe: els selectors ID són <em>molt específics</em> amb allò que delimiten), el color de fons vermell i la vora negra d'1 píxel s'aplicaran tots dos estils al segon element, mentre que el primer element té un color de fons gris i cap vora, tal i com especifica la classe.</li> + <li>El segon element <em>si</em> adquireix un color de fons vermell, però no té cap vora. Per què? Perquè la declaració <code>!important</code> de la segona regla s’ha inclòs després de <code>border: none</code>, i això vol dir que aquesta declaració obté el valor de la vora <code>border</code>) de la regla anterior, tot i que l'ID té una especificitat més elevada.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: L'única manera de substituir aquesta declaració <code>!important</code> seria incloure una altra declaració <code>!important</code> en una declaració amb la <em>mateixa especificitat</em> que es trobi més endavant en l'ordre del codi, o que presenti una especificitat més alta.</p> +</div> + +<p>És útil saber que <code>!important</code> existeix perquè sàpigues què és si t’ho trobes en el codi d’algú altre. <strong>Tanmateix, et recomanem fermament que no l'utilitzis tret que no tinguis cap altra alternativa.</strong> <code>!important</code> canvia el funcionament habitual de la cascada, de manera que pot complicar molt la resolució dels problemes de depuració de CSS, sobretot en un full d’estil.</p> + +<p>Una de les situacions en què potser l'has d'utilitzar és quan treballes en un CMS en què no pots editar els mòduls CSS bàsics, però vols substituir un estil que no es pot substituir de cap altra manera. Però, de debò, no ho facis servir si ho pots evitar!</p> + +<h2 id="La_importància_de_la_ubicació_del_CSS">La importància de la ubicació del CSS</h2> + +<p>Per acabar, és útil tenir en compte també que la importància d’una declaració CSS depèn de quin full d’estil s’especifica; és possible que els usuaris estableixin fulls d’estil personalitzats que anul·lin els estils del desenvolupador. Per exemple, l’usuari pot tenir una deficiència visual i pot voler definir una mida de lletra per a totes les pàgines web que visita que sigui el doble de la mida normal, per a poder llegir amb més facilitat.</p> + +<h2 id="En_resum">En resum</h2> + +<p>Les declaracions que entren en conflicte s’aplicaran en l’ordre següent, en què les que apareixen amb posterioritat sempre reescriuen les anteriors:</p> + +<ol> + <li>Declaracions en fulls d’estil d’agent d’usuari (per exemple, els estils predeterminats del navegador, que s’utilitzen quan no s’estableix cap altre estil).</li> + <li>Declaracions normals en fulls d’estil de l’usuari (estils personalitzats que estableix un usuari).</li> + <li>Declaracions normals en fulls d'estil d'autor (aquests són els estils que establim nosaltres, els desenvolupadors web).</li> + <li>Declaracions importants en fulls d’estil d’autor.</li> + <li>Declaracions importants en els fulls d'estil de l'usuari.</li> +</ol> + +<p>Té sentit que els fulls d’estil dels desenvolupadors web reemplacin els fulls d’estil dels usuaris, de manera que el disseny es pot mantenir tal i com es pretén, però a vegades els usuaris tenen bons motius per a anul·lar els estils dels desenvolupadors web, com ja s’ha esmentat; això es pot aconseguir amb <code>!important</code> en les regles d’estil.</p> + +<h2 id="Posa_a_prova_les_teves_habilitats">Posa a prova les teves habilitats</h2> + +<p>Hem vist moltes coses en aquest article. Ets capaç de recordar-ne la informació més important? A <a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_tasks">Test your skills: the Cascade</a> trobaràs més proves per verificar que has retingut aquesta informació abans de continuar.</p> + +<h2 id="Què_segueix">Què segueix?</h2> + +<p>Si has entès el gruix d’aquest article, ja has començat a familiaritzar-te amb la mecànica fonamental del CSS. A continuació, examinarem els selectors amb detall.</p> + +<p>Si no has entès del tot els conceptes de la cascada, l'especificitat i l'herència, no et preocupis. Sens dubte, això és el més complicat que hem exposat fins ara, i a vegades fins i tot els desenvolupadors web professionals ho troben complicat. T’aconsellem que tornis a aquest article unes quantes vegades a mesura que avancis en el curs, i que hi continuïs pensant.</p> + +<p>Torna a aquest punt si comences a trobar-te amb problemes estranys amb estils que no s'apliquen com esperaves. Podria ser un problema d'especificitat.</p> + +<p>{{NextMenu("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions </a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts </a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, media i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depurar el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/depurar_el_css/index.html b/files/ca/learn/css/building_blocks/depurar_el_css/index.html new file mode 100644 index 0000000000..273468969e --- /dev/null +++ b/files/ca/learn/css/building_blocks/depurar_el_css/index.html @@ -0,0 +1,198 @@ +--- +title: Depurar el CSS +slug: Learn/CSS/Building_blocks/Depurar_el_CSS +translation_of: Learn/CSS/Building_blocks/Debugging_CSS +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks/Organizing", "Learn/CSS/Building_blocks")}}</div> + +<p>En escriure codi CSS de vegades et pots trobar que el teu CSS no fa el que esperes. Pot ser que esperis que un determinat selector coincideixi amb un element, i no passa; o que una caixa tingui una mida diferent de la que t’esperaves. Aquest article et proporciona orientacions sobre com es pot emprendre la depuració d’un problema en CSS i et mostra com les eines de desenvolupador (DevTools) que tots els navegadors moderns inclouen et poden ajudar a esbrinar què passa.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir informació bàsica sobre les eines de desenvolupador dels navegadors i aprendre a inspeccionar i editar el CSS de manera senzilla.</td> + </tr> + </tbody> +</table> + +<h2 id="Com_accedir_a_les_eines_de_desenvolupador_del_navegador">Com accedir a les eines de desenvolupador del navegador</h2> + +<p>L'article <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">Què són les eines de desenvolupador dels navegadors</a> és una guia actualitzada que explica com accedir a les eines de desenvolupament web en diversos navegadors i plataformes. Tot i que pots decidir fer el desenvolupament web majoritàriament en un navegador determinat, i per tant et familiaritzaràs amb les eines que inclou aquell navegador, val la pena saber com accedir-hi des d'altres navegadors. Això t’ajudarà si fas proves de les representacions que donen diferents navegadors.</p> + +<p>També t’adonaràs que els diversos navegadors han decidit centrar-se en àrees diferents a l’hora de crear les eines de desenvolupador. Per exemple, en Firefox hi ha algunes eines excel·lents per a treballar visualment amb la compaginació amb CSS, que et permeten inspeccionar i editar <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts">Dissenys de graella</a>, <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_Flexbox_layouts">Flexbox</a> i <a href="/en-US/docs/Tools/Page_Inspector/How_to/Edit_CSS_shapes">Formes</a>. Ara bé, tots els diferents navegadors tenen eines fonamentals semblants; per exemple, per a inspeccionar les propietats i els valors que s’apliquen als elements de la teva pàgina i modificar-los des de l'editor.</p> + +<p>En aquest article analitzarem algunes funcions útils de les eines de desenvolupador de Firefox per a treballar amb CSS. Per fer-ho, utilitzarem un <a href="https://mdn.github.io/css-examples/learn/inspecting/inspecting.html">fitxer d'exemple</a>. Carrega’l en una pestanya nova si vols seguir-nos alhora, i obre les eines de desenvolupador tal com es descriu en l'article de l'enllaç anterior.</p> + +<h2 id="El_DOM_i_el_View_Source">El DOM i el View Source</h2> + +<p>Una cosa que pot sorprendre els nouvinguts a DevTools és la diferència entre el que es veu quan mires <a href="/en-US/docs/Tools/View_source">el codi font</a> d'una pàgina web o el fitxer HTML que hi ha penjat al servidor, i el que pots veure en <a href="/en-US/docs/Tools/Page_Inspector/UI_Tour#HTML_pane">la finestra HTML</a> de DevTools. Tot i que s’assembla força al que es pot veure des de View Source, hi ha algunes diferències.</p> + +<p>En el processat pel DOM, el navegador pot haver corregit un codi HTML mal escrit. Si has tancat un element de manera incorrecta, per exemple perquè has obert un <code><h2></code> però l’has tancat amb un <code></h3></code>, el navegador esbrina què volies fer i l'HTML del DOM tanca correctament l’etiqueta d’obertura <code><h2></code> amb l’etiqueta de tancament <code></h2></code> corresponent. El navegador també normalitza tot el codi HTML i el DOM mostra, a més, tots els canvis que s’hi fan amb JavaScript.</p> + +<p>En canvi, View Source és simplement el codi font HTML que hi ha emmagatzemat en el servidor. L’<a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML#HTML_tree">arbre HTML</a> de DevTools mostra exactament el que representa el navegador, de manera que et proporciona una visió detallada del que passa realment.</p> + +<h2 id="Inspecció_del_CSS_aplicat">Inspecció del CSS aplicat</h2> + +<p>Selecciona un element de la teva pàgina, ja sigui fent clic amb el botó dret del ratolí o prement la tecla ctrl per seleccionar l'opció <em>Inspeccionar</em>, o selecciona’l en l'arbre HTML de l'esquerra de la pantalla de la interfície DevTools. Selecciona l'element amb la classe <code>box1</code>; aquest és el primer element de la pàgina que té una caixa que l’envolta.</p> + +<p><img alt="Pàgina d'exemple per a aquest tutorial amb DevTools." src="https://mdn.mozillademos.org/files/16606/inspecting1.png" style="border-style: solid; border-width: 1px; height: 1527px; width: 2278px;"></p> + +<p>Si observes la vista de visualització de regles, <a href="/en-US/docs/Tools/Page_Inspector/UI_Tour#Rules_view">Rules view</a>, que hi ha a la dreta de l’HTML, pots veure les propietats i els valors CSS que s’apliquen a aquest element. S’hi veuen les regles que s’apliquen directament a la classe <code>box1</code> i també les regles de CSS que la caixa hereta de l’element pare, en aquest cas <code><body></code>. Això és útil per a veure si s’aplica algun codi CSS que no esperes. Potser hi ha una regla que s’hereta d’un element pare i has d’afegir una regla que l’anul·li en el context d’aquest element.</p> + +<p>També és útil la capacitat d’ampliar les propietats abreviades. En el nostre exemple hem fet servir la propietat abreviada <code>margin</code>.</p> + +<p><strong>Fes clic a la fletxa petita per a ampliar la vista i que se’n mostrin les diferents propietats sense abreviar i els valors.</strong></p> + +<p><strong>Pots activar i desactivar els valors en la finestra de Visualització de regles quan aquest plafó està actiu; si hi passes el ratolí per sobre, apareixeran les caselles de verificació. Desmarca la casella de verificació d’una regla, per exemple <code>border-radius</code> i aquell CSS deixarà d’aplicar-se.</strong></p> + +<p>Pots utilitzar-ho per a fer una comparació entre A i B i decidir si alguna cosa es veu més bé amb una regla aplicada o no, i també per a ajudar a depurar-la. Per exemple, quan un disseny de pàgina web no funciona correctament i intentes esbrinar quina propietat provoca el problema.</p> + +<h2 id="Editar_els_valors">Editar els valors</h2> + +<p>A més d’activar i desactivar propietats, pots editar-ne els valors. Pot ser que vulguis veure si un altre color escau més, o modificar la mida d'alguna cosa. Les DevTools et poden ajudar a estalviar molt de temps a l'hora d'editar un full d’estil i tornar a carregar la pàgina.</p> + +<p><strong>Amb l’element <code>box1</code> seleccionat, fes clic en la mostra (el petit cercle de color) que mostra el color que s’aplica a la vora. S'obrirà un selector de colors i podràs provar amb colors diferents, que s'actualitzaran en temps real a la pàgina. De manera semblant pots canviar l'amplada o l'estil de la vora.</strong></p> + +<p><img alt="Taula d'estils de DevTools amb un selector de colors obert." src="https://mdn.mozillademos.org/files/16607/inspecting2-color-picker.png" style="border-style: solid; border-width: 1px; height: 1173px; width: 2275px;"></p> + +<h2 id="Afegir_una_propietat">Afegir una propietat</h2> + +<p>Amb les DevTools pots afegir propietats. Que t'has adonat que no vols que la caixa hereti la mida de la lletra de l'element <code><body></code> i vols definir-hi una mida de lletra pròpia? Fes-ne primer la prova en les DevTools abans d’afegir-ho al teu fitxer CSS.</p> + +<p><strong>Fes clic en la clau de tancament de la regla i comença a introduir-hi una altra declaració; en el moment que comences a escriure, DevTools mostra una llista completa de les propietats que hi coincideixen. Selecciona la propietat per a la mida de la lletra (<code>font-size</code>) i introdueix-hi el valor que vols provar. També pots fer clic al botó + per a afegir una altra regla amb el mateix selector, i afegir-hi les regles noves.</strong></p> + +<p><img alt="El tauler DevTools quan afegeixes una propietat nova a les regles, amb l’eina de compleció automàtica oberta" src="https://mdn.mozillademos.org/files/16608/inspecting3-font-size.png" style="border-style: solid; border-width: 1px; height: 956px; width: 2275px;"></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: També hi ha altres funcions útils en la vista de visualització de regles; per exemple, es ratllen les declaracions que tenen valors no vàlids. Pots obtenir més informació en l’article <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS">Examinar i editar el CSS</a>.</p> +</div> + +<h2 id="Entendre_el_model_de_caixes">Entendre el model de caixes</h2> + +<p>En articles anteriors hem parlat del <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">model de caixes</a> i del fet que tenim un model de caixes alternatiu que canvia la manera com es calculen les mides dels elements segons la mida que els proporciones, i també de l'àrea de farciment i els marges. Les DevTools et poden ajudar a entendre com es calcula la mida d'un element.</p> + +<p>La <a href="/en-US/docs/Tools/Page_Inspector/UI_Tour#Layout_view">vista de disposició</a> mostra un esquema del model de caixes de l’element seleccionat, juntament amb una descripció de les propietats i els valors que canvien la manera com es disposa l’element en la pàgina. Inclou una descripció de les propietats que potser no has utilitzat explícitament sobre l'element, però que tenen valors inicials definits.</p> + +<p>Una de les propietats que es detallen en aquesta taula és la propietat de dimensionament de caixa (<code>box-sizing</code>), que controla quin model de caixes utilitza l'element.</p> + +<p><strong>Compara les dues caixes amb les classes <code>box1</code> i <code>box2</code>. Totes dues tenen definida la mateixa amplada (400px), però <code>box1</code> és visualment més ampla. En la finestra de disseny pots veure que utilitza <code>content-box</code>. Aquest valor pren la mida que dones a l’element, i a continuació hi suma l’amplada de l'àrea de farciment i de les vores.</strong></p> + +<p>L’element amb una classe <code>box2</code> fa servir <code>border-box</code>, de manera que aquí l’àrea de farciment i les vores es resten de la mida que has donat a l’element. Això significa que l'espai que ocupa la caixa en la pàgina és la mida exacta que has especificat, en el nostre cas: <code>width: 400px</code>.</p> + +<p><img alt="La secció de compaginació dels DevTools" src="https://mdn.mozillademos.org/files/16609/inspecting4-box-model.png" style="border-style: solid; border-width: 1px; height: 1532px; width: 2275px;"></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Obtén més informació sobre com <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model">examinar i inspeccionar el model de caixes</a>.</p> +</div> + +<h2 id="Resolució_de_qüestions_despecificitat">Resolució de qüestions d'especificitat</h2> + +<p>De vegades durant el desenvolupament, però en particular quan necessites editar el CSS en un lloc que ja està en actiu, et trobes amb problemes per aconseguir que s’apliquin algunes regles CSS. No importa què facis, l'element simplement sembla que no entén la regla CSS. El que acostuma a passar és que un selector més específic anul·la els teus canvis, i aquí les DevTools et poden ajudar molt.</p> + +<p>En el nostre fitxer d’exemple hi ha dues paraules incloses en un element <code><em></code>. Una es mostra de color carabassa, i l’altra de color rosa brillant. Al CSS hi hem aplicat:</p> + +<pre class="brush: css notranslate">em { + color: hotpink; + font-weight: bold; +}</pre> + +<p>Per sobre de tot això, en el full d’estil hi ha una regla amb un selector <code>.special</code>:</p> + +<pre class="brush: css notranslate">.special { + color: orange; +}</pre> + +<p>Com recordaràs de l'article sobre <a href="/ca/docs/Learn/CSS/Building_blocks/Cascada_i_herència">la cascada i l’herència</a> en què comentem l’especificitat, els selectors de classe són més específics que els selectors d’elements, així que aquest és el valor que s’aplica. Les DevTools et poden ajudar a trobar aquest tipus de problemes, sobretot si la informació està amagada en algun lloc d'un extens full d'estil.</p> + +<p><strong>Inspecciona l'element <code><em></code> amb la classe <code>.special</code> i DevTools et mostrarà que el color que s'aplica és <code>orange</code>, i la propietat <code>color</code> aplicada a l'<code>em</code> està ratllada. Aquí pots veure que el selector de classe supera el selector d’elements.</strong></p> + +<p><img alt="Un element <code>em</code> seleccionat i inspeccionat amb DevTools per veure què anul•la el color." src="https://mdn.mozillademos.org/files/16610/inspecting5-specificity.png" style="border-style: solid; border-width: 1px; height: 1161px; width: 2275px;"></p> + +<h2 id="Obtén_més_informació_sobre_les_DevTools_de_Firefox">Obtén més informació sobre les DevTools de Firefox</h2> + +<p>Hi ha molta informació sobre les DevTools de Firefox aquí a MDN. Dona una ullada a la <a href="/ca/docs/Tools">secció principal de DevTools</a> i consulta les <a href="/en-US/docs/Tools/Page_Inspector#How_to">Guies pràctiques</a> per a obtenir més detalls sobre les qüestions que hem tractat breument en aquest article.</p> + +<h2 id="Problemes_en_depurar_el_CSS">Problemes en depurar el CSS</h2> + +<p>Les DevTools poden ser de gran ajuda a l’hora de resoldre problemes en CSS, de manera que, què has de fer quan et trobes en una situació en què el CSS no es comporta com esperes? Els passos següents t’haurien d’ajudar.</p> + +<h3 id="Fes_un_pas_enrere_des_del_problema">Fes un pas enrere des del problema</h3> + +<p>Qualsevol problema de codificació pot ser frustrant, sobretot els problemes amb el CSS, perquè sovint no reps cap missatge d’error que et permeti de cercar en línia per ajudar-te a trobar una solució. Si et sents frustrat, allunyat de la qüestió durant un temps: passeja, pren-te un refresc, parla amb un company de feina o treballa en una altra cosa durant un temps. De vegades la solució apareix màgicament quan deixes de pensar en el problema i, fins i tot si no arriba, resulta molt més fàcil treballar quan et sent fresc.</p> + +<h3 id="Els_teus_HTML_i_CSS_són_vàlids">Els teus HTML i CSS són vàlids?</h3> + +<p>Els navegadors esperen que tant el teu CSS com el teu HTML estiguin escrits correctament, però els navegadors també són molt indulgents i fan tot el possible per mostrar les teves pàgines web, encara que hi hagi errors d'etiquetatge. Si hi ha errors en el codi, el navegador ha de suposar què vols dir, i pot ser que prengui una decisió diferent de la que tenies en ment. A més, dos navegadors diferents podrien fer front al problema de maneres diferents. Per tant, un bon primer pas és executar tant el codi HTML com el CSS amb un validador, per a descobrir qualsevol error i esmenar-lo.</p> + +<ul> + <li><a href="https://jigsaw.w3.org/css-validator/">Validador de CSS</a></li> + <li><a href="https://validator.w3.org/">Validador d'HTML</a></li> +</ul> + +<h3 id="Les_propietats_i_els_valors_són_compatibles_amb_el_navegador">Les propietats i els valors són compatibles amb el navegador?</h3> + +<p>Els navegadors simplement ignoren el CSS que no entenen. Si la propietat o el valor que utilitzes no és compatible amb el navegador amb què fas les proves, no es trencarà res, però no s’aplicarà el CSS. Les DevTools en general ressalten d’alguna manera les propietats i els valors que no són compatibles. En la captura de pantalla següent, el navegador no admet el subvalor {{cssxref("grid-template-columns")}}.</p> + +<p><img alt="Imatge de les DevTools del navegador amb el subvalor grid-template-columns: subgrid es mostra ratllat perquè aquest subvalor no és compatible." src="https://mdn.mozillademos.org/files/16641/no-support.png" style="height: 397px; width: 1649px;"></p> + +<p>També pots donar una ullada a les taules de compatibilitat del navegador que hi ha a la part inferior de cada pàgina de propietat del projecte MDN. Et mostren la compatibilitat del navegador per a aquesta propietat, sovint desglossada si hi ha compatibilitat per a algun ús de la propietat però no d’altres. La taula següent mostra les dades de compatibilitat per a la propietat {{cssxref("shape-outside")}}.</p> + +<p>{{compat("css.shape-outside")}}</p> + +<h3 id="Alguna_cosa_anul·la_el_teu_CSS">Alguna cosa anul·la el teu CSS?</h3> + +<p>Aquí és on la informació que has après sobre l’especificitat et resultarà molt útil. Si hi ha alguna regla que anul·la el que vols fer perquè té més especificitat, pots entrar en un joc molt frustrant per a intentar esbrinar què passa. Tanmateix, com es descriu més amunt, les DevTools et mostraran quin CSS s’aplica i podràs esbrinar com anul·lar-ho amb un nou selector que sigui prou específic.</p> + +<h3 id="Fer_una_prova_reduïda_del_problema">Fer una prova reduïda del problema</h3> + +<p>Si el problema no es resol amb els passos anteriors, has d'investigar més. El millor que pots fer en aquest moment és crear una cosa que es coneix com a prova reduïda. Ser capaç de «reduir un problema» és una habilitat molt útil. T'ajuda a trobar problemes en el teu codi propi i en el dels teus companys, i també et permet informar d’errors i demanar ajuda de manera més efectiva.</p> + +<p>Una prova reduïda és un exemple de codi que mostra el problema de la manera més senzilla possible, sense contingut ni estil. Això de vegades significa eliminar del teu disseny de pàgina web el codi problemàtic i fer-ne un petit exemple que només mostri aquest codi o aquesta funció.</p> + +<p>Per a crear una prova reduïda:</p> + +<ol> + <li>Si el teu codi d’etiquetatge es genera dinàmicament (per exemple amb un CMS), fes una versió estàtica de la sortida que mostra el problema. Un lloc per compartir codi com <a href="https://codepen.io/">CodePen</a> és útil per a allotjar proves reduïdes, perquè aleshores són accessibles en línia i es poden compartir fàcilment amb els companys. Pots començar per visualitzar el codi d’origen de la pàgina i copiar l’HTML a CodePen; a continuació, inclou-hi qualsevol CSS i JavaScript rellevants. Després d'això, comprova si el problema encara hi és.</li> + <li>Si suprimir el JavaScript no fa desaparèixer el problema, no incloguis el JavaScript. Si suprimir el JavaScript fa desaparèixer el problema, elimina tant de JavaScript com et sigui possible, i deixa-hi només el que origina el problema.</li> + <li>Elimina qualsevol codi HTML que no contribueixi al problema. Elimina components, o fins i tot elements principals del disseny de pàgina. Un cop més, prova de reduir al mínim el codi mentre encara es mostri el problema.</li> + <li>Elimina qualsevol CSS que no afecti el problema.</li> +</ol> + +<p>En aquest procés podràs descobrir què causa el problema, o com a mínim el podràs activar i desactivar en eliminar-ne quelcom específic. Val la pena afegir alguns comentaris al codi a mesura que descobreixes coses. Si has de demanar ajuda, aquests comentaris mostraran a la persona que t'ajuda el que ja has provat. O també et pot acabar de donar prou informació per a poder cercar problemes i situacions semblants.</p> + +<p>Si encara no trobes la solució del problema, tenir una prova reduïda et permet demanar ajuda, publicar-la en un fòrum o mostrar-la a un col·laborador. És molt més probable obtenir ajuda si mostres que abans de fer-ho t’has pres la feina de reduir el problema i esbrinar exactament on passa. Aleshores, un desenvolupador amb més experiència pot ser capaç de detectar el problema ràpidament i orientar-te en la direcció correcta; o, encara que no sigui així, la teva prova reduïda els permetrà de donar-hi una ullada ràpida i, potser, oferir-te una mica d'ajuda.</p> + +<p>En el cas que el problema sigui un error en un navegador, la prova reduïda també es pot fer servir per a enviar un informe d’errors al proveïdor del navegador corresponent (per exemple, a la pàgina web <a href="https://bugzilla.mozilla.org">bugzilla</a> de Mozilla).</p> + +<p>A mesura que adquireixis més experiència amb el CSS aprendràs a veure amb més facilitat on hi ha els problemes. Tanmateix, fins i tot els més experimentats de nosaltres ens trobem de vegades barrinant què dimonis passa aquí. Adoptar un enfocament metòdic, fer una prova reduïda i explicar el problema a algú són possibilitats que acostumen a donar un bon resultat a l'hora de trobar una solució.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks/Organizing", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/desbordament_de_contingut/index.html b/files/ca/learn/css/building_blocks/desbordament_de_contingut/index.html new file mode 100644 index 0000000000..2ee0dc6129 --- /dev/null +++ b/files/ca/learn/css/building_blocks/desbordament_de_contingut/index.html @@ -0,0 +1,123 @@ +--- +title: Desbordament de contingut +slug: Learn/CSS/Building_blocks/Desbordament_de_contingut +translation_of: Learn/CSS/Building_blocks/Overflowing_content +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks")}}</div> + +<p>En aquest apartat veurem un altre concepte important en CSS: el <strong>desbordament</strong>. El desbordament és el que succeeix quan hi ha massa contingut i no cap còmodament en una caixa. En aquesta guia aprendràs què és i com gestionar-lo.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de CSS (consulta els <a href="/ca/docs/Learn/CSS/First_steps">Primers passos amb el CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre el desbordament i com gestionar-lo.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_el_desbordament">Què és el desbordament?</h2> + +<p>Ja sabem que tot en CSS són caixes i que podem restringir la mida d’aquestes caixes assignant valors als atributs {{cssxref("width")}} i {{cssxref("height")}} (o {{cssxref("inline-size")}} i {{cssxref("block-size")}}). <strong>El desbordament és el que succeeix quan dins d’una caixa hi ha massa contingut i no hi cap.</strong> El CSS t'ofereix diverses eines per a gestionar aquest desbordament, i també és un concepte útil de comprendre en aquesta fase inicial. Et trobaràs amb situacions de desbordament força sovint quan escriguis CSS, sobretot quan aprofundeixis en el disseny de pàgines web amb CSS.</p> + +<h2 id="El_CSS_tracta_devitar_«la_pèrdua_de_dades»">El CSS tracta d'evitar «la pèrdua de dades»</h2> + +<p>Comencem per examinar dos exemples que mostren com es comporta per defecte el CSS quan es desborda.</p> + +<p>El primer és una caixa a la que s’han restringit les dimensions del bloc en donar-hi una alçada (<code>height</code>). Després s’hi ha afegit més contingut del que cap en l’espai de la caixa. El contingut de la caixa es desborda i s’encavalca desordenadament sobre el paràgraf que hi ha a sota.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/block-overflow.html", '100%', 600)}}</p> + +<p>El segon consisteix en una paraula dins d'una caixa en la qual s’ha restringit la dimensió de línia. La caixa s'ha fet massa petita perquè la paraula hi càpiga, i acaba sortint més enllà de la caixa.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/inline-overflow.html", '100%', 500)}}</p> + +<p>Pot ser que et preguntis per què el CSS ha adoptat per defecte l’enfocament més aviat desarreglat de provocar el desbordament del contingut. Per què no amagar el contingut de més, o fer créixer la caixa?</p> + +<p>Sempre que és possible, el CSS no amaga cap part de contingut; fer-ho provocaria la pèrdua de dades, i això acostuma a ser un problema. En termes de CSS, això significa que una part del contingut desapareix. El problema que el contingut s’esvaeixi és que podria passar que no t'adonis que ha desaparegut. Pot passar que els visitants de la teva pàgina no s'adonin que ha desaparegut. Pot tractar-se del botó d'enviament d'un formulari, i ningú no podria completar el formulari; això, és un gran problema! Per tant, el CSS tendeix a desbordar-se de manera visible. D’aquesta manera és probable que t’adonis del desperfecte o, en el pitjor dels casos, que un visitant del teu lloc web t'informi que una part del contingut s’encavalca amb una altra, i que s’ha de rectificar.</p> + +<p>Si has restringit la mida d’una caixa amb <code>width</code> o <code>height</code>, el CSS suposa que saps què fas i que gestiones el potencial de desbordament. En general, restringir la mida d’un bloc és problemàtic quan es col·loca text en una caixa, perquè pot haver-hi més text del que esperaves en el moment de dissenyar un lloc web, o que el text ocupi més espai, per exemple, perquè l'usuari ha augmentat la mida de la lletra.</p> + +<p>En el proper parell d’articles veurem diferents maneres de controlar la mida que poden ser menys propenses al desbordament. Tanmateix, també pots controlar la manera com es comporta el desbordament si necessites una mida fixa. Continua llegint!</p> + +<h2 id="La_propietat_overflow">La propietat <code>overflow</code></h2> + +<p>La propietat {{cssxref("overflow")}} és la manera de prendre el control del desbordament d'un element i dir al navegador com volem que s’hi comporti. El valor per defecte del desbordament és <code>visible</code>, és per això que per defecte podem veure el nostre contingut quan es desborda.</p> + +<p>Si vols que el contingut que desborda es talli, pots establir el valor <code>overflow: hidden</code> per a la caixa. Això farà exactament el que diu: amagar el desbordament. Això pot causar la desaparició de les coses, de manera que només ho hauries de fer si ocultar contingut no causarà cap problema.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/hidden.html", '100%', 600)}}</p> + +<p>Potser voldries posar barres de desplaçament quan el contingut es desborda. Si utilitzes <code>overflow: scroll</code>, el navegador sempre mostra les barres de desplaçament, fins i tot quan no hi ha prou contingut per a desbordar-se. Pot ser que vulguis fer-ho així perquè evita que les barres de desplaçament apareguin i desapareguin en funció del contingut.</p> + +<p><strong>Observa que si vas traient part del contingut que hi ha en la caixa següent, les barres de desplaçament de la caixa es mantenen, fins i tot quan no hi ha res per desplaçar.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/scroll.html", '100%', 600)}}</p> + +<p>En l’exemple anterior només hem de desplaçar-nos per l’eix <code>y</code>, però tenim barres de desplaçament en els dos eixos. En lloc d’això, podries utilitzar la propietat {{cssxref("overflow-y")}} i establir <code>overflow-y: scroll</code>, i et desplaçaries només sobre l'eix <code>y</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/scroll-y.html", '100%', 600)}}</p> + +<p>També pots desplaçar-te sobre l'eix <em>x</em> amb {{cssxref("overflow-x")}}, tot i que no és recomanable quan apareixen paraules llargues. Consulta les propietats {{cssxref("word-break")}} o {{cssxref("overflow-wrap")}} si has de treballar amb paraules llargues en una caixa petita. També et poden ajudar a crear caixes que s’adaptin més bé segons la quantitat de contingut alguns dels mètodes que s’exposen en l’apartat <a href="/ca/docs/Learn/CSS/Building_blocks/Dimensionar_elements_en_CSS">Dimensionament d’elements amb CSS</a>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/scroll-x.html", '100%', 500)}}</p> + +<p>Igual que amb <code>scroll</code>, obtindràs una barra de desplaçament en la dimensió de desplaçament si hi ha prou contingut per provocar l’aparició d’una barra de desplaçament.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: pots especificar el desplaçament en x i en y amb la propietat <code>overflow</code> passant-hi dos valors. Si s’especifiquen dues paraules clau, la primera s’aplica a <code>overflow-x</code> i la segona a <code>overflow-y</code>. En cas contrari, tant <code>overflow-x</code> com <code>overflow-y</code> s’estableixen en el mateix valor. Per exemple, <code>overflow: scroll hidden</code> configuraria <code>overflow-x</code> per a <code>scroll</code> i <code>overflow-y</code> per a <code>hidden</code>.</p> +</div> + +<p>Si vols que les barres de desplaçament apareguin només si hi ha més contingut del que es pot incloure dins de la caixa, utilitza <code>overflow: auto</code>. En aquest cas, el navegador decideix quan mostra les barres de desplaçament. Els navegadors per als equips d'escriptori normalment ho fan només quan hi ha prou contingut per a provocar desbordament.</p> + +<p><strong>En l’exemple següent, elimina una mica de contingut fins que no càpiga en la caixa i observa que les barres de desplaçament desapareixen.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/overflow/auto.html", '100%', 600)}}</p> + +<h2 id="El_desbordament_estableix_un_context_de_formatació_de_bloc">El desbordament estableix un context de formatació de bloc</h2> + +<p>Hi ha un concepte en CSS que s'anomena <strong>block formatting context</strong> (<em>context de formatació de bloc</em>) o BFC. No és res que t'hagi de preocupar gaire ara mateix, però és útil saber que quan empres un valor de desbordament com ara <code>scroll</code> o <code>auto</code>, crees un BFC. El resultat és que el contingut de la caixa en què has canviat el valor <code>overflow</code> es converteix en un mini disseny de pàgina web propi. Les coses que hi ha fora del contenidor no poden ficar-se en el contenidor, i res pot sobresortir de la caixa cap als elements del disseny de pàgina web del voltant. Això és per permetre el comportament amb desplaçament, perquè per a crear una experiència de desplaçament coherent, tot el contingut de la caixa ha d’estar-hi contingut i no en pot sobresortir ni superposar-se amb altres elements de la pàgina.</p> + +<h2 id="Desbordaments_no_volguts_en_el_disseny_web">Desbordaments no volguts en el disseny web</h2> + +<p>Els mètodes de disseny moderns (tal com es recull en el mòdul de <a href="/ca/docs/Learn/CSS/Disseny_CSS">Disseny de pàgines web amb CSS</a>) gestionen molt bé el desbordament. Han estat dissenyats per fer front al fet que normalment no podem predir la quantitat de contingut que hi haurà en una pàgina web. En el passat, però, els desenvolupadors solien utilitzar altures fixes per a intentar alinear els extrems inferiors de caixes que en realitat no tenien cap relació entre elles. Això era fràgil, i encara et pots topar amb aplicacions heretades en què el contingut d’una caixa se superposa amb un altre contingut de la pàgina. Si veus això, sabràs que es tracta de desbordament; l'ideal seria que tornis a fer un càlcul de les mides dels elements de disseny de la pàgina per no haver de dependre de mides de caixa fixes.</p> + +<p>En desenvolupar un lloc sempre has de tenir en compte els problemes de desbordament. Has de provar els dissenys amb quantitats de contingut grans i petites, augmentar la mida de la lletra del text i assegurar-te que el teu CSS pot fer-ho de manera coherent. És probable que et vulguis reservar les opcions de canviar el valor de desbordament per ocultar contingut o afegir barres de desplaçament només per a casos especials, per exemple, per quan realment vols una caixa amb barres de desplaçament.</p> + +<h2 id="Posa_a_prova_els_teus_coneixements">Posa a prova els teus coneixements</h2> + +<p>Hi ha moltes coses a absorbir en aquesta lliço. En recordes la informació més important? Per comprovar-ho, vés a <a href="https://wiki.developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Overflow_Tasks">Test your skills: overflow</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Aquest breu article ha introduït el concepte de desbordament; ara entens que el CSS intenta no invisibilitzar el contingut que es desborda perquè això causa la pèrdua de dades. Has descobert que pots gestionar un desbordament potencial i també que has de fer proves per assegurar-te que la teva feina no causa accidentalment desbordaments problemàtics.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diferents direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament del contingut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionament d’elements amb CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, media i controls de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/dimensionar_elements_en_css/index.html b/files/ca/learn/css/building_blocks/dimensionar_elements_en_css/index.html new file mode 100644 index 0000000000..5ff34b8d93 --- /dev/null +++ b/files/ca/learn/css/building_blocks/dimensionar_elements_en_css/index.html @@ -0,0 +1,129 @@ +--- +title: Dimensionar elements en CSS +slug: Learn/CSS/Building_blocks/Dimensionar_elements_en_CSS +translation_of: Learn/CSS/Building_blocks/Sizing_items_in_CSS +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks/Images_media_form_elements", "Learn/CSS/Building_blocks")}}</div> + +<p>En els articles que hem vist fins ara has descobert diverses maneres de dimensionar els elements d'una pàgina web amb CSS. És important entendre la importància de les diferents característiques dels elements del teu disseny, i en aquest article resumim les maneres com assignar una mida als elements amb CSS i definim uns quants termes relatius al dimensionament que t'ajudaran en el futur.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre les diferents maneres com podem assignar mides als elements amb CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="La_mida_natural_o_intrínseca_de_les_coses">La mida natural o intrínseca de les coses</h2> + +<p>Els elements HTML tenen una mida natural predeterminada abans que els afecti cap codi CSS. Un exemple senzill n’és una imatge. Una imatge té una amplada i una alçada definides en el fitxer d'imatge, que s'incorpora a la pàgina. Aquesta mida es descriu com la <strong>mida intrínseca</strong>, que prové de la imatge mateixa.</p> + +<p>Quan poses una imatge en una pàgina i no en canvies l’alçada i l’amplada, ja sigui amb atributs en l’etiqueta <code><img></code> o amb el CSS, es mostra amb aquesta mida intrínseca. Hem donat a la imatge de l’exemple següent una vora perquè puguis veure la dimensió que té el fitxer.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/intrinsic-image.html", '100%', 600)}}</p> + +<p>Un element {{htmlelement("div")}} buit, però, no té mida pròpia. Si afegeixes un element {{htmlelement("div")}} sense contingut al teu HTML, i hi poses una vora, com hem fet abans amb la imatge, veuràs que a la pàgina apareix una línia. Es tracta de la vora de l'element replegat sobre si mateix perquè no té contingut que el mantingui obert. En el nostre exemple següent, aquesta vora s'estén per tota l'amplada de l’element que el conté, perquè és un element que té un comportament de bloc, amb el qual ja t'hauries de començar a familiaritzar. No té alçada (ni mida en la dimensió del bloc) perquè no hi ha contingut.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/intrinsic-text.html", '100%', 500)}}</p> + +<p>Afegeix una mica de text a l'interior de l'element buit de l'exemple anterior. Ara la vora envolta aquest text perquè el contingut defineix l'altura de l'element. La mida d'aquest element <code><div></code> en la dimensió del bloc prové, per tant, de la mida del contingut. Una vegada més, aquesta és la mida intrínseca de l'element: el contingut en defineix la mida.</p> + +<h2 id="Configurar_una_mida_específica">Configurar una mida específica</h2> + +<p>Per descomptat, podem donar una mida específica als elements del nostre disseny. Quan es dona una mida a un element (el contingut del qual hauria d’encaixar en aquesta mida) ens hi referim com la <strong>mida extrínseca</strong>. Agafa els elements <code><div></code> de l'exemple anterior: podem donar-los valors específics d'amplada i d'alçada, i aleshores tindran aquesta mida, independentment del contingut que hi fiquem a dins. Tal com vam descobrir en l’anterior <a href="/ca/docs/Learn/CSS/Building_blocks/Desbordament_de_contingut">article sobre el desbordament</a>, una altura fixa pot provocar el desbordament del contingut si el contingut no cap en l’espai de la caixa.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/height.html", '100%', 600)}}</p> + +<p>Arranjar l'alçada dels elements amb longituds o percentatges s’ha de fer amb molta cura justament pel problema del desbordament.</p> + +<h3 id="Lús_de_percentatges">L'ús de percentatges</h3> + +<p>En molts sentits, els percentatges actuen com unitats de longitud, i com hem comentat en l'<a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS#Percentatges">article sobre valors i unitats</a>, sovint es poden intercanviar amb les longituds. Quan fas servir un percentatge has de ser conscient <em>de què</em> és percentatge. En el cas d’una caixa dins d’un altre contenidor, si dones a la caixa secundària un percentatge d’amplada, serà un percentatge de l’amplada del contenidor principal.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/percent-width.html", '100%', 600)}}</p> + +<p>Això és perquè els percentatges es calculen a partir de la mida del bloc contenidor. Sense un percentatge aplicat, el nostre element <code><div></code> ocuparia el 100% de l'espai disponible, perquè és un element de bloc. Si hi donem un percentatge d’amplada, es converteix en un percentatge de l’espai que ompliria normalment.</p> + +<h3 id="Marges_i_àrea_de_farciment_com_a_percentatges">Marges i àrea de farciment com a percentatges</h3> + +<p>Si estableixes <code>margins</code> i <code>padding</code> com percentatges, pot ser que observis algun comportament estrany. En l’exemple següent hi ha una caixa. Hem assignat a la caixa interior un marge ({{cssxref("margin")}}) del 10% i un àrea de farciment ({{cssxref("padding")}}) també del 10%. L'àrea de farciment i el marge de les parts superior i inferior de la caixa tenen la mateixa mida que els marges de l’esquerra i la dreta.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/percent-mp.html", '100%', 700)}}</p> + +<p>Podries esperar, per exemple, que el percentatge dels marges superior i inferior sigui un percentatge de l'alçada de l'element, i que el percentatge dels marges esquerre i dret sigui un percentatge de l'amplada de l'element. Però aquest no és el cas!</p> + +<p>Quan utilitzes marges i àrees de farciment definits en percentatges, el valor es calcula a partir de la <strong>mida de l’element de línia</strong>, per tant, de l'amplada de l'element quan es treballa en un llenguatge horitzontal. En el nostre exemple, tots els marges i l'àrea de farciment són del 10% de l'amplada de l'element. Això significa que pots tenir marges i àrea de farciment de la mateixa mida al voltant de la caixa. És un fet que val la pena de recordar si utilitzes els percentatges d'aquesta manera.</p> + +<h2 id="Mida_mínima_i_màxima">Mida mínima i màxima</h2> + +<p>A més d’assignar mides fixes a les coses, podem demanar al CSS que doni a un element una mida mínima o màxima. Si tens una caixa que pot contenir una quantitat variable de contingut i vols que sempre tingui una alçada determinada <em>com a mínim</em>, pots establir la propietat {{cssxref("min-height")}}. La caixa sempre serà almenys d'aquesta alçada, però creixerà si hi ha més contingut del que pot contenir amb aquesta alçada mínima.</p> + +<p>En l'exemple següent hi ha dues caixes, totes dues amb una alçada establerta en 150 píxels. La caixa de l’esquerra té 150 píxels d’alçada; la caixa de la dreta ha augmentat la mida a més de 150 píxels perquè té més contingut i no hi cabria.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/min-height.html", '100%', 800)}}</p> + +<p>Això és molt útil per tractar amb quantitats de contingut variables i evitar desbordaments.</p> + +<p>Un ús comú de {{cssxref("max-width")}} és reduir les imatges si no hi ha prou espai perquè es mostrin amb l’amplada intrínseca, alhora que es garanteix que no superen l'alçada de la caixa.</p> + +<p>Per exemple, si una imatge té una amplada intrínseca més petita que la de l’element que la conté i hi estableixes una amplada de <code>width: 100%</code>, la imatge s’estirarà i es farà gran, i podria pixelar-se. En canvi, si l’amplada intrínseca fos més gran que l’element que la conté, desbordaria. És probable que no vulguis que passi cap d'aquestes dues coses.</p> + +<p>Si en lloc d'això utilitzes <code>max-width: 100%</code>, la imatge es pot fer més petita que la seva mida intrínseca, però no es farà més gran que el 100% de la seva mida.</p> + +<p>En l'exemple següent hem utilitzat dues vegades la mateixa imatge. A la primera hi hem donat <code>width: 100%</code>, i com que està continguda en un recipient més gran, s'estén per tota l'amplada del contenidor. La segona imatge, en canvi, té <code>max-width: 100%</code>, i no s’estira per ocupar tot el recipient. La tercera caixa torna a contenir la mateixa imatge, amb <code>max-width: 100%</code>; en aquest cas pots observar com s’ha reduït per encaixar dins la caixa.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/max-width.html", '100%', 800)}}</p> + +<p>Aquesta tècnica s’utilitza per fer que les imatges siguin <em>adaptatives</em>, de manera que quan es visualitzen en un dispositiu més petit es redueixen adequadament. Però no has d'utilitzar aquesta tècnica per carregar imatges molt grans i després reduir-les en el navegador. Les imatges han de tenir una mida adequada i no han de ser més grans del que es necessita en relació amb la mida més gran en què es poden mostrar en el disseny. La descàrrega d’imatges massa grans fa que el teu lloc web vagi més lent i pot ser més car per als usuaris que tenen una connexió amb comptador de dades.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Troba més informació sobre les <a href="/ca/docs/Learn/HTML/Multimèdia_i_incrustar/Imatges_sensibles">tècniques d’imatges adaptatives</a>.</p> +</div> + +<h2 id="Unitats_de_finestra_gràfica">Unitats de finestra gràfica</h2> + +<p>La finestra gràfica (que és l’àrea visible de la teva pàgina en el navegador que utilitzes per visitar un lloc web) també té una mida. En CSS hi ha unes unitats que es relacionen amb la mida de la finestra gràfica: la unitat <code>vw</code> per a l'amplada i la unitat <code>vh</code> per a l'alçada. Amb aquestes unitats pots establir mides relatives a la finestra gràfica de l'usuari.</p> + +<p><code>1vh</code> és igual a l'1% de l’alçada de la finestra gràfica, i <code>1vw</code> és igual a l’1% de l’amplada de la finestra gràfica. Pots fer servir aquestes unitats per a dimensionar les caixes, però també el text. A l'exemple següent tenim una caixa que té una mida de 20vh i 20vw. La caixa conté una lletra <code>A</code>, que ha rebut un valor {{cssxref("font-size")}} de 10vh.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/sizing/vw-vh.html", '100%', 600)}}</p> + +<p><strong>Si canvies els valors de <code>vh</code> i <code>vw</code>, canvia la mida de la caixa o de la lletra; si canvies la mida de la finestra gràfica, també canvien les mides de la caixa i de la lletra perquè es mostren en relació amb la finestra gràfica. Per veure com canvia l'exemple quan canvies la mida de la finestra gràfica, has de carregar l'exemple en una finestra nova del navegador que puguis redimensionar (perquè la teva finestra gràfica és l’<code><iframe></code> incorporat que conté l'exemple anterior). <a href="https://mdn.github.io/css-examples/learn/sizing/vw-vh.html">Obre l'exemple</a>, redimensiona la finestra del navegador i observa què passa amb la mida de la caixa i del text.</strong></p> + +<p>Dimensionar les coses segons la finestra gràfica pot ser útil en els teus dissenys. Per exemple, si vols que una secció principal es mostri a pantalla completa abans que la resta del contingut, fes que aquella part de la pàgina tingui un 100vh d’alçada i empenyerà la resta del contingut fora de la finestra gràfica, i això significa que només apareixerà quan l'usuari es desplaci pel document.</p> + +<h2 id="Resum">Resum</h2> + +<p>Aquest article t'ha proporcionat un resum dels problemes principals que podries trobar-te a l’hora de dimensionar les coses en un lloc web. En passar a l’article de <a href="/ca/docs/Learn/CSS/Disseny_CSS">Disseny de pàgines web amb CSS</a>, la mida serà un aspecte molt important per a dominar els diferents mètodes de disseny, per la qual cosa val la pena entendre els conceptes que s'han explicat aquí abans de continuar.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks/Images_media_form_elements", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diferents direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament del contingut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/fons_i_vores/index.html b/files/ca/learn/css/building_blocks/fons_i_vores/index.html new file mode 100644 index 0000000000..2e2ce4727c --- /dev/null +++ b/files/ca/learn/css/building_blocks/fons_i_vores/index.html @@ -0,0 +1,307 @@ +--- +title: Fons i vores +slug: Learn/CSS/Building_blocks/Fons_i_vores +translation_of: Learn/CSS/Building_blocks/Backgrounds_and_borders +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks")}}</div> + +<p>En aquest article veurem algunes de les coses creatives que pots fer amb fons i vores amb el CSS. Des d’afegir degradats o imatges de fons fins a arrodonir cantonades; els fons i les vores són la solució per a moltes qüestions d’estil en CSS.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a aplicar estil al fons i la vora de les caixes.</td> + </tr> + </tbody> +</table> + +<h2 id="Aplicar_estil_als_fons_amb_CSS">Aplicar estil als fons amb CSS</h2> + +<p>La propietat CSS {{cssxref("background")}} és una propietat abreviada que substitueix un seguit de propietats de fons que presentarem en aquest article. Quan et trobes amb una propietat de fons complexa en un full d’estil, pot ser que et sembli una mica difícil d’entendre perquè es poden estar passant molts valors alhora.</p> + +<pre class="brush: css notranslate"><code>.box { + background: linear-gradient(105deg, rgba(255,255,255,.2) 39%, rgba(51,56,57,1) 96%) center center / 400px 200px no-repeat, + url(big-star.png) center no-repeat, rebeccapurple; +} </code> +</pre> + +<p>Més endavant en aquest tutorial tornarem a l’objectiu de com funcionen les propietats abreviades, però primer fem un cop d’ull a les diverses coses que pots fer amb els fons amb el CSS, a partir de cadascuna de les propietats dels fons.</p> + +<h3 id="Els_colors_de_fons">Els colors de fons</h3> + +<p>La propietat {{cssxref("background-color")}} defineix el color de fons de qualsevol element en CSS. La propietat accepta qualsevol color (<code><a href="/en-US/docs/Web/CSS/color_value"><color></a></code>) vàlid. Un color de fons s'estén per sota del contingut i del farciment de la caixa.</p> + +<p>En l'exemple següent hem utilitzat diversos valors de color per a afegir un color de fons a la caixa, un títol d’encapçalament i un element {{htmlelement("span")}}.</p> + +<p><strong>Juga a fer servir qualsevol valor de <a href="/en-US/docs/Web/CSS/color_value"><color></a> disponible.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/color.html", '100%', 800)}}</p> + +<h3 id="Les_imatges_de_fons">Les imatges de fons</h3> + +<p>La propietat {{cssxref("background-image")}} permet visualitzar una imatge de fons en un element. En l'exemple següent hi ha dues caixes: una té una imatge de fons que és més gran que la caixa, l'altra té una imatge petita en forma d’estrella.</p> + +<p>Aquest exemple mostra dues coses sobre les imatges de fons. La imatge gran no es redueix de manera predeterminada per a adaptar-se a la caixa, sinó que només en veiem un tros petit d’una cantonada, mentre que la imatge petita es mostra en mosaic fins a omplir la caixa. La imatge en aquest cas és en realitat una única estrella.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/background-image.html", '100%', 800)}}</p> + +<p><strong>Si especifiques un color de fons a més d'una imatge de fons, la imatge es mostra a sobre. Afegeix una propietat <code>background-color</code> a l'exemple de dalt i observa-ho en acció.</strong></p> + +<h4 id="Control_amb_la_propietat_background-repeat">Control amb la propietat <code>background-repeat</code></h4> + +<p>La propietat {{cssxref("background-repeat")}} s'utilitza per a controlar el comportament en mosaic de les imatges. Els valors disponibles són:</p> + +<ul> + <li><code>no-repeat</code>: evita que el fons es repeteixi.</li> + <li><code>repeat-x</code>: repeteix horitzontalment.</li> + <li><code>repeat-y</code>: repeteix verticalment.</li> + <li><code>repeat</code>: el valor per defecte; repeteix en totes dues direccions.</li> +</ul> + +<p><strong>Prova aquests valors en l'exemple següent. Hem establert la propietat al valor <code>no-repeat</code>, de manera que només veuràs una estrella. Prova els diferents valors <code>repeat-x</code> i <code>repeat-y</code> i observa’n els efectes.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/repeat.html", '100%', 800)}}</p> + +<h4 id="Les_mides_de_la_imatge_de_fons">Les mides de la imatge de fons</h4> + +<p>En l'exemple anterior hi ha una imatge gran que ha acabat retallada perquè és més gran que el fons. En aquest cas podríem utilitzar la propietat {{cssxref("background-size")}}, que pot prendre valors de <a href="/en-US/docs/Web/CSS/length">longitud</a> o <a href="/en-US/docs/Web/CSS/percentage">percentatge</a>, per a dimensionar la imatge i que s'ajusti al fons.</p> + +<p>També pots utilitzar paraules clau:</p> + +<ul> + <li><code>cover</code>: el navegador ajusta la imatge perquè cobreixi tota l’àrea de la caixa, sense canviar-ne la relació d’aspecte. En aquest cas una part de la imatge pot acabar fora de la caixa.</li> + <li><code>contain</code>: el navegador ajusta la imatge a la mida adequada perquè s’adapti a la caixa. En aquest cas, pots acabar amb buits a banda i banda o a la part superior i inferior de la imatge, si la relació d'aspecte de la imatge és diferent de la de la caixa.</li> +</ul> + +<p>En l'exemple següent hem utilitzat la imatge més gran de l'exemple anterior i unitats de longitud per dimensionar-la dins de la caixa. Observa que això ha distorsionat la imatge.</p> + +<p>Fes la prova següent.</p> + +<ul> + <li>Canvia les unitats de longitud que s’hi utilitzen i modifica’n la mida del fons.</li> + <li>Elimina les unitats de longitud i observa què passa quan fas servir <code>background-size: cover</code> o <code>background-size: contain</code>.</li> + <li>Si la imatge és més petita que la caixa, pots canviar el valor de <code>background-repeat</code> perquè la imatge es repeteixi.</li> +</ul> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/size.html", '100%', 800)}}</p> + +<h4 id="La_ubicació_de_la_imatge_de_fons">La ubicació de la imatge de fons</h4> + +<p>La propietat {{cssxref("background-position")}} et permet triar la posició en què apareix la imatge de fons en la caixa a la qual s'aplica. Fa servir un sistema de coordenades en què el <code>(0,0)</code> és a la part superior esquerra de la caixa, i la caixa es posiciona sobre els eixos horitzontal (<code>x</code>) i vertical ((<code>y</code>).</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: El valor per defecte de <code>background-position</code> és <code>(0,0)</code>.</p> +</div> + +<p>Els valors de <code>background-position</code> més comuns prenen dos valors independents: un valor horitzontal seguit d'un valor vertical.</p> + +<p>També pots utilitzar paraules clau com <code>top</code> i <code>right</code> (busca la resta de possibilitats en la pàgina sobre la propietat {{cssxref("background-position")}}):</p> + +<pre class="brush: css notranslate"><code>.box { + background-image: url(star.png); + background-repeat: no-repeat; + background-position: top center; +} </code> +</pre> + +<p>I <a href="/en-US/docs/Web/CSS/length">longituds</a> i <a href="/en-US/docs/Web/CSS/percentage">percentatges</a>:</p> + +<pre class="brush: css notranslate"><code>.box { + background-image: url(star.png); + background-repeat: no-repeat; + background-position: 20px 10%; +} </code> +</pre> + +<p>També pots barrejar valors de paraules clau amb longituds o percentatges, per exemple:</p> + +<pre class="brush: css notranslate">.box { + background-image: url(star.png); + background-repeat: no-repeat; + background-position: top 20px; +}</pre> + +<p>Finalment, també pots utilitzar una sintaxi de 4 valors per a indicar una distància des de determinades cantonades de la caixa; la unitat de longitud en aquest cas és un desplaçament del valor que la precedeix. Així, doncs, en el CSS de sota, posicionem el fons a 20px de l’extrem superior i 10px de l’extrem dret:</p> + +<pre class="brush: css notranslate"><code>.box { + background-image: url(star.png); + background-repeat: no-repeat; + background-position: top 20px right 10px; +} </code></pre> + +<p><strong>Juga amb aquests valors en l'exemple següent i mou l'estrella per la caixa.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/position.html", '100%', 800)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: <code>background-position</code> és una propietat abreviada de {{cssxref ("background-position-x")}} i {{cssxref ("background-position-y")}}, que et permeten establir els diferents valors de posició de l'eix per separat.</p> +</div> + +<h3 id="Degradats_de_fons">Degradats de fons</h3> + +<p>Un degradat (quan s'utilitza per a un fons) actua igual que una imatge i també es defineix amb la propietat {{cssxref("background-image")}}.</p> + +<p>Pots llegir més informació sobre els diferents tipus de degradats i què pots fer amb ells en la pàgina sobre els tipus de dades <code><a href="/en-US/docs/Web/CSS/gradient"><gradient></a></code> de MDN. Una manera divertida de jugar amb els degradats és utilitzar un dels molts generadors de degradats CSS que hi ha disponibles al web, <a href="https://cssgradient.io/">com aquest</a>. Pots crear un degradat i copiar i enganxar el codi font que el genera.</p> + +<p>Prova alguns degradats diferents en l'exemple següent. En les dues caixes hi ha, respectivament, un degradat lineal que s’estén per tota la caixa i un degradat radial amb una mida fixa, que per tant es repeteix.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/gradients.html", '100%', 800)}}</p> + +<h3 id="Múltiples_imatges_de_fons">Múltiples imatges de fons</h3> + +<p>També és possible posar més d’una imatge de fons: especifica amb una sola propietat <code>background-image</code> els diversos valors, separats cadascun per una coma.</p> + +<p>En fer-ho, pot passar que les imatges de fons es superposin entre elles. Els fons es disposen amb la darrera imatge de fons enumerada a la part inferior de la pila, i cada imatge anterior s’apila a sobre de la que la segueix en el codi.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Els degradats es poden barrejar feliçment amb imatges de fons normals.</p> +</div> + +<p>Les altres propietats <code>background-*</code> també poden tenir valors separats per comes, de la mateixa manera que <code>background-image</code>:</p> + +<pre class="brush: css notranslate">background-image: url(image1.png), url(image2.png), url(image3.png), url(image1.png); +background-repeat: no-repeat, repeat-x, repeat; +background-position: 10px 20px, top right;</pre> + +<p>Cada valor de les diverses propietats coincideix amb els valors que estan en la mateixa posició en les altres propietats. Aquí sobre, per exemple, el valor per a la propietat <code>background-repeat</code> d’<code>image1</code> és <code>no-repeat</code>. Però, què passa quan propietats diferents tenen una quantitat diferent de valors? La resposta és que els valors que ocupen les posicions més petites s'alternen cíclicament: en l'exemple anterior hi ha quatre imatges de fons però només dos valors <code>background-position</code>. Les dues primeres posicions s’apliquen a les dues primeres imatges, i després els valores es tornen a assignar cíclicament: el valor de la primera posició s’aplica a <code>image3</code>, i el valor de segona posició, a <code>image4</code>.</p> + +<p><strong>Juguem! En l'exemple següent hem inclòs dues imatges. Per a comprovar l'ordre d'apilament, canvia la imatge de fons que apareix primer en la llista. O juga amb les altres propietats i canvia’n els valors de posició i mida, o la repetició.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/multiple-background-image.html", '100%', 800)}}</p> + +<h3 id="Ancoratge_del_fons">Ancoratge del fons</h3> + +<p>Una altra opció que hi ha disponible per als fons és especificar com es desplacen quan es desplaça el contingut. Això es controla amb la propietat {{cssxref("background-attachment")}}, que pot prendre els valors següents:</p> + +<ul> + <li><code>scroll</code>: Fa que el fons de l'element es desplaci quan es desplaça la pàgina. Si el contingut de l'element es desplaça, el fons no es mou. En efecte, el fons està fixat a la mateixa posició de la pàgina, de manera que es desplaça a mesura que la pàgina es desplaça.</li> + <li><code>fixed</code>: Fa que el fons d'un element es fixi a la finestra de visualització, de manera que no es desplaça quan es desplaça el contingut de la pàgina o de l'element. Roman sempre en la mateixa posició a la pantalla.</li> + <li><code>local</code>: Aquest valor es va afegir més endavant (només és compatible amb Internet Explorer 9+, mentre que els altres són compatibles amb IE4+) perquè el valor <code>scroll</code> és més aviat confús i en molts casos no fa realment el que vols. El valor <code>local</code> fixa el fons a l'element en què està configurat, de manera que quan l'element es desplaça, el fons es desplaça amb ell.</li> +</ul> + +<p>La propietat {{cssxref("background-attachment")}} només funciona quan hi ha contingut pel qual et pots desplaçar; hem preparat un exemple que mostra les diferències entre els tres valors: fes-hi un cop d’ull a <a href="http://mdn.github.io/learning-area/css/styling-boxes/backgrounds/background-attachment.html">background-attachment.html</a> (també en pots consultar el <a href="https://github.com/mdn/learning-area/tree/master/css/styling-boxes/backgrounds">codi font</a> aquí).</p> + +<h3 id="Ús_de_la_propietat_abreviada_background">Ús de la propietat abreviada background</h3> + +<p>Com hem esmentat al començament d'aquest article, sovint veuràs fons que estan especificats amb la propietat {{cssxref("background")}}. Aquesta propietat abreviada et permet configurar totes les propietats diferents alhora.</p> + +<p>Si fas servir diversos fons, has d’especificar totes les propietats per al primer fons, i a continuació afegir-hi el fons següent, després d’una coma. En l'exemple següent hi ha un degradat amb una mida i una posició, i després un fons d'imatge amb <code>no-repeat</code> i una posició, i després un color.</p> + +<p>Quan s’escriuen els valor abreviats de les imatges de fons cal seguir unes regles, per exemple:</p> + +<ul> + <li>Només es pot especificar un fons de color després de la coma final.</li> + <li>El valor <code>background-size</code> només es pot incloure immediatament després de <code>background-position</code>, separat amb el caràcter «/», així: <code>center/80%</code>.</li> +</ul> + +<p>Consulta la pàgina sobre {{cssxref("background")}} de MDN per a veure’n totes les possibilitats.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/background.html", '100%', 800)}}</p> + +<h3 id="Consideracions_d’accessibilitat_relatives_als_fons">Consideracions d’accessibilitat relatives als fons</h3> + +<p>Quan poses un text sobre una imatge o un color de fons, t’has d’assegurar que té prou contrast perquè els usuaris el poden llegir. Si poses una imatge de fons i el text s’hi llegeix a sobre, també has d'especificar un color de fons que permeti llegir el text si la imatge no es carrega.</p> + +<p>Els lectors de pantalla no poden analitzar les imatges de fons, de manera que aquestes haurien de ser purament decoratives; qualsevol contingut important hauria de formar part de la pàgina HTML, i no estar continguda en segon pla.</p> + +<h2 id="Vores">Vores</h2> + +<p>En aprendre el model de caixes, vam descobrir com afecten les vores a la mida de la caixa. En aquesta secció veurem com emprar les vores de manera creativa. Normalment, quan afegim vores a un element amb CSS, utilitzem una propietat abreviada que estableix el color, l'amplada i l'estil de la vora en una línia de CSS.</p> + +<p>Podem establir una vora per als quatre costats d'una caixa amb la propietat {{cssxref("border")}}:</p> + +<pre class="brush: css notranslate"><code>.box { + border: 1px solid black; +} </code></pre> + +<p>O podem establir una sola vora de la caixa, per exemple:</p> + +<pre class="brush: css notranslate"><code>.box { + border-top: 1px solid black; +} </code></pre> + +<p>Cadascuna d’aquestes propietats abreviades seria:</p> + +<pre class="brush: css notranslate"><code>.box { + border-width: 1px; + border-style: solid; + border-color: black; +} </code></pre> + +<p>I per a les no abreviades seria:</p> + +<pre class="brush: css notranslate"><code>.box { + border-top-width: 1px; + border-top-style: solid; + border-top-color: black; +} </code></pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Aquestes propietats de la vora superior, dreta, inferior i esquerra també tenen mapades propietats <em>lògiques</em> relacionades amb el mode d'escriptura del document (per exemple, text d'esquerra a dreta o de dreta a esquerra, o de dalt a baix). Ho explorarem en l’article següent, que inclou <a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">el tractament del text en diverses direccions</a>.</p> +</div> + +<p><strong>Amb les vores es poden emprar una gran varietat d'estils. En l'exemple següent hem utilitzat un estil de vora diferent per als quatre costats de la caixa. Juga amb l'estil, l'amplada i el color de la vora per veure com funcionen les vores.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/borders.html", '100%', 800)}}</p> + +<h3 id="Les_cantonades_arrodonides">Les cantonades arrodonides</h3> + +<p>L’arrodoniment de les cantonades d'una caixa s’aconsegueix amb la propietat {{cssxref("border-radius")}} i les propietats associades que es relacionen amb cada cantó de la caixa. Es poden utilitzar dues longituds o percentatges com a valor; el primer valor defineix el radi horitzontal, i el segon el radi vertical. En molts casos només faràs servir un valor, que s'utilitzarà per a tots dos.</p> + +<p>Per exemple, pots fer que les quatre cantonades d’una caixa tinguin un radi de 10px:</p> + +<pre class="brush: css notranslate"><code>.box { + border-radius: 10px; +} </code></pre> + +<p>O que la cantonada superior dreta tingui un radi horitzontal d’1em i un radi vertical del 10%:</p> + +<pre class="brush: css notranslate"><code>.box { + border-top-right-radius: 1em 10%; +} </code></pre> + +<p>Hem fixat les quatre cantonades de l'exemple següent i després hem canviat els valors de l'extrem superior dret perquè sigui diferent. Juga amb els valors i canvia les cantonades. Consulta la pàgina de propietats de {{cssxref("border-radius")}} i esbrina les opcions de sintaxi disponibles.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/backgrounds-borders/corners.html", '100%', 800)}}</p> + +<h2 id="Posa_a_prova_les_teves_habilitats">Posa a prova les teves habilitats</h2> + +<p>Hem vist moltes coses en aquest article. Recordes la informació més important? Trobaràs més proves per verificar que retens la informació abans de seguir a<a href="https://wiki.developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Test_your_skills_backgrounds_and_borders"> Test your skills: Backgrounds and Borders</a>.<br> + </p> + +<h2 id="Resum">Resum</h2> + +<p>En aquest articles hem descobert força conceptes, i pots veure que hi ha molt per afegir a un fons o una vora d'una caixa. Consulta les diverses pàgines de propietat si vols obtenir més informació sobre alguna de les funcions que hem comentat. Cada pàgina de MDN té més exemples d’ús amb què pots jugar i ampliar els teus coneixements.</p> + +<p>En el proper article descobrirem com interactua el mode d'escriptura del document amb el CSS. Què passa quan el text no flueix d'esquerra a dreta?</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament de continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/images_media_form_elements/index.html b/files/ca/learn/css/building_blocks/images_media_form_elements/index.html new file mode 100644 index 0000000000..cb1ce805bc --- /dev/null +++ b/files/ca/learn/css/building_blocks/images_media_form_elements/index.html @@ -0,0 +1,193 @@ +--- +title: 'Imatges, media i elements de formulari' +slug: Learn/CSS/Building_blocks/Images_media_form_elements +translation_of: Learn/CSS/Building_blocks/Images_media_form_elements +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks")}}</div> + +<p>En aquest article analitzarem com es tracten certs elements especials en CSS. Les imatges, altres media i els elements de formulari es comporten una mica diferent que les caixes pel que fa a la possibilitat d’aplicar-los disseny amb CSS. Entendre què és possible i què no ens estalviarà unes quantes frustracions, i en aquest article destacarem alguns dels conceptes principals que has de conèixer.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Comprendre el comportament inusual d'alguns elements quan se’ls aplica disseny amb CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Elements_de_recol·locació">Elements de recol·locació</h2> + +<p>Les imatges i els vídeos es descriuen com <strong><a href="/en-US/docs/Web/CSS/Replaced_element">elements de recol·locació</a></strong>. Això significa que no es pot actuar sobre el disseny intern d'aquests elements amb CSS, sinó només sobre la seva posició en la pàgina web entre la resta d’elements. Com veurem, però, hi ha diverses coses que el CSS pot fer amb una imatge.</p> + +<p>Alguns elements de recol·locació, com ara les imatges i els vídeos, també presenten una <strong>relació d'aspecte</strong>. Això vol dir que tenen una mida tant en la dimensió horitzontal (x) com en la vertical (y), i de manera predeterminada es mostren amb les dimensions intrínseques del fitxer.</p> + +<h2 id="Les_mides_de_les_imatges">Les mides de les imatges</h2> + +<p>Com ja saps d'aquests articles, tot en CSS genera una caixa. Si col·loques una imatge dins d’una caixa que és més petita o més gran que les dimensions intrínseques del fitxer d’imatges en qualsevol direcció, o bé apareixerà més petita que la caixa o bé desbordarà. Has de prendre una decisió sobre què passa amb el desbordament.</p> + +<p>En l'exemple següent hi ha dues caixes, totes dues de 200 píxels:</p> + +<ul> + <li>Una conté una imatge més petita de 200 píxels: és més petita que la caixa i no l’ocupa tota per a omplir-la.</li> + <li>L'altra és més gran de 200 píxels i desborda més enllà dels límits de la caixa.</li> +</ul> + +<p>{{EmbedGHLiveSample("css-examples/learn/images/size.html", '100%', 1000)}}</p> + +<p>Què podem fer amb el problema del desbordament?</p> + +<p>Com hem vist en <a href="/ca/docs/Learn/CSS/Building_blocks/Dimensionar_elements_en_CSS">l'article anterior</a>, una tècnica habitual és assignar a la propietat <code>max-width</code> de la imatge una amplada del 100%. Això permet fer la imatge més petita que la caixa, però no més gran. Aquesta tècnica funciona amb altres elements de recol·locació com ara <code><a href="/ca/docs/Web/HTML/Element/video"><video></a></code> o <code><a href="/ca/docs/Web/HTML/Element/iframe"><iframe></a></code>.</p> + +<p><strong>Afegeix a l'element <code><img></code> de l'exemple anterior <code>max-width: 100%</code>. Observa que la imatge més petita es manté inalterada, però la més gran es fa més petita per a encaixar a la caixa.</strong></p> + +<p>Pots prendre altres decisions sobre el comportament de les imatges dins dels contenidors. Per exemple, pots voler donar a una imatge una mida perquè ompli completament una caixa.</p> + +<p>La propietat {{cssxref("object-fit")}} et pot ajudar amb això. La propietat <code>object-fit</code> et permet donar a l'element de recol·locació la mida adequada per adaptar-se a una caixa de diverses maneres.</p> + +<p>A continuació, hem utilitzat el valor <code>cover</code>, que redueix la mida de la imatge de manera que omple la caixa perfectament, tot mantenint la relació d’aspecte. Com que la relació d’aspecte es manté, la caixa talla algunes parts de la imatge.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/images/object-fit.html", '100%', 1000)}}</p> + +<p>Si fem servir el valor <code>contain</code>, la imatge es redueix fins que és prou petita per adaptar-se a la caixa. Això pot donar lloc a un format panoràmic si la imatge no presenta la mateixa relació d'aspecte que la caixa.</p> + +<p>També pots provar el valor <code>fill</code>, que omple la caixa però no manté la relació d’aspecte.</p> + +<h2 id="Elements_de_recol·locació_en_el_disseny_de_pàgines_web">Elements de recol·locació en el disseny de pàgines web</h2> + +<p>A mesura que vagis fent servir diverses tècniques de disseny de pàgines web amb CSS en elements de reemplaçament, és possible que t’adonis que es comporten una mica diferent d'altres elements. Per exemple, els elements d’un disseny de pàgina flexible o de graella per defecte ocupen tota l’àrea. Les imatges, en canvi, no s’estiren, sinó que s’alineen amb l’inici de l’àrea de la graella o del contenidor flexible.</p> + +<p>Observa que això passa en l'exemple següent, en què hi ha un contenidor amb dues columnes i dues files, que inclou quatre elements. Tots els elements <code><div></code> tenen un color de fons i s’estiren fins que ocupen tota la fila i la columna. Però la imatge no s’estira.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/images/layout.html", '100%', 1000)}}</p> + +<p>Si has seguit aquests articles en ordre, potser encara no has arribat a al disseny de pàgina web. Aleshores, senzillament tingues en compte que els elements de recol·locació tenen comportaments predeterminats diferents quan passen a formar part d'un disseny en graella o d'un disseny flexible, essencialment per a evitar que el disseny de pàgina web els deformi de manera estranya.</p> + +<p>Pots aconseguir que la imatge ocupi tot l’espai de la cel·la de la quadrícula en què es troba, si fas això:</p> + +<pre class="brush: css">img { + width: 100%; + height: 100%; +}</pre> + +<p>Però això deformaria també la imatge, de manera que probablement no és el que busques.</p> + +<h2 id="Els_elements_de_formulari">Els elements de formulari</h2> + +<p>Els elements de formulari poden ser un problema a l’hora de fer un disseny de pàgina web amb CSS, i <a href="/ca/docs/Learn/HTML/Forms">l'article sobre formularis web</a> conté guies detallades sobre els aspectes més complicats relatius a aquest tema, que no reproduirem completament en aquest article. Tanmateix, en aquesta secció val la pena que destaquem uns quants elements bàsics.</p> + +<p>Molts controls de formulari s'afegeixen amb l’element <code><a href="/ca/docs/Web/HTML/Element/input"><input></a></code>; això defineix des de camps de formulari senzills, com ara entrades de text, fins a camps més complexos que s’han afegit en l'HTML5 com ara els selectors de color i de dates. I encara hi ha altres elements, com ara <code><a href="/ca/docs/Web/HTML/Element/textarea"><textarea></a></code>, per a entrades de text multilínia, i elements que s'utilitzen per a contenir i etiquetar parts de formularis com <code><a href="/ca/docs/Web/HTML/Element/fieldset"><fieldset></a></code> i <code><a href="/ca/docs/Web/HTML/Element/legend"><legend></a></code>.</p> + +<p>L'HTML5 també inclou atributs que permeten als desenvolupadors web indicar quins camps són obligatoris, i fins i tot el tipus de contingut que cal introduir. Si l’usuari introdueix alguna cosa inesperada o deixa un camp obligatori en blanc, el navegador pot mostrar un missatge d’error. Els diversos navegadors no presenten cap coherència ni homogeneïtzació pel que fa a l’estil que apliquen a aquests elements.</p> + +<h3 id="Aplicar_estil_a_elements_dentrada_de_text">Aplicar estil a elements d'entrada de text</h3> + +<p>Resulta força fàcil aplica estil als elements que permeten l’entrada de text, com <code><input type="text"></code>, alguns tipus específics, com <code><input type="email"></code>, i l'element <code><textarea></code>, i tendeixen a comportar-se igual que les altres caixes de la teva pàgina web. L'estil predeterminat d'aquests elements varia segons del sistema operatiu i el navegador amb què l'usuari visita el lloc web.</p> + +<p>En l'exemple següent hem aplicar estil a algunes entrades de text amb CSS; observa que alguns elements com ara les vores, els marges i l'àrea de farciment s'apliquen tal com s'esperaria. Utilitzem selectors d’atribut per a seleccionar els diferents tipus d’entrada. Ajusta les vores, afegeix colors de fons als camps i canvia el tipus de lletra i l'àrea de farciment; prova de canviar la manera com es veu aquest formulari.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/images/form.html", '100%', 1000)}}</p> + +<div class="blockIndicator warning"> +<p><strong>Important</strong>: Quan canvies l'estil dels elements de formulari t’has d’assegurar-te que a l'usuari encara li resulta evident que són elements de formulari. Podries crear una entrada de formulari sense vores i amb un fons que gairebé no es distingís del contingut que l’envolta, que potser seria difícil de reconèixer per a emplenar-la.</p> +</div> + +<p>Tal com s’explica en els articles sobre <a href="/en-US/docs/Learn/Forms/Styling_web_forms">l’aplicació d’estil a formularis</a> de la part d’HTML d’aquest curs, molts dels tipus d'entrada més complexos els proporciona el sistema operatiu i no és possible aplicar-los disseny. Per tant, has d’assumir que els diferents visitants sempre veuran els formularis ben diferents, i hauràs de provar els formularis complexos en diversos navegadors.</p> + +<h3 id="Elements_de_formulari_i_herència">Elements de formulari i herència</h3> + +<p>En alguns navegadors, els elements de formulari no hereten l'estil de lletra per defecte. Per tant, si vols estar segur que els teus camps de formulari utilitzen el tipus de lletra definit en el cos (<code>body</code>) de l’HTML o en un element pare, has d’afegir al teu CSS aquesta regla:</p> + +<pre class="brush: css"><code>button, +input, +select, +textarea { + font-family : inherit; + font-size : 100%; +} </code></pre> + +<h3 id="Elements_de_formulari_i_mida_de_les_caixes">Elements de formulari i mida de les caixes</h3> + +<p>En els diversos navegadors els elements de formulari utilitzen regles diferents per a assignar les mides de les caixes per a diferents controls de formulari. En el nostre article sobre <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">el model de caixes</a> has après com assignar una mida a les caixes amb la propietat <code>box-sizing</code> i pots fer servir aquests coneixements a l’hora d’aplicar disseny als formularis per a garantir una experiència coherent a l’hora d’establir les amplades i les alçades dels elements d’un formulari.</p> + +<p>Una bona idea per a obtenir una experiència d’usuari coherent és establir els marges i l'àrea de farciment a <code>0</code> per a tots els elements i afegir-los després en aplicar un disseny concret a cada control.</p> + +<pre class="brush: css"><code>button, +input, +select, +textarea { + box-sizing: border-box; + padding: 0; + margin: 0; +}</code></pre> + +<h3 id="Altres_paràmetres_útils">Altres paràmetres útils</h3> + +<p>A més de les regles que hem esmentat, també hauries de configurar <code>overflow: auto</code> a <code><textarea></code> per evitar que Internet Explorer mostri una barra de desplaçament quan no faci falta:</p> + +<pre class="brush: css">textarea { + overflow: auto; +}</pre> + +<h3 id="Posar-ho_tot_«a_zero»">Posar-ho tot «a zero»</h3> + +<p>Com a últim pas, podem agrupar les diverses propietats que hem comentat en el «formulari base» següent, que proporciona una base coherent sobre la qual treballar. Això inclou tots els elements que hem esmentat en les últimes tres seccions:</p> + +<pre class="brush: css"><code>button, +input, +select, +textarea { + font-family: inherit; + font-size: 100%; + box-sizing: border-box; + padding: 0; margin: 0; +} + +textarea { + overflow: auto; +} </code></pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Molts desenvolupadors utilitzen fulls d'estil de normalització, que creen un conjunt d'estils de referència que utilitzen en tots els projectes. Normalment, aquests fulls d'estil fan coses semblants a les que acabem de descriure i garanteixen que qualsevol cosa que en navegadors diferents pugui ser diferent està configurada de manera predeterminada abans de fer la teva feina amb el CSS. Ara aquests fulls d’estil de normalització no són tan importants com abans, perquè els navegadors acostuma a presentar visualitzacions més coherents que en el passat. Tanmateix, si vols fer un cop d’ull a un exemple, ves a <a href="http://necolas.github.io/normalize.css/">Normalize.css</a>, que és un full d’estil molt popular que s’ha utilitzat com a base per molts projectes.</p> +</div> + +<p>Si vols obtenir més informació sobre com aplicar estil als formularis, fes un cop d’ull als dos articles de la secció d’HTML d’aquestes guies.</p> + +<ul> + <li><a href="/en-US/docs/Learn/Forms/Styling_web_forms">Disseny de formularis web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Advanced_form_styling">Aspectes avançats d'aplicació d’estil a formularis web</a></li> +</ul> + +<h2 id="Resum">Resum</h2> + +<p>En aquest article s’han destacat algunes de les diferències amb què et trobaràs quan treballis amb imatges, media i altres elements poc habituals en CSS. En l’article següent examinarem alguns consells que et seran d’utilitat quan hagis de dissenyar taules HTML.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, media i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/index.html b/files/ca/learn/css/building_blocks/index.html new file mode 100644 index 0000000000..d42bb1fe85 --- /dev/null +++ b/files/ca/learn/css/building_blocks/index.html @@ -0,0 +1,72 @@ +--- +title: CSS building blocks +slug: Learn/CSS/Building_blocks +translation_of: Learn/CSS/Building_blocks +--- +<div>{{LearnSidebar}}</div> + +<p class="summary"><strong>Translation in progress.</strong></p> + +<p class="summary">This module carries on where <a href="/en-US/docs/Learn/CSS/First_steps">CSS first steps</a> left off — now you've gained familiarity with the language and its syntax, and got some basic experience with using it, its time to dive a bit deeper. This module looks at the cascade and inheritance, all the selector types we have available, units, sizing, styling backgrounds and borders, debugging, and lots more.</p> + +<p class="summary">The aim here is to provide you with a toolkit for writing competent CSS and help you understand all the essential theory, before moving on to more specific disciplines like <a href="/en-US/docs/Learn/CSS/Styling_text">text styling</a> and <a href="/en-US/docs/Learn/CSS/CSS_layout">CSS layout</a>.</p> + +<h2 id="Prerequisites">Prerequisites</h2> + +<p>Before starting this module, you should have:</p> + +<ol> + <li>Basic familiarity with using computers, and using the Web passively (i.e. just looking at it, consuming the content.)</li> + <li>A basic work environment set up as detailed in <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software">Installing basic software</a>, and an understanding of how to create and manage files, as detailed in <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files">Dealing with files</a>.</li> + <li>Basic familiarity with HTML, as discussed in the <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introduction to HTML</a> module.</li> + <li>An understanding of the basics of CSS, as discussed in the <a href="/en-US/docs/Learn/CSS/First_steps">CSS first steps</a> module.</li> +</ol> + +<div class="note"> +<p><strong>Note</strong>: If you are working on a computer/tablet/other device where you don't have the ability to create your own files, you could try out (most of) the code examples in an online coding program such as <a href="http://jsbin.com/">JSBin</a> or <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guides">Guides</h2> + +<p>This module contains the following articles, which cover the most essential parts of the CSS language. Along the way you'll come across plenty of exercises to allow you to test your understanding.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">Cascade and inheritance</a></dt> + <dd>The aim of this lesson is to develop your understanding of some of the most fundamental concepts of CSS — the cascade, specificity, and inheritance — which control how CSS is applied to HTML and how conflicts are resolved.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">CSS selectors</a></dt> + <dd>There are a wide variety of CSS selectors available, allowing for fine-grained precision when selecting elements to style. In this article and its sub-articles we'll run through the different types in great detail, seeing how they work. The sub-articles are as follows: + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Type, class, and ID selectors</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Attribute selectors</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Pseudo-classes and pseudo-elements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Combinators</a></li> + </ul> + </dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">The box model</a></dt> + <dd>Everything in CSS has a box around it, and understanding these boxes is key to being able to create layouts with CSS, or to align items with other items. In this lesson we will take a proper look at the CSS <em>Box Model</em>, in order that you can move onto more complex layout tasks with an understanding of how it works and the terminology that relates to it.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Backgrounds and borders</a></dt> + <dd>In this lesson we will take a look at some of the creative things you can do with CSS backgrounds and borders. From adding gradients, background images, and rounded corners, backgrounds and borders are the answer to a lot of styling questions in CSS.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">Handling different text directions</a></dt> + <dd>In recent years, CSS has evolved in order to better support different directionality of content, including right-to-left but also top-to-bottom content (such as Japanese) — these different directionalities are called <strong>writing modes</strong>. As you progress in your study and begin to work with layout, an understanding of writing modes will be very helpful to you, therefore we will introduce them in this article.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">Overflowing content</a></dt> + <dd>In this lesson we will look at another important concept in CSS — <strong>overflow</strong>. Overflow is what happens when there is too much content to be contained comfortably inside a box. In this guide you will learn what it is and how to manage it.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Values and units</a></dt> + <dd>Every property used in CSS has a value or set of values that are allowed for that property. In this lesson we will take a look at some of the most common values and units in use.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Sizing items in CSS</a></dt> + <dd>In the various lessons so far you have come across a number of ways to size items on a web page using CSS. Understanding how big the different features in your design will be is important, and in this lesson we will summarize the various ways elements get a size via CSS and define a few terms around sizing that will help you in the future.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Images, media, and form elements</a></dt> + <dd>In this lesson we will take a look at how certain special elements are treated in CSS. Images, other media, and form elements behave a little differently in terms of your ability to style them with CSS than regular boxes. Understanding what is and isn't possible can save some frustration, and this lesson will highlight some of the main things that you need to know.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Styling tables</a></dt> + <dd>Styling an HTML table isn't the most glamorous job in the world, but sometimes we all have to do it. This article provides a guide to making HTML tables look good, with some specific table styling techniques highlighted.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Debugging CSS</a></dt> + <dd>Sometimes when writing CSS you will encounter an issue where your CSS doesn't seem to be doing what you expect. This article will give you guidance on how to go about debugging a CSS problem, and show you how the DevTools included in all modern browsers can help you find out what is going on.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organizing your CSS</a></dt> + <dd>As you start to work on larger stylesheets and big projects you will discover that maintaining a huge CSS file can be challenging. In this article we will take a brief look at some best practices for writing your CSS to make it easily maintainable, and some of the solutions you will find in use by others to help improve maintainability.</dd> +</dl> + +<h2 id="See_also">See also</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/Building_blocks/Advanced_styling_effects">Advanced styling effects</a></dt> + <dd>This article acts as a box of tricks, providing an introduction to some interesting advanced styling features such as box shadows, blend modes, and filters.</dd> +</dl> diff --git a/files/ca/learn/css/building_blocks/selectors_css/combinadors/index.html b/files/ca/learn/css/building_blocks/selectors_css/combinadors/index.html new file mode 100644 index 0000000000..175379f986 --- /dev/null +++ b/files/ca/learn/css/building_blocks/selectors_css/combinadors/index.html @@ -0,0 +1,111 @@ +--- +title: Combinadors +slug: Learn/CSS/Building_blocks/Selectors_CSS/Combinadors +translation_of: Learn/CSS/Building_blocks/Selectors/Combinators +--- +<p>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks")}}</p> + +<p>Els últims selectors que veurem s’anomenen combinadors, perquè combinen altres selectors de manera que proporcionen una relació útil entre aquests i la ubicació de continguts en el document.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Obtenir més informació sobre els diferents selectors que es poden utilitzar en CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Selector_de_descendents">Selector de descendents</h2> + +<p>Ja has vist selectors de descendents en articles anteriors (selectors separats per un espai):</p> + +<pre class="brush: css notranslate">body article p</pre> + +<p>Aquests selectors seleccionen elements que són descendents d’un altre selector. No cal que els elements que se seleccionen siguin fills directes.</p> + +<p>En l'exemple següent se seleccionen només els elements <code><p></code> que hi ha dins d'un element que està etiquetat amb una classe <code>.box</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/descendant.html", '100%', 500)}}</p> + +<h2 id="Combinador_de_fills">Combinador de fills</h2> + +<p>El combinador de fills és un símbol de «més gran que» (<code>></code>), que només selecciona elements que són descendents directes. Els descendents que hi ha més avall en la jerarquia no se seleccionen; per exemple, per a seleccionar només els elements <code><p></code> que són descendents directes d’elements <code><article></code>:</p> + +<pre class="brush: css notranslate">article > p</pre> + +<p>En aquest exemple hi ha una llista ordenada imbricada dins d'una altra llista no ordenada. Fem servir el combinador de fills per a seleccionar només els elements <code><li></code> que són fills directes de <code><ul></code> i els apliquem una vora superior.</p> + +<p>Si suprimim l’element <code>></code>, que designa que es tracta d'un selector de fills, obtenim un selector de descendents, i tots els elements <code><li></code> adquireixen una vora vermella.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/child.html", '100%', 600)}}</p> + +<h2 id="Selector_de_germans_adjacents">Selector de germans adjacents</h2> + +<p>El selector de germans adjacents (<code>+</code>) s'utilitza per a seleccionar un element que es troba immediatament a continuació d'un altre element en el mateix nivell de jerarquia; per exemple, per a seleccionar tots els elements <code><img></code> que hi ha just a continuació d‘elements <code><p></code>:</p> + +<pre class="brush: css notranslate">p + img</pre> + +<p>Un cas comú d’ús d’aquest combinador és per a fer alguna cosa amb un paràgraf que va a continuació d’un encapçalament, com en el nostre exemple següent. Aquí busquem un paràgraf que estigui immediatament a continuació d’<code><h1></code> i hi apliquem estil.</p> + +<p>Si insereixes qualsevol altre element, com ara <code><h2></code>, entre <code><h1></code> i <code><p></code>, el paràgraf ja no coincideix amb el selector, i el color de fons no s'aplica.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/adjacent.html", '100%', 800)}}</p> + +<h2 id="Selector_de_germans_general">Selector de germans general</h2> + +<p>Si vols seleccionar els elements que són germans d’un element, encara que no siguin adjacents directes, pots fer servir el selector de germans general (<code>~</code>). Per a seleccionar tots els elements <code><img></code> que estiguin <em>en qualsevol lloc</em> a continuació dels elements <code><p></code>, hem de fer això:</p> + +<pre class="brush: css notranslate">p ~ img</pre> + +<p>En l'exemple següent seleccionem tots els elements <code><p></code> que hi ha després de <code><h1></code>, i tot i que en el document també hi ha un element <code><div></code>, se selecciona també l'element <code><p></code> que hi ha després.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/general.html", '100%', 600)}}</p> + +<h2 id="Lús_dels_combinadors">L'ús dels combinadors</h2> + +<p>Pots combinar qualsevol dels selectors que hem vist en articles anteriors amb els combinadors per a seleccionar parts d’un document. Per exemple, per a seleccionar els elements de llista que tenen una classe «a» que són descendents directes de <code><ul></code>, pots utilitzar el codi següent:</p> + +<pre class="brush: css notranslate">ul > li[class="a"] { }</pre> + +<p>Tanmateix, has de tenir cura quan crees llistes grans de selectors que seleccionen parts molt específiques del document, perquè el selector serà molt específic per a la ubicació d'aquest element en l'etiquetatge i et serà difícil reutilitzar les regles CSS.</p> + +<p>Sovint és millor crear una classe senzilla i aplicar-la a l’element en qüestió. Ara bé, els coneixements sobre combinadors et poden ser molt útils si necessites accedir a algun part del document, però no pots accedir al codi HTML, potser a causa de la generació d’un CMS.</p> + +<h2 id="Comprova_les_teves_habilitats">Comprova les teves habilitats</h2> + +<p>Hem vist moltes coses en aquest article. Recordes la informació més important? Trobaràs més tests per a verificar que has retingut aquesta informació a <a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Selectors_Tasks">Test your skills: Selectors</a>.</p> + +<h2 id="Avancem">Avancem</h2> + +<p>Aquesta és l’última secció dels nostres articles sobre selectors. A continuació passarem a una altra qüestió important del CSS: el <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">model de caixes del CSS</a>.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament de les diverses direccions del text</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament del contingut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Elements d'imatge, de mèdia i de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depurar el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitzar el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/selectors_css/index.html b/files/ca/learn/css/building_blocks/selectors_css/index.html new file mode 100644 index 0000000000..4bd7b005de --- /dev/null +++ b/files/ca/learn/css/building_blocks/selectors_css/index.html @@ -0,0 +1,223 @@ +--- +title: Selectors CSS +slug: Learn/CSS/Building_blocks/Selectors_CSS +translation_of: Learn/CSS/Building_blocks/Selectors +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Cascade_and_inheritance", "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks")}}</div> + +<p class="summary">En el {{Glossary("CSS")}}, els selectors s'utilitzen per a determinar els elements {{glossary("HTML")}} de les pàgines web als quals volem aplicar estil. Hi ha una gran varietat de selectors CSS disponibles, que permeten obtenir una precisió àmplia a l’hora de seleccionar elements per a aplicar-los estil. En aquest article i els seus subarticles s'explicaran els diferents tipus amb detall i observarem com funcionen.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Conèixer amb detall com funcionen els selectors CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_un_selector">Què és un selector?</h2> + +<p>Ja has conegut els selectors. Un selector CSS és la primera part d'una regla CSS. Es tracta d’un patró d’elements i d’altres termes que diuen al navegador quins elements HTML s’han de seleccionar perquè tinguin els valors de les propietat CSS segons la regla que se’ls ha d’aplicar. L'element o els elements que selecciona el selector s'anomenen el <em>subjecte del selector</em>.</p> + +<p><img alt="Una mica de codi amb un h1 ressaltat." src="https://mdn.mozillademos.org/files/16550/selector.png" style="border: 1px solid #cccccc; height: 218px; width: 471px;"></p> + +<p>En articles anteriors, has vist altres selectors i també que hi ha selectors que es focalitzen en el document de maneres diferents (per exemple, seleccionant un element com <code>h1</code>, o una classe com <code>.special</code>).</p> + +<p>En CSS, els selectors es defineixen en l’especificació dels selectors CSS; com qualsevol altra part del CSS, han de ser compatibles amb els navegadors perquè funcionin. La majoria de selectors que trobaràs es defineixen en l’<a href="https://www.w3.org/TR/selectors-3/">especificació de selectors de nivell 3</a>, que és una especificació madura i, per tant, trobaràs una compatibilitat de navegadors excel·lent per a aquests selectors.</p> + +<h2 id="Llistes_de_selectors">Llistes de selectors</h2> + +<p>Si tens més d'un element que utilitza el mateix CSS, cadascun dels selectors es poden combinar en una <em>llista de selectors</em> que aplica la mateixa regla a tots els selectors. Per exemple, si tenim el mateix CSS per a <code>h1</code> i també per a una classe <code>.special</code>, ho podríem escriure com dues regles separades.</p> + +<pre class="brush: css notranslate"><code>h1 { + color: blue; +} + +.special { + color: blue; +} </code></pre> + +<p>Però també podem combinar-los en una llista de selectors, afegint-hi una coma entre ells.</p> + +<pre class="brush: css notranslate"><code>h1, .special { + color: blue; +} </code></pre> + +<p>L’espai en blanc és vàlid tant abans com després de la coma. També pots decidir que la llegibilitat dels selectors és més bona si cada un està en una línia nova.</p> + +<pre class="brush: css notranslate"><code>h1, +.special { + color: blue; +} </code></pre> + +<p>En l'exemple en viu següent, combina els dos selectors que tenen declaracions idèntiques. La visualització hauria de ser la mateixa després de la combinació.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/selector-list.html", '100%', 1000)}}</p> + +<p>Si agrupes els selectors d'aquesta manera, i algun dels selectors no és vàlid, s'ignorarà tota la regla.</p> + +<p>En l'exemple següent, la regla del selector de classe no vàlida s’ignorarà mentre que no hi haurà problemes a l'hora d’aplicar estil a <code>h1</code>.</p> + +<pre class="brush: css notranslate"><code>h1 { + color: blue; +} + +..special { + color: blue; +} </code></pre> + +<p>Tanmateix, en combinar-les, no s’aplicarà estil ni a <code>h1</code> ni a la classe, perquè la regla ja no és vàlida.</p> + +<pre class="brush: css notranslate"><code>h1, ..special { + color: blue; +} </code></pre> + +<h2 id="Tipus_de_selectors">Tipus de selectors</h2> + +<p>Hi ha uns quants grups diferents de selectors, i conèixer quin tipus de selector necessites t'ajudarà a trobar l'eina adequada a l'hora de treballar. En els subarticles d’aquest article examinarem amb més detall els diferents grups de selectors.</p> + +<h3 id="Selectors_de_tipus_de_classe_i_d’ID">Selectors de tipus, de classe i d’ID</h3> + +<p>Aquest grup inclou selectors que delimiten un element HTML, com ara <code><h1></code>.</p> + +<pre class="brush: css notranslate">h1 { }</pre> + +<p>També inclou selectors que delimiten una classe:</p> + +<pre class="brush: css notranslate">.box { }</pre> + +<p>o un ID:</p> + +<pre class="brush: css notranslate">#unique { }</pre> + +<h3 id="Selectors_datribut">Selectors d'atribut</h3> + +<p>Aquest grup de selectors t'ofereix diferents maneres de seleccionar elements segons la presència d’un atribut determinat en un element:</p> + +<pre class="brush: css notranslate">a[title] { }</pre> + +<p>O fins i tot fer una selecció segons la presència d’un atribut amb un valor determinat:</p> + +<pre class="brush: css notranslate">a[href="https://example.com"] { }</pre> + +<h3 id="Les_pseudoclasses_i_els_pseudoelements">Les pseudoclasses i els pseudoelements</h3> + +<p>Aquest grup de selectors inclou les pseudoclasses, que apliquen estil a certs estats d’un element. La pseudoclasse <code>:hover</code>, per exemple, selecciona un element només quan hi passa pel damunt el cursor del ratolí:</p> + +<pre class="brush: css notranslate">a:hover { }</pre> + +<p>També inclou els pseudoelements, que seleccionen una part determinada d’un element en lloc de l’element en si. Per exemple, <code>::first-line</code> sempre selecciona la primera línia de text que hi ha dins d’un element (<code><p></code> en el cas següent), i actua com si un <code><span></code> delimités la primera línia amb format i després la seleccionés.</p> + +<pre class="brush: css notranslate">p::first-line { }</pre> + +<h3 id="Combinadors">Combinadors</h3> + +<p>El grup final de selectors fa combinacions d’altres selectors que delimiten encara més els elements dels nostres documents. A continuació, per exemple, se seleccionen els paràgrafs que són fills directes dels elements <code><article></code> amb el combinador de fills (<code>></code>):</p> + +<pre class="brush: css notranslate">article > p { }</pre> + +<h2 id="Propers_passos">Propers passos</h2> + +<p>Pots donar un cop d'ull a la taula de referència de selectors que hi ha a continuació per trobar enllaços directes als diversos tipus de selectors de la secció d'aprenentatge o de MDN en general, o pots continuar en ordre i descobrir <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID">els tipus de selectors de classe i d’ID</a>.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Cascade_and_inheritance", "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="Taula_de_referència_dels_selectors">Taula de referència dels selectors</h2> + +<p>La taula següent t'ofereix una visió general dels selectors que tens disponibles, juntament amb enllaços a les pàgines d’aquesta guia, que et mostraran com utilitzar cada tipus de selector. També hem inclòs un enllaç a la pàgina MDN de cada selector, en què pots consultar la informació de compatibilitat amb els navegadors. Pots fer-ho servir com a referència de consulta per quan més endavant hagis de buscar selectors, o a mesura que experimentes amb el CSS en general.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Exemple</th> + <th scope="col">Tutorial de CSS</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_de_Tipus">Selector de tipus</a></td> + <td><code>h1 { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID#Selectors_de_tipus">Selectors de tipus</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_Universal">Selector universal</a></td> + <td><code>* { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID#El_selector_universal">El selector universal</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_de_Classe">Selector de classe</a></td> + <td><code>.box { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID#Selectors_de_classe">Selectors de classe</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_ID">Selector d’ID</a></td> + <td><code>#unique { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID#Selectors_ID">Selectors d’ID</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_d'Atribut">Selector d'atribut</a></td> + <td><code>a[title] { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_atribut">Selectors d'atribut</a></td> + </tr> + <tr> + <td><a href="/en-US/docs/Web/CSS/Pseudo-classes">Selectors de pseudoclasse</a></td> + <td><code>p:first-child { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements#Qu%C3%A8_%C3%A9s_una_pseudoclasse">Pseudoclasse</a></td> + </tr> + <tr> + <td><a href="/en-US/docs/Web/CSS/Pseudo-elements">Selectors de pseudoelement</a></td> + <td><code>p::first-line { }</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements#Qu%C3%A8_%C3%A9s_un_pseudoelement">Pseudoelements</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_de_descendents">Combinador descendent</a></td> + <td><code>article p</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Combinadors">Combinador descendent</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_de_fills">Combinador de fills</a></td> + <td><code>article > p</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Combinadors#Selector_de_combinaci%C3%B3_delements_fill">Combinador de fills</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_de_germans_adjacents">Combinador de germans adjacents</a></td> + <td><code>h1 + p</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Combinadors#Germans_adjacents">Germans adjacents</a></td> + </tr> + <tr> + <td><a href="/ca/docs/Web/CSS/Selectors_general_de_germans">Combinador general de germans</a></td> + <td><code>h1 ~ p</code></td> + <td><a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Combinadors#Germans_generals">Germans general</a></td> + </tr> + </tbody> +</table> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, media i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depurar el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/selectors_css/pseudo-classes_and_pseudo-elements/index.html b/files/ca/learn/css/building_blocks/selectors_css/pseudo-classes_and_pseudo-elements/index.html new file mode 100644 index 0000000000..b28cb4873a --- /dev/null +++ b/files/ca/learn/css/building_blocks/selectors_css/pseudo-classes_and_pseudo-elements/index.html @@ -0,0 +1,398 @@ +--- +title: Pseudoclasses i pseudoelements +slug: Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements +translation_of: Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +--- +<p>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks")}}</p> + +<p>El conjunt següent de selectors que veurem s’anomenen <strong>pseudoclasses</strong> i <strong>pseudoelements</strong>. N'hi ha una bona quantitat i sovint serveixen per a propòsits força específics. Un cop que hauràs après a utilitzar-los, pots mirar-te la llista i veure si n’hi ha cap que et serveixi per a la tasca que intentes assolir. Una vegada més afegim que la pàgina de MDN corresponent a cada selector et pot ser útil per a esbrinar-ne la compatibilitat dels navegadors.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir més informació sobre els selectors de pseudoclasse i pseudoelement.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_una_pseudoclasse">Què és una pseudoclasse?</h2> + +<p>Una pseudoclasse és un selector que selecciona elements que es troben en un estat específic. Per exemple, són el primer element del seu tipus o bé el cursor del ratolí els passa per sobre. Solen actuar com si haguessis aplicat una classe a alguna part del document, i sovint t’ajuden a reduir l'excés de classes en l'etiquetatge i et proporcionen un codi més flexible i fàcil de mantenir.</p> + +<p>Les pseudoclasses són paraules clau que comencen amb dos punts (:):</p> + +<pre class="notranslate">:<em>pseudo-class-name</em></pre> + +<h3 id="Un_exemple_senzill_de_pseudoclasse">Un exemple senzill de pseudoclasse</h3> + +<p>Donem una ullada a un exemple senzill. Si volem que el primer paràgraf d'un article es vegi més gran i en negreta, podem afegir una classe a aquest paràgraf i després afegir CSS a aquesta classe, tal com es mostra en el primer exemple següent:</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/first-child.html", '100%', 800)}}</p> + +<p>Tanmateix, això pot resultar molest a l'hora de fer-ne el manteniment; i si afegim un tipus nou de paràgraf a la part superior del document? Hauríem d’incloure la classe en el nou paràgraf. Doncs, en comptes d’afegir la classe, podríem utilitzar el selector de pseudoclasse {{cssxref(":first-child")}}; això seleccionarà <em>sempre</em> el primer element fill de l'article i ja no caldria editar l’HTML (que no sempre és possible, perquè de vegades es genera des d'un CMS).</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/first-child2.html", '100%', 700)}}</p> + +<p>Totes les pseudoclasses es comporten de la mateixa manera. Etiqueten una part del document que es troba en un estat determinat, i es comporten com si haguessis afegit una classe a l'HTML. Pots veure’n més exemples a MDN:</p> + +<ul> + <li><code><a href="/ca/docs/Web/CSS/:last-child">:last-child</a></code></li> + <li><code><a href="/ca/docs/Web/CSS/:only-child">:only-child</a></code></li> + <li><code><a href="/ca/docs/Web/CSS/:invalid">:invalid</a></code></li> +</ul> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: és vàlid escriure pseudoclasses i pseudoelements sense que les precedeixi cap selector d'element. En l'exemple anterior, podríem escriure <code>:first-child</code> i la regla s'aplicaria a qualsevol element que sigui el primer element d'un element <code><article></code>, no només primers paràgrafs. <code>:first-child</code> equival a <code>*:first-child</code>. Però normalment volem més control i cal ser més específics.</p> +</div> + +<h3 id="Pseudoclasses_dacció_dusuari">Pseudoclasses d'acció d'usuari</h3> + +<p>Algunes pseudoclasses només actuen quan l'usuari interactua d'alguna manera amb el document. Aquestes pseudoclasses <strong>d'acció de l'usuari</strong>, de vegades denominades <strong>pseudoclasses dinàmiques</strong>, actuen com si s'hagués afegit una classe a l'element quan l'usuari hi interactua. Els exemples inclouen:</p> + +<ul> + <li><code><a href="/ca/docs/Web/CSS/:invalid">:hover</a></code>; ja l’hem esmentada; només actua si l'usuari passa el cursor del ratolí per sobre d'un element, normalment un enllaç.</li> + <li><code><a href="/ca/docs/Web/CSS/:focus">:focus</a></code>; només actua si l'usuari selecciona l'element amb controls de teclat.</li> +</ul> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/hover.html", '100%', 500)}}</p> + +<h2 id="Què_és_un_pseudoelement">Què és un pseudoelement?</h2> + +<p>Els pseudoelements es comporten d’una manera similar, però actuen com si afegissis un element HTML completament nou a l’etiquetatge, en lloc d’aplicar una classe als elements que ja hi ha. Els pseudoelements comencen amb un doble dos punts <code>::</code>.</p> + +<pre class="notranslate"><em>::pseudo-element-name</em></pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Alguns pseudoelements originals utilitzaven la sintaxi de dos punts simple, i de vegades encara ho pots veure en algun codi o alguns exemples. Els navegadors moderns admeten els primers pseudoelements amb una sintaxi de dos punts simple o de dos punts doble per a tenir compatibilitat cap enrere.</p> +</div> + +<p>Per exemple, si volguessis seleccionar la primera línia d’un paràgraf, podries etiquetar-la amb un element <code><span></code> i utilitzar un selector d’elements; però això falla si el nombre de paraules que has etiquetat és superior o inferior a l'amplada de l'element principal. Com que no podem saber quantes paraules cabran en una línia perquè això canvia amb l’amplada de la pantalla o la mida de la lletra, no és possible fer-ho només afegint HTML.</p> + +<p>El selector de pseudoelements <code>::first-line</code> ho fa de manera segura: selecciona només la primera línia, encara que el nombre de paraules augmenti o disminueixi.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/first-line.html", '100%', 800)}}</p> + +<p>Actua com si hi hagués una etiqueta <code><span></code> màgica en aquesta primera línia que s'actualitza cada cop que canvia la longitud de la línia.</p> + +<p>Pots veure que això selecciona la primera línia dels dos paràgrafs.</p> + +<h2 id="Combinar_pseudoclasses_i_pseudoelements">Combinar pseudoclasses i pseudoelements</h2> + +<p>Si vols que la primera línia del primer paràgraf es vegi en negreta, pots agrupar els selectors <code>:first-child</code> i <code>::first-line</code>. Prova d’introduir en l'exemple en viu anterior el CSS següent. Amb això demanem que volem seleccionar la primera línia del primer element <code><p></code>, que hi ha dins d’un element <code><article></code>.</p> + +<pre class="brush: css notranslate"><code>article p:first-child::first-line { + font-size: 120%; + font-weight: bold; +}</code></pre> + +<h2 id="Generar_contingut_amb_before_i_after">Generar contingut amb <code>::before</code> i <code>::after</code></h2> + +<p>Hi ha un parell de pseudoelements especials, que s'utilitzen juntament amb la propietat <code><a href="/en-US/docs/Web/CSS/content">content</a></code> per a inserir contingut al document mitjançant CSS.</p> + +<p>Pots utilitzar-los per a inserir una cadena de text, com en l'exemple en viu següent. Prova de canviar el valor de text de la propietat {{cssxref("content")}} i observa com canvia a la sortida. També pots canviar el pseudoelement <code>::before</code> per <code>::after</code> i observa que el text s’insereix al final de l'element, en lloc del principi.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/before.html", '100%', 400)}}</p> + +<p>Inserir cadenes de text amb CSS, de fet, no es fa gaire sovint a la web, perquè aquest text no és accessible per a alguns lectors de pantalla i pot ser difícil de trobar i editar en el futur.</p> + +<p>Un ús més vàlid d'aquests pseudoelements és inserir una icona, per exemple la petita fletxa afegida de l'exemple següent, que és un indicador visual que no volem que un lector de pantalla llegeixi:</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/after-icon.html", '100%', 400)}}</p> + +<p>Aquests pseudoelements també s'utilitzen amb freqüència per a inserir una cadena buida, a la qual després pots aplicar estil com a qualsevol altre element de la pàgina.</p> + +<p>En l'exemple següent hem afegit una cadena buida amb el pseudoelement <code>::before</code>. L'hem establert en <code>display: block</code> per a poder-hi aplicar una amplada i una alçada. A continuació, utilitzem el CSS per donar-hi estil com a qualsevol altre element. Pots jugar-hi amb el CSS i canviar-ne l’aspecte i el comportament.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/before-styled.html", '100%', 500)}}</p> + +<p>L’ús dels pseudoelements <code>::before</code> i <code>::after</code>, juntament amb la propietat <code>content</code>, es coneix en CSS com el «contingut generat» i veuràs que aquesta tècnica s’utilitza sovint per a diverses tasques. Un bon exemple és el lloc <a href="http://www.cssarrowplease.com/">CSS Arrow Please</a>, que t'ajuda a generar una fletxa amb CSS. Observa el CSS mentre crees la teva fletxa i fixa’t com funcionen els pseudoelements {{cssxref("::before")}} i {{cssxref("::after")}}. Sempre que vegis aquests selectors, cerca en la propietat {{cssxref("content")}} per esbrinar què s'ha afegit al document.</p> + +<h2 id="Secció_de_referència">Secció de referència</h2> + +<p>Hi ha un gran nombre de pseudoclasses i pseudoelements, i és útil tenir una llista en la qual s’hi faci referència. A continuació es mostren unes taules amb enllaços que apunten a les seves pàgines de referència en MDN. Fes-les servir de referència per veure de quines possibilitats d’etiquetatge disposes.</p> + +<h3 id="Pseudoclasses">Pseudoclasses</h3> + +<p>Paged Media, selecciona les pàgines de l’esquerra.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ Cssxref(":active") }}</td> + <td>Selecciona un element quan l’usuari l'activa (per exemple, fent-hi clic a sobre).</td> + </tr> + <tr> + <td>{{ Cssxref(":any-link") }}</td> + <td>Selecciona els estats <code>:link</code> i <code>:visited</code> d'un enllaç.</td> + </tr> + <tr> + <td>{{ Cssxref(":blank") }}</td> + <td>Selecciona un <a href="/ca/docs/Web/HTML/Element/input">element <code><input></code></a> que té el valor d'entrada buit.</td> + </tr> + <tr> + <td>{{ Cssxref(":checked") }}</td> + <td>Selecciona un botó d'opció o una casella de selecció en l'estat de seleccionat.</td> + </tr> + <tr> + <td>{{ Cssxref(":current") }}</td> + <td>Selecciona l'element o un antecessor de l'element que es mostra actiu.</td> + </tr> + <tr> + <td>{{ Cssxref(":default") }}</td> + <td>Selecciona un o diversos elements de la interfície d'usuari que són els elements predeterminats entre un conjunt d'elements similars.</td> + </tr> + <tr> + <td>{{ Cssxref(":dir") }}</td> + <td>Selecciona un element a partir de la direccionalitat (el valor de l’atribut <code><a href="/ca/docs/Web/HTML/Global_attributes/dir">dir</a></code> en HTML o la propietat <code><a href="/en-US/docs/Web/CSS/direction">direction</a></code> en CSS).</td> + </tr> + <tr> + <td>{{ Cssxref(":disabled") }}</td> + <td>Selecciona els elements d'una interfície d'usuari que estan deshabilitats.</td> + </tr> + <tr> + <td>{{ Cssxref(":empty") }}</td> + <td>Selecciona un element que no té fills, excepte, opcionalment, un espai blanc.</td> + </tr> + <tr> + <td>{{ Cssxref(":enabled") }}</td> + <td>Selecciona els elements d'una interfície d'usuari que estan habilitats.</td> + </tr> + <tr> + <td>{{ Cssxref(":first") }}</td> + <td>En <a href="/en-US/docs/Web/CSS/Paged_Media">Paged Media</a>, selecciona la primera pàgina.</td> + </tr> + <tr> + <td>{{ Cssxref(":first-child") }}</td> + <td>Selecciona un element que és el primer entre els seus germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":first-of-type") }}</td> + <td>Selecciona un element d'un tipus determinat entre els seus germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":focus") }}</td> + <td>Selecciona l’element que té el focus.</td> + </tr> + <tr> + <td>{{ Cssxref(":focus-visible")}}</td> + <td>Selecciona l’element que té el focus i que el focus està visible per a l'usuari.</td> + </tr> + <tr> + <td>{{ Cssxref(":focus-within") }}</td> + <td>Selecciona l’element que té el focus més l’element que té un descendent amb el focus.</td> + </tr> + <tr> + <td>{{ Cssxref(":future") }}</td> + <td>Selecciona els elements que estan just després de l’element actiu.</td> + </tr> + <tr> + <td>{{ Cssxref(":hover") }}</td> + <td>Selecciona un element quan l'usuari hi interactua.</td> + </tr> + <tr> + <td>{{ Cssxref(":indeterminate") }}</td> + <td>Selecciona els elements d'una interfície d'usuari, el valor dels quals estan en un estat indeterminat; generalment es tracta de <a href="/en-US/docs/Web/HTML/Element/input/checkbox">caselles de selecció</a>.</td> + </tr> + <tr> + <td>{{ Cssxref(":in-range") }}</td> + <td>Selecciona un element amb un rang de valors quan té el valor dins del rang.</td> + </tr> + <tr> + <td>{{ Cssxref(":invalid") }}</td> + <td>Selecciona un element, com ara <code><input></code>, que estigui en un estat no vàlid.</td> + </tr> + <tr> + <td>{{ Cssxref(":lang") }}</td> + <td>Selecciona un element segons l’idioma (valor de l’atribut <a href="/ca/docs/Web/HTML/Global_attributes/lang">lang</a> en HTML).</td> + </tr> + <tr> + <td>{{ Cssxref(":last-child") }}</td> + <td>Selecciona l’element que és l’últim entre els seus germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":last-of-type") }}</td> + <td>Selecciona un element d'un tipus determinat que és l’últim entre els seus germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":left") }}</td> + </tr> + <tr> + <td>{{ Cssxref(":link")}}</td> + <td>Selecciona els enllaços no visitats.</td> + </tr> + <tr> + <td>{{ Cssxref(":local-link")}}</td> + <td>Selecciona els enllaços que apunten a les pàgines que estan al mateix lloc web que el document actiu.</td> + </tr> + <tr> + <td>{{ Cssxref(":is", ":is()")}}</td> + <td>Selecciona qualsevol dels selectors de la llista de selectors.</td> + </tr> + <tr> + <td>{{ Cssxref(":not") }}</td> + <td>Selecciona coses que no han estat seleccionades per altres selectors, que es converteixen en valor d'aquest selector.</td> + </tr> + <tr> + <td>{{ Cssxref(":nth-child") }}</td> + <td>Selecciona elements d'entre una llista de germans: els germans es combinen amb una fórmula del tipus <var>an+b</var> (per exemple, 2n + 1 coincidiran amb els elements 1, 3, 5, 7, etc. Tots els imparells).</td> + </tr> + <tr> + <td>{{ Cssxref(":nth-of-type") }}</td> + <td>Selecciona elements d'un tipus determinat d'entre una llista de germans (per exemple, <code><p></code>): els germans es corresponen amb una fórmula de la forma <var>an+b</var> (per exemple, 2n + 1 coincidiria amb els elements 1, 3, 5, 7, etc. Tots els imparells).</td> + </tr> + <tr> + <td>{{ Cssxref(":nth-last-child") }}</td> + <td>Selecciona elements d'entre una llista de germans, comptant enrere des del final. Els germans es corresponen amb una fórmula del tipus <var>an+b</var> (per exemple, 2n + 1 coincidiria amb l’últim element de la seqüència, després els dos elements anteriors, un altre cop els dos elements anteriors, etc. Tots els imparells, comptant des del final).</td> + </tr> + <tr> + <td>{{ Cssxref(":nth-last-of-type") }}</td> + <td>Selecciona elements d'un tipus determinat d'entre una llista de germans (per exemple, <code><p></code>), comptant cap enrere des del final. Els germans es corresponen amb una fórmula de la forma <var>an+b</var> (per exemple, 2n + 1 coincidiria amb l’últim element d’aquest tipus de la seqüència, després els dos elements anteriors a aquell, i un altre cop dos elements anteriors, etc. Tots els imparells, comptant des del final).</td> + </tr> + <tr> + <td>{{ Cssxref(":only-child") }}</td> + <td>Selecciona un element que no té germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":only-of-type") }}</td> + <td>Selecciona un element que és l'únic del seu tipus entre els seus germans.</td> + </tr> + <tr> + <td>{{ Cssxref(":optional") }}</td> + <td>Selecciona els elements de formulari que no són necessaris.</td> + </tr> + <tr> + <td>{{ Cssxref(":out-of-range") }}</td> + <td>Selecciona un element amb un interval quan el seu valor està fora del rang.</td> + </tr> + <tr> + <td>{{ Cssxref(":past") }}</td> + <td>Selecciona els elements que són anteriors a l’element actiu.</td> + </tr> + <tr> + <td>{{ Cssxref(":placeholder-shown") }}</td> + <td>Selecciona un element d’entrada que mostra el marcador de posició del text.</td> + </tr> + <tr> + <td>{{ Cssxref(":playing") }}</td> + <td>Selecciona un element que representa un àudio, un vídeo o un recurs similar, que pot ser «reproduït» o «pausat» quan aquest element «es reprodueix».</td> + </tr> + <tr> + <td>{{ Cssxref(":paused") }}</td> + <td>Selecciona un element que representa un àudio, un vídeo o un recurs similar, que pot ser «reproduït» o «pausat», quan aquest element està «en pausa».</td> + </tr> + <tr> + <td>{{ Cssxref(":read-only") }}</td> + <td>Selecciona un element no modificable per l'usuari.</td> + </tr> + <tr> + <td>{{ Cssxref(":read-write") }}</td> + <td>Selecciona un element modificable per l'usuari.</td> + </tr> + <tr> + <td>{{ Cssxref(":required") }}</td> + <td>Selecciona els elements de formulari que són necessaris.</td> + </tr> + <tr> + <td>{{ Cssxref(":right") }}</td> + <td>En <a href="/en-US/docs/Web/CSS/CSS_Pages">Paged Media</a>, selecciona les pàgines de la dreta.</td> + </tr> + <tr> + <td>{{ Cssxref(":root") }}</td> + <td>Selecciona un element que és l'arrel del document.</td> + </tr> + <tr> + <td>{{ Cssxref(":scope") }}</td> + <td>Selecciona qualsevol element que sigui un element d'abast.</td> + </tr> + <tr> + <td>{{ Cssxref(":valid") }}</td> + <td>Selecciona un element, com ara <code><input></code>, que estigui en un estat vàlid.</td> + </tr> + <tr> + <td>{{ Cssxref(":target") }}</td> + <td>Selecciona l’element al qual apunta l’URL activa (és a dir, si té un ID que coincideix amb l’<a href="https://en.wikipedia.org/wiki/Fragment_identifier">identificador de fragment</a> de l’URL actiu).</td> + </tr> + <tr> + <td>{{ Cssxref(":visited") }}</td> + <td>Selecciona els enllaços visitats.</td> + </tr> + </tbody> +</table> + +<h3 id="Pseudoelements">Pseudoelements</h3> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ Cssxref("::after") }}</td> + <td>Selecciona un element que pot aparèixer després del contingut actiu de l'element originari.</td> + </tr> + <tr> + <td>{{ Cssxref("::before") }}</td> + <td>Selecciona un element que pot aparèixer abans del contingut actiu de l'element originari.</td> + </tr> + <tr> + <td>{{ Cssxref("::first-letter") }}</td> + <td>Selecciona la primera lletra de l'element.</td> + </tr> + <tr> + <td>{{ Cssxref("::first-line") }}</td> + <td>Selecciona la primera línia de l'element.</td> + </tr> + <tr> + <td>{{ Cssxref("::grammar-error") }}</td> + <td>Selecciona una part del document que conté un error de gramàtica que indica el navegador.</td> + </tr> + <tr> + <td>{{ Cssxref("::selection") }}</td> + <td>Selecciona la part del document seleccionat.</td> + </tr> + <tr> + <td>{{ Cssxref("::spelling-error") }}</td> + <td>Selecciona una part del document que conté un error d'ortografia que indica el navegador.</td> + </tr> + </tbody> +</table> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/selectors_css/selectors_atribut/index.html b/files/ca/learn/css/building_blocks/selectors_css/selectors_atribut/index.html new file mode 100644 index 0000000000..6ab61828f8 --- /dev/null +++ b/files/ca/learn/css/building_blocks/selectors_css/selectors_atribut/index.html @@ -0,0 +1,154 @@ +--- +title: Selectors d'atribut +slug: Learn/CSS/Building_blocks/Selectors_CSS/Selectors_atribut +translation_of: Learn/CSS/Building_blocks/Selectors/Attribute_selectors +--- +<p>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}</p> + +<p>Com ja saps a partir de l’estudi de l'HTML, els elements poden tenir atributs, que donen més detalls sobre l'element que s’etiqueta. En CSS pots utilitzar selectors d’atributs per a seleccionar elements que tenen uns atributs determinats. Aquest article et mostra com utilitzar aquests selectors tan útils.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (consulta <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Conèixer els selectors d’atributs i com utilitzar-los.</td> + </tr> + </tbody> +</table> + +<h2 id="Selectors_de_presència_i_de_valor">Selectors de presència i de valor</h2> + +<p>Aquests selectors permeten seleccionar un element només per la presència d’un atribut (per exemple <code>href</code>) o per diferents coincidències amb el valor de l’atribut.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Exemple</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>[<em>attr</em>]</code></td> + <td><code>a[title]</code></td> + <td>Selecciona elements que tenen com a nom d'atribut <em>attr</em> el valor entre claudàtors.</td> + </tr> + <tr> + <td><code>[<em>attr</em>=<em>value</em>]</code></td> + <td><code>a[href="https://example.com"]</code></td> + <td>Selecciona elements que tenen el nom d'atribut <em>attr</em>, el valor del qual sigui exactament la cadena de caràcters que hi ha entre cometes: <em>value</em>.</td> + </tr> + <tr> + <td><code>[<em>attr</em>~=<em>value</em>]</code></td> + <td><code>p[class~="special"]</code></td> + <td> + <p>Selecciona elements amb un nom d’atribut <em>attr</em> el valor del qual és exactament <em>value</em>, o elements que tenen un atribut <em>attr</em> que conté un o més valors, dels quals almenys un coincideix amb <em>value</em>.</p> + + <p>Observa que en una llista de diversos valors, els valors se separen amb espais en blanc.</p> + </td> + </tr> + <tr> + <td><code>[<em>attr</em>|=<em>value</em>]</code></td> + <td><code>div[lang|="zh"]</code></td> + <td>Selecciona elements que tenen un nom d’atribut <em>attr</em> que pot ser exactament <em>value</em> o que pot començar per <em>value</em> seguit immediatament d’un guionet.</td> + </tr> + </tbody> +</table> + +<p>En l'exemple següent pots veure que com es fan servir aquests selectors.</p> + +<ul> + <li>Utilitzant <code>li[class]</code> podem seleccionar qualsevol selector amb un atribut de classe. Això ho fa coincidir tot menys el primer element de la llista.</li> + <li><code>li[class="a"]</code> relaciona un selector amb una classe <code>a</code>, però no un selector amb una classe <code>a</code> amb una altra classe separada per un espai que sigui part del valor. Selecciona el segon element de llista.</li> + <li><code>li[class~="a"]</code> selecciona una classe <code>a</code>, però que també tingui un valor que contingui la classe <code>a</code> com a part d'una llista separada amb espais. Selecciona el segon i el tercer elements de la llista.</li> +</ul> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/attribute.html", '100%', 800)}}</p> + +<h2 id="Selectors_de_subcadena">Selectors de subcadena</h2> + +<p>Aquests selectors permeten obtenir una concordança més ajustada a partir de les subcadenes que conté el valor del teu atribut. Per exemple, si hi ha les classes <code>box-warning</code> i <code>box-error</code> i vols seleccionar tot el que comença amb la cadena «box-», pots seleccionar-les totes dues amb <code>[class^="box-"]</code>.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Selector</th> + <th scope="col">Exemple</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>[<em>attr</em>^=<em>value</em>]</code></td> + <td><code>li[class^="box-"]</code></td> + <td>Selecciona elements amb un nom d'atribut <em>attr</em> que conté la subcadena <em>value</em> al principi.</td> + </tr> + <tr> + <td><code>[<em>attr</em>$=<em>value</em>]</code></td> + <td><code>li[class$="-box"]</code></td> + <td>Selecciona elements amb un nom d’atribut <em>attr</em> que conté la subcadena <em>value</em> al final.</td> + </tr> + <tr> + <td><code>[<em>attr</em>*=<em> </em>]</code></td> + <td><code>li[class*="box"]</code></td> + <td>Relaciona elements amb un nom d'atribut <em>attr</em> que conté almenys una ocurrència de la subcadena <em>value</em> en qualsevol lloc de la cadena.</td> + </tr> + </tbody> +</table> + +<p>L’exemple següent mostra l'ús d'aquests selectors:</p> + +<ul> + <li><code>li[class^="a"]</code> selecciona qualsevol valor d'atribut que comença amb <code>a</code>; és a dir, selecciona els dos primers elements de la llista.</li> + <li><code>li[class$="a"]</code> selecciona qualsevol valor d'atribut que acaba amb <code>a</code>; és a dir, selecciona el primer i el tercer elements de la llista.</li> + <li><code>li[class*="a"]</code> selecciona qualsevol valor d'atribut en què <code>a</code> apareix en alguna part de la cadena, de manera que selecciona tots els elements de la nostra llista.</li> +</ul> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/attribute-substring.html", '100%', 800)}}</p> + +<h2 id="Distinció_entre_majúscules_i_minúscules">Distinció entre majúscules i minúscules</h2> + +<p>Si vols seleccionar els valors d'atribut tant si estan escrits en majúscules com en minúscules, pots utilitzar el valor <code>i</code> abans del claudàtor de tancament. Aquest indicador informa el navegador que els caràcters ASCII han de coincidir independentment de si les lletres són majúscules o minúscules. Sense aquest indicador, la correspondència entre els valors es farà segons les directrius del llenguatge del document pel que fa a la distinció entre majúscules i minúscules; en el cas de l'HTML, distingeix entre majúscules i minúscules.</p> + +<p>En l'exemple següent, el primer selector coincideix amb un valor que comença per <code>a</code>; només coincideix el primer element de la llista perquè els altres dos elements de la llista comencen amb una A majúscula. El segon selector no distingeix entre majúscules i minúscules, així que la correspondència és entre tots els elements de la llista.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/attribute-case.html", '100%', 800)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: També hi ha un valor <code>s</code> més recent, que imposa la coincidència de majúscules i les minúscules en contextos en què normalment no es dona; tanmateix, aquest valor encara no té gaire compatibilitat amb els navegadors i no resulta gaire útil en el context de l’HTML.</p> +</div> + +<h2 id="Propers_passos">Propers passos</h2> + +<p>Ara que hem acabat amb els selectors d’atribut, pots avançar cap a l’article següent sobre les <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements">pseudoclasses i els pseudoelements</a>.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/selectors_css/selectors_de_tipus_classe_i_id/index.html b/files/ca/learn/css/building_blocks/selectors_css/selectors_de_tipus_classe_i_id/index.html new file mode 100644 index 0000000000..2cdbdc244a --- /dev/null +++ b/files/ca/learn/css/building_blocks/selectors_css/selectors_de_tipus_classe_i_id/index.html @@ -0,0 +1,117 @@ +--- +title: 'Selectors de tipus, classe i ID' +slug: Learn/CSS/Building_blocks/Selectors_CSS/Selectors_de_tipus_classe_i_ID +translation_of: Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +--- +<p>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks")}}</p> + +<p>En aquest article farem un cop d’ull als selectors més senzills que hi ha disponibles, i que probablement utilitzaràs més a l'hora de treballar.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions bàsiques de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Obtenir més informació sobre els diferents selectors CSS que podem utilitzar per a aplicar CSS a un document.</td> + </tr> + </tbody> +</table> + +<h2 id="Selectors_de_tipus">Selectors de tipus</h2> + +<p>A vegades, a un <strong>selector de tipus</strong> també se'l denomina <em>selector de noms d'etiqueta</em> o <em>selector d'elements</em>, perquè selecciona una etiqueta/element HTML al document. En l’exemple següent hem utilitzat selectors <code>span</code>, <code>em</code> i <code>strong</code>. Per tant, hem aplicat estil a totes les instàncies <code><span></code>, <code><em></code> i <code><strong></code>.</p> + +<p><strong>Afegeix una regla CSS que seleccioni l’element <code><h1></code> i en canviï el color pel blau.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/type.html", '100%', 1100)}}</p> + +<h2 id="El_selector_universal">El selector universal</h2> + +<p>El selector universal s'indica amb un asterisc (<code>*</code>) i selecciona tot el que hi ha dins del document (o dins de l'element pare, si s'encadena amb un altre element i un combinador descendent, per exemple). En l'exemple següent hem utilitzat el selector universal per a eliminar els marges de tots els elements. Això vol dir que, en lloc de l'estil predeterminat que hi afegeix el navegador, que deixa un espai de marge entre els títols d’encapçalament i els paràgrafs, tot està junt i no podem distingir els diferents paràgrafs amb facilitat.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/universal.html", '100%', 750)}}</p> + +<p>Aquest tipus de comportament a vegades es pot veure en els «fulls d'estil de restabliment» (o «fulls d'estil <em>reset</em>»), que eliminen tot l'estil que aplica el navegador. Van ser molt populars en un moment determinat, tot i que eliminar tots els estils significava que aleshores havies de tornar-ho a fer tot! Per tant, acostumem a utilitzar el selector universal amb atenció per a afrontar situacions molt específiques, com la que es descriu a continuació.</p> + +<h3 id="Ús_del_selector_universal_per_a_facilitar_la_lectura">Ús del selector universal per a facilitar la lectura</h3> + +<p>Un dels usos del selector universal és fer els selectors més fàcils de llegir i més evidents, en termes de què fan. Per exemple, si vull seleccionar el primer fill de qualsevol element <code><article></code>, independentment de quin element sigui, i posar-lo en negreta, podem utilitzar el selector {{cssxref(":first-child")}}, que veurem amb més detall en l’article sobre <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements">pseudoclasses i pseudoelements</a>, com un selector descendent juntament amb el selector d'elements <code><article></code>:</p> + +<pre class="brush: css notranslate">article :first-child { + +}</pre> + +<p>Això es pot confondre, però, amb <code>article:first-child</code>, que selecciona qualsevol element <code><article></code> que sigui el primer fill d'un altre element.</p> + +<p>Per evitar aquesta confusió, podem afegir al selector <code>:first-child</code> el selector universal, de manera que ara resulta obvi el que fa el selector. Selecciona <em>qualsevol</em> element que sigui el primer fill d'un element <code><article></code>:</p> + +<pre class="brush: css notranslate">article *:first-child { + +} </pre> + +<h2 id="Selectors_de_classe">Selectors de classe</h2> + +<p>El selector de classe s’inicia amb un caràcter de punt (<code>.</code>) i selecciona qualsevol element del document que tingui aplicada la classe seleccionada. En l'exemple en directe següent hem creat una classe anomenada <code>.highlight</code> i l'hem aplicada a diversos llocs del document. Es ressalten tots els elements que tenen aplicada aquesta classe.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/class.html", '100%', 750)}}</p> + +<h3 id="Seleccionar_classes_en_elements_concrets">Seleccionar classes en elements concrets</h3> + +<p>Pots crear un selector que seleccioni els elements específics que tenen aplicada aquella classe. En l'exemple següent, destaquem un element <code><span></code> que té una classe <code>highlight</code> diferent del destacat que apliquem a l'encapçalament <code><h1></code> amb classe <code>highlight</code>. Ho fem adjuntant la classe al selector de tipus per a l’element que volem seleccionar, sense cap espai entremig.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/class-type.html", '100%', 750)}}</p> + +<p>Aquesta manera de seleccionar dificulta la reutilització de CSS, perquè la classe només s'aplica a aquest element en concret, i hauràs d'afegir un altre selector si decideixes que les regles s'han d'aplicar també a altres elements.</p> + +<h3 id="Seleccionar_un_element_si_té_aplicada_més_duna_classe">Seleccionar un element si té aplicada més d'una classe</h3> + +<p>Pots aplicar diverses classes a un element i seleccionar-les individualment, o bé seleccionar l'element només quan inclou totes les classes del selector. Això pot ser útil per a crear components que es poden combinar de maneres diferents al teu lloc web.</p> + +<p>En l'exemple següent hi ha un element <code><div></code> que inclou una nota. La vora gris s'aplica quan la casella té una classe <code>notebox</code>. Si també té una classe <code>warning</code> o <code>danger</code>, el {{cssxref("border-color")}} canvia.</p> + +<p>Podem dir-li al navegador que només volem fer coincidir l’element si té totes aquestes classes tot encadenant-les juntes sense espais entremig.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/class-many.html", '100%', 900)}}</p> + +<h2 id="Selectors_d’ID">Selectors d’ID</h2> + +<p>Un selector d’ID comença amb un caràcter <code>#</code> en lloc d'un caràcter de punt, però s'utilitza bàsicament de la mateixa manera que un selector de classe. Ara bé, un ID només es pot utilitzar una vegada en cada document, i cada element pot tenir un <code>id</code> com a màxim. El selector pot seleccionar l’element que té l’<code>id</code> establert i també pots precedir l'identificador amb un selector de tipus que seleccioni l’element només si coincideix amb l'ID. Pots veure aquests dos usos en l'exemple següent:</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/selectors/id.html", '100%', 750)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Tal com hem après en l’article que parla d'especificitat, un ID té més especificitat i anul·la la majoria dels altres selectors. Això pot dificultar les coses a l'hora de treballar. En la majoria dels casos és preferible afegir una classe a l'element, en lloc d'utilitzar un ID, però a vegades fer servir un ID és l'única manera de seleccionar l'element (potser perquè no es té accés al codi d’etiquetatge i, per tant, no es pot editar).</p> +</div> + +<h2 id="En_el_proper_article">En el proper article</h2> + +<p>Continuarem explorant els selectors i veurem els <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Selectors_atribut">selectors d’atribut</a>.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements en CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, media i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depurar el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/styling_tables/index.html b/files/ca/learn/css/building_blocks/styling_tables/index.html new file mode 100644 index 0000000000..21f96454d9 --- /dev/null +++ b/files/ca/learn/css/building_blocks/styling_tables/index.html @@ -0,0 +1,290 @@ +--- +title: Estils per taules +slug: Learn/CSS/Building_blocks/Styling_tables +tags: + - Article + - Beginner + - CSS + - CodingScripting + - Guide + - Styling + - Tables +translation_of: Learn/CSS/Building_blocks/Styling_tables +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Borders", "Learn/CSS/Styling_boxes/Advanced_box_effects", "Learn/CSS/Styling_boxes")}}</div> + +<p class="summary"><span id="result_box" lang="ca">Aplicar estil a una taula HTML no és la feina més glamurosa del món, però tots ho hem de fer en algun moment. Aquest article proporciona una guia d’aplicació d’estil a les taules HTML per a donar-los un aspecte presentable.</span></p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Conceptes bàsics d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), coneixements de taules HTML (consulta el mòdul de taules HTML (TBD)) i nocions de com funciona el CSS (consulta la <a href="/ca/docs/Learn/HTML/Taules_HTML">Introducció al CSS</a>.)</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a aplicar estil a una taula HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Una_taula_HTML_típica"><span id="result_box" lang="ca"><span>Una taula HTML típica</span></span></h2> + +<p>Comencem amb una taula HTML típica. Bé, diem que és típica, tot i que la majoria d'exemples de taula HTML són sobre sabates, dades climàtiques o empleats, i nosaltres, en canvi, hem decidit fer-ne una de més interessant, sobre bandes punk famoses del Regne Unit. El codi d’etiquetatge presenta aquesta aspecte:</p> + +<pre class="brush: html notranslate"><table summary="The most famous UK punk bands"> + <caption>A summary of the UK's most famous punk bands</caption> + <thead> + <tr> + <th scope="col">Band</th> + <th scope="col">Year formed</th> + <th scope="col">No. of Albums</th> + <th scope="col">Most famous song</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Buzzcocks</th> + <td>1976</td> + <td>9</td> + <td>Ever fallen in love (with someone you shouldn't've)</td> + </tr> + <tr> + <th scope="row">The Clash</th> + <td>1976</td> + <td>6</td> + <td>London Calling</td> + </tr> + + ... some rows removed for brevity + + <tr> + <th scope="row">The Stranglers</th> + <td>1974</td> + <td>17</td> + <td>No More Heroes</td> + </tr> + </tbody> + <tfoot> + <tr> + <th scope="row" colspan="2">Total albums</th> + <td colspan="2">77</td> + </tr> + </tfoot> +</table></pre> + +<p>El codi d’etiquetatge de la taula és correcte, permet aplicar-hi estil sense problemes i és accessible, gràcies a funcions com {{htmlattrxref("scope","th")}}, {{htmlelement("caption")}}, {{htmlattrxref("summary","table")}}, {{htmlelement("thead")}}, {{htmlelement("tbody")}}, etc. Malauradament, presenta un aspecte poc agradable quan es representa a la pantalla (observa-la en viu en el fitxer <a href="http://mdn.github.io/learning-area/css/styling-boxes/styling-tables/punk-bands-unstyled.html">punk-bands-unstyled.html</a>):</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13064/table-unstyled.png" style="display: block; margin: 0 auto;"></p> + +<p>Amb l’estil per defecte que hi aplica el navegador, la taula presenta un aspecte atapeït i poc llegible, i resulta més aviat avorrida. Per a posar-hi remei, hem d'utilitzar una mica de CSS.</p> + +<h2 id="Aprenentatge_actiu_Aplica_estil_a_la_taula">Aprenentatge actiu: Aplica estil a la taula</h2> + +<p>En aquesta secció d'aprenentatge actiu, treballarem junts per a aplicar estil a la nostra taula d’exemple.</p> + +<ol> + <li>Per començar, fes una còpia local del fitxer amb el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/styling-tables/punk-bands-unstyled.html">codi d’etiquetatge d'exemple</a>, descarrega’t les dues imatges (<a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/styling-tables/noise.png">noise</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/styling-tables/leopardskin.jpg">leopardskin</a>), i posa els tres fitxers resultants en un directori de treball en algun lloc del teu ordinador local.</li> + <li>A continuació, crea un fitxer nou anomenat <code>style.css</code> i desa’l al mateix directori que els altres fitxers.</li> + <li>Enllaça el CSS amb l'HTML, i posa-hi la línia de codi HTML següent dins de l’element {{htmlelement("head")}}: + <pre class="brush: html notranslate"><link href="style.css" rel="stylesheet" type="text/css"></pre> + </li> +</ol> + +<h3 id="Espaiat_i_disseny">Espaiat i disseny</h3> + +<p>El primer que cal és organitzar l'espaiat i el disseny, perquè l'estil de taula predeterminat és molt atapeït. Afegeix, doncs, el codi CSS següent al teu fitxer <code>style.css</code>:</p> + +<pre class="brush: css notranslate">/* spacing */ + +table { + table-layout: fixed; + width: 100%; + border-collapse: collapse; + border: 3px solid purple; +} + +thead th:nth-child(1) { + width: 30%; +} + +thead th:nth-child(2) { + width: 20%; +} + +thead th:nth-child(3) { + width: 15%; +} + +thead th:nth-child(4) { + width: 35%; +} + +th, td { + padding: 20px; +}</pre> + +<p><span id="result_box" lang="ca"><span>Les parts més importants que destaquem són les següents:</span></span></p> + +<ul> + <li>Assignar el valor <code>fixed</code> a la propietat {{cssxref("table-layout")}} de la taula en general és una bona idea perquè fa el comportament per defecte de la taula més previsible. Normalment, les columnes de la taula adquireixen una mida segons la quantitat de contingut que inclouen, i això pot provocar resultats estranys. Amb la propietat <code>table-layout: fixed</code> pots donar a les columnes una mida segons l'amplada de les capçaleres, i a continuació tractar-ne el contingut com sigui necessari. Per aquest motiu hem seleccionat les quatre capçaleres amb el selector <code>thead th:nth-child(<em>n</em>)</code> ({{cssxref(":nth-child")}}) («selecciona l’<em>n</em>-èsim fill d’una seqüència que és un element {{htmlelement("th")}} que hi ha dins d'un element {{htmlelement("thead")}}») i els hem assignat una amplada en percentatge. L'amplada de la columna sencera segueix l'amplada de la capçalera, de manera que és una bona manera de configurar la mida de les columnes de la taula. Chris Coyier analitza aquesta tècnica amb més detall en <a href="https://css-tricks.com/fixing-tables-long-strings/">Fixed table layouts</a>.<br> + <br> + Hem emparellat això amb una amplada ({{cssxref("width")}}) del 100%, que significa que la taula ocuparà tota l’amplada del contenidor en què estigui continguda i serà molt adaptativa (tot i que encara t’ho hauries de treballar una mica si vols aconseguir que la taula presenti un bon aspecte amb amplades de pantalla estretes).</li> + <li>Assignar un valor <code>collapse</code> a la propietat {{cssxref ("border-collapse")}} és una bona pràctica habitual en qualsevol intent d’aplicació d’estil a una taula. Quan es configuren les vores dels elements de la taula, per defecte totes deixen un espai entre elles, com es mostra a la imatge següent: <img alt="" src="https://mdn.mozillademos.org/files/13068/no-border-collapse.png" style="display: block; margin: 0 auto;">Això no resulta gaire agradable (o potser és l'aspecte que cerques, qui sap?). Amb la declaració <code>border-collapse: collapse;</code>, les vores s’ajunten en una de sola, i l’aspecte és més polit: <img alt="" src="https://mdn.mozillademos.org/files/13066/border-collapse.png" style="display: block; margin: 0 auto;"></li> + <li>Hem afegit una vora ({{cssxref("border")}}) al voltant de tota la taula, i més endavant també posarem vores al voltant de la capçalera de la taula i del peu de pàgina; ho fem perquè fa molt estrany si no hi ha una vora exterior que englobi tota la taula; pot resultar descontextualitzada i poden quedar-hi buits.</li> + <li>Hem establert una mica de farciment ({{cssxref("padding")}}) en els elements {{htmlelement("th")}} i {{htmlelement("td")}}; això proporciona als elements de dades un espai perquè respirin, i millora força la llegibilitat de la taula.</li> +</ul> + +<p>En aquest punt, la nostra taula presenta un aspecte molt més polit:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13070/table-with-spacing.png" style="display: block; margin: 0 auto;"></p> + +<h3 id="Una_mica_de_tipografia_senzilla">Una mica de tipografia senzilla</h3> + +<p>Ara organitzarem una mica el nostre text.</p> + +<p>En primer lloc hem trobat un tipus de lletra a <a href="https://www.google.com/fonts">Google Fonts</a> que resulta adequat per a una taula sobre bandes punk. Si vols, hi pots anar i triar-ne una altra; només cal que substitueixis l'element {{htmlelement("link")}} que et proporcionem i la declaració {{cssxref("font-family")}} personalitzada que Google Fonts et proporciona.</p> + +<p>Afegeix l’element {{htmlelement("link")}} següent a la capçalera (<code>head</code>) de l’HTML, just a sobre de l'element <code><link></code>:</p> + +<pre class="brush: html notranslate"><link href='https://fonts.googleapis.com/css?family=Rock+Salt' rel='stylesheet' type='text/css'></pre> + +<p><span id="result_box" lang="ca">A continuació afegeix al teu fitxer <code>style.css</code> el CSS següent, a sota del que has afegit abans</span>:</p> + +<pre class="brush: css notranslate">/* typography */ + +html { + font-family: 'helvetica neue', helvetica, arial, sans-serif; +} + +thead th, tfoot th { + font-family: 'Rock Salt', cursive; +} + +th { + letter-spacing: 2px; +} + +td { + letter-spacing: 1px; +} + +tbody td { + text-align: center; +} + +tfoot th { + text-align: right; +}</pre> + +<p>Fins aquí no hi ha res que sigui específicament de taules; en general, configurem un estil de lletra que en faciliti la lectura:</p> + +<ul> + <li>Hem configurat una llista de tipus de lletra sans-serif per al text general; aquesta elecció és purament d’estil. També hem configurat el tipus de lletra personalitzat per als elements de capçalera {{htmlelement("thead")}} i {{htmlelement("tfoot")}}, que hi dona un simpàtic aspecte <em>grungy punky</em>.</li> + <li>Hem establert un espai d’interlineat ({{cssxref("letter-spacing")}}) a les capçaleres i les cel·les, perquè creiem que afavoreix la llegibilitat. Una vegada més, es tracta sobretot d’una qüestió d’estil.</li> + <li>Hem centrat el text de les cel·les de la taula que hi ha dins de {{htmlelement("tbody")}} perquè estiguin alineats amb els de les capçaleres, perquè de manera predeterminada les cel·les tenen assignat un valor {{cssxref("text-align")}} <code>left</code>, i les capçaleres un valor <code>center</code>; però en general sembla que té un aspecte més agradable si els textos dels dos tipus d’element estan alineats de la mateixa manera; el gruix de la negreta que té la lletra de les capçaleres per defecte és prou per a diferenciar-ne l'aspecte.</li> + <li>Hem alineat a la dreta el text de la capçalera {{htmlelement("tfoot")}} perquè tingui una associació visual més adequada amb la dada que s’hi correspon.</li> +</ul> + +<p>El resultat presenta un aspecte una mica més net:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13072/table-with-typography.png" style="display: block; margin: 0 auto;"></p> + +<h3 id="Gràfics_i_colors"><span id="result_box" lang="ca">Gràfics i colors</span></h3> + +<p>Ara passem als gràfics i els colors! Com que la taula desprèn un aire i una actitud punk, hi hem de donar un potent estil marcat. Ara bé, no totes les teves taules hauran de tenir un aspecte tan extrem, també pots fer alguna cosa més subtil i amb més bon gust.</p> + +<p>Comença per afegir al teu fitxer <code>style.css</code> el CSS següent, també al final de tot:</p> + +<pre class="brush: css notranslate">thead, tfoot { + background: url(leopardskin.jpg); + color: white; + text-shadow: 1px 1px 1px black; +} + +thead th, tfoot th, tfoot td { + background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.5)); + border: 3px solid purple; +} +</pre> + +<p>Fins aquí tampoc no hi ha res que sigui específicament de taules, però val la pena observar alguns aspectes.</p> + +<p>Hem afegit una imatge de fons amb la propietat {{cssxref("background-image")}} a les capçaleres {{htmlelement("thead")}} i {{htmlelement("tfoot")}} i hem canviat el color ({{cssxref("color")}}) de tot el text de les capçaleres i el peu de pàgina pel blanc (i hi hem afegit una ombra amb {{cssxref("text-shadow")}}), i així resulta més llegible. Sempre t’has d’assegurar que el text contrasta prou amb el fons i es pot llegir bé.</p> + +<p>També hem afegit un degradat lineal en els elements {{htmlelement("th")}} i {{htmlelement ("td")}} de les capçaleres i el peu de pàgina per a obtenir-hi una mica de textura, i hem donat a aquests elements una fantàstica vora porpra. Resulta útil disposar diversos elements imbricats i poder superposar els estils de capa un damunt de l'altre. Sí, hauríem pogut posar la imatge de fons i el degradat lineal dels elements {{htmlelement("thead")}} i {{htmlelement("tfoot")}} amb la tècnica de les múltiples imatges de fons, però hem decidit fer-ho per separat perquè els navegadors antics no admeten imatges de fons múltiples ni degradats lineals.</p> + +<h4 id="Ratlles_de_zebra">Ratlles de zebra</h4> + +<p>Hem volgut dedicar una secció independent a mostrar-te com s’implementen les <strong>ratlles de zebra</strong> (<strong>zebra stripes)</strong>, que alternen files de color que faciliten l’anàlisi i la llegibilitat de les diferents files de dades de la taula. Afegeix el CSS següent a la part inferior del teu fitxer <code>style.css</code>:</p> + +<pre class="brush: css notranslate">tbody tr:nth-child(odd) { + background-color: #ff33cc; +} + +tbody tr:nth-child(even) { + background-color: #e495e4; +} + +tbody tr { + background-image: url(noise.png); +} + +table { + background-color: #ff33cc; +}</pre> + +<ul> + <li>Abans has vist el selector {{cssxref(":nth-child")}}, que hem utilitzat per a seleccionar elements fills específics. També hi pots donar una fórmula com a paràmetre, i aleshores es selecciona una seqüència d'elements. La fórmula <code>2n-1</code> seleccionaria tots els fills imparells (1, 3, 5, etc.), i la fórmula <code>2n</code> seleccionaria tots els fills parells (2, 4, 6, etc.). En el nostre codi hem utilitzat les paraules clau <code>odd</code> i <code>even</code>, que fan exactament el mateix que aquelles fórmules. En aquest cas, donem a les files parelles i imparelles uns (esborronadors) colors diferents.</li> + <li>També hem afegit un mosaic de fons que es repeteix en totes les files del cos; només una mica de soroll (un <code>.png</code> semitransparent amb un xic de distorsió visual) que proporciona un pèl de textura.</li> + <li>Per acabar, hem donat a la taula sencera un color de fons sòlid perquè els navegadors que no admeten el selector <code>:nth-child</code> encara tinguin un fons per a les files del cos.</li> +</ul> + +<p>Aquesta explosió de color dona com a resultat el següent:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13074/table-with-color.png" style="display: block; margin: 0 auto;"></p> + +<p>Bé, això podria resultar una mica excessiu i pot ser que no sigui del tot del teu gust, però el punt que volem tractar aquí és que les taules no tenen per què ser avorrides ni acadèmiques.</p> + +<h3 id="Aplicar_estil_al_títol_caption">Aplicar estil al títol (<em>caption</em>)</h3> + +<p>Encara podem fer una darrera cosa amb la nostra taula, aplicar estil al títol (<em>caption</em>). Afegeix el CSS següent a la part inferior del fitxer <code>style.css</code>:</p> + +<pre class="brush: css notranslate">caption { + font-family: 'Rock Salt', cursive; + padding: 20px; + font-style: italic; + caption-side: bottom; + color: #666; + text-align: right; + letter-spacing: 1px; +}</pre> + +<p>Aquí no hi ha res d’excepcional, tret de la propietat {{cssxref("caption-side")}}, a la qual hem donat un valor <code>bottom</code>. Això posa el títol (<em>caption</em>) a la part inferior de la taula, i amb les altres declaracions ens ofereix aquest aspecte final (consulta-ho en directe en el fitxer <a href="http://mdn.github.io/learning-area/css/styling-boxes/styling-tables/punk-bands-complete.html">punk-bands-complete.html</a>):</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13076/table-with-caption.png" style="display: block; height: 357px; margin: 0px auto; width: 723px;"></p> + +<h2 id="Aprenentatge_actiu_Dissenya_la_teva_taula">Aprenentatge actiu: Dissenya la teva taula</h2> + +<p>En aquest punt, volem que prenguis el nostre HTML d'exemple (o fes-ne servir un de teu propi) i aplica-hi estil per a obtenir alguna cosa no tan cridanera i més refinada que la nostra taula.</p> + +<h2 id="Consells_ràpids_d’aplicació_d’estil_a_una_taula">Consells ràpids d’aplicació d’estil a una taula</h2> + +<p>Abans de continuar, hem pensat de proporcionar-te una llista breu dels punts més útils que hem exposat a dalt:</p> + +<ul> + <li>Fes el codi d’etiquetatge de la taula tan senzill com sigui possible i empra estructures de comportament flexible (p. ex., utilitza percentatges) per a aconseguir un disseny adaptatiu.</li> + <li>Aconsegueix un comportament de la taula més previsible amb la declaració {{cssxref("table-layout")}}<code>: fixed</code>, que et permet establir amb facilitat les amplades de columna a partir de configurar l’amplada ({{cssxref("width")}}) de les capçaleres ({{htmlelement ("th")}}).</li> + <li>Fes servir la declaració {{cssxref("border-collapse")}}<code>: collapse</code> per a ajuntar les vores dels elements de la taula en una sola línia i aconseguir un aspecte més net i fàcil de controlar.</li> + <li>Utilitza els elements {{htmlelement("thead")}}, {{htmlelement("tbody")}} i {{htmlelement("tfoot")}} per a dividir la taula en blocs lògics i obtenir més elements en què aplicar CSS, que et permetin aplicar estils per capes i sobreposar-les les unes sobre les altres, si cal.</li> + <li>Fes servir ratlles de zebra en files alternatives per a millorar la llegibilitat.</li> + <li>Utilitza la propietat {{cssxref("text-align")}} per a alinear el text dels elements {{htmlelement("th")}} i {{htmlelement("td")}}, i obtenir un aspecte més net i endreçat.</li> +</ul> + +<h2 id="Resum">Resum</h2> + +<p>Ara que deixem enrere l’aplicació d’estil a les taules, hem d’ocupar el temps en una altra cosa. L’article següent explica com depurar el CSS, com resoldre problemes com ara dissenys de pàgines web que no presenten l’aspecte que se n’espera, o propietats que no s’apliquen quan creus que ho haurien de fer.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Borders", "Learn/CSS/Styling_boxes/Advanced_box_effects", "Learn/CSS/Styling_boxes")}}</p> diff --git a/files/ca/learn/css/building_blocks/the_box_model/index.html b/files/ca/learn/css/building_blocks/the_box_model/index.html new file mode 100644 index 0000000000..e0d11e7e76 --- /dev/null +++ b/files/ca/learn/css/building_blocks/the_box_model/index.html @@ -0,0 +1,343 @@ +--- +title: El model de caixa +slug: Learn/CSS/Building_blocks/The_box_model +translation_of: Learn/CSS/Building_blocks/The_box_model +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}</div> + +<p>Tot el que hi ha en CSS té una caixa que ho envolta, i entendre aquestes caixes és clau per a poder crear dissenys amb CSS o alinear els elements amb altres elements. En aquest article analitzarem adequadament el <em>model de caixes CSS</em> perquè puguis dur a terme tasques de disseny de pàgines web més complexes amb una bona comprensió de la manera com funcionen, i en coneixerem la terminologia relacionada.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de com funciona el CSS (consulta els <a href="/ca/docs/Learn/CSS/First_steps">Primers passos amb CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir més informació sobre el model de caixes del CSS, què compon el model de caixes i com canviar al model de caixes alternatiu.</td> + </tr> + </tbody> +</table> + +<h2 id="Caixes_en_bloc_i_en_línia">Caixes en bloc i en línia</h2> + +<p>En CSS en general hi ha dos tipus de caixes: <strong>caixes de bloc</strong> i <strong>caixes de línia</strong>. Aquestes característiques fan referència a com es comporta la caixa en termes de flux de pàgina i en relació amb altres caixes de la pàgina:</p> + +<p>Si una caixa es defineix com un bloc, es comporta de les maneres següents:</p> + +<ul> + <li>La caixa crea un salt de línia i genera una línia nova.</li> + <li>La caixa s’estén en la direcció de la línia i omple tot l’espai disponible de l’element que la conté. En la majoria dels casos, això significa que la caixa s’amplia tant com el seu contenidor i omple el 100% de l’espai disponible.</li> + <li>Es respecten les propietats d’amplada ({{cssxref("width")}}) i alçada ({{cssxref("height")}}).</li> + <li>El farciment, el marge i la vora allunyen la caixa de la resta d’elements.</li> +</ul> + +<p>Si no és que decidim canviar el tipus de visualització a <code>inline</code> (en línia), els elements com ara els títols d’encapçalament (per exemple, <code><h1></code>) o els paràgrafs, <code><p></code>, utilitzen per defecte el tipus de visualització <code>block</code>.</p> + +<p>Si una caixa té un tipus de visualització exterior <code>inline</code>, llavors:</p> + +<ul> + <li>La caixa no crea un salt de línia i no genera una línia nova.</li> + <li>Les propietats {{cssxref("width")}} i {{cssxref("height")}} no s'apliquen.</li> + <li>El farciment, el marge i les vores verticals s’apliquen, però no fan que la resta de caixes en línia s'allunyin.</li> + <li>El farciment, el marge i les vores horitzontals s’apliquen i fan que la resta de caixes en línia s'allunyin.</li> +</ul> + +<p>Els elements <code><a></code>, que s’usa per als enllaços, <code><span></code>, <code><em></code> i <code><strong></code> són altres exemples d’elements que es mostren en línia per defecte.</p> + +<p>El tipus de caixa que s’aplica a un element està definit pels valors de la propietat {{cssxref("display")}}, com <code>block</code> i <code>inline</code>, i es relaciona amb el valor <strong>exterior</strong> (<em>outer</em>) de <code>display</code>.</p> + +<h2 id="A_part_tipus_de_visualització_interior_i_exterior">A part: tipus de visualització interior i exterior</h2> + +<p>Aquest és un bon moment per explicar també els tipus de visualització <strong>inner</strong> i <strong>outer</strong>. Com ja hem esmentat, les caixes CSS tenen un tipus de visualització <em>outer</em> (exterior), que especifica si la caixa es comporta com un element de bloc o de línia.</p> + +<p>Les caixes també tenen un tipus de visualització <em>interna</em> (<em>inner</em>), que determina com es disposen els elements dins d'aquesta caixa. Per defecte, els elements que hi ha a l’interior d’una caixa es disposen segons el <strong><a href="/ca/docs/Learn/CSS/Disseny_CSS/Flux_normal">flux normal</a></strong>, que significa que es comporten igual que qualssevol altres elements de bloc i de línia (com s’explica més amunt).</p> + +<p>Tanmateix, podem canviar el tipus de visualització <code>inner</code> (interior) amb els valors de <code>display</code>, com ara <code>flex</code>. Si en un element establim <code>display: flex;</code>, el tipus de visualització <code>outer</code> (exterior) és <code>block</code>, però el tipus de visualització <code>inner</code> es canvia per <code>flex</code>. Els fills directes d’aquesta caixa es converteixen en elements flexibles i es disposen d’acord amb les regles que s’especifiquen en les especificacions de <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flexbox">Flexbox</a>, que veurem més endavant.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Per obtenir més informació sobre els valors de la visualització i sobre com funcionen les caixes de bloc i de línia, consulta la guia MDN per a les <a href="/en-US/docs/Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow">Disposicions de bloc i de línia</a>.</p> +</div> + +<p>Quan avancis a l'article Disseny de pàgines web amb CSS, trobaràs <code>flex</code> i els diversos valors <code>inner</code> que pots donar a les teves caixes, per exemple, <code><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">grid</a></code>.</p> + +<p>Tanmateix, la disposició de bloc i de línia és la manera com es comporten les coses a la web per defecte. Com hem dit abans, de vegades es coneix com el <em>flux normal</em>, perquè sense cap altra instrucció, les nostres caixes es comporten com elements de bloc o de línia.</p> + +<h2 id="Exemples_de_diferents_tipus_de_visualització">Exemples de diferents tipus de visualització</h2> + +<p>Avancem i donem una ullada a uns quants exemples. A continuació es mostren tres elements HTML diferents, tots ells amb una visualització exterior de tipus <code>block</code>. El primer és un paràgraf amb una vora que s’ha afegit amb CSS. El navegador el representa com una caixa amb un comportament de tipus bloc, de manera que el paràgraf comença en una línia nova i ocupa tota l'amplada disponible.</p> + +<p>El segon és una llista amb una disposició de tipus <code>display: flex</code>, que estableix una disposició de tipus flex per als elements de dins del contenidor, però la llista en si mateixa és una caixa que té un comportament de tipus bloc i, com el paràgraf, ocupa tota l’amplada del contenidor i crea un salt de línia que genera una línia nova.</p> + +<p>A sota hi ha un paràgraf a nivell de bloc, dins del qual hi ha dos elements <code><span></code>. Aquests elements normalment tindrien un comportament de tipus <code>inline</code>, però un dels elements té una classe amb comportament de tipus bloc i l'hem configurada amb la declaració <code>display: block</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/block.html", '100%', 1000)}} </p> + +<p>Podem observar com es comporten els elements <code>inline</code> en l'exemple següent. Els elements <code><span></code> del primer paràgraf són elements de línia per defecte i no creen salts de línia nous.</p> + +<p>També hi ha un element <code><ul></code> que es pot configurar amb <code>display: inline-flex</code>, que crea una caixa amb comportament de línia al voltant d'alguns elements de tipus flex.</p> + +<p>Per acabar, hi ha dos paràgrafs configurats amb <code>display: inline</code>. El contenidor de línia amb comportament flex i els paràgrafs es combinen en una sola línia, en lloc de generar línies noves, com ho farien si es configuraven com elements de bloc.</p> + +<p><strong>En l'exemple pots alternar entre aquests modes de visualització si canvies de <code>display: inline</code> a <code>display: block</code> o de <code>display: inline-flex</code> a <code>display: flex</code>.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/inline.html", '100%', 1000)}} </p> + +<p>En articles posteriors trobaràs coses com ara el comportament de tipus flex; de moment has de recordar que canviar el valor de la propietat <code>display</code> pot canviar el tipus de visualització exterior d’una caixa del comportament de bloc al de línia, i això canvia la manera com es distribueix al costat d’altres elements en la composició de la pàgina web.</p> + +<p>A la resta de l’article ens centrarem en el tipus de visualització exterior.</p> + +<h2 id="Què_és_el_model_de_caixes_de_CSS">Què és el model de caixes de CSS?</h2> + +<p>El model complet de caixes CSS s'aplica a les caixes amb comportament de bloc; les caixes amb comportament de línia només utilitzen una mica del comportament definit en el model de caixes. El model defineix com funcionen conjuntament les diferents parts que constitueixen una caixa (el marge, la vora, el farciment i el contingut) per a crear una caixa que pots veure a la pàgina web. Per complicar-ho encara una mica més, hi ha un model de caixes estàndard i un model de caixes alternatiu.</p> + +<h3 id="Parts_duna_caixa">Parts d'una caixa</h3> + +<p>Per crear una caixa amb comportament de bloc amb CSS tenim:</p> + +<ul> + <li>El <strong>contingut de la caixa</strong> (o <em>content box</em>): L'àrea on es mostra el contingut, que es pot dimensionar amb propietats com {{cssxref("width")}} i {{cssxref("height")}}.</li> + <li>El <strong>farciment de la caixa</strong> (o <em>padding box</em>): El farciment s’ubica al voltant del contingut com un espai en blanc; la mida es pot controlar amb la propietat {{cssxref("padding")}} i d’altres de relacionades.</li> + <li>La <strong>vora de la caixa</strong> (o <em>border box</em>): La vora envolta el contingut i el farciment. La mida i l’estil es poden controlar amb la propietat {{cssxref("border")}} i d’altres de relacionades.</li> + <li>El <strong>marge de la caixa</strong> (o <em>margin box</em>): El marge és la capa més externa, embolica el contingut, el farciment i la vora com espai en blanc entre la caixa i la resta d’elements. La mida es pot controlar amb la propietat {{cssxref("margin")}} i d’altres de relacionades.</li> +</ul> + +<p>El diagrama següent mostra aquestes capes:</p> + +<p><img alt="Diagrama del model de caixes" src="https://mdn.mozillademos.org/files/16558/box-model.png" style="height: 300px; width: 544px;"></p> + +<h3 id="El_model_de_caixes_CSS_estàndard">El model de caixes CSS estàndard</h3> + +<p>En el model de caixes estàndard, si es dona a la caixa els atributs <code>width</code> i <code>height</code>, això defineix l'amplada i l'alçada del <em>contingut de la caixa</em>. A continuació s'afegeix a l'amplada i l'alçada qualsevol farciment i vora, i això dona la mida total de la caixa. Això es mostra a la imatge de sota.</p> + +<p>Suposem que la caixa té el CSS definit pels atributs <code>width</code>, <code>height</code>, <code>margin</code>, <code>border</code> i <code>padding</code> següents:</p> + +<pre class="brush: css notranslate">.box { + width: 350px; + height: 150px; + margin: 10px; + padding: 25px; + border: 5px solid black; +} +</pre> + +<p>L’espai que ocupa la nostra caixa segons el model de caixa estàndard és de 410 px (350 + 25 + 25 + 5 + 5) i l’alçada de 210 px (150 + 25 + 25 + 5 + 5), perquè l'àrea de farciment i la vora s'afegeixen a l'amplada útil que la caixa utilitza per al contingut.</p> + +<p><img alt="Exemple de mida d’una caixa en el model de caixa estàndard." src="https://mdn.mozillademos.org/files/16559/standard-box-model.png" style="height: 300px; width: 500px;"></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: El marge no compta per a la mida real de la caixa: òbviament afecta l’espai total que la caixa ocupa en la pàgina, però només l’espai de fora de la caixa. L’àrea de la caixa arriba fins a la vora: no s’estén fins al marge.</p> +</div> + +<h3 id="El_model_de_caixes_CSS_alternatiu">El model de caixes CSS alternatiu</h3> + +<p>Pots pensar que resulta una mica incòmode haver de sumar la vora i el farciment per a obtenir la mida real de la caixa, i tens raó! Per aquest motiu, el CSS va introduir un model de caixes alternatiu poc després de crear el model de caixes estàndard. Amb aquest model, qualsevol amplada de caixa és l'amplada de caixa visible en la pàgina; per tant, l'amplada de l'àrea de contingut és aquella amplada menys les amplades del farciment i de la vora. El mateix CSS que hem fet servir en l'exemple anterior donaria el resultat següent (amplada = 350 px, alçada = 150 px).</p> + +<p><img alt="Exemple de mida de caixa quan s’utilitza el model de caixes alternatiu." src="https://mdn.mozillademos.org/files/16557/alternate-box-model.png" style="height: 240px; width: 440px;"></p> + +<p>Per defecte, els navegadors utilitzen el model de caixes estàndard. Si vols activar el model alternatiu per a un element, ho pots fer amb la configuració de <code>box-sizing: border-box</code>. Amb això dius al navegador que prengui la vora de la caixa com la zona definida per totes les mides que has definit.</p> + +<pre class="brush: css notranslate"><code>.box { + box-sizing: border-box; +} </code></pre> + +<p>Si vols que tots els teus elements utilitzin el model de caixes alternatiu, elecció habitual entre els desenvolupadors, configura la propietat <code>box-sizing</code> en l’element <code><html></code>, i a continuació configura tots els altres elements perquè heretin aquest valor, com es veu en l'exemple següent. Si vols entendre el concepte que hi ha al darrere, consulta l'article <a href="https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/">sobre trucs de CSS sobre les mides de les caixes</a>.</p> + +<pre class="brush: css notranslate"><code class="language-css"><span class="selector token">html</span> <span class="punctuation token">{</span> + <span class="property token">box-sizing</span><span class="punctuation token">:</span> border-box<span class="punctuation token">;</span> +<span class="punctuation token">}</span> +<span class="selector token">*, *<span class="pseudo-element token">::before</span>, *<span class="pseudo-element token">::after</span></span> <span class="punctuation token">{</span> + <span class="property token">box-sizing</span><span class="punctuation token">:</span> inherit<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Una dada curiosa és que Internet Explorer solia treballar per defecte amb el model de caixes alternatiu i no tenia cap mecanisme disponible per canviar-lo.</p> +</div> + +<h2 id="Jugar_amb_els_models_de_caixes">Jugar amb els models de caixes</h2> + +<p>En l’exemple següent pots veure dues caixes. Totes dues tenen una classe <code>.box</code>, que els proporciona els mateixos valors de <code>width</code>, <code>height</code>, <code>margin</code>, <code>border</code> i <code>padding</code>. L’única diferència és que la segona caixa s’ha configurat perquè utilitzi el model de caixes alternatiu.</p> + +<p><strong>Pots canviar la mida de la segona caixa (afegint CSS a la classe <code>.alternate</code>) i fer-la coincidir amb l'alçada i l'amplada de la primera caixa?</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/box-models.html", '100%', 1000)}} </p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar la solució d’aquesta activitat <a href="https://github.com/mdn/css-examples/blob/master/learn/solutions.md#the-box-model">aquí</a>.</p> +</div> + +<h3 id="Utilitza_les_DevTools_del_navegador_per_veure_el_model_de_caixes">Utilitza les DevTools del navegador per veure el model de caixes</h3> + +<p>Les <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">eines de desenvolupador dels navegadors</a> poden facilitar la comprensió del model de caixes. Si inspecciones un element amb les DevTools del Firefox, pots veure la mida que té l’element, i el marge, l’àrea de farciment i la vora. Fer una inspecció com aquesta d’un element és una bona manera de saber si la caixa té realment la mida que et penses que té.</p> + +<p><img alt="Inspecció d’un element segons el model de caixes amb Firefox DevTools" src="https://mdn.mozillademos.org/files/16560/box-model-devtools.png" style="height: 683px; width: 1150px;"></p> + +<h2 id="Marges_farciments_i_vores">Marges, farciments i vores</h2> + +<p>Ja has vist les propietats {{cssxref("margin")}}, {{cssxref("padding")}} i {{cssxref("border")}} en l'exemple anterior. En aquest exemple utilitzem les propietats abreviades, que ens permeten establir els quatre costats de la caixa alhora. Aquestes propietats abreviades també tenen propietats equivalents sense abreviar, que permeten controlar els diferents costats de la caixa individualment.</p> + +<p>Explorem aquestes propietats amb més detall.</p> + +<h3 id="Marges">Marges</h3> + +<p>El marge és un espai invisible que hi ha al voltant de la caixa. Manté la resta d’elements lluny de la caixa. Els marges poden tenir valors positius o negatius. Si estableixes un marge negatiu en un costat de la caixa, altres elements de la caixa s’hi poden superposar. Tant si utilitzes el model de caixes estàndard com el model alternatiu, el marge se suma sempre a la mida especificada per a la caixa visible.</p> + +<p>Podem controlar tots els marges d’un element alhora amb la propietat {{cssxref("margin")}}, o bé per cada costat de manera individual amb les propietats equivalents:</p> + +<ul> + <li>{{cssxref("margin-top")}}</li> + <li>{{cssxref("margin-right")}}</li> + <li>{{cssxref("margin-bottom")}}</li> + <li>{{cssxref("margin-left")}}</li> +</ul> + +<p><strong>Prova de canviar els valors del marge en l’exemple següent i observa com s’empeny la caixa a causa de l’espai que es crea o s’elimina (si és un marge negatiu) entre aquest element i l’element que conté.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/margin.html", '100%', 1000)}} </p> + +<h4 id="Col·lapse_del_marge">Col·lapse del marge</h4> + +<p>Un punt clau per a entendre els marges és el concepte de col·lapse del marge. Quan els marges de dos elements es toquen, es combinen i es converteixen en un sol marge, que és la mida del marge més gran. Si un dels negatius (o ho són tots dos), la quantitat de marge negatiu és resta del total.</p> + +<p>En l’exemple següent hi ha dos paràgrafs. El paràgraf superior té un <code>margin-bottom</code> de 50 píxels. El segon paràgraf té un <code>margin-top</code> de 30 píxels. Els marges col·lapsen, de manera que el marge efectiu entre les caixes és de 50 píxels, i no el total dels dos marges.</p> + +<p><strong>Prova d’establir la propietat <code>margin-top</code> del segon paràgraf a 0. El marge visible entre els dos paràgrafs no canvia: conserva els 50 píxels que s’han establert per al <code>bottom-margin</code> del primer paràgraf.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/margin-collapse.html", '100%', 1000)}} </p> + +<p>Hi ha diverses normes que dicten quan els marges col·lapsen i quan no. Per a més informació, consulta amb detall la pàgina sobre el <a href="/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing">col·lapse del marge</a>. De moment l'important és que recordis que els marges col·lapsen. Si crees espai amb marges i no obtens l’espai que esperes, és probable que tinguis un col·lapse de marges.</p> + +<h3 id="Vores">Vores</h3> + +<p>La vora s’estableix entre el marge i el farciment d'una caixa. Si empres el model de caixes estàndard, la mida de la vora s’afegeix a les de <code>width</code> i <code>height</code> de la caixa. Si utilitzes el model de caixes alternatiu, la mida de la vora fa més petita la caixa de contingut, perquè ocupa una mica de les <code>width</code> i <code>height</code> disponibles.</p> + +<p>Les vores ofereixen moltes possibilitats de dissenys: hi ha quatre vores i cada vora pot tenir un estil, una amplada i un color, que podem definir.</p> + +<p>Pots definir l'amplada, l'estil o el color de les quatre vores alhora amb la propietat {{cssxref("border")}}.</p> + +<p>Per establir propietats diferents per a cada costat de vora, pots utilitzar:</p> + +<ul> + <li>{{cssxref("border-top")}}</li> + <li>{{cssxref("border-right")}}</li> + <li>{{cssxref("border-bottom")}}</li> + <li>{{cssxref("border-left")}}</li> +</ul> + +<p>Per a establir l'amplada, l’estil o el color de tots els costats alhora, utilitza les propietats següents:</p> + +<ul> + <li>{{cssxref("border-width")}}</li> + <li>{{cssxref("border-style")}}</li> + <li>{{cssxref("border-color")}}</li> +</ul> + +<p>Per a definir l'amplada, l'estil o el color d'un sol costat, pots emprar una de les propietats següents:</p> + +<ul> + <li>{{cssxref("border-top-width")}}</li> + <li>{{cssxref("border-top-style")}}</li> + <li>{{cssxref("border-top-color")}}</li> + <li>{{cssxref("border-right-width")}}</li> + <li>{{cssxref("border-right-style")}}</li> + <li>{{cssxref("border-right-color")}}</li> + <li>{{cssxref("border-bottom-width")}}</li> + <li>{{cssxref("border-bottom-style")}}</li> + <li>{{cssxref("border-bottom-color")}}</li> + <li>{{cssxref("border-left-width")}}</li> + <li>{{cssxref("border-left-style")}}</li> + <li>{{cssxref("border-left-color")}}</li> +</ul> + +<p><strong>En l'exemple següent hem utilitzat diverses propietats abreviades i sense abreviar per a crear vores. Juga amb les diferents propietats i comprova que n’entens el funcionament. Les pàgines de MDN sobre les propietats de les vores proporcionen informació sobre els diversos estils de vora que pots triar.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/border.html", '100%', 1000)}} </p> + +<h3 id="Farciment">Farciment</h3> + +<p>El farciment es situa entre la vora i l’àrea de contingut. A diferència dels marges, no hi pot haver àrees de farciment negatives, de manera que el valor ha de ser 0 o un valor positiu. Qualsevol fons que apliques al teu element es mostra darrere de l'àrea de farciment, i normalment s'utilitza per a mantenir el contingut allunyat de la vora.</p> + +<p>Podem controlar l'àrea de farciment de cadascun dels costats d’un element amb la propietat {{cssxref("padding")}}, o bé cadascuna de les àrees de farciment de cada costat amb les propietats equivalents:</p> + +<ul> + <li>{{cssxref("padding-top")}}</li> + <li>{{cssxref("padding-right")}}</li> + <li>{{cssxref("padding-bottom")}}</li> + <li>{{cssxref("padding-left")}}</li> +</ul> + +<p><strong>Observa que si canvies els valors de farciment en la classe <code>.box</code> de l'exemple següent, canvia on comença el text en relació amb la caixa.</strong></p> + +<p><strong>També pots canviar el farciment en la classe <code>.container</code>, que deixa un espai entre el contenidor i la caixa. Pots canviar l'àrea de farciment de qualsevol element, i es fa un espai entre la vora i el que hi ha dins de l'element.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/padding.html", '100%', 800)}} </p> + +<h2 id="El_model_de_caixes_i_les_caixes_amb_comportament_de_línia">El model de caixes i les caixes amb comportament de línia</h2> + +<p>Totes les opcions anteriors s'apliquen a les caixes amb comportament de bloc. Algunes de les propietats poden aplicar-se també a les caixes amb comportament de línia, com ara les creades per un element <code><span></code>.</p> + +<p>En l'exemple següent hi ha un <code><span></code> dins d'un paràgraf i hi hem aplicat els atributs <code>width</code>, <code>height</code>, <code>margin</code>, <code>border</code> i <code>padding</code>. Observa que l’amplada i l’alçada s’ignoren. Es respecta el marge, l'àrea de farciment i la vora, però no es canvia la relació de la resta de continguts amb la nostra caixa amb comportament de línia, i per tant l'àrea de farciment i la vora s’encavalquen amb altres paraules del paràgraf.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/inline-box-model.html", '100%', 800)}} </p> + +<h2 id="Ús_de_display_inline-block">Ús de <code>display: inline-block</code></h2> + +<p>Hi ha un valor especial de l’atribut <code>display</code> que proporciona un punt intermedi entre <code>inline</code> i <code>block</code>. Això és útil per a situacions en què no vols que un article generi una línia nova, però vols que respecti l’amplada (<code>width</code>) i l’alçada (<code>height</code>) i evitar que es superposin.</p> + +<p>Un element <code>display: inline-block</code> constitueix un subconjunt dels elements de bloc que ja coneixem:</p> + +<ul> + <li>Es respecten les propietats <code>width</code> i <code>height</code>.</li> + <li><code>padding</code>, <code>margin</code> i <code>border</code> allunyen la resta d'elements de la caixa.</li> +</ul> + +<p>Tanmateix, no es genera una línia nova i només es fa més gran que el contingut si afegeixes explícitament les propietats <code>width</code> i <code>height</code>.</p> + +<p><strong>En l'exemple següent hem afegit al nostre element <code><span></code>la declaració <code>display: inline-block</code>. Fes la prova de canviar-ho per <code>display: block</code> o elimina del tot aquesta línia i observa quina diferència hi ha entre els dos models de visualització.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/inline-block.html", '100%', 800)}} </p> + +<p>Això pot ser útil si vols donar a un enllaç una àrea sensible més gran amb <code>padding</code>. L’element <code><a></code> és un element de línia, com <code><span></code>; pots utilitzar <code>display: inline-block</code> per configurar l'àrea de farciment de manera que a un usuari li resulti més fàcil fer clic a l'enllaç.</p> + +<p>Això es veu amb força freqüència en les barres de navegació. La barra de navegació següent es mostra en una fila gràcies a la propietat <code>flexbox</code>, i hem afegit àrea de farciment a l'element <code><a></code> perquè volem canviar el color de fons (<code>background-color</code>) quan es passa per sobre de <code><a></code> amb el cursor del ratolí. El farciment sembla que s’encavalca amb la vora de l’element <code><ul></code>. Això és perquè <code><a></code> és un element en línia.</p> + +<p><strong>Afegeix <code>display: inline-block</code> a la regla amb el selector <code>.links-list a</code> i observa que aquest problema es soluciona amb l'àrea de farciment perquè els altres elements la respecten.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/box-model/inline-block-nav.html", '100%', 600)}}</p> + +<h2 id="Posa_a_prova_les_teves_habilitats">Posa a prova les teves habilitats</h2> + +<p>Hem vist moltes coses en aquest article. Recordes la informació més rellevant? Trobaràs més tests per verificar que has retingut la informació abans de seguir a <a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Box_Model_Tasks">Test your skills: The Box Model</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Això és el que has d’entendre sobre el model de caixes. Potser voldràs tornar a aquest article en el futur si les mides de les caixes et confonen.</p> + +<p>En l’article següent analitzem com es poden emprar <a href="/ca/docs/Learn/CSS/Building_blocks/Fons_i_vores">fons i vores</a> per a fer més interessants les teves caixes.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Els valors i les unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">El dimensionament dels elements amb CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i controls de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/building_blocks/valors_i_unitats_css/index.html b/files/ca/learn/css/building_blocks/valors_i_unitats_css/index.html new file mode 100644 index 0000000000..b754bd27ac --- /dev/null +++ b/files/ca/learn/css/building_blocks/valors_i_unitats_css/index.html @@ -0,0 +1,394 @@ +--- +title: Valors i unitats CSS +slug: Learn/CSS/Building_blocks/Valors_i_unitats_CSS +translation_of: Learn/CSS/Building_blocks/Values_and_units +--- +<div>{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks")}}</div> + +<p>Totes les propietats CSS tenen assignats un valor o un conjunt de valors permesos; donar una ullada a qualsevol pàgina de propietats de MDN t'ajudarà a comprendre els valors que admet una propietat concreta. En aquest article veurem uns quants dels valors i unitats que són d’ús més habitual.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir informació sobre els diferents tipus de valors i unitats que s’utilitzen en les propietats CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_un_valor_CSS">Què és un valor CSS</h2> + +<p>En les especificacions CSS i en les pàgines de propietat d'aquest projecte MDN pots identificar amb facilitat els valors perquè estan escrits entre parèntesis angulars (<em>brackets</em>), per exemple <code><a href="/en-US/docs/Web/CSS/color_value"><color></a></code> o <code><a href="/en-US/docs/Web/CSS/length"><length></a></code>. Si veus que per a una propietat és vàlid el valor <code><color></code>, vol dir que per a aquesta propietat pots utilitzar com a valor qualsevol dels colors vàlids que apareixen a la pàgina de referència de la propietat <code><a href="/en-US/docs/Web/CSS/color_value"><color></a></code>.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Observa que també es fa referència als valors CSS com <em>tipus de dades</em>. Bàsicament són termes intercanviables: el terme <em>tipus de dada</em> és en realitat una altra manera de dir <em>valor</em>.</p> +</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Els valors CSS solen denotar-se entre parèntesis angulars per a diferenciar-los de les propietats CSS (per exemple, la propietat {{cssxref("color")}} i el tipus de dada <a href="/en-US/docs/Web/CSS/color_value"><color></a>). Encara que tant els tipus de dades CSS com els elements d’HTML es denoten entre parèntesis angulars, és poc probable que et confonguis perquè s'utilitzen en contextos molt diferents.</p> +</div> + +<p>En l'exemple següent hem establert el color del nostre títol de capçalera amb una paraula clau, i el fons amb la funció <code>rgb()</code>:</p> + +<pre class="brush: css notranslate"><code>h1 { + color: black; + background-color: rgb(197,93,161); +} </code> +</pre> + +<p>Un valor en CSS és una manera de definir una col·lecció de subvalors permesos. Això vol dir que si <code><color></code> és un valor permès, no t'has de demanar quins dels diferents tipus de valor del color es poden utilitzar: les paraules clau, els valors hexadecimals, les funcions <code>rgb()</code>, etc. Pots utilitzar <em>qualsevol</em> valor <code><color></code> disponible, sempre que sigui compatible amb el navegador. La pàgina de MDN et dona informació sobre la compatibilitat de cada valor amb els navegadors. Per exemple, consulta la pàgina <code><a href="/en-US/docs/Web/CSS/color_value"><color></a></code> i observa que en la secció de compatibilitat dels navegadors s’enumeren diferents tipus de valors de color i la compatibilitat que tenen amb els diferents navegadors.</p> + +<p>A continuació donem una ullada a uns quants dels tipus de valors i unitats amb què et pots trobar habitualment, amb exemples perquè facis proves amb diferents valors possibles.</p> + +<h2 id="Nombres_longituds_i_percentatges">Nombres, longituds i percentatges</h2> + +<p>En CSS pots trobar diversos tipus de dades numèriques. Totes les dades següents es classifiquen com a dades numèriques:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Tipus de dada</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><a href="/en-US/docs/Web/CSS/integer"><integer></a></code></td> + <td>Un <code><integer></code> és un nombre enter, com ara <code>1024</code> o <code>-55</code>.</td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/CSS/number"><number></a></code></td> + <td>Un <code><number></code> representa un nombre decimal: pot tenir o no un punt de separació de xifres decimals, per exemple <code>0.255</code>, <code>128</code> o <code>-1.2</code>.</td> + </tr> + <tr> + <td><code><dimension></code></td> + <td>Una <code><dimension></code> és un valor <code><number></code> amb una unitat associada, per exemple <code>45deg</code> (graus), <code>5s</code> (segons) o <code>10px</code> (píxels). <code><dimension></code> és una categoria «paraigua» que inclou els tipus <code><a href="/en-US/docs/Web/CSS/length"><length></a></code>, <code><a href="/en-US/docs/Web/CSS/angle"><angle></a></code>, <code><a href="/en-US/docs/Web/CSS/time"><time></a></code> i <code><a href="/en-US/docs/Web/CSS/resolution"><resolution></a></code><a href="/en-US/docs/Web/CSS/resolution">.</a></td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/CSS/percentage"><percentage></a></code></td> + <td>Un <code><percentage></code> representa una proporció d'algun altre valor, per exemple el <code>50%</code>. Els valors de percentatge sempre són relatius a una altra quantitat, per exemple, la longitud d'un element en percentatge és relativa a la longitud de l'element pare.</td> + </tr> + </tbody> +</table> + +<h3 id="Longituds">Longituds</h3> + +<p>El tipus numèric que es troba amb més freqüència és <code><length></code>, per exemple <code>10px</code> (píxels) o <code>30em</code>. En CSS s'utilitzen dos tipus de longituds: relatives i absolutes. És important conèixer-ne la diferència per a entendre quines mides pot atènyer un element.</p> + +<h4 id="Unitats_de_longitud_absolutes">Unitats de longitud absolutes</h4> + +<p>Totes les unitats que es mostren a continuació són unitats de longitud <strong>absolutes</strong>: no són relatives a cap altre element i es considera que tenen sempre la mateixa mida.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Unitat</th> + <th scope="col">Nom</th> + <th scope="col">Equival a</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>cm</code></td> + <td>Centímetres</td> + <td>1cm = 96px/2,54</td> + </tr> + <tr> + <td><code>mm</code></td> + <td>Mil·límetres</td> + <td>1 mm = 1/10 d'1cm</td> + </tr> + <tr> + <td><code>Q</code></td> + <td>Quarts de mil·límetre</td> + <td>1T = 1/40 d'1cm</td> + </tr> + <tr> + <td><code>in</code></td> + <td>Polzades</td> + <td>1in = 2,54cm = 96px</td> + </tr> + <tr> + <td><code>pc</code></td> + <td>Piques</td> + <td>1pc = 1/16 d'1"</td> + </tr> + <tr> + <td><code>pt</code></td> + <td>Punts</td> + <td>1pt = 1/72a d'1"</td> + </tr> + <tr> + <td><code>px</code></td> + <td>Píxels</td> + <td>1px = 1/96a d'1"</td> + </tr> + </tbody> +</table> + +<p>La majoria d'aquests valors són més útils quan s'utilitzen en una sortida en format imprès, més que no en una sortida per pantalla. Per exemple, la pantalla no s’acostuma a mesurar en <code>cm</code> (centímetres). Normalment, les úniques unitats que es fan servir per a la pantalla són els píxels (<code>px</code>).</p> + +<h4 id="Unitats_de_longitud_relatives">Unitats de longitud relatives</h4> + +<p>Les unitats de longitud relatives són unitats que es prenen en relació amb un altre element, potser la mida de la lletra o la mida de la finestra gràfica. L’avantatge d’utilitzar unitats relatives és que amb una planificació acurada pots definir a escala la mida del text o d’altres elements de la pàgina. A la taula següent pots trobar algunes de les unitats que són més útils per al desenvolupament web.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Unitat</th> + <th scope="col">Relativa a</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>em</code></td> + <td> + <p>La mida de la lletra de l’element pare, en el cas de propietats tipogràfiques como ara {{cssxref("font-size")}}, i la mida de la font del propi element, en el cas d'altres propietats com {{cssxref("width")}}.</p> + </td> + </tr> + <tr> + <td><code>ex</code></td> + <td>L’altura x de la lletra de l'element.</td> + </tr> + <tr> + <td><code>ch</code></td> + <td>La mesura d'avanç (amplada) del glif «0» del tipus de lletra de l'element.</td> + </tr> + <tr> + <td><code>rem</code></td> + <td>La mida de la lletra de l’element arrel.</td> + </tr> + <tr> + <td><code>lh</code></td> + <td>L’alçada de línia de l’element.</td> + </tr> + <tr> + <td><code>vw</code></td> + <td>L’1% de l'amplada de la finestra gràfica.</td> + </tr> + <tr> + <td><code>vh</code></td> + <td>L’1% de l'alçada de la finestra gràfica.</td> + </tr> + <tr> + <td><code>vmin</code></td> + <td>L’1% de la dimensió més petita de la finestra gràfica.</td> + </tr> + <tr> + <td><code>vmax</code></td> + <td>L’1% de la dimensió més gran de la finestra gràfica.</td> + </tr> + </tbody> +</table> + +<h4 id="Un_exemple_il·lustratiu">Un exemple il·lustratiu</h4> + +<p>En l'exemple següent pots observar com es comporten algunes unitats de longitud relativa i absoluta. La primera caixa té una amplada ({{cssxref("width")}}), establerta en píxels. Com que és una unitat absoluta, aquesta amplada roman sempre igual, independentment d’altres canvis.</p> + +<p>La segona caixa té una amplada fixa establerta en unitats <code>vw</code> (amplada de la finestra gràfica). Aquest valor és relatiu a l'amplada de la finestra gràfica; així, 10vw és un 10 per cent de l'amplada de la finestra gràfica. Si canvia l’amplada de la finestra del navegador, la mida de la caixa ha de canviar, però aquí no et funcionarà perquè aquest exemple està incrustat a la pàgina amb <code><a href="/ca/docs/Web/HTML/Element/iframe"><iframe></a></code>. Si vols veure-ho en acció, has d’<a href="https://mdn.github.io/css-examples/learn/values-units/length.html">obrir l’exemple en una pestanya nova del teu navegador</a>.</p> + +<p>La tercera caixa utilitza unitats <code>em</code>. Aquestes unitats són relatives a la mida de la lletra. Hem establert una mida de lletra d'<code>1em</code> en l’element {{htmlelement("div")}} que conté una classe <code>.wrapper</code>. Canvia aquest valor per <code>1,5em</code> i observa que la mida de la lletra de tots els elements augmenta, però només augmenta l’amplada de l’últim element, perquè l’amplada és relativa a la mida de la lletra.</p> + +<p>Després de seguir les instruccions anteriors, juga una mica més amb els valors i observa què hi obtens.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/length.html", '100%', 820)}}</p> + +<h4 id="Unitats_em_i_rem">Unitats <code>em</code> i <code>rem</code></h4> + +<p>Les unitats <code>em</code> i <code>rem</code> són les dues longituds relatives que és probable que et trobis amb més freqüència per a dimensionar elements, des de caixes fins a text. Val la pena entendre com funcionen i en què es diferencien, sobretot quan comences a introduir-te en temes més complexos, com ara <a href="/ca/docs/Learn/CSS/Estilitzar_text">aplicar estil al text</a> o el <a href="/ca/docs/Learn/CSS/Disseny_CSS">disseny de pàgines web amb CSS</a>. T’ho mostrem a continuació amb un exemple.</p> + +<p>L’HTML d’aquest exemple consisteix en dos blocs de llistes imbricades: hi ha tres llistes en total i tots dos blocs tenen el mateix HTML. L’única diferència és que en el primer bloc hi ha una classe <em>em</em>, i en el segon una classe <em>rem</em>.</p> + +<p>Per començar, establim la mida de la lletra de l’element <code><html></code> a 16px.</p> + +<p><strong>Breument, la unitat <em>em</em> fa referència a «la mida de lletra de l'element pare»</strong>. Els elements {{htmlelement("li")}} que hi ha dins dels elements {{htmlelement("ul")}} amb una classe <code>em</code> hereten la mida de l’element pare, de manera que en cada nivell d’imbricació successiu la mida de la lletra augmenta progressivament perquè en cadascun hi ha una mida de lletra establerta en <code>1.3em</code> (1,3 vegades la mida de la lletra de l’element pare).</p> + +<p><strong>Breument, la unitat <em>rem</em> fa referència a «la mida de lletra de l'element arrel»</strong> (els rem estàndard es corresponen amb l’<code>em</code> de l’arrel). Els elements {{htmlelement("li")}} dins dels elements {{htmlelement("ul")}} amb una classe <code>rem</code> prenen la mida de l'element arrel (<code><html></code>). Això significa que no augmenten en cada nivell d’imbricació successiu.</p> + +<p>Tanmateix, observa que si canvies la mida de la lletra (<code>font-size</code>) de l’element <code><html></code> amb el CSS, canvia tot el que hi està relacionat, tant els <code>rem</code> com els <code>em</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/em-rem.html", '100%', 1000)}} </p> + +<h3 id="Percentatges">Percentatges</h3> + +<p>En molts casos, un percentatge és tractat de la mateixa manera que una longitud. La qüestió amb els percentatges és que sempre es defineixen en relació amb algun altre valor. Per exemple, si defineixes la mida de la lletra (<code>font-size</code>) d'un element com un percentatge, aquesta serà un percentatge del valor de <code>font-size</code> de l’element pare. Si fas servir un percentatge per a un valor de l’amplada (<code>width</code>), serà un percentatge del valor de <code>width</code> de l’element pare.</p> + +<p>En l'exemple següent, les dues caixes amb la mida especificada en unitats de percentatge i les dues caixes amb la mida especificada en unitats de píxel tenen els mateixos noms de classe. Tots dos conjunts de caixes tenen 200px i un 40% d’amplada, respectivament.</p> + +<p>La diferència és que el segon conjunt de dues caixes es troba dins d’un contenidor de 400 píxels d’amplada. La segona caixa de 200px d'amplada té la mateixa amplada que la primera, però la segona caixa del 40% ara és el 40% de 400px, molt més estreta que la primera.</p> + +<p><strong>Canvia l'amplada del contenidor o el valor en percentatge i observa què passa.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/percentage.html", '100%', 850)}} </p> + +<p>L’exemple següent mostra les mides de lletra en percentatges. Cada element de llista <code><li></code> té una mida de lletra <code>font-size</code> del 80%; per tant, la lletra dels elements de llista imbricats és cada cop més petita a mesura que la mida de lletra s’hereta de l’element pare.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/percentage-fonts.html", '100%', 650)}} </p> + +<p>Observa que molts valors accepten unitats de longitud i de percentatge, però n’hi ha que només accepten unitats de longitud. Consulta quins valors s’accepten en les pàgines de referència de cada propietat de MDN. Si el valor permès inclou <code><a href="/en-US/docs/Web/CSS/length-percentage"><length-percentage></a></code>, pots utilitzar una longitud o un percentatge. Si el valor permès només inclou <code><length></code> no s’admet l’ús de percentatges.</p> + +<h3 id="Nombres">Nombres</h3> + +<p>Hi ha valors que accepten nombres sense unitat. Un exemple de propietat que accepta un nombre sense unitat és la propietat <code>opacity</code>, que controla l’opacitat d’un element (el nivell de transparència). Aquesta propietat accepta un nombre entre el <code>0</code> (totalment transparent) i l’<code>1</code> (totalment opac).</p> + +<p><strong>En l’exemple següent, canvia el valor <code>opacity</code> per diversos valors decimals entre el <code>0</code> i l’<code>1</code> i observa com la caixa i el contingut es tornen més o menys opacs.</strong></p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/opacity.html", '100%', 500)}} </p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Si en CSS fas servir un nombre com a valor, no l’has de posar entre cometes.</p> +</div> + +<h2 id="Color">Color</h2> + +<p>Hi ha moltes maneres d’especificar el color en CSS, i algunes s’han implementat més recentment que d’altres. El CSS pot utilitzar els mateixos valors de color per a qualsevol element, ja sigui per a especificar el color del text com el color del fons, o qualsevol altra cosa.</p> + +<p>El sistema de colors estàndard disponible en els equips moderns és de 24 bits, que permet la visualització d’uns 16,7 milions de colors diferents mitjançant una combinació de diferents canals vermell, verd i blau amb 256 valors diferents per a cada canal (256 x 256 x 256 = 16.777.216). Observa algunes de les maneres com podem especificar colors amb el CSS.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: En aquest tutorial analitzarem els mètodes habituals per a especificar el color que tenen una bona compatibilitat amb els navegadors. N’hi ha d’altres, que no tenen una bona compatibilitat amb els navegadors i són menys habituals.</p> +</div> + +<h3 id="Paraules_clau_per_als_colors">Paraules clau per als colors</h3> + +<p>Molt sovint en els exemples de la nostra secció d’aprenentatge o en alguna altra pàgina de MDN veuràs que utilitzem paraules clau de colors, perquè són una manera senzilla i comprensible d’especificar un color. Hi ha moltes paraules clau, i algunes tenen noms força curiosos. En pots veure una llista completa a la pàgina dedicada al valor <code><a href="/en-US/docs/Web/CSS/color_value"><color></a></code>.</p> + +<p><strong>Juga amb diferents valors de color en els exemples en viu que et presentem a continuació per a entendre més bé com funcionen.</strong></p> + +<h3 id="Els_valors_RGB_hexadecimals">Els valors RGB hexadecimals</h3> + +<p>El tipus de valor de color següent que probablement trobaràs més sovint són els codis hexadecimals. Cada valor hexadecimal consisteix en un símbol hashtag/coixinet (#) seguit de sis nombres hexadecimals, cadascun dels quals pot prendre un dels 16 valors que van del 0 a la f (que representa el 15), és a dir: <code>0123456789abcdef</code>. Cada parell de valors representa un dels canals (vermell, verd i blau) i permet especificar qualsevol dels 256 valors disponibles per a cada un (16 x 16 = 256).</p> + +<p>Aquests valors són una mica més complexos i menys fàcils d’entendre, però són molt més versàtils que les paraules clau: amb els valors hexadecimals pots representar qualsevol color que vulguis per a la teva paleta de colors.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/color-hex.html", '100%', 700)}} </p> + +<p><strong>Canvia un cop més els valors i observa com varien els colors.</strong></p> + +<h3 id="Valors_RGB_i_RGBA">Valors RGB i RGBA</h3> + +<p>El tercer sistema de què parlarem aquí és RGB. Un valor RGB és una funció <code>rgb()</code> que proporciona tres paràmetres que representen els valors dels canals vermell, verd i blau dels colors, igual que els valors hexadecimals. La diferència amb RGB és que els canals no estan representats per dos dígits hexadecimals, sinó per un nombre decimal entre 0 i 255, que sembla una mica més fàcil d’entendre.</p> + +<p>Reescrivim el nostre darrer exemple adaptat amb l’ús de colors RGB:</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/color-rgb.html", '100%', 700)}} </p> + +<p>També pots utilitzar colors RGBA: funcionen exactament igual que els colors RGB, de manera que pots utilitzar qualsevol valor RGB, però s’hi afegeix un quart valor que representa el canal alfa del color, que en controla l'opacitat. Si estableixes aquest valor a <code>0</code>, el color és totalment transparent, mentre que <code>1</code> el fas totalment opac. Els valors que hi ha entremig proporcionen diferents nivells de transparència.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Entre establir un canal alfa per a un color o utilitzar la propietat {cssxref("opacity")}} que hem vist abans hi ha una diferència fonamental. Quan empres l'opacitat, l’element i tot el que té a l’interior són opacs, mentre que amb l’ús de colors RGBA, només es torna opac el color que especifiques.</p> +</div> + +<p>En l'exemple següent hem afegit una imatge de fons al bloc que conté les nostres caixes de colors. A continuació, hem configurat les caixes perquè tinguin valors d'opacitat diferents: observa que el fons es veu més quan el valor del canal alfa és més petit.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/color-rgba.html", '100%', 770)}}</p> + +<p><strong>Canvia els valors del canal alfa en aquest exemple i observa com això afecta la sortida del color.</strong></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: En algun moment els navegadors moderns es van actualitzar perquè <code>rgba()</code> i <code>rgb()</code>, i també <code>hsl()</code> i <code>hsla()</code> (els veurem més avall) fossin àlies purs els uns dels altres i es comportessin exactament igual. Així, per exemple, tant <code>rgba()</code> com <code>rgb()</code> accepten colors amb valors de canal alfa i sense. Prova de canviar en l'exemple anterior les funcions <code>rgba()</code> per <code>rgb()</code> i comprova si els colors encara funcionen. Tot i que és decisió teva la manera com aplicar estil, fer servir funcions diferents que separin les definicions dels colors transparents de les dels que no ho són proporciona una compatibilitat (una mica) més bona amb els navegadors i pot servir d’indicador visual de quins colors del teu codi estan definits amb transparència.</p> +</div> + +<h3 id="Els_valors_HSL_i_HSLA">Els valors HSL i HSLA</h3> + +<p>Una mica menys de compatibilitat que RGB presenta el model de color HSL (no és compatible amb versions antigues d’Internet Explorer), que es va implementar després de molta insistència per part dels dissenyadors. En lloc dels valors vermell, verd i blau, la funció <code>hsl()</code> accepta valors de tonalitat, saturació i lluminositat, que distingeixen els 16,7 milions de colors, però d'una manera diferent:</p> + +<ul> + <li><strong>Tonalitat</strong>: El to de base del color. Pren un valor entre el 0 i el 360, que representa un angle al voltant d'una roda de color.</li> + <li><strong>Saturació</strong>: El nivell de saturació que presenta el color. Pren un valor entre el 0 i el 100%, en què al 0 no hi ha color (apareix com una ombra de gris) i al 100% la saturació del color és total.</li> + <li><strong>Lluminositat</strong>: La claror i brillantor del color. Pren un valor entre el 0 i el 100%, en què al 0 no hi ha llum (apareix negre del tot) i al 100% la llum és total (apareix blanc del tot).</li> +</ul> + +<p>Podem adaptar l'exemple RGB amb colors HSL, d’aquesta manera:</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/color-hsl.html", '100%', 700)}} </p> + +<p>De la mateixa manera que RGB té RGBA, HSL té un equivalent HSLA, que et proporciona la mateixa funció d’especificació del canal alfa. Ho mostrem a continuació canviant el nostre exemple RGBA adaptat amb colors HSLA.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/color-hsla.html", '100%', 770)}} </p> + +<p>Pots utilitzar qualsevol d'aquests valors de color en els teus projectes. En la majoria de casos és probable que et triïs una paleta de colors (i el mètode que escullis per a especificar el color), que faràs servir al llarg de tot el projecte. Pots fer combinacions de colors i barreges, però per coherència acostuma a ser millor si tot el teu projecte empra el mateix model de colors.</p> + +<h2 id="Imatges">Imatges</h2> + +<p>El tipus de dades <code><a href="/en-US/docs/Web/CSS/image"><image></a></code> utilitza valors permesos que són imatges. Poden ser tant fitxers d'imatge enllaçats des d'una funció <code>url()</code>, com degradats.</p> + +<p>En l'exemple següent presentem una imatge i un degradat emprats com a valors de la propietat CSS <code>background-image</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/image.html", '100%', 740)}} </p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: hi ha altres valors possibles per a <code><image></code>, però són més recents i encara tenen poca compatibilitat amb els navegadors. Si vols saber-ne més, dona una ullada a la pàgina que MDN dedica al tipus de dada <code><a href="/en-US/docs/Web/CSS/image"><image></a></code>.</p> +</div> + +<h2 id="Posició">Posició</h2> + +<p>El tipus de dades <code><a href="/en-US/docs/Web/CSS/position_value"><position></a></code> representa un conjunt de coordenades 2D que s’utilitzen per a posicionar un element, com ara una imatge de fons (amb <code><a href="/en-US/docs/Web/CSS/background-position">background-position</a></code>). Pot prendre paraules clau com <code>top</code>, <code>left</code>, <code>bottom</code>, <code>right</code> i <code>center</code> per a alinear els elements amb límits específics d’una caixa 2D, i també longituds, que representen desplaçaments respecte de les vores superior i esquerra de la caixa.</p> + +<p>Un valor de posició típic consta de dos valors: el primer estableix la posició horitzontal, i el segon la vertical. Si només especifiques el valor per a un eix, l’altre utilitza <code>center</code> per defecte.</p> + +<p>En l’exemple següent hem posicionat una imatge de fons a 40px de la part superior dreta del contenidor amb una paraula clau.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/position.html", '100%', 720)}} </p> + +<p><strong>Juga amb aquests valors i observa com pots anar desplaçant la imatge.</strong></p> + +<h2 id="Cadenes_i_identificadors">Cadenes i identificadors</h2> + +<p>Al llarg dels exemples anteriors hem vist que es fan servir paraules clau com a valors (per exemple, les paraules clau de <code><color></code> com ara <code>red</code>, <code>black</code>, <code>rebeccapurple</code> i <code>goldenrod</code>). Aquestes paraules clau s’anomenen més precisament <em>identificadors</em>, i són valors especials que el CSS entén. Per tant, no s'escriuen entre cometes (és a dir, no es tracten com cadenes alfanumèriques).</p> + +<p>En alguns casos en CSS s’utilitzen cadenes alfanumèriques, per exemple en <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS/Pseudo-classes_and_pseudo-elements#Generar_contingut_amb_before_i_after">especificar contingut generat</a>. En aquests casos, aquest valor es posa entre cometes per a denotar que es tracta d’una cadena alfanumèrica. En l'exemple següent utilitzem paraules clau de color, que s’escriuen sense cometes, i una cadena de contingut generat, escrita entre cometes.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/strings-idents.html", '100%', 550)}} </p> + +<h2 id="Funcions">Funcions</h2> + +<p>L'últim tipus de valor que analitzarem és el grup de valors coneguts com a funcions. En programació, una funció és un bloc de codi reutilitzable que es pot executar diverses vegades per completar una tasca repetitiva amb un esforç mínim tant per part del desenvolupador com de l’ordinador. Les funcions normalment s’associen a idiomes com JavaScript, Python o C++, però també n’hi ha en CSS, com a valors de propietats. Ja hem vist funcions en acció en l’article sobre els colors: <code>rgb()</code>, <code>hsl()</code>, etc. El valor que retorna una imatge des d'un fitxer, <code>url()</code>, també és una funció.</p> + +<p>Un valor que es comporta més com les funcions que pots trobar en un llenguatge de programació tradicional és la funció <code>calc()</code> de CSS. Aquesta funció et permet fer càlculs senzills dins del CSS. És útil sobretot quan vols calcular valors que no pots definir quan escrius el CSS del teu projecte perquè necessites que el navegador te’ls proporcioni en temps d'execució.</p> + +<p>Per exemple, a continuació fem servir la funció <code>calc()</code> per a assignar a una caixa una amplada d’un <code>20% + 100px</code>. El 20% es calcula a partir de l’amplada de l’element pare contenidor <code>.wrapper</code>, i canvia si en canvia l’amplada. Aquest càlcul no es pot fer prèviament perquè no sabem quin serà el 20% de l’element pare, de manera que demanem al navegador que ens ho calculi amb la funció <code>calc()</code>.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/values-units/calc.html", '100%', 450)}}</p> + +<h2 id="Posa_a_prova_el_teu_coneixement">Posa a prova el teu coneixement</h2> + +<p>Hem vist molt de contingut en aquest article. En recordes la informació més important? Trobaràs més proves per comprovar si has retingut aquesta informació abans de seguir a <a href="https://wiki.developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_tasks">Test your skills: Values and units</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Hem fet una passada ràpida pels tipus de valors i unitats més habituals amb què et pots trobar. Pots consultar tots els diferents tipus a la pàgina de referència <a href="/en-US/docs/Web/CSS/CSS_Values_and_Units">Valors i unitats en CSS</a>; molts d’ells els faràs servir a mesura que avances per aquests articles.</p> + +<p>L’important és que recordis que cada propietat té una llista determinada de valors permesos, i que cada valor té una definició que explica quins en són els subvalors. Aleshores, pots consultar-ne les dades específiques aquí, a les pàgines d’MDN.</p> + +<p>Per exemple, és útil saber que <code><a href="/en-US/docs/Web/CSS/image"><image></a></code> també et permet crear un degradat de color, però potser no és obvi.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance">La cascada i l'herència</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors">Els selectors CSS</a> + <ul> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors">Els selectors de tipus, de classe i d’ID</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">Els selectors d'atribut</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements">Les pseudoclasses i els pseudoelements</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators">Els combinadors</a></li> + </ul> + </li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixes</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders">Fons i vores</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions">El tractament del text en diverses direccions</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Overflowing_content">El desbordament dels continguts</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">Valors i unitats</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS">Dimensionar elements amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Images_media_form_elements">Imatges, mèdia i elements de formulari</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS">Depura el teu CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/Building_blocks/Organizing">Organitza el teu CSS</a></li> +</ol> diff --git a/files/ca/learn/css/caixes_estil/caixa_aspecte_interessant/index.html b/files/ca/learn/css/caixes_estil/caixa_aspecte_interessant/index.html new file mode 100644 index 0000000000..3a4df8a2b2 --- /dev/null +++ b/files/ca/learn/css/caixes_estil/caixa_aspecte_interessant/index.html @@ -0,0 +1,85 @@ +--- +title: Una caixa d'aspecte interessant +slug: Learn/CSS/Caixes_estil/Caixa_aspecte_interessant +tags: + - Assessment + - Beginner + - CSS + - Learn + - backgrounds + - borders + - box + - box model + - effects +translation_of: Learn/CSS/Building_blocks/A_cool_looking_box +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/CSS/Styling_boxes/Creating_fancy_letterheaded_paper", "Learn/CSS/Styling_boxes")}}</div> + +<p class="summary">En aquesta avaluació, obtindreu una mica més de pràctica a l'hora de crear caixes d'aspecte interessant, intentant crear una caixa atractiva.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Rrequisits previs:</th> + <td><span id="result_box" lang="ca"><span>Abans d'intentar aquesta avaluació, hauríeu d'haver treballat tots els articles d'aquest mòdul.</span></span></td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Provar la comprensió del model de caixa CSS i altres característiques relacionades amb la caixa, com ara les vores i els fons.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida">Punt de partida</h2> + +<p><span id="result_box" lang="ca"><span>Per començar aquesta avaluació, heu de:</span></span></p> + +<ul> + <li><span id="result_box" lang="ca"><span>Feu còpies locals del codi</span></span> <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/cool-information-box-start/index.html">HTML</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/cool-information-box-start/style.css">CSS</a> - <span id="result_box" lang="ca"><span>deseu-les com</span></span> <code>index.html</code> and <code>style.css</code> <span id="result_box" lang="ca"><span>en un directori nou</span></span>.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Com a alternativa, podeu utilitzar un lloc com <a class="external-icon external" href="http://jsbin.com/">JSBin</a> o <a class="external-icon external" href="https://thimble.mozilla.org/">Thimble</a> per fer la vostra avaluació. Podeu enganxar el codi HTML i omplir el CSS en un d'aquests editors en línia. Si l'editor en línia que esteu utilitzant no té cap panell CSS independent, no dubteu a posar-lo en un element <<code>style</code>> al capdavant del document.</p> +</div> + +<h2 id="Resum_del_projecte">Resum del projecte</h2> + +<p>La vostra tasca és crear una caixa genial i de luxe i explorar que podem tenir de divertit amb CSS.</p> + +<h3 id="Tasques_generals">Tasques generals</h3> + +<ul> + <li>Apliqueu el CSS a l'HTML.</li> +</ul> + +<h3 id="L'estil_de_la_caixa">L'estil de la caixa</h3> + +<p>Ens agradaria que dissenyéssiu<br> + el {{htmlelement("p")}} proporcionat, donant-li el següent:</p> + +<ul> + <li>Un ample raonable per a un botó gran, diguem al voltant de 200 píxels.</li> + <li>Una alçada raonable per a un botó gran, centrant el text verticalment en el procés.</li> + <li>Text centrat.</li> + <li>Un lleuger augment de la grandària de la font, al voltant de 17-18px d'estil, calculat. Utilitzeu rems. Escriviu com a treballar, el valor, en un comentari.</li> + <li>Color base per al disseny. Doneu a la caixa a aquest color com a color de fons.</li> + <li>El mateix color per al text; Feu que sigui llegible usant una ombra negre del text.</li> + <li>Una vora de radi bastant subtil.</li> + <li>Una vora sòlida de 1 píxel amb un color similar al color base, però una ombra una mica més fosca.</li> + <li>Un gradient lineal semitransparent negre, que es dirigeix cap a la cantonada superior esquerra. Feu que sigui completament transparent al principi, gradat al voltant de 0,2 d'opacitat en un 30% al llarg i romandre en el mateix color fins al final.</li> + <li>Múltiples ombres de caixa. Doneu-li una ombra de caixa estàndard, per fer que la caixa es vegi lleugerament aixecada de la pàgina. Les altres dues haurien de ser ombres de caixa d'inserció: una ombra blanca semitransparent prop de la part superior esquerra i una ombra semitransparent negre a la part inferior dreta, per afegir-li el bonic aspecte 3D de la caixa.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>La següent captura de pantalla mostra un exemple del que podria semblar el disseny final</span></span>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13148/fancy-box.png" style="display: block; height: 76px; margin: 0px auto; width: 228px;"></p> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Si seguiu aquesta avaluació com a part d'un curs organitzat, hauríeu de poder lliurar el vostre treball al vostre professor/mentor per qualificar-ho. Si esteu en auto-aprenentatge, podreu obtenir la guia de qualificacions amb força facilitat preguntant sobre el tema <a class="external-icon external" href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">en el fil de conversa en l'àrea d'aprenentatge</a>, o en el canal IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a class="external-icon external" href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Intenteu primer l'exercici - no es guanya res fent trampes!</p> + +<p>{{PreviousMenu("Learn/CSS/Styling_boxes/Creating_fancy_letterheaded_paper", "Learn/CSS/Styling_boxes")}}</p> diff --git a/files/ca/learn/css/caixes_estil/creació_carta/index.html b/files/ca/learn/css/caixes_estil/creació_carta/index.html new file mode 100644 index 0000000000..2623d6d0dd --- /dev/null +++ b/files/ca/learn/css/caixes_estil/creació_carta/index.html @@ -0,0 +1,97 @@ +--- +title: Creació d'una carta amb encapçalat de fantasia +slug: Learn/CSS/Caixes_estil/Creació_carta +tags: + - Assessment + - Background + - Beginner + - CSS + - CodingScripting + - border + - borderBoxes + - letter + - letterhead + - letterheaded + - paper +translation_of: Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Advanced_box_effects", "Learn/CSS/Styling_boxes/A_cool_looking_box", "Learn/CSS/Styling_boxes")}}</div> + +<p class="summary">Si voleu fer una impressió correcta, escriviu una carta amb un bon paper i una capçalera agradable pot ser un començament realment bo. En aquesta avaluació, us desafiarem a crear una plantilla en línia per aconseguir-ho.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Abans d'intentar aquesta avaluació, hauríeu d'haver treballat tots els articles d'aquest mòdul</span></span>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Provar la comprensió del model de caixa CSS i altres característiques relacionades amb la caixa, com ara la implementació de fons.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida"><span id="result_box" lang="ca"><span>Punt de partida</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Per començar aquesta avaluació, heu de:</span></span></p> + +<ul> + <li><span id="result_box" lang="ca"><span>Feu còpies locals del codi</span></span> <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/letterheaded-paper-start/index.html">HTML</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/letterheaded-paper-start/style.css">CSS</a> — <span id="result_box" lang="ca"><span>deseu-les com</span></span> <code>index.html</code> i <code>style.css</code> <span id="result_box" lang="ca"><span>en un directori nou</span></span>.</li> + <li><span id="result_box" lang="ca"><span>Deseu còpies locals de les imatges</span></span> <a href="https://raw.githubusercontent.com/mdn/learning-area/master/css/styling-boxes/letterheaded-paper-start/top-image.png">top</a>, <a href="https://raw.githubusercontent.com/mdn/learning-area/master/css/styling-boxes/letterheaded-paper-start/bottom-image.png">bottom</a> i <a href="https://raw.githubusercontent.com/mdn/learning-area/master/css/styling-boxes/letterheaded-paper-start/logo.png">logo</a> <span id="result_box" lang="ca"><span>en el mateix directori que els fitxers de codi.</span></span></li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Com a alternativa, podeu utilitzar un lloc com <a class="external external-icon" href="http://jsbin.com/">JSBin</a> o <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer la vostra avaluació. Podeu enganxar el codi HTML i omplir el CSS en un d'aquests editors en línia. Si l'editor en línia que esteu utilitzant no té cap panell CSS independent, no dubteu a posar-lo en un element <<code>style</code>> al capdavant del document.</p> +</div> + +<h2 id="Resum_del_projecte">Resum del projecte</h2> + +<p>Se us ha donat els fitxers necessaris per crear una plantilla de paper amb capçalera. Només cal que col·loqueu els fitxers junts. Per arribar-hi, heu de:</p> + +<h3 id="La_carta_principal">La carta principal</h3> + +<ul> + <li>Apliqueu el CSS a l'HTML.</li> + <li>Afegiu una declaració de fons a la carta que: + <ul> + <li>Fixeu la imatge superior a la part superior de la carta</li> + <li>Fixeu la imatge inferior a la part inferior de la carta</li> + <li>Afegiu un gradient semitransparent a la part superior de tots dos fons anteriors que dóna una mica de textura a la lletra. Feu que sigui lleugerament fosc a la part superior i inferior, però que sigui completament transparent per a una gran part del centre.</li> + </ul> + </li> + <li>Afegiu una altra declaració de fons, que només afegeixi la imatge superior a la part superior de la carta, com a alternativa per a navegadors que no admetin la declaració anterior.</li> + <li>Afegiu un color de fons blanc a la carta.</li> + <li>Afegiu una vora sòlida superior i inferior de 1 mm a la carta, en un color que es mantngui amb la resta del esquema de color.</li> +</ul> + +<h3 id="El_logotip"><span id="result_box" lang="ca"><span>El logotip</span></span></h3> + +<ul> + <li>A {{htmlelement("h1")}}, afegiu el logotip com a imatge de fons.</li> + <li>Afegiu un filtre al logotip per donar-li una ombra subtil.</li> + <li>Ara comenteu el filtre i implementeu l'ombra en un mode diferent (una mica més compatible amb el navegador creuat), que encara segueix la forma de la imatge rodona.</li> +</ul> + +<h2 id="Consells_i_suggeriments">Consells i suggeriments</h2> + +<ul> + <li>Recordeu que pofeu crear una alternativa per als navegadors més antics, posant la versió alternativa com a primera declaració, seguida de la versió que funciona només en els navegadors més recents. Els navegadors més antics aplicaran la primera declaració i ignoraran la segona, mentre que els nous exploradors aplicaran la primera i després la reemplaçaran amb la segona</li> + <li>No dubteu a crear els vostres propis gràfics per a l'avaluació si ho voleu.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p>La següent captura de pantalla mostra un exemple del que podria semblar el disseny final:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13144/letterhead.png" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p> + +<p> </p> + +<h2 id="Avaluació"><span id="result_box" lang="ca"><span>Avaluació</span></span></h2> + +<p>Si seguiu aquesta avaluació com a part d'un curs organitzat, hauríeu de poder lliurar el vostre treball al vostre professor/mentor per qualificar-ho. Si esteu en auto-aprenentatge, podreu obtenir la guia de qualificacions amb força facilitat preguntant sobre el tema <a class="external external-icon" href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">en el fil de conversa en l'àrea d'aprenentatge</a>, o en el canal IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a class="external external-icon" href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Intenteu primer l'exercici - no es guanya res fent trampes!</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_boxes/Advanced_box_effects", "Learn/CSS/Styling_boxes/A_cool_looking_box", "Learn/CSS/Styling_boxes")}}</p> diff --git a/files/ca/learn/css/disseny_css/disseny_responsiu/index.html b/files/ca/learn/css/disseny_css/disseny_responsiu/index.html new file mode 100644 index 0000000000..5bf909e6e7 --- /dev/null +++ b/files/ca/learn/css/disseny_css/disseny_responsiu/index.html @@ -0,0 +1,324 @@ +--- +title: Disseny responsiu +slug: Learn/CSS/Disseny_CSS/Disseny_responsiu +translation_of: Learn/CSS/CSS_layout/Responsive_Design +--- +<div>{{learnsidebar}}{{PreviousMenuNext("Learn/CSS/CSS_layout/Multiple-column_Layout", "Learn/CSS/CSS_layout/Media_queries", "Learn/CSS/CSS_layout")}}</div> + +<p>En els primers dies del disseny de pàgines web es creaven pàgines per a una mida de pantalla determinada. Si l’usuari tenia una pantalla més gran o més petita que la que el dissenyador s’esperava, els resultats anaven des de barres de desplaçament no desitjades fins a línies excessivament llargues i un mal ús de l’espai. A mesura que apareixien mides de pantalla més diverses, va aparéixer el concepte de <em>disseny web responsiu</em> (RWD o <em>responsive web design</em>), un conjunt de pràctiques que permeten a les pàgines web alterar el disseny i l’aparença per a adaptar-se a diferents amplades, resolucions, etc. És una idea que ha canviat la manera de dissenyar una pàgina web per a diversos dispositius, i en aquest article t’ajudarem a entendre les principals tècniques que has de conèixer per a dominar-la.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Conceptes bàsics d’HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), i nocions de com funciona el CSS (consulta els <a href="/ca/docs/Learn/CSS/First_steps">Primers passos amb el CSS</a> i els <a href="/ca/docs/Learn/CSS/Building_blocks">elements bàsics del CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre els conceptes fonamentals i la història del disseny responsiu.</td> + </tr> + </tbody> +</table> + +<h2 id="Història_dels_dissenys_de_pàgina_web">Història dels dissenys de pàgina web</h2> + +<p>En un moment de la història, només tenies dues opcions a l’hora de dissenyar un lloc web:</p> + +<ul> + <li>Podies crear un lloc web <em>líquid</em>, que s’estendria fins a omplir la finestra del navegador</li> + <li>o un lloc amb una <em>amplada fixa</em>, que tindria una mida fixa en píxels.</li> +</ul> + +<p>Aquests dos enfocaments tenien com a resultat un lloc web que s’adequava essencialment a la pantalla de la persona que havia dissenyat el lloc web. El lloc web líquid donava un disseny aixafat en pantalles més petites (com es pot veure a continuació), i línies molt llargues que costaven molt de llegir en les pantalles grans.</p> + +<figure><img alt="Una disposició amb dues columnes aixafades en una finestra de visualització de la mida d’un dispositiu mòbil." src="https://mdn.mozillademos.org/files/16834/mdn-rwd-liquid.png" style="display: block; height: 406px; width: 300px;"> +<figcaption></figcaption> +</figure> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Observa aquest disseny de pàgina web líquid senzill: <a href="https://mdn.github.io/css-examples/learn/rwd/liquid-width.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/liquid-width.html">codi d’origen</a>. Amplia o redueix la finestra del navegador i observa com en canvia l’aspecte segons les diferents mides.</p> +</div> + +<p>Amb llocs web amb amplada fixa es corria el risc d’aparició d’una barra de desplaçament horitzontal en les pantalles que eren més petites que l’amplada del lloc web (com es pot veure a continuació) i de molta superfície blanca a les vores del disseny en les pantalles que eren més grans.</p> + +<figure><img alt="Disseny amb barra de desplaçament horitzontal en una finestra de visualització de la mida d’un dispositiu mòbil." src="https://mdn.mozillademos.org/files/16835/mdn-rwd-fixed.png" style="display: block; height: 411px; width: 300px;"> +<figcaption></figcaption> +</figure> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Observa aquest disseny de pàgina web senzill d’amplada fixa: <a href="https://mdn.github.io/css-examples/learn/rwd/fixed-width.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/fixed-width.html">codi d’origen</a>. Un cop més, canvia la mida de la finestra del navegador i observa’n el resultat.</p> +</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Les captures de pantalla de dalt es fan amb el <a href="/en-US/docs/Tools/Responsive_Design_Mode">mode de disseny responsiu</a> de les DevTools de Firefox.</p> +</div> + +<p>A mesura que la web per a dispositius mòbils va començar a esdevenir una realitat amb els primers telèfons mòbils, les companyies que volien adherir-se en general a la tecnologia mòbil creaven una versió del lloc web especial per a dispositius mòbils amb una URL diferent (sovint alguna cosa com ara <em>m.example.com</em> o <em>example.mobi</em>). Això volia dir que calia desenvolupar i mantenir actualitzades dues versions independents de la mateixa pàgina web.</p> + +<p>A més, aquests llocs web per a dispositius mòbils solien oferir una experiència d’usuari molt reduïda. Com que els dispositius mòbils es van tornar més potents i van poder mostrar llocs web complets, això frustrava els usuaris de dispositius mòbils, que es trobaven atrapats en la versió mòbil del lloc web i no podien accedir a informació que sabien que hi havia en la versió d’escriptori, que incloïa totes les funcions de la pàgina web.</p> + +<h2 id="Disseny_flexible_abans_del_disseny_responsiu">Disseny flexible abans del disseny responsiu</h2> + +<p>Es van desenvolupar diversos enfocaments per a intentar resoldre els inconvenients dels mètodes líquids o d’amplada fixa per a crear llocs web. El 2004, Cameron Adams va escriure una publicació titulada <a href="http://www.themaninblue.com/writing/perspective/2004/09/21/">Resolution dependent layout</a>, on descriu un mètode per a crear un disseny de pàgina web que s’adapta a diferents resolucions de pantalla. Aquest enfocament requeria JavaScript per a detectar la resolució de la pantalla i carregar el CSS correcte.</p> + +<p>Zoe Mickley Gillenwater va ser fonamental en <a href="http://zomigi.com/blog/voices-that-matter-slides-available/">la seva tasca</a> de descriure i formalitzar les diferents maneres de crear llocs web flexibles, per a intentar trobar una situació intermèdia entre omplir tota la pantalla o tenir una mida completament fixa.</p> + +<h2 id="El_disseny_responsiu">El disseny responsiu</h2> + +<p>El terme disseny responsiu va ser <a href="https://alistapart.com/article/responsive-web-design/">creat per Ethan Marcotte el 2010</a>, que va descriure l’ús de tres tècniques combinades.</p> + +<ol> + <li>La primera va ser la idea de les graelles fluides, cosa que ja explorava Gillenwater, i que es pot llegir en l’article de Marcotte, <a href="https://alistapart.com/article/fluidgrids/">Fluid grids</a> (publicat el 2009 en <em>A list apart</em>).</li> + <li>La segona tècnica va ser la idea d’<a href="http://unstoppablerobotninja.com/entry/fluid-images">imatges fluides</a>. Utilitzant una tècnica molt senzilla d’establir la propietat <code>max-width</code> al <code>100%</code>, les imatges es farien més petites si la columna que les contenia es feia més estreta que la mida intrínseca de la imatge, però mai no augmentaria. D’aquesta manera, una imatge s’escala per a poder-se incloure en una columna de mida flexible sense que desbordi, però no es fa més gran i es pixela si la columna s’amplia més que la imatge.</li> + <li>El tercer component clau va ser la <a href="/en-US/docs/Web/CSS/Media_Queries">consulta de mèdia</a> (o <em>media query</em>). Les consultes de mèdia habiliten el tipus de canvi de disseny de pàgina web que Cameron Adams havia explorat abans amb JavaScript, però utilitzant només CSS. En lloc de tenir un disseny de pàgina web per a cada mida de pantalla, se’n podria tenir un i canviar-ne la disposició dels elements. Es podrien fer aparèixer barres laterals per a les pantalles més petites, o es podia mostrar una navegació alternativa.</li> +</ol> + +<p>És important entendre que <strong>el disseny web responsiu no és una tecnologia independent</strong>: és un terme que s’utilitza per a descriure un enfocament del disseny de pàgines web o un conjunt de bones pràctiques que s’utilitzen per a crear un disseny de pàgines web que pugui <em>respondre</em> segons el dispositiu que s’utilitza per a visualitzar el contingut. En l’exploració original de Marcotte, això va donar lloc a les graelles flexibles (amb elements flotants) i les consultes de mèdia; però en els gairebé deu anys des que es va escriure aquest article, treballar de manera responsiva s’ha convertit en la norma. Els mètodes de disseny amb CSS moderns són intrínsecament responsius, i hi ha novetats integrades a la plataforma web que faciliten el disseny de llocs web responsius.</p> + +<p>La resta d’aquest article t’indica les diverses funcions de la plataforma web que pots utilitzar per a crear un lloc web responsiu.</p> + +<h2 id="Les_consultes_a_mèdia_media_queries">Les consultes a mèdia (<em>media queries</em>)</h2> + +<p>El disseny responsiu només va poder sorgir a causa de les consultes a mèdia. L’especificació del nivell 3 de les consultes a mèdia es va convertir en una Candidate Recommendation el 2009, cosa que significa que es considerava llesta per a implementar-la en els navegadors. Les consultes a mèdia ens permeten fer un seguit de proves (per exemple, si la pantalla de l’usuari és més gran que una certa amplada o una determinada resolució) i aplicar CSS de manera selectiva per a dissenyar la pàgina web més adequada segons les necessitats de l’usuari.</p> + +<p>Per exemple, la consulta als mèdia següent esbrina si la pàgina web que es mostra ho fa com una pantalla (per tant, no és un document imprès), i si la finestra té almenys 800 píxels d’ample. El CSS per al selector <code>.container</code> només s’aplica si aquestes dues coses són certes.</p> + +<pre class="brush: css notranslate"><code>@media screen and (min-width: 800px) { + .container { + margin: 1em 2em; + } +} </code> +</pre> + +<p>Pots afegir diverses consultes a mèdia dins d’un full d’estil, i ajustar el disseny sencer o només unes parts perquè s’adapti més bé a les diverses mides de pantalla. Els punts en què s’introdueix una consulta de mèdia i es canvia la disposició dels elements de la pàgina web es coneixen com <em>punts de ruptura</em>.</p> + +<p>Un enfocament habitual quan s’utilitzen les consultes als mèdia és crear un disseny senzill d’una sola columna per a dispositius de pantalla estreta (per exemple, telèfons mòbils), després comprovar si hi ha pantalles més grans i implementar una disposició en múltiples columnes quan saps que tens prou amplada de pantalla per a fer-ho. Sovint es descriu com disseny <strong>mobile first</strong>.</p> + +<p>Trobaràs més informació en la documentació de MDN per a les <a href="/en-US/docs/Web/CSS/Media_Queries">consultes als mèdia</a>.</p> + +<h2 id="Graelles_flexibles">Graelles flexibles</h2> + +<p>Els llocs responsius no només canvien la distribució entre punts de ruptura, sinó que es basen en graelles flexibles. Una graella flexible significa que no cal delimitar el lloc web a totes les mides possibles de dispositius que hi ha i crear un disseny en píxels perfecte. Aquest plantejament seria impossible, atès el gran nombre de dispositius de mida diferent que hi ha, i del fet que, com a mínim en la versió d’escriptori, la finestra del navegador no sempre es maximitza.</p> + +<p>Si fas servir una graella flexible, només has d’afegir un punt de ruptura i canviar el disseny en el punt en què el contingut es comença a veure malament. Per exemple, si les longituds de les línies es fan il·legibles a mesura que augmenta la mida de la pantalla, o si una caixa s’encongeix fins a una amplada de dues paraules en cada línia a mesura que la mida de la pantalla es redueix.</p> + +<p>En els primers dies del disseny responsiu, l’única opció per a dissenyar pàgines web era utilitzar <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flotadors">elements flotants</a>. Els dissenys de pantalla amb elements flotants flexibles s’aconseguien donant a cada element una amplada en percentatge i assegurar-se que no s’atenyia més del 100% per a tota la pàgina. En la seva obra original sobre graelles flexibles, Marcotte va detallar una fórmula per a convertir en percentatges un disseny de pàgina dissenyat en píxels.</p> + +<pre class="notranslate"><code>target / context = result </code> +</pre> + +<p>Per exemple, si la mida de la nostra columna de destinació és de 60 píxels i el context (o contenidor) en què es troba és de 960 píxels, dividim 60 per 960 i obtenim un valor que podem utilitzar en el nostre CSS, després de traslladar el punt decimal dos llocs a la dreta.</p> + +<pre class="brush: css notranslate"><code>.col { + width: 6.25%; /* 60 / 960 = 0.0625 */ +} </code> +</pre> + +<p>Avui dia trobaràs aquest enfocament en molts llocs web, i també el trobaràs documentat aquí, en la secció dedicada al disseny de l’article de <a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">mètodes heretats de disseny de pàgines web</a>. És probable que en el transcurs del teu treball et trobis amb llocs web que usen aquest enfocament, de manera que val la pena entendre’l, tot i que no construiràs un lloc modern amb una graella flexible basada en elements flotants.</p> + +<p>L’exemple següent mostra un disseny senzill i sensible amb consultes a mèdia i una graella flexible. En pantalles estretes, el disseny mostra les caixes apilades les unes sobre les altres:</p> + +<figure><img alt="Una vista d’un dispositiu mòbil amb una disposició de caixes apilades verticalment l’una sobre l’altra." src="https://mdn.mozillademos.org/files/16836/mdn-rwd-mobile.png" style="display: block; height: 407px; width: 300px;"> +<figcaption></figcaption> +</figure> + +<p>En pantalles més amples es passa a dues columnes:</p> + +<figure><img alt="Una vista d’un dispositiu d’escriptori d’un disseny amb dues columnes." src="https://mdn.mozillademos.org/files/16837/mdn-rwd-desktop.png" style="display: block; height: 217px; width: 600px;"> +<figcaption></figcaption> +</figure> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar l’<a href="https://mdn.github.io/css-examples/learn/rwd/float-based-rwd.html">exemple en viu</a> i el <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/float-based-rwd.html">codi d’origen</a> d’aquest exemple a GitHub.</p> +</div> + +<h2 id="Tecnologies_modernes_de_disseny_de_pàgines_web">Tecnologies modernes de disseny de pàgines web</h2> + +<p>De manera predeterminada, els mètodes moderns de disseny de pàgines web com ara el <a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">disseny en múltiples columnes</a>, el <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flexbox">Flexbox</a> i el <a href="/ca/docs/Learn/CSS/Disseny_CSS/Graelles">Grid</a> són responsius per defecte. Tots aquests mètodes parteixen de la base que vols crear una graella flexible i et proporcionen les maneres de fer-ho més fàcils.</p> + +<h3 id="Multicol">Multicol</h3> + +<p>El més antic d’aquests mètodes de disseny de pàgines web és <code>multicol</code>: quan especifiques un nombre de columnes (<code>column-count</code>), indiques en quantes columnes vols dividir el contingut. El navegador llavors calcula la mida d’aquestes columnes, que canvia d’acord amb la mida de la pantalla.</p> + +<pre class="brush: css notranslate"><code>.container { + column-count: 3; +} </code> +</pre> + +<p>Si en lloc d’això estableixes l’atribut <code>column-width</code>, especifiques una amplada <em>mínima</em>. El navegador crea tantes columnes d’aquesta amplada com càpiguen còmodament en el contenidor, i reparteix l’espai entre totes les columnes. Per tant, el nombre de columnes canvia segons la quantitat d’espai que hi ha.</p> + +<pre class="brush: css notranslate"><code>.container { + column-width: 10em; +} </code> +</pre> + +<h3 id="Flexbox">Flexbox</h3> + +<p>Amb la tecnologia Flexbox, els elements flexibles es redueixen i distribueixen l’espai entre els elements d’acord amb l’espai que hi ha en el contenidor segons el comportament inicial que tenen predeterminat. Si canvies els valors de <code>flex-grow</code> i <code>flex-shrink</code>, pots indicar com vols que es comportin els elements quan hi ha més o menys espai al voltant.</p> + +<p>En l’exemple següent, els elements flexibles ocupen cada un la mateixa quantitat d’espai en el contenidor flexible, mitjançant la propietat abreviada <code>flex: 1</code>, com es descriu en l’article <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Disseny_CSS/Flexbox#Dimensi%C3%B3_flexible_dels_elements_flexibles">Flexbox: Dimensions flexibles d’elements flex</a>.</p> + +<pre class="brush: css notranslate"><code>.container { + display: flex; +} + +.item { + flex: 1; +} </code> +</pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Com a exemple hem reconstruït el disseny responsiu senzill anterior, aquest cop amb Flexbox. Pots veure que ja no cal fer servir valors percentuals estranys per a calcular la mida de les columnes: <a href="https://mdn.github.io/css-examples/learn/rwd/flex-based-rwd.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/flex-based-rwd.html">codi d’origen</a>.</p> +</div> + +<h3 id="Graella_CSS">Graella CSS</h3> + +<p>En el disseny de pàgines web amb graella CSS, la unitat <code>fr</code> permet distribuir l’espai disponible en les traces d’una graella. L’exemple següent crea un contenidor de graella amb tres traces de mida <code>1fr</code>. Es creen tres traces de columna, i cadascuna ocupa una part de l’espai disponible en el contenidor. Pots obtenir més informació sobre aquest enfocament per a crear una graella en la secció Aprendre a dissenyar graelles, de l’article <a href="/en-US/docs/Learn/CSS/CSS_layout/Grids#Flexible_grids_with_the_fr_unit">Graelles flexibles amb la unitat fr</a>.</p> + +<pre class="brush: css notranslate"><code>.container { + display: grid; + grid-template-columns: 1fr 1fr 1fr; +} </code> +</pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: La versió del disseny de pàgines web amb graella és encara més senzilla, perquè permet definir les columnes amb .wrapper: <a href="https://mdn.github.io/css-examples/learn/rwd/grid-based-rwd.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/grid-based-rwd.html">codi d’origen</a>.</p> +</div> + +<h2 id="Imatges_responsives">Imatges responsives</h2> + +<p>L’enfocament més senzill de les imatges responsives es va descriure en els primers articles de Marcotte sobre el disseny de pàgines web responsiu. Bàsicament, agafes una imatge de la mida més gran que puguis necessitar, i la redueixes. Aquest és encara un enfocament emprat avui, i en la majoria de fulls d’estil trobaràs en algun lloc el CSS següent:</p> + +<pre class="brush: css notranslate"><code>img { + max-width: 100%: +} </code> +</pre> + +<p>Hi ha inconvenients evidents en aquest enfocament. És possible que la imatge es mostri molt més petita que la seva mida intrínseca, i això representa una pèrdua d’amplada de banda: un usuari de dispositiu mòbil pot acabar descarregant una imatge que és diverses vegades de la mida del que realment veu a la finestra del navegador. A més, pot ser que no vulguis la mateixa relació d’aspecte de la imatge al mòbil i a l’escriptori. Per exemple, pot ser bo tenir una imatge quadrada per a mòbils, i mostrar la mateixa imatge en format apaïsat a l’escriptori. O bé, tenint en compte la mida més petita del dispositiu mòbil, pot ser que hi vulguis mostrar una imatge diferent, que s’entengui més fàcilment en una pantalla petita. Aquestes coses no es poden aconseguir simplement reduint una imatge.</p> + +<p>Les imatges responsives, amb l’element {{htmlelement("picture")}} i els atributs <code>srcset</code> i <code>sizes</code> de {{htmlelement("img")}} resolen tots dos problemes. Pots proporcionar diverses mides, juntament amb «suggeriments» (metadades que descriuen la mida de la pantalla i la resolució a la qual s’adapta la imatge), i el navegador tria la imatge més adequada per a cada dispositiu i procura que l’usuari descarregui la mida adequada de la imatge en el dispositiu que utilitza.</p> + +<p>També pots usar imatges de <em>director artístic</em>, que proporcionen un retall o una imatge completament diferent per a diferents mides de pantalla.</p> + +<p>Pots trobar una guia detallada sobre <a href="/ca/docs/Learn/HTML/Multimèdia_i_incrustar/Imatges_sensibles">Imatges responsives</a> en el mòdul Aprendre HTML de MDN.</p> + +<h2 id="Tipografia_responsiva">Tipografia responsiva</h2> + +<p>Un element de disseny responsiu que encara no hem tractat en articles anteriors és la idea de la tipografia responsiva. Aquest concepte descriu essencialment el fet de canviar la mida de lletra segons l’espai de pantalla que reflecteixen les consultes a mèdia.</p> + +<p>En aquest exemple, volem establir el nostre títol d’encapçalament de nivell 1 en <code>4rem</code>, és a dir, que serà quatre vegades la mida de la nostra lletra base. És un títol molt gran! Només volem aquest títol d’encapçalament tan gran en mides de pantalla grans, per tant, primer creem un títol d’encapçalament més petit i després utilitzem les consultes a mèdia per a sobreescriure’l amb la mida més gran si sabem que l’usuari té una mida de pantalla d’almenys <code>1200px</code>.</p> + +<pre class="brush: css notranslate"><code>html { + font-size: 1em; +} + +h1 { + font-size: 2rem; +} + +@media (min-width: 1200px) { + h1 { + font-size: 4rem; + } +} </code> +</pre> + +<p>Hem editat el nostre exemple de graella responsiva per a incloure el tipus responsiu amb el mètode descrit. Pots veure com el títol d’encapçalament canvia de mida a mesura que el disseny canvia a la versió de dues columnes.</p> + +<p>En el dispositiu mòbil, el títol d’encapçalament és més petit:</p> + +<figure><img alt="Un esquema apilat amb una mida de títol d’encapçalament petita." src="https://mdn.mozillademos.org/files/16838/mdn-rwd-font-mobile.png" style="display: block; height: 407px; width: 300px;"> +<figcaption></figcaption> +</figure> + +<p>Tanmateix, en el dispositiu d’escriptori veiem la mida del títol d’encapçalament més gran:</p> + +<figure><img alt="Un disseny de dues columnes amb un títol d’encapçalament gran." src="https://mdn.mozillademos.org/files/16839/mdn-rwd-font-desktop.png" style="display: block; height: 169px; width: 600px;"> +<figcaption></figcaption> +</figure> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Observa aquest exemple en acció: <a href="https://mdn.github.io/css-examples/learn/rwd/type-rwd.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/type-rwd.html">codi d’origen</a>.</p> +</div> + +<p>Tal com mostra aquest enfocament de la tipografia, no cal restringir les consultes a mèdia a canviar només el disseny de pàgina web. Es poden utilitzar per a ajustar qualsevol element i fer-lo més útil o atractiu a les diverses mides de pantalla.</p> + +<h3 id="L’ús_d’unitats_de_finestra_de_visualització_per_a_tipografies_responsives">L’ús d’unitats de finestra de visualització per a tipografies responsives</h3> + +<p>Un enfocament interessant és utilitzar la unitat <code>vw</code> de finestra de visualització per a habilitar la tipografia responsiva. <code>1vw</code> és igual a un 1 per cent de l’amplada de la visualització, cosa que significa que si defineixes la mida de la lletra amb <code>vw</code>, sempre es relacionarà amb la mida de la finestra de visualització.</p> + +<pre class="brush: css notranslate">h1 { + font-size: 6vw; +}</pre> + +<p>El problema de fer servir la unitat <code>vw</code> és que l’usuari perd la capacitat d’ampliar un bloc de text, perquè aquest text sempre està relacionat amb la mida de la finestra de visualització. <strong>Per tant, mai no hauries de definir text fent servir només les unitats de finestra de visualització</strong>.</p> + +<p>Hi ha una solució, que implica l’ús de <code><a href="/en-US/docs/Web/CSS/calc">calc()</a></code>. Si afegeixes la unitat <code>vw</code> a un conjunt de valors amb una mida fixa com <code>em</code> o <code>rem</code>, encara es pot fer zoom del text. Essencialment, la unitat <code>vw</code> s’afegeix a sobre d’aquest valor ampliat:</p> + +<pre class="brush: css notranslate">h1 { + font-size: calc(1.5rem + 3vw); +}</pre> + +<p>Això vol dir que només hem d’especificar la mida de la lletra per al títol d’encapçalament, en lloc de configurar-la per a dispositius mòbils i redefinir-la segons les consultes a mèdia. A continuació, la lletra augmenta gradualment a mesura que augmenta la mida de la finestra de visualització.</p> + +<div class="blockIndicator note"> +<p>Observa aquest exemple en acció: <a href="https://mdn.github.io/css-examples/learn/rwd/type-vw.html">exemple</a>, <a href="https://github.com/mdn/css-examples/blob/master/learn/rwd/type-vw.html">codi d’origen</a>.</p> +</div> + +<h2 id="L’etiqueta_meta_de_la_finestra_de_visualització">L’etiqueta <code>meta</code> de la finestra de visualització</h2> + +<p>Si observes el tipus de lletra d’una pàgina HTML responsiva, normalment trobaràs l’etiqueta {{htmlelement("meta")}} a la capçalera (<code><head></code>) del document.</p> + +<pre class="brush: html notranslate"><code><meta name="viewport" content="width=device-width,initial-scale=1"></code> +</pre> + +<p>Aquesta etiqueta <code>meta</code> indica als navegadors dels dispositius mòbils que han d’establir l’amplada de la finestra de visualització a l’amplada del dispositiu i escalar el document al 100% de la mida prevista, cosa que mostra el document a la mida optimitzada per a dispositius mòbils.</p> + +<p>Per què cal, això? Perquè els navegadors dels dispositius mòbils tendeixen a mentir sobre l’amplada de la finestra de visualització.</p> + +<p>Aquesta etiqueta <code>meta</code> existeix perquè quan es va llançar l’iPhone original i la gent va començar a veure llocs web en una petita pantalla de telèfon, la majoria dels llocs web no estaven optimitzats per a dispositius mòbils. Per tant, el navegador del dispositiu mòbil establia l’amplada de la visualització a 960 píxels, la representava a aquella amplada i mostrava el resultat com la versió ampliada del disseny per al dispositiu d’escriptori. Altres navegadors de dispositius mòbils (per exemple, el de Google Android) van fer el mateix. Els usuaris podien fer zoom i desplaçar-se per la web per a veure els fragments que els interessaven, però allò no era còmode. Encara ho podràs veure si tens la mala sort d’anar a parar a un lloc web que no té un disseny responsiu.</p> + +<p>El problema és que el teu disseny responsiu amb punts de ruptura i consultes a mèdia no funciona tal com es preveu per als navegadors mòbils. Si tens un disseny de pantalla estret que s’inicia amb una amplada de visualització de 480px o menys i la ruptura s’estableix a 960px, mai no veuràs la disposició de pantalla estreta al dispositiu mòbil. En canvi, si defineixes <code>width=device-width</code>, sobreescrius l’amplada predeterminada d’Apple <code>width=960px</code> amb l’amplada real del dispositiu, de manera que les consultes a mèdia permetran que funcioni com es preveu.</p> + +<p><strong>Per tant, <em>sempre</em> has d’incloure la línia HTML anterior a la capçalera dels teus documents.</strong></p> + +<p>Hi ha altres opcions de configuració que pots utilitzar amb l’etiqueta <code>meta</code> de la finestra de visualització, però, en general, t’anirà bé utilitzar la línia anterior.</p> + +<ul> + <li><code>initial-scale</code>: Configura el zoom inicial de la pàgina, que establim a 1.</li> + <li><code>height</code>: Estableix una alçada específica per a la finestra de visualització.</li> + <li><code>minimum-scale</code>: Estableix el nivell mínim de zoom.</li> + <li><code>maximum-scale</code>: Estableix el nivell màxim de zoom.</li> + <li><code>user-scalable</code>: Impedeix fer zoom si es defineix <code>no</code>.</li> +</ul> + +<p>Has d’evitar l’ús de <code>minimum-scale</code>, <code>maximum-scale</code>, i en particular la configuració de <code>user-scalable</code> en <code>no</code>. Els usuaris haurien de poder fer zoom en la mesura que necessitin; impedir això genera problemes d’accessibilitat.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Hi ha una @rule CSS dissenyada per a substituir l’etiqueta <code>meta</code> de la finestra de visualització (<a href="/en-US/docs/Web/CSS/@viewport">@viewport</a>), però té una compatibilitat de navegadors deficient. Es va implementar a Internet Explorer i Edge, però un cop entri en funcionament Edge basat en Chromium, deixarà de formar part del navegador Edge.</p> +</div> + +<h2 id="Resum">Resum</h2> + +<p>El disseny responsiu es refereix a un disseny de lloc o d’aplicació que respon a l’entorn en què es visualitza. Comprèn diverses funcions i tècniques CSS i HTML, i ara és essencialment l’única manera com construïm els llocs web per defecte. Tingues en compte els llocs web que visites amb el dispositiu mòbil: probablement és poc habitual trobar-te amb un lloc que és la versió reduïda de la d’escriptori, o en què cal desplaçar-se de costat per a trobar-hi coses. Això és perquè la xarxa web s’ha orientat cap a aquest enfocament de disseny responsiu.</p> + +<p>També ha estat molt més fàcil aconseguir dissenys responsius amb l’ajuda dels mètodes de disseny que has après en aquests articles. Si ets nou en el desenvolupament web, avui tens moltes més eines a la teva disposició que en els primers dies del disseny responsiu. Per tant, val la pena comprovar la data dels materials de referència que consultes. Tot i que els articles històrics continuen sent útils, l’ús modern de CSS i HTML facilita molt la creació de dissenys elegants i útils, i independents del dispositiu del visitant.</p> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Multiple-column_Layout", "Learn/CSS/CSS_layout/Media_queries", "Learn/CSS/CSS_layout")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Introduction">Introducció al disseny CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow">Flux normal</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox">Flexbox</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">Grid</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Floats">Elements flotants</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Positioning">Posicionament</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">Disseny en diverses columnes</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design">El disseny responsiu</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Media_queries">Guia d’iniciació a les consultes de mèdia</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">Mètodes heretats de disseny de pàgines web </a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">Compatibilitat dels navegadors antics</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">Avaluació del conjunt d’elements bàsics del disseny</a></li> +</ul> diff --git a/files/ca/learn/css/disseny_css/exemples_pràctics_posicionament/index.html b/files/ca/learn/css/disseny_css/exemples_pràctics_posicionament/index.html new file mode 100644 index 0000000000..dfaac7f63c --- /dev/null +++ b/files/ca/learn/css/disseny_css/exemples_pràctics_posicionament/index.html @@ -0,0 +1,404 @@ +--- +title: Exemples pràctics de posicionament +slug: Learn/CSS/Disseny_CSS/Exemples_pràctics_posicionament +tags: + - Article + - Beginner + - CSS + - CodingScripting + - Guide + - Layout + - Learn + - absolute + - fixed + - relative +translation_of: Learn/CSS/CSS_layout/Practical_positioning_examples +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Positioning", "Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout")}}</div> + +<p class="summary">Amb els fonaments del posicionament coberts en l'últim article, ara veurem com crear alguns exemples del món real, per il·lustrar quin tipus de coses podeu fer amb el posicionament.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Conceptes bàsics d'HTML</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a>), <span id="result_box" lang="ca"><span>i una idea de com funciona CSS</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Tenir una idea dels aspectes pràctics del posicionament</td> + </tr> + </tbody> +</table> + +<h2 id="Una_caixa_d'informació_amb_pestanyes"><span id="result_box" lang="ca"><span>Una caixa d'informació amb pestanyes</span></span></h2> + +<p>El primer exemple que veurem és una caixa d'informació amb pestanyes clàssica - una característica molt freqüent que es fa servir quan voleu empaquetar molta informació en una petita àrea. Això inclou aplicacions de gran abast d'informació, com ara jocs d'estratègia/guerra, versions mòbils de llocs web on la pantalla és estreta i l'espai és limitat, i caixes d'informació compactes on és possible que vulgueu tenir molta informació disponible sense haver d'omplir tota la IU. El nostre senzill exemple es veurà així una vegada que hàgim acabat:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13368/tabbed-info-box.png" style="display: block; height: 400px; margin: 0px auto; width: 450px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple acabat executant-ho en directa a <a href="http://mdn.github.io/learning-area/css/css-layout/practical-positioning-examples/info-box.html">info-box.html</a> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/info-box.html">codi font</a>). Consulteu-ho per tenir una idea del que estareu construint en aquesta secció de l'article.</p> +</div> + +<p>Podeu estar pensant "per què no crear les pestanyes separades com a pàgines web independents, i només les pestanyes, fent clic a través de les pàgines independents per crear l'efecte?" Aquest codi seria més senzill, sí, però cada visualització de "pàgina" per separat seria en realitat una pàgina web recentment carregada, la qual cosa faria més difícil guardar la informació entre les vistes i integrar aquesta característica en un disseny de d'interfície d'usuari més gran. A més, les anomenades "aplicacions de pàgina única" s'estan tornant molt populars - especialment per a les d'interfície d'usuari web mòbils - ja que tenir tot el que serveix com un únic arxiu redueix el nombre de sol·licituds HTTP necessàries per visualitzar tot el contingut, millorant així el rendiment.</p> + +<div class="note"> +<p><strong>Nota</strong>: Alguns desenvolupadors web porten les coses encara més lluny, només tenen una pàgina d'informació carregada alhora i canvien dinàmicament la informació que es mostra utilitzant, una funció de JavaScript com <a href="/en-US/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a>. En aquest punt de l'aprenentatge, però, volem que les coses siguin tan simples com sigui possible. Hi ha una mica de JavaScript més endavant, però només una mica.</p> +</div> + +<p>Per començar, ens agradaria que féssiu una còpia del fitxer HTML d'inici - <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/info-box-start.html">info-box-start.html</a>. Deseu-lo en algun lloc sensible a l'ordinador i obrir-ho en el vostre editor de text. Vegem l'HTML contingut en el cos:</p> + +<pre class="brush: html"><section class="info-box"> + <ul> + <li><a href="#" class="active">Tab 1</a></li> + <li><a href="#">Tab 2</a></li> + <li><a href="#">Tab 3</a></li> + </ul> + <div class="panels"> + <article class="active-panel"> + <h2>The first tab</h2> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque turpis nibh, porttitor nec venenatis eu, pulvinar in augue. Vestibulum et orci scelerisque, vulputate tellus quis, lobortis dui. Vivamus varius libero at ipsum mattis efficitur ut nec nisl. Nullam eget tincidunt metus. Donec ultrices, urna maximus consequat aliquet, dui neque eleifend lorem, a auctor libero turpis at sem. Aliquam ut porttitor urna. Nulla facilisi.</p> + </article> + <article> + <h2>The second tab</h2> + + <p>This tab hasn't got any Lorem Ipsum in it. But the content isn't very exciting all the same.</p> + </article> + <article> + <h2>The third tab</h2> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque turpis nibh, porttitor nec venenatis eu, pulvinar in augue. And now an ordered list: how exciting!</p> + + <ol> + <li>dui neque eleifend lorem, a auctor libero turpis at sem.</li> + <li>Aliquam ut porttitor urna.</li> + <li>Nulla facilisi</li> + </ol> + </article> + </div> +</section></pre> + +<p>Així que aquí tenim un element {{htmlelement("section")}} amb una <code>class</code> <code>info-box</code>, que conté un {{htmlelement("ul")}} i un {{htmlelement("div")}}. La llista desordenada conté tres elements de llista amb enllaços a l'interior, que es convertiran en les pestanyes reals per fer clic, per visualitzar els nostres panells de contingut. El div conté tres elements {{htmlelement("article")}}, que formaran els panells de contingut que corresponen a cada pestanya. Cada panell conté alguns continguts d'exemple.</p> + +<p>La idea, aquí, és fer que l'estil de pestanyes pogui semblar-se a un menú estàndard de navegació horitzontal i donant-li estil els panells per a que s'asseguin un damunt de l'altre mitjançant el posicionament absolut. També us donarem una mica de JavaScript per incloure a la vostra pàgina, per mostrar el panell corresponent quan es pressiona una pestanya i l'estil de la pestanya en si. No necessitareu entendre el JavaScript en aquesta etapa, però haureu de pensar en aprendre una mica de <a href="/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics">JavaScript</a> bàsic, el més aviat possible - com més complexes siguin les característiques de la vostra interfície d'usuari, més probable és que necessiteu implementar JavaScript a la vostra funcionalitat desitjada.</p> + +<h3 id="Configuració_general">Configuració general</h3> + +<p>Per començar, afegiu el següent entre l'obertura i tancament de les etiquetes {{HTMLElement("style")}}:</p> + +<pre class="brush: css">html { + font-family: sans-serif; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; +}</pre> + +<p>Aquesta és només una configuració general per establir una font sans-serif a la nostra pàgina, utilitzar el model <code>border-box</code> de {{cssxref("box-sizing")}} i desfer-se del marge predeterminat de {{htmlelement("body")}}.</p> + +<p>A continuació, afegiu el següent just a sota del vostre CSS anterior:</p> + +<pre class="brush: css">.info-box { + width: 450px; + height: 400px; + margin: 0 auto; +}</pre> + +<p>Això estableix un ample i alçada específic sobre el contingut i el centra a la pantalla mitjançant el antic truc <code>margin: 0 auto;</code>. Anteriorment en el curs, vam aconsellar no establir una alçada fixa en contenidors de contingut, si fos possible; Està bé en aquesta circumstància, perquè tenim contingut fix en les nostres pestanyes. També sembla una mica discordant tenir diferents pestanyes a diferents alçades.</p> + +<h3 id="Estilitzar_les_nostres_pestanyes">Estilitzar les nostres pestanyes</h3> + +<p>Ara volem que les pestanyes d'estil semblin com a pestanyes - bàsicament, aquest és un menú de navegació horitzontal, però en comptes de carregar diferents pàgines web quan es fa clic, com hem vist prèviament al curs, fa que es mostrin panells diferents en la mateixa pàgina. Primer, afegiu la següent regla a la part inferior del vostre CSS per eliminar el valor predeterminat {{cssxref("padding-left")}} i {{cssxref("margin-top")}} de la llista no ordenada:</p> + +<pre class="brush: css">.info-box ul { + padding-left: 0; + margin-top: 0; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: Estem utilitzant selectors descendents amb <code>.info-box</code> al principi de la cadena a través d'aquest exemple - això és per poguer inserir aquesta funció en una pàgina amb un altre contingut ja en ella, sense por a interferir amb els estils aplicats a altres parts de la pàgina.</p> +</div> + +<p>A continuació, dissenyarem les pestanyes horitzontals - els elements de la llista es flotant tots cap a l'esquerra per fer que s'asseguin en una sola línia, el seu {{cssxref("list-style-type")}} s'estableix a <code>none</code> per desfer-se de les vinyetes i el seu {{cssxref("width")}} s'estableix a <code>150px</code> perquè s'ajusti còmodament a través de la caixa d'informació (info-box). Els elements {{htmlelement("a")}} estan configurats en {{cssxref("display")}} inline-block, perquè s'asseguin en una línia però que encara siguin estilitzables, i estiguin dissenyats adequadament per als botons de pestanya, usant una varietat d'altres propietats.</p> + +<p>Afegiu el següent CSS:</p> + +<pre class="brush: css">.info-box li { + float: left; + list-style-type: none; + width: 150px; +} + +.info-box li a { + display: inline-block; + text-decoration: none; + width: 100%; + line-height: 3; + background-color: red; + color: black; + text-align: center; +}</pre> + +<p>Finalment, per a aquesta secció, establirem alguns estils als estats de l'enllaç. En primer lloc, configurarem els estats <code>:focus</code> i <code>:hover</code> de les pestanyes, perquè es vegin diferents quan estan enfocats/planejats, oferint als usuaris alguna infomació visual. En segon lloc, establirem una regla que posi el mateix estil en una de les pestanyes quan hi hagi una <code>class</code> <code>active</code> present en ella. Definirem això mitjançant JavaScript quan es faci clic a una pestanya. Col·loqueu els següents CSS per sota dels altres estils:</p> + +<pre class="brush: css">.info-box li a:focus, .info-box li a:hover { + background-color: #a60000; + color: white; +} + +.info-box li a.active { + background-color: #a60000; + color: white; +}</pre> + +<h3 id="Estilitzar_els_panells">Estilitzar els panells</h3> + +<p>El següent treball és dissenyar els nostres panells. Anem a engegar-ho!</p> + +<p>Primer de tot, afegiu la següent regla per dissenyar el contenidor <code>.panels</code> {{htmlelement("div")}}. Aquí, simplement, hem establert un {{cssxref("height")}} fix per assegurar-nos que els panells s'ajustin bé a l'interior de la caixa d'informació, {{cssxref("position")}} <code>relative</code> pel que fa a {{htmlelement("div" )}} com a context de posicionament, de manera que podeu col·locar elements fills posicionats relatius a ell i no a l'element {{htmlelement("html")}} i finalment el flotador {{cssxref("clear")}} establert en el CSS anterior perquè no interfereixi amb la resta del disseny.</p> + +<pre class="brush: css">.info-box .panels { + height: 352px; + position: relative; + clear: both; +}</pre> + +<p>Finalment, per a aquesta secció, dissenyarem els elements individuals {{htmlelement("article")}} que componen els nostres panells. La primera regla que afegirem serà {{cssxref("position")}} <code>absolute</code> dels panells, i farà que tots quedin asseguts, alineats a {{cssxref("top")}} i {{cssxref("left")}} del seu contenidor {{htmlelement ("div")}} - aquesta part és absolutament clau per a tota aquesta característica de disseny, ja que fa que els panells s'asseguin uns sobre els altres. La regla també proporciona als panells la mateixa alçada de conjunt que el contenidor, i dóna al contingut un farciment, un text {{cssxref("color")}} i un {{cssxref("background-color")}}.</p> + +<p>La segona regla que afegirem aquí fa que un panell amb una <code>class</code> <code>active-panel</code>, establert en ell, tindrà un {{cssxref("z-index")}} d'1, que se li aplicarà, la qual cosa farà que s'asseguin per sobre dels altres panells (els elements posicionats tenen un <code>z-index</code> de 0 per defecte, la qual cosa els posaria a continuació). Una vegada més, afegirem aquesta classe utilitzant JavaScript en el moment adequat.</p> + +<pre class="brush: css">.info-box article { + position: absolute; + top: 0; + left: 0; + height: 352px; + padding: 10px; + color: white; + background-color: #a60000; +} + +.info-box .active-panel { + z-index: 1; +}</pre> + +<h3 id="Afegir_el_nostre_JavaScript">Afegir el nostre JavaScript</h3> + +<p>L'últim pas per fer funcionar aquesta característica és afegir JavaScript. Col·loqueu el següent bloc de codi, exactament com s'escriu, entre les etiquetes d'obertura i tancament {{htmlelement("script")}} (trobareu aquestes a sota del contingut HTML):</p> + +<pre>var tabs = document.querySelectorAll('.info-box li a'); +var panels = document.querySelectorAll('.info-box article'); + +for(i = 0; i < tabs.length; i++) { + var tab = tabs[i]; + setTabHandler(tab, i); +} + +function setTabHandler(tab, tabPos) { + tab.onclick = function() { + for(i = 0; i < tabs.length; i++) { + tabs[i].className = ''; + } + + tab.className = 'active'; + + for(i = 0; i < panels.length; i++) { + panels[i].className = ''; + } + + panels[tabPos].className = 'active-panel'; + } +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest codi fa el següent:</span></span></p> + +<ul> + <li>Primer guardem una referència a totes les pestanyes i panells en dues variables anomenades <code>tabs</code> i <code>panels</code>, així, fàcilment, podem fer coses amb elles més endavant.</li> + <li>A continuació, utilitzem un bucle <code>for</code> per recórrer totes les pestanyes i executar una funció anomenada <code>setTabHandler()</code> en cadascuna, en el qual s'estableix la funcionalitat que ha de produir-se quan es fa clic en cadascuna d'elles. Quan s'executa, es passa a la funció una referència a la pestanya, en particular, per a la qual s'executa, <code>i</code> un nombre d'índex i que identifica la posició de la pestanya en la matriu <code>tabs</code>.</li> + <li>A la funció <code>setTabHandler()</code>, la pestanya té un controlador d'esdeveniments onclick establert en ell, de manera que quan es fa clic a la pestanya, es produeix el següent: + <ul> + <li>Un bucle <code>for</code> s'utilitza per recórrer totes les pestanyes i eliminar les classes que hi són presents.</li> + <li>Una <code>class</code> <code>active</code> s'estableix a la pestanya en la qual s'ha fet clic - recordeu que, anteriorment, aquesta classe té una regla associada al CSS que estableix el mateix estil {{cssxref("color")}} i {{cssxref("background-color")}} a la pestanya com els panells.</li> + <li>Un bucle <code>for</code> s'utilitza per recórrer tots els panells i eliminar les classes que hi són presents.</li> + <li>Una classe <code>active-panel</code> s'estableix al panell que correspon a la pestanya que es va fer clic - recordeu que anteriorment, aquesta classe té una regla associada al CSS que estableix el seu {{cssxref("z-index")}} a 1, fent que aparegui a la part superior dels altres panells.</li> + </ul> + </li> +</ul> + +<p>Això és tot pel primer exemple. Manteniu obert el vostre codi, ja que l'afegirem a la segona.</p> + +<h2 id="Una_caixa_d'informació_amb_pestanyes_de_posició_fixa">Una caixa d'informació amb pestanyes de posició fixa</h2> + +<p>En el nostre segon exemple, farem el nostre primer exemple - la nostra caixa d'informació - i l'afegirem al context d'una pàgina web completa. Però no només això - li donarem una posició fixa perquè es mantingui en la mateixa posició en la finestra del navegador. Quan el contingut principal es desplaci, la caixa d'informació romandrà en la mateixa posició en la pantalla. El nostre exemple acabat tindrà aquest aspecte:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13364/fixed-info-box.png" style="border-style: solid; border-width: 1px; display: block; height: 585px; margin: 0px auto; width: 1118px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple acabat, executant-ho en directe a <a href="http://mdn.github.io/learning-area/css/css-layout/practical-positioning-examples/fixed-info-box.html">fixed-info-box.html</a> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/fixed-info-box.html">codi font</a>). Comproveu-ho per tenir una idea del que serà la construcció d'aquesta secció de l'article.</p> +</div> + +<p>Com a punt de partida, podeu fer servir l'exemple complet de la primera secció de l'article o fer una còpia local de <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/info-box.html">info-box.html</a> des del nostre repositori de Github.</p> + +<h3 id="Addicions_HTML">Addicions HTML</h3> + +<p>En primer lloc, necessitem un codi HTML addicional per representar el contingut principal del lloc web. Afegiu el següent {{htmlelement("section")}} just a sota de l'etiqueta d'apertura {{htmlelement("body")}}, just abans de la secció existent:</p> + +<pre class="brush: html"><section class="fake-content"> + <h1>Fake content</h1> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> + <p>This is fake content. Your main web page contents would probably go here.</p> +</section></pre> + +<div class="note"> +<p><strong>Nota</strong>: Us podeu sentir lliures de canviar el contingut fals per a algun contingut real si ho desitjeu.</p> +</div> + +<h3 id="Canvis_al_CSS_existent">Canvis al CSS existent</h3> + +<p>A continuació, hem de fer petits canvis al CSS existent, per tenir la caixa d'informació col·locada i posicionada Canvieu la regla <code>.info-box</code> per desfer-vos del <code>margin: 0 auto;</code> (Ja no volem que la caixa d'informació estigui centrada), afegiu {{cssxref("position")}}: <code>fixed;</code>, i enganxeu-ho en el {{cssxref("top")}} de la finestra de visualització del navegador.</p> + +<p>Ara ha de ser així:</p> + +<pre class="brush: css">.info-box { + width: 450px; + height: 400px; + position: fixed; + top: 0; +}</pre> + +<h3 id="Estilitzar_el_contingut_principal">Estilitzar el contingut principal</h3> + +<p>L'únic que queda per a aquest exemple és proporcionar al contingut principal amb un estil. Afegiu la següent regla sota la resta del vostre CSS:</p> + +<pre class="brush: css">.fake-content { + background-color: #a60000; + color: white; + padding: 10px; + height: 2000px; + margin-left: 470px; +}</pre> + +<p>Per començar, donem al contingut el mateix {{cssxref("background-color")}}, {{cssxref("color")}}, i {{cssxref("padding")}} com els panells de caixa d'informació. A continuació, li donem un gran {{cssxref("margin-left")}} per moure-ho cap a la dreta, fent espai perquè la caixa d'informació s'assegui, de manera que no se superposi amb qualsevol altre cosa.</p> + +<p>Això marca el final del segon exemple; esperem que trobeu el tercer tan interessant.</p> + +<h2 id="Un_panell_amagat_lliscant"><span id="result_box" lang="ca"><span>Un panell amagat lliscant</span></span></h2> + +<p>L'exemple final que presentarem aquí és un panell que es llisca des de dins i fora de la pantalla en prémer una icona - com s'ha esmentat anteriorment, això és popular per a situacions com ara dissenys de mòbils, on els espais de pantalla disponibles són petits, per la qual cosa no es desitja usar la major part d'ella, mostrant un menú o panell d'informació en lloc de contingut útil.</p> + +<p>El nostre exemple acabat tindrà aquest aspecte:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13366/hidden-sliding-panel.png" style="border-style: solid; border-width: 1px; display: block; height: 521px; margin: 0px auto; width: 950px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple acabat, executant-ho en directe a <a href="http://mdn.github.io/learning-area/css/css-layout/practical-positioning-examples/hidden-info-panel.html">hidden-info-panel.html</a> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/hidden-info-panel.html">codi font</a>). Comproveu-ho per tenir una idea del que serà la construcció d'aquesta secció de l'article.</p> +</div> + +<p>Com a punt de partida, feu una còpia local de <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/practical-positioning-examples/hidden-info-panel-start.html">hidden-info-panel-start.html</a> des del nostre repositori de Github. Això no segueix l'exemple anterior, de manera que cal un nou fitxer d'inici. Fem un cop d'ull al codi HTML del fitxer:</p> + +<pre class="brush: css"><label for="toggle">❔</label> +<input type="checkbox" id="toggle"> +<aside> + + ... + +</aside></pre> + +<p>Per començar, tenim un element {{htmlelement("label")}} i un element {{htmlelement("input")}} - els elements <code><label></code> normalment s'utilitzen per associar una etiqueta de text amb un element de formulari amb finalitats d'accessibilitat (permetent que un usuari de pantalla vegi quina descripció fa amb quin element del formulari). Aquí s'associa amb la casella de verificació <code><input></code> amb els atributs <code>for</code> i <code>id</code>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Hem posat un gran signe d'interrogació en el nostre HTML perquè actuï com la nostra icona d'informació - aquest representa el botó que es premut per mostrar/amagar el panell.</p> +</div> + +<p>Aquí utilitzarem aquests elements per un propòsit lleugerament diferent - un altre efecte secundari útil dels elements <code><label></code> és que podeu fer clic a l'etiqueta de la casella de verificació per a marcar la casella de verificació, així com només la casella de verificació. Això ha portat a la coneguda <a href="https://css-tricks.com/the-checkbox-hack/">checkbox hack</a>, que proporciona una forma lliure de JavaScript per controlar un element mitjançant la commutació d'un botó. L'element que anem a controlar és l'element {{htmlelement("aside")}} que segueix els altres dos (hem deixat el seu contingut fora del llistat del codi anterior per brevetat).</p> + +<p>A les seccions següents explicarem com funciona tot això.</p> + +<h3 id="Estilitzar_els_elements_de_formulari">Estilitzar els elements de formulari</h3> + +<p>Primer tractarem els elements de formulari - afegiu el següent CSS entre les etiquetes {{htmlelement("style")}}:</p> + +<pre class="brush: css">label[for="toggle"] { + font-size: 3rem; + position: absolute; + top: 4px; + right: 5px; + z-index: 1; + cursor: pointer; +} + +input[type="checkbox"] { + position: absolute; + top: -100px; +}</pre> + +<p>La primera regla donar estil el <code><label></code>; aquí tenim:</p> + +<ul> + <li>Establiu una gran {{cssxref("font-size")}} per fer que la icona sigui agradable i gran.</li> + <li>Establiu {{cssxref("position")}} <code>absolute</code>, i utilitzeu {{cssxref("top")}} i {{cssxref("right")}} per col·locar-ho bé a la cantonada superior dreta.</li> + <li>Establiu un {{cssxref("z-index")}} d'1 - això és perquè quan el panell d'informació estigui dissenyat i es mostri, no cobreixi la icona; En lloc d'això, la icona s'asseura sobre d'ell, de manera que es pogui tornar a prémer per ocultar el panell d'informació.</li> + <li>S'ha utilitzat la propietat {{cssxref("cursor")}} per canviar el cursor del ratolí quan es mou sobre la icona, amb un punter de mà (com el que es veu quan es planeja sobre els enllaços), com una pista visual addicional per als usuaris com que la icona fa alguna cosa interessant.</li> +</ul> + +<p>La segona regla estableix {{cssxref("position")}} <code>absolute</code> en l'element <code><input></code> de casella de verificació real i l'oculta a la part superior de la pantalla. De fet, no volem veure això a la nostra interfície d'usuari.</p> + +<h3 id="Estilitzar_el_panell">Estilitzar el panell</h3> + +<p>Ara és hora de donar-li estil el propi panell lliscant. Afegiu la següent regla al final del vostre CSS:</p> + +<pre class="brush: css">aside { + background-color: #a60000; + color: white; + + width: 340px; + height: 98%; + padding: 10px 1%; + + position: fixed; + top: 0; + right: -370px; + + transition: 0.6s all; +}</pre> + +<p>Hi ha molt a fer aquí, analitzem-ho a poc a poc:</p> + +<ul> + <li>En primer lloc, establim {{cssxref("background-color")}} i {{cssxref("color")}} en la caixa d'informació.</li> + <li>A continuació, establim un {{cssxref("width")}} fix al panell i feu que {{cssxref("height")}} sigui tota l'alçada de la finestra de visualització del navegador.</li> + <li>També inclourem un {{cssxref("padding")}} per compensar l'amplada/alçada al valor total que volem (això és necessari ja que no hem establert <code>box-sizing: border-box;</code> en aquest exemple).</li> + <li>A continuació, establim una {{cssxref("position")}}: <code>fixed;</code> en el panell perquè sempre aparegui al mateix lloc, fins i tot si la pàgina té contingut per desplaçar-se. Ho peguem a la {{cssxref("top")}} de la finestra de visualització, i ho configurem perquè de manera predeterminada estigui fora de pantalla a la {{cssxref("right")}}.</li> + <li>Finalment, establim una {{cssxref("transition")}} a l'element. Les transicions són una característica interessant que permet fer canvis entre estats que succeeixen suaument, en lloc de simplement fer "on", "off" abruptament. En aquest cas, intentem que el panell llisqui suaument a la pantalla quan es marca la casella de verificació. (O dit d'una altra manera, quan es fa clic a la icona del signe d'interrogació - recordeu, fent clic en el <label>, marcarà la casella de verificació associada! Us explicàvem que era un hack). Aprendreu molt més sobre...</li> +</ul> + +<h3 id="Seleccionar_el_estat_marcat">Seleccionar el estat marcat</h3> + +<p>Hi ha una mica de CSS per afegir - poseu el següent al final del vostre CSS:</p> + +<pre class="brush: css">input[type=checkbox]:checked + aside { + right: 0px; +}</pre> + +<p>El selector és bastant complex aquí - estem seleccionant l'element <code><aside></code> adjacent a l'element <code><input></code>, però només quan està marcat (tingueu en compte l'ús de la pseudo-classe {{cssxref (": checked")}} per aconseguir això). Quan aquest és el cas, estem establint la propietat {{cssxref("right")}} de <code><aside></code> a 0px, el que fa que el panell aparegui novament en la pantalla (suaument a causa de la transició). En fer clic en l'etiqueta, torna a desmarcar la casella de verificació, que torna a ocultar el panell.</p> + +<p>Així que aquí ho teniu - una manera bastant intel·ligent, lliure de Javascript, per crear un efecte de botó alternatiu. Això funcionarà en IE9 i superiors (la transició suau funcionarà en IE10 i superiors). Aquest efecte té algunes preocupacions - això és abusar una mica d'elements de forma (no estan destinats per a aquest propòsit), i l'efecte no és el millor en termes d'accessibilitat - l'etiqueta no es pot enfocar de manera predeterminada, i l'ús no semàntic dels elements de formulari pot causar problemes amb els lectors de pantalla. JavaScript i un enllaç o un botó poden ser més apropiat, però encara és divertit experimentar.</p> + +<h2 id="Resum">Resum</h2> + +<p>Així que arrodonim el nostre cop d'ull en el posicionament - ara com ara, heu de tenir una idea de com funciona la mecànica bàsica, així com la comprensió de com començar a aplicar-los en la construcció d'algunes característiques interessants de la interfície d'usuari. No us preocupeu sinó vau rebre tot això immediatament - el posicionament és un tema bastant avançat, i sempre podeu treballar a través dels articles de nou, per ajudar-vos en la vostra comprensió. El següent tema al que ens referirem és a Flexbox.</p> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Positioning", "Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout")}}</p> diff --git a/files/ca/learn/css/disseny_css/flexbox/index.html b/files/ca/learn/css/disseny_css/flexbox/index.html new file mode 100644 index 0000000000..37f31f619b --- /dev/null +++ b/files/ca/learn/css/disseny_css/flexbox/index.html @@ -0,0 +1,330 @@ +--- +title: Flexbox +slug: Learn/CSS/Disseny_CSS/Flexbox +tags: + - Article + - Beginner + - CSS + - CSS layouts + - CodingScripting + - Flexible Boxes + - Guide + - Layout + - Layouts + - Learn + - flexbox +translation_of: Learn/CSS/CSS_layout/Flexbox +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Practical_positioning_examples", "Learn/CSS/CSS_layout/Grids", "Learn/CSS/CSS_layout")}}</div> + +<p class="summary"><a href="/ca/docs/Web/CSS/CSS_Flexible_Box_Layout">Flexbox</a> és un mètode de disseny de pàgina web unidimensional que distribueix els elements de la pàgina web en files o en columnes. Els elements són «flexibles» i omplen tot l’espai de més o s’encongeixen per caber en espais més petits. Aquest article n’explica els fonaments.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td><span id="result_box" lang="ca">Conceptes bàsics d'HTML</span> (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), <span id="result_box" lang="ca">i nocions de com funciona el CSS</span> (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a utilitzar el sistema de disseny de pàgines web Flexbox.</td> + </tr> + </tbody> +</table> + +<h2 id="Per_què_Flexbox">Per què Flexbox?</h2> + +<p>Durant molt de temps, les úniques eines fiables compatibles amb els navegadors, disponibles per crear dissenys de pàgina web amb CSS eren mètodes com ara els <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flotadors">elements flotants (<em>floats</em>)</a> i el <a href="/ca/docs/Learn/CSS/Disseny_CSS/Posicionament">posicionament</a>. Estan bé i funcionen, però d'alguna manera també són més limitats i frustrants.</p> + +<p>Uns requisits senzills de disseny de pàgina web com els que enumerem a continuació són difícils o impossibles d'aconseguir amb aquestes eines d’una manera còmoda i flexible:</p> + +<ul> + <li>Que un bloc de contingut es centri verticalment dins de l’element pare.</li> + <li>Que tots els elements fills d'un contenidor ocupin la mateixa quantitat d'amplada/alçada, independentment de la quantitat d'amplada/alçada que hi hagi disponible.</li> + <li>Que totes les columnes d'un disseny de pàgina en columnes múltiples adoptin la mateixa alçada, encara que continguin una quantitat de contingut diferent.</li> +</ul> + +<p>Com veureu en les properes seccions, Flexbox facilita moltes tasques de disseny de pàgina web. Aprofundim-hi!</p> + +<h2 id="Un_exemple_senzill">Un exemple senzill</h2> + +<p>En aquest article, et farem treballar en un seguit d'exercicis que t’ajudaran a entendre com funciona Flexbox. Per començar, fes una còpia local del primer fitxer d'inici, <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/flexbox0.html">flexbox0.html</a>, que trobaràs en el nostre repositori de GitHub; carrega’l en un navegador modern (com Firefox o Chrome) i consulta’n el codi en el teu editor. També ho pots <a href="http://mdn.github.io/learning-area/css/css-layout/flexbox/flexbox0.html">veure en viu aquí</a>.</p> + +<p>Observa que hi ha un element {{htmlelement("header")}} amb un títol d’encapçalament de nivell superior i un element {{htmlelement("section")}} que conté tres elements {{htmlelement("article")}}. Els farem servir per a crear un disseny de tres columnes força habitual.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13406/flexbox-example1.png" style="border-style: solid; border-width: 1px; display: block; height: 324px; margin: 0px auto; width: 800px;"></p> + +<h2 id="Especificar_els_elements_flexbox">Especificar els elements flexbox</h2> + +<p>Per començar hem de decidir quins elements volem configurar perquè es comportin com caixes flexibles. Per tal de fer-ho, establim un valor especial de {{cssxref("display")}} en l'element pare dels elements als quals afectarà. En aquest cas, volem que siguin els elements {{htmlelement("article")}}, per la qual cosa ho configurem en l’element {{htmlelement("section")}}:</p> + +<pre class="brush: css notranslate">section { + display: flex; +}</pre> + +<p>Això fa que l'element <code><section></code> esdevingui un <strong>contenidor flexible</strong> i els seus fills <strong>ítems flexibles</strong>. El resultat d'això hauria de presentar un aspecte semblant a això:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13408/flexbox-example2.png" style="border-style: solid; border-width: 1px; display: block; height: 348px; margin: 0px auto; width: 800px;"></p> + +<p>Per tant, aquesta declaració única, ens dona tot el que necessitem; increïble, oi? Tenim el nostre disseny de pàgina de columna múltiple amb columnes de la mateixa mida, i que tenen la mateixa alçada. Això és perquè els valors predeterminats que s’han donat als elements flex (els fills del contenidor flex) estan dissenyats per a resoldre problemes comuns com aquest.</p> + +<p>Per deixar-ho clar, reiterem el que passa aquí. L’element al qual hem donat un valor de {{cssxref("display")}} de <code>flex</code> actua com un element de nivell de bloc en termes de com interactua amb la resta de la pàgina, però els seus fills es presenten com a elements flexibles. La següent secció explicarà amb més detall què significa això. Fixeu-vos també que podeu utilitzar un valor de <code>display</code> d'<code>inline-flex</code> si voleu disposar els fills d'un element com a elements flexibles, però que aquest element es comporti com un element en línia.</p> + +<h2 id="El_model_flex">El model flex</h2> + +<p>Els elements que es disposen com caixes flexibles, es distribueixen al llarg de dos eixos:</p> + +<p><img alt="flex_terms.png" class="default internal" src="/files/3739/flex_terms.png" style="display: block; margin: 0px auto;"></p> + +<ul> + <li>L'<strong>eix principal</strong> (<strong><em>main axis</em></strong>) és l'eix que corre en la direcció en què es disposen els elements flex (p. ex., com files al llarg de la pàgina o com columnes, cap avall de la pàgina). L'inici i el final d'aquest eix reben els noms d’<strong>inici principal</strong> (<strong><em>main start</em></strong>) i <strong>final principal</strong> (<em><strong>main end</strong></em>).</li> + <li>L'<strong>eix transversal</strong> (<strong><em>cross axis</em></strong>) és l'eix que corre perpendicular a la direcció en què es disposen els elements flexibles. L'inici i el final d'aquest eix s'anomenen <strong>inici transversal</strong> (<strong><em>cross-start</em></strong>) i <strong>final tranversal</strong> (<strong><em>cross-end</em></strong>).</li> + <li>L'element pare que està configurat amb <code>display: flex</code> (la secció {{htmlelement("section")}} del nostre exemple) s'anomena <strong>contenidor flex</strong> (<strong><em>flex container</em></strong>).</li> + <li> + <p>Els elements que es disposen com caixes flexibles dins del contenidor flex s'anomenen <strong>elements flexibles</strong> (flex items) (els elements {{htmlelement("article")}} del nostre exemple).</p> + </li> +</ul> + +<p>Tingues present aquesta terminologia a mesura que avances en les seccions. Sempre pots tornar enrere si en algun moment l’ús d’aquests termes et genera confusions.</p> + +<h2 id="Columnes_o_files"><span id="result_box" lang="ca">Columnes o files?</span></h2> + +<p>Flexbox proporciona una propietat anomenada {{cssxref("flex-direction")}}, que especifica en quina direcció discorre l'eix principal (en quina direcció es disposen les caixes flexibles fill); per defecte, està definida en <code>row</code>, que fa que els elements flexibles es disposin en una fila en la direcció de l'idioma predeterminat amb què funciona el teu navegador (d'esquerra a dreta, en el cas d'un navegador en català).</p> + +<p>Prova d'afegir a la teva regla <code><section></code> la declaració següent:</p> + +<pre class="brush: css notranslate">flex-direction: column;</pre> + +<p>Observa que això posa de nou els elements en una disposició en columna, igual que estaven abans d’afegir-hi el CSS. Abans de continuar, elimina aquesta declaració del teu exemple.</p> + +<div class="note"> +<p><strong>Nota</strong>: També pots disposar elements flexibles en direcció inversa amb els valors <code>row-reverse</code> i <code>column-reverse</code>. Experimenta també amb aquests valors.</p> +</div> + +<h2 id="Ajust">Ajust</h2> + +<p>Un problema que sorgeix quan tens un disseny de pàgina amb una amplada o una alçada fixa és que els fills de l’element flexbox poden desbordar el contenidor i trencar el disseny de la pàgina. Fes un cop d'ull al nostre exemple <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/flexbox-wrap0.html">flexbox-wrap0.html</a> i <a href="http://mdn.github.io/learning-area/css/css-layout/flexbox/flexbox-wrap0.html">mira’l en directe</a> (fes primer una còpia local d'aquest fitxer, si vols seguir amb aquest exemple):</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13410/flexbox-example3.png" style="display: block; height: 646px; margin: 0px auto; width: 800px;"></p> + +<p>Aquí observem que els fills desborden el contenidor. Una manera de solucionar això és afegir a la teva regla <code><a href="/ca/docs/Web/HTML/Element/section"><section></a></code> la declaració següent:</p> + +<pre class="brush: css notranslate">flex-wrap: wrap;</pre> + +<p>Afegeix també la declaració següent a la teva regla <code><a href="/ca/docs/Web/HTML/Element/article"><article></a></code></p> + +<pre class="brush: css notranslate">flex: 200px;</pre> + +<p>Ara prova-ho; observa que el disseny es veu força més bé ara que hi has inclòs això:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13412/flexbox-example4.png" style="display: block; height: 646px; margin: 0px auto; width: 800px;">Ara hi ha diverses files, i a cada fila hi ha tantes elements fill flexbox com és raonable que hi hagi, i si hi ha cap desbordament, es genera una altra línia. La declaració <code>flex: 200px</code> que hem establer per als elements <code><article></code> significa que cada article tindrà com a mínim una amplada de 200px; més endavant parlarem d'aquesta propietat amb més detall. També pots observar que els últims fills de l'última fila s’han fet més amples, de manera que la fila està igualment tota plena.</p> + +<p>Però encara hi podem fer més. Primer de tot, prova de canviar el valor de la propietat {{cssxref("flex-direction")}} a <code>row-reverse</code>; observa que encara tens el disseny de files múltiples, però ara comença des de la cantonada oposada de la finestra del navegador i flueix en sentit invers.</p> + +<h2 id="La_propietat_flex-flow_abreujada">La propietat <code>flex-flow</code> abreujada</h2> + +<p>En aquest punt, val la pena observar que hi ha una propietat abreujada per a {{cssxref("flex-direction")}} i {{cssxref("flex-wrap")}}, que és: {{cssxref("flex-flow")}}. Per exemple, pots substituir:</p> + +<pre class="brush: css notranslate">flex-direction: row; +flex-wrap: wrap;</pre> + +<p>per</p> + +<pre class="brush: css notranslate">flex-flow: row wrap;</pre> + +<h2 id="Dimensió_flexible_dels_elements_flexibles">Dimensió flexible dels elements flexibles</h2> + +<p>Tornem ara al nostre primer exemple i observem com podem controlar quina proporció d'espai poden ocupar els elements flexibles. Fes servir la teva còpia local de <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/flexbox0.html">flexbox0.html</a>, o fes una còpia de <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/flexbox1.html">flexbox1.html</a> com a punt de partida nou (també el pots <a href="http://mdn.github.io/learning-area/css/css-layout/flexbox/flexbox1.html">veure en viu</a>).</p> + +<p>Primer, afegeix la regla següent al final del teu CSS:</p> + +<pre class="brush: css notranslate">article { + flex: 1; +}</pre> + +<p>Es tracta d'un valor de proporció sense unitat que determina quina quantitat de l'espai disponible al llarg de l'eix principal ocupa cada element flexible. En aquest cas donem a cada element {{htmlelement("article")}} un valor de 1, que significa que tots ocuparan una quantitat igual de l'espai que sobri després que s'hagin establert elements com ara l’àrea de farciment i el marge. És una proporció, que significa que donar a cada element flexible un valor de 400.000 tindria exactament el mateix efecte.</p> + +<p>A continuació, afegeix la regla següent a sota de l'anterior:</p> + +<pre class="brush: css notranslate">article:nth-of-type(3) { + flex: 2; +}</pre> + +<p>Aleshores, actualitza. Observa que el tercer element {{htmlelement("article")}} ocupa el doble de l'amplada disponible que els altres dos; perquè ara hi ha en total quatre unitats proporcionals disponibles. Els dos primers elements flexibles en tenen una cadascun, i prenen 1/4 de l'espai disponible cadascun. El tercer té dues unitats, de manera que ocupa 2/4 de l'espai disponible (o el que és el mateix, la meitat).</p> + +<p>També pots especificar un valor de mida mínima per al valor flex. Actualitza les teves regles per als elements <code><article></code>, així:</p> + +<pre class="brush: css notranslate">article { + flex: 1 200px; +} + +article:nth-of-type(3) { + flex: 2 200px; +}</pre> + +<p>Això bàsicament estableix que «Es dona a cada element flexible primer 200px de l'espai disponible. A continuació, la resta de l'espai disponible es reparteix segons les unitats de proporció». Actualitza i observa com es reparteix l'espai ara.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13406/flexbox-example1.png" style="border-style: solid; border-width: 1px; display: block; height: 324px; margin: 0px auto; width: 800px;"></p> + +<p>El valor real de flexbox es pot apreciar en la flexibilitat / capacitat de resposta; si canvies la mida de la finestra del navegador o afegeixes un altre element {{htmlelement("article")}}, el disseny de pàgina encara funciona.</p> + +<h2 id="Propietat_flex_abreujada_o_no_abreujada">Propietat <code>flex</code> abreujada o no abreujada</h2> + +<p>{{Cssxref("flex")}} és una propietat de abreujada que pot especificar fins a tres valors diferents:</p> + +<ul> + <li>El valor de la proporció sense unitat que hem comentat abans. Es pot especificar per a cada element usant la propietat no abreujada {{cssxref("flex-grow")}}.</li> + <li>Un segon valor de proporció sense unitat, {{cssxref("flex-shrink")}}, que entra en joc quan els elements flexibles desborden de l’element contenidor. Especifica quanta de la quantitat que desborda es treu de la mida de cada element flexible per a evitar que desbordi del contenidor. Aquesta és una característica avançada de flexbox i no la detallarem més en aquest article.</li> + <li>El valor mínim de la mida, que hem comentat abans. Es pot especificar per a cada element usant el valor no abreujat {{cssxref("flex-base")}}.</li> +</ul> + +<p>Recomanem evitar l'ús de les propietats flex no abreujades, si no és que t’és realment necessari (per exemple, perquè has de substituir alguna configuració anterior). Comporta escriure una gran quantitat de codi addicional, i pot acabar sent una mica confús.</p> + +<h2 id="Alineació_horitzontal_i_vertical">Alineació horitzontal i vertical</h2> + +<p>També pots utilitzar funcions flexbox per a alinear elements flexibles al llarg dels eixos principals o transversals. Ho expliquem amb un nou exemple, <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/flex-align0.html">flex-align0.html</a> (també el pots <a href="http://mdn.github.io/learning-area/css/css-layout/flexbox/flex-align0.html">veure en viu</a>), que convertirem en una bonica barra d'eines/botons flexible. De moment, observa aquesta barra de menú horitzontal amb alguns botons agrupats a la cantonada superior esquerra.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13414/flexbox-example5.png" style="display: block; height: 77px; margin: 0px auto; width: 600px;"></p> + +<p><span id="result_box" lang="ca">Primer, fes una còpia local d'aquest exemple</span>.</p> + +<p>A continuació, afegeix a la part inferior del CSS de l'exemple el codi següent:</p> + +<pre class="brush: css notranslate">div { + display: flex; + align-items: center; + justify-content: space-around; +}</pre> + +<p>Actualitza la pàgina i observa que els botons estan ben centrats, horitzontalment i verticalment. Ho hem fet amb dues propietats noves.</p> + +<p>El control {{cssxref("align-items")}} disposa els elements flexibles sobre l'eix transversal.</p> + +<ul> + <li>El valor predeterminat és <code>stretch</code>, que estira tots els elements flexibles fins a ocupar tot l’espai de l’element pare en la direcció de l'eix transversal. Si l’element pare no té una amplada fixa en la direcció de l'eix transversal, tots els elements flexibles es faran tan llargs com l’element flexible més llarg. Per això el nostre primer exemple tenia per defecte columnes de la mateixa alçada.</li> + <li>El valor <code>center</code> que hem utilitzat en el codi anterior manté les dimensions intrínseques dels elements, però els centrats al llarg de l'eix transversal. És per això que els botons d’aquest exemple estan centrats verticalment.</li> + <li>També pots tenir valors com <code>flex-start</code> i <code>flex-end</code>, que alineen tots els elements al principi i al final de l'eix transversal, respectivament. Consulta’n tots els detalls en {{cssxref("align-items")}}.</li> +</ul> + +<p>Pots anul·lar el comportament {{cssxref("align-items")}} per a elements flexibles individuals amb la propietat {{cssxref("align-self")}}. Per exemple, afegeix al teu CSS el codi el següent:</p> + +<pre class="brush: css notranslate">button:first-child { + align-self: flex-end; +}</pre> + +<p>Dona un cop d'ull a l'efecte que hi produeix i retira de nou aquest codi quan hagis acabat.</p> + +<p>La propietat {{cssxref("justify-content")}} controla on s’ubiquen els elements flexibles sobre l'eix principal.</p> + +<ul> + <li>El valor per defecte és <code>flex-start</code>, que col·loca tots els elements al principi de l'eix principal.</li> + <li>Pots fer servir <code>flex-end</code> perquè es col·loquin al final.</li> + <li>El valor <code>center</code> també és un valor per a <code>justify-content</code> i posa els elements flexibles al centre de l'eix principal.</li> + <li>El valor que hem utilitzat abans, <code>space-around</code>, és útil perquè distribueix tots els elements sobre l'eix principal de manera uniforme i deixa una mica d'espai en cada extrem.</li> + <li>Hi ha un altre valor, <code>space-between</code>, que és molt similar a <code>space-around</code>, però que no deixa cap espai als extrems.</li> +</ul> + +<p>T’animem a jugar amb aquests valors i veure com funcionen abans de continuar.</p> + +<h2 id="Ordena_els_elements_flexibles">Ordena els elements flexibles</h2> + +<p>Flexbox també té una característica que canvia l'ordre de disposició dels elements flexibles sense afectar l'ordre d'origen. Aquesta és una altra característica que és impossible de fer amb els mètodes tradicionals de disseny de pàgines web.</p> + +<p>El codi per a això és senzill: afegeix al codi d'exemple de la barra de botons el codi CSS següent:</p> + +<pre class="brush: css notranslate">button:first-child { + order: 1; +}</pre> + +<p>Actualitza, i observa que ara el botó «Smile» s'ha mogut al final de l'eix principal. Parlarem de com això funciona amb una mica més detall:</p> + +<ul> + <li>Per defecte, tots els elements flexibles tenen un valor d’ordre ({{cssxref("order")}}) de 0.</li> + <li>Els elements flexibles que estan configurats amb un valor d’ordre més alt apareixen més endavant en l'ordre de visualització que els elements amb valors d’ordre més baix.</li> + <li>Els elements flexibles que tenen el mateix valor d'ordre apareixen en l’ordre d'origen. Així, si hi ha quatre elements que tenen configurats els valors d'ordre 2, 1, 1 i 0, respectivament, l’ordre de visualització serà 4t, 2n, 3r i 1r.</li> + <li>El 3r element apareix després del 2n perquè té el mateix valor d'ordre i està després en l'ordre d'origen.</li> +</ul> + +<p>Pots establir valors d'ordre negatius i fer que els elements apareguin abans que els elements amb un ordre 0. Per exemple, pots fer que el botó «Blush» aparegui al principi de l'eix principal amb la següent regla:</p> + +<pre class="brush: css notranslate">button:last-child { + order: -1; +}</pre> + +<h2 id="Caixes_flexibles_imbricades">Caixes flexibles imbricades</h2> + +<p>Amb flexbox és possible crear dissenys força complexos. És del tot correcte establir que un element flexible sigui també un contenidor flexible, de manera que els elements fills també es disposin com caixes flexibles. Dona un cop d'ull a <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/flexbox/complex-flexbox.html">complex-flexbox.html</a> (o també el pots <a href="http://mdn.github.io/learning-area/css/css-layout/flexbox/complex-flexbox.html">veure en viu</a>).</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13418/flexbox-example7.png" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p> + +<p>L'HTML d’això és força senzill. Hi ha un element {{htmlelement("section")}} que conté tres elements {{htmlelement("article")}}. El tercer element {{htmlelement("article")}} conté tres elements {{htmlelement("div")}}:</p> + +<pre class="notranslate">section - article + article + article - div - button + div button + div button + button + button</pre> + +<p>Observa el codi que hem utilitzat per al disseny.</p> + +<p>En primer lloc, establim que els fills de {{htmlelement("section")}} es disposin com caixes flexibles.</p> + +<pre class="brush: css notranslate">section { + display: flex; +}</pre> + +<p>A continuació, establim alguns valors flex en els propis elements {{htmlelement("article")}}. Aquí cal tenir en compte la 2a regla; configurem el tercer element {{htmlelement("article")}} de manera que els seus elements fills es disposin també com elements flexibles, però aquesta vegada en columna.</p> + +<pre class="brush: css notranslate">article { + flex: 1 200px; +} + +article:nth-of-type(3) { + flex: 3 200px; + display: flex; + flex-flow: column; +} +</pre> + +<p>A continuació, seleccionem el primer element {{htmlelement("div")}}. Utilitzem la declaració <code>flex: 1 100px;</code> perquè hi doni efectivament una alçada mínima de 100px, aleshores en configurem els elements fills (els elements {{htmlelement("button")}}) perquè també siguin elements flexibles. Els distribuïm en fila perquè ocupin tot l’espai amb la propietat <code>wrap</code> i els alineem al centre de l'espai disponible, com hem fet en l'exemple del botó individual que hem vist abans.</p> + +<pre class="brush: css notranslate">article:nth-of-type(3) div:first-child { + flex: 1 100px; + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: space-around; +}</pre> + +<p>Finalment, establim les dimensions del botó, però la qüestió interessant és que hi donem un valor de flex de 1. Això té un efecte molt interessant, que pots observar si canvies la mida de l'amplada de la finestra del navegador. Els botons ocuparan tant d’espai com puguin i es disposaran sobre la mateixa línia tant com sigui possible, però quan ja no càpiguen amb comoditat a la mateixa línia, cauran a la línia següent.</p> + +<pre class="brush: css notranslate">button { + flex: 1; + margin: 5px; + font-size: 18px; + line-height: 1.5; +}</pre> + +<h2 id="Compatibilitat_amb_altres_navegadors">Compatibilitat amb altres navegadors</h2> + +<p>Flexbox és compatible amb la majoria de navegadors nous: Firefox, Chrome, Opera, Microsoft Edge i IE 11, i les versions més noves d'Android/iOS, etc. No obstant això, cal tenir en compte que encara hi ha navegadors antics en ús que no admeten Flexbox (o bé n’admeten una versió antiga i desactualitzada).</p> + +<p>Mentre ets en procés d’aprendre i experimentar, això no importa gaire; però si consideres l'ús de flexbox en un lloc web real, has de fer proves i assegurar-te que la teva experiència d'usuari continua sent acceptable en el màxim nombre de navegadors possible.</p> + +<p>Flexbox és una mica més complicat que altres característiques CSS. Per exemple, si un navegador no té ombres CSS, probablement el lloc web serà encara usable. En canvi, la no-compatibilitat amb les característiques de flexbox probablement trencarà del tot el disseny i inutilitzarà el lloc web.</p> + +<p>En un altre mòdul parlarem de les estratègies per a superar els complexos problemes de compatibilitat dels navegadors.</p> + +<h2 id="Posa_a_prova_les_teves_habilitats">Posa a prova les teves habilitats</h2> + +<p>Hem vist moltes coses en aquest article. En recordes la informació més important? Trobaràs més tests per poder comprovar si has retingut la informació abans de seguir a <a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox_skills">Test your skills: Flexbox</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Això clou el nostre recorregut pels fonaments de flexbox. Esperem que t’hagis divertit i que sàpigues jugar-hi mentre continues endavant amb el teu aprenentatge. A continuació, veurem un altre aspecte important dels dissenys CSS, els sistemes de graella.</p> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Practical_positioning_examples", "Learn/CSS/CSS_layout/Grids", "Learn/CSS/CSS_layout")}}</div> diff --git a/files/ca/learn/css/disseny_css/flotadors/index.html b/files/ca/learn/css/disseny_css/flotadors/index.html new file mode 100644 index 0000000000..25d2fe01a6 --- /dev/null +++ b/files/ca/learn/css/disseny_css/flotadors/index.html @@ -0,0 +1,516 @@ +--- +title: Flotadors (Floats) +slug: Learn/CSS/Disseny_CSS/Flotadors +tags: + - Article + - Beginner + - CSS + - Clearing + - CodingScripting + - Floats + - Guide + - Layout + - columns + - multi-column +translation_of: Learn/CSS/CSS_layout/Floats +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Grids", "Learn/CSS/CSS_layout/Positioning", "Learn/CSS/CSS_layout")}}</div> + +<p>Originalment pensada per a flotar imatges dins de blocs de text, la propietat {{cssxref("float")}} va esdevenir una de les eines més utilitzades per a crear dissenys multicolumna a les pàgines web. Amb l'arribada de Flexbox i Grid ha tornat ara al seu propòsit original, tal com s'explica en aquest article.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>HTML bàsic (vegeu <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>), i una idea de com funciona CSS (vegeu <a href="/ca/docs/Learn/CSS/First_steps">Introducció a CSS</a>.)</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a crear elements flotants a les pàgines web, i a fer servir la propietat <em>clear</em> i altres mètodes per a netejar els elements flotants.</td> + </tr> + </tbody> +</table> + +<h2 id="La_història_dels_elements_flotants">La història dels elements flotants</h2> + +<p>La propietat {{cssxref("float")}} fou introduïda per a permetre als desenvolupadors implementar dissenys senzills que incloguessin una imatge flotant dins d'una columna de text, amb el text envoltant la part esquerra o dreta de la imatge. El tipus de cosa que trobes habitualment en el disseny d'un diari.</p> + +<p>Però els desenvoupadors web aviat s'adonaren que podien flotar qualsevol cosa, i no només les imatges, pel que el seu ús s'amplià, per exemple, creant efectes de disseny divertits com els d'aquestes <a href="https://css-tricks.com/snippets/css/drop-caps/">caplletres</a>.</p> + +<p>Els elements flotants han estat utitlitzats habitualment per a crear dissenys web complets amb múltiples columnes situades l'una al costat de l'altra (el comportament per defecte seria que les columnes se situessin les unes sota les altres, en el mateix ordre en què apareixen al codi font). Ara hi ha disponibles tècniques més modernes i millors, que explorarem més endavant en aquest mòdul, per la qual cosa l'ús de {{cssxref("float")}} d'aquesta manera s'hauria de contemplar com una <a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">tècnica antiquada</a>.</p> + +<p>En aquest article ens centrarem en l'ús apropiat de la propietat {{cssxref("float")}}.</p> + +<h2 id="Un_exemple_de_float_simple">Un exemple de float simple</h2> + +<p>Explorem com utilitzar els <em>float</em>. Començarem amb un exemple realment simple que inclou un bloc de text flotant al voltant d'un element. Pots acompanyar-nos creant un fitxer <code>index.html</code> al teu ordinador, omplint-lo amb <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">una plantilla HTML simple</a>, i inserint el codi següent als llocs adequats. Al final de la secció podràs veure un exemple en viu de com hauria de ser el codi final.</p> + +<p>Primer, comencem amb una mica d'HTML simple — afegeix el següent al cos del teu HTML, eliminant qualsevol altra cosa que hi hagués abans:</p> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> + +<div class="box">Caixa flotant</div> + +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. </p> + +<p>Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p></pre> + +<p>Ara aplica el següent CSS al teu HTML (fent servir un element {{htmlelement("style")}} o un {{htmlelement("link")}} per a separar el fitxer <code>.css</code> — tu tries):</p> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.box { + width: 150px; + height: 100px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +}</pre> + +<p>Si deses y recarregues la pàgina, veuràs quelcom semblant a allò que esperaries: la caixa es troba per sobre del text, en un flux normal. Per a flotar el text al voltant, afegeix les propietats {{cssxref("float")}} i {{cssxref("margin-right")}} a la regla <code>.box</code>:</p> + +<pre class="brush: css notranslate">.box { + float: left; + margin-right: 15px; + width: 150px; + height: 100px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +}</pre> + +<p>Ara, si deses i recarregues, podràs veure alguna cosa semblant a això:</p> + +<div id="Float_1"> +<div class="hidden"> +<h6 id="Float_Example_1">Float Example 1</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> + +<div class="box">Caixa flotant</div> + +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> + +<p>Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> +</pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.box { + float: left; + margin-right: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_1', '100%', 500) }}</p> + +<p>Analitzem ara com funciona el <em>float</em> — l'element amb el <em>float</em> aplicat (l'element {{htmlelement("div")}} en aquest cas) és extret del flux normal del document i està enganxat al costat esquerre del seu element contenidor pare ({{htmlelement("body")}}, en aquest cas). Qualsevol contingut que estigui per sota de l'element flotat en el flux normal, ara l'envoltarà, omplint l'espai a la dreta fins a la part superior de l'element flotant. Allà s'aturarà.</p> + +<p>Flotar el contingut a la dreta té exactament el mateix efecte, però a la inversa — l'element flotat s'enganxarà a la dreta, i el contingut l'envoltarà per l'esquerra. Prova de canviar el valor de la propietat <em>float</em> a <code>right</code> i substitueix {{cssxref("margin-right")}} per {{cssxref("margin-left")}} al darrer conjunt de regles per veure el resultat.</p> + +<p>Tot i que podem afegir un marge a l'element flotant per alunyar el text, no podem afegir un marge al text per allunyar-lo del flotant. Això es deu al fet que un element flotant s'extreu del flux normal i les caixes dels següents elements segueixen per darrera del flotador. Pots comprovar-ho fent alguns canvis a l'exemple.</p> + +<p>Afegeix una clase <code>special</code> al primer paràgraf de text, el que succeeix immediatament a la caixa flotant, i després afegeix al teu CSS les següents regles. Això li donarà al paràgraf següent un color de fons.</p> + +<pre class="brush: css notranslate">.special { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; +} +</pre> + +<p>Per tal que l'efecte sigui més fàcil de veure, canvia el <code>margin-right</code> del teu element flotant a <code>margin</code>, per obtener espai al voltant de l'element flotant. Veuràs que el fons del paràgraf passa just per sota de la caixa flotant, com en l'exemple inferior.</p> + +<div id="Float_2"> +<div class="hidden"> +<h6 id="Float_Example_2">Float Example 2</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> + +<div class="box">Caixa flotant</div> + +<p class="special">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> + +<p>Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} + +.special { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_2', '100%', 500) }}</p> + +<p>Els quadres de línia del següent element s'han escurçat perquè el text discorri al voltant del flotador, però com que el flotador s'ha eliminat del flux normal, el quadre al voltant del paràgraf encara manté l'ample complet.</p> + +<h2 id="Netejant_floats">Netejant floats</h2> + +<p>Hem vist que el flotador s'elimina del flux normal i que els altres elements es mostraran al seu costat. Per tant, si volem evitar que un element a continuació es mogui cap amunt, hem de netejar el <em>float</em>. Això s'aconsegueix amb la propietat {{cssxref ("clear")}}.</p> + +<p>En l'HTML de l'exemple anterior, afegeix una classe <code>cleared</code> al segon paràgraf sota de l'element flotant. Després, afegeix això al teu CSS:</p> + +<pre class="brush: css notranslate">.cleared { + clear: left; +} +</pre> + +<div id="Float_3"> +<div class="hidden"> +<h6 id="Float_Example_3">Float Example 3</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> + +<div class="box">Caixa flotant</div> + +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> + +<p class="cleared">Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} + +.cleared { + clear: left; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_3', '100%', 600) }}</p> + +<p>Hauries de veure que el següent paràgraf neteja l'element flotant i ja no apareix al seu costat. La propietat <code>clear</code> accepta els següents valors:</p> + +<ul> + <li><code>left</code>: neteja els elements flotats a l'esquerra.</li> + <li><code>right</code>: neteja els elements flotats a la dreta.</li> + <li><code>both</code>: neteja qualsevol element flotat, a l'esquerra o a la dreta.</li> +</ul> + +<h2 id="Netejar_la_caixa_contenidora_dun_float">Netejar la caixa contenidora d'un float</h2> + +<p>Ara ja saps com netejar un element que es troba a continuació d'un element flotant, però observa el que succeeix si tens un flotant alt i un paràgraf curt, amb una caixa convenidora que envolta ambdós elements. Modifica el teu document per tal que el primer paràgraf i la caixa flotant es trobin dins d'un {{htmlelement("div")}} amb una classe <code>wrapper</code>.</p> + +<pre class="brush: html notranslate"><div class="wrapper"> + <div class="box">Caixa flotant</div> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate.</p> +</div> +</pre> + +<p>Al teu CSS, afegeix la següent regla per a la teva classe <code>.wrapper</code> i després recarrega la pàgina:</p> + +<pre class="brush: css notranslate">.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; +}</pre> + +<p>A més, elimina la classe <code>.cleared</code> anterior:</p> + +<pre class="comment-text notranslate" id="ct-0">.cleared { + clear: left; +}</pre> + +<p>Veuràs que, como en l'exemple on hem posat un color de fons al paràgraf, el color de fons passa per darrere de l'element flotant.</p> + +<div id="Float_4"> +<div class="hidden"> +<h6 id="Float_Example_4">Float Example 4</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> +<div class="wrapper"> + <div class="box">Caixa flotant</div> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> +</div> + +<p class="cleared">Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_4', '100%', 600) }}</p> + +<p>Un cop més, això és així perquè el flotador s'ha extret del flux normal. Netejar el següent elemento no ajuda a resoldre aquest problema de neteja de la caixa, on volem que la part inferior de la caixa envolti l'element flotant i que envolti el contingut fins i tot si el coningut és més curt. Hi ha tres maneres posssibles de resoldre això, dues que funcionen en tots els navegadors, però que tenen una mica de truc, i una tercera, nova manera de resoldre aquesta situació correctament.</p> + +<h3 id="El_hack_clearfix">El hack clearfix</h3> + +<p>La forma com aquesta situació s'ha tractat tradicionalment és utilitzant un truc conegut com el "truc clearfix". Això implica inserir algun contingut generat després de la caixa que conté el contingut flotant i envolvent, i configurar-lo per netejar ambdós.</p> + +<p>Afefeix el següent CSS a l'exemple:</p> + +<pre class="brush: css notranslate">.wrapper::after { + content: ""; + clear: both; + display: block; +}</pre> + +<p>Ara recarrega la pàgina i la caixa hauria de netejar-se. Això és bàsicament el mateix que si haguessis afegit un element HTML com un <code><div></code> a sota dels elements i li haguessis afegit la propietat <code>clear: both</code>.</p> + +<div id="Float_5"> +<div class="hidden"> +<h6 id="Float_Example_5">Float Example 5</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> +<div class="wrapper"> + <div class="box">Caixa flotant</div> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> +</div> +<p class="cleared">Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} + +.wrapper::after { + content: ""; + clear: both; + display: block; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_5', '100%', 600) }}</p> + +<h3 id="Fent_servir_overflow">Fent servir overflow</h3> + +<p>Un mètode alternatiu és establir la propietat {{cssxref("overflow")}} de l'element contenidor amb un valor diferent de <code>visible</code>.</p> + +<p>Elimina el CSS clearfix que has afegit en l'anterior secció i, en el seu lloc, afegeix <code>overflow: auto</code> a les regles de la caixa contenidora. Altre cop, la caixa hauria de netejar-se.</p> + +<pre class="brush: css notranslate">.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; + overflow: auto; +}</pre> + +<div id="Float_6"> +<div class="hidden"> +<h6 id="Float_Example_6">Float Example 6</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> +<div class="wrapper"> + <div class="box">Caixa flotant</div> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> +</div> +<p class="cleared">Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; + overflow: auto; +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_6', '100%', 600) }}</p> + +<p>Aquest exemple funciona creant el que s'anomena un <em><strong>block formatting context</strong></em> (BFC) o context de format de bloc. És com un petit disseny dins de la nostra pàgina (dins la qual tot està contingut, per tant, el nostre element flotant està contingut dins del BFC i el fons es troba darrere d'ambdós elements. Això generalment funcionarà. Això no obstant, en certs casos, és possible que et trobis amb barres de desplaçament no desitjades o ombres retallades com a conseqüències no desitjades de l'ús del desbordament..</p> + +<h3 id="display_flow-root">display: flow-root</h3> + +<p>La manera moderna de resoldre aquest problema és fer servir el valor <code>flow-root</code> de la propietat <code>display</code>. Això existeix només per a crear un BFC sense fer servir trucs; no hi haurà conseqüències no desitjades quan el facis servir. Elimina <code>overflow: auto</code> de la regla <code>.wrapper</code> i afegeix <code>display: flow-root</code>. Assumint que el teu <a href="/en-US/docs/Web/CSS/display#Browser_compatibility">navegador sigui compatible</a>, la caixa es netejarà.</p> + +<pre class="brush: css notranslate">.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; + display: flow-root; +}</pre> + +<div id="Float_7"> +<div class="hidden"> +<h6 id="Float_Example_7">Float Example 7</h6> + +<pre class="brush: html notranslate"><h1>Exemple simple de caixa flotant</h1> +<div class="wrapper"> + <div class="box">Caixa flotant</div> + + <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. </p> +</div> +<p class="cleared">Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; + font: .9em/1.2 Arial, Helvetica, sans-serif +} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + color: #fff; + display: flow-root; +} + +.box { + float: left; + margin: 15px; + width: 150px; + height: 150px; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Float_7', '100%', 600) }}</p> + +<h2 id="Resum">Resum</h2> + +<p>Ara ja saps tot el que has de saber sobre els flotadors en el desenvolupament web modern. Consulta l'article sobre els <a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">mètodes de disseny antiquats</a> per obtenir informació de com es feien servir, cosa que pot ser-te útil si has de treballar en projectes antics.</p> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Grids", "Learn/CSS/CSS_layout/Positioning", "Learn/CSS/CSS_layout")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Introduction">Introduction to CSS layout</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow">Normal Flow</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox">Flexbox</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">Grid</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Floats">Floats</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Positioning">Positioning</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">Multiple-column Layout</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">Legacy Layout Methods</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">Supporting older browsers</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">Fundamental Layout Comprehension Assessment</a></li> +</ul> diff --git a/files/ca/learn/css/disseny_css/flux_normal/index.html b/files/ca/learn/css/disseny_css/flux_normal/index.html new file mode 100644 index 0000000000..ac44f6a95a --- /dev/null +++ b/files/ca/learn/css/disseny_css/flux_normal/index.html @@ -0,0 +1,95 @@ +--- +title: Flux normal +slug: Learn/CSS/Disseny_CSS/Flux_normal +translation_of: Learn/CSS/CSS_layout/Normal_Flow +--- +<div>{{LearnSidebar}}</div> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Introduction", "Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout")}}</p> + +<p class="summary">Aquest article explica el flux normal o la manera com es disposen els elements de la pàgina web si tu no en canvies la disposició.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Conceptes bàsics d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de com funciona el CSS (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre la manera com els navegadors disposen per defecte els elements en les pàgines web abans que l'usuari comenci a fer-hi canvis.</td> + </tr> + </tbody> +</table> + +<p>Com es detalla en l’últim article d’introducció al disseny de pàgines web, els elements d’una pàgina web es distribueixen segons el flux normal si no s'hi aplica CSS que en canviï el comportament. Com ja hem començat a veure, pots canviar la manera com es comporten els elements, bé ajustant-ne la posició dins d’aquest flux normal, o bé suprimint-los-en del tot. Un document sòlid i ben estructurat que sigui llegible en el sentit del flux normal és la millor manera de començar qualsevol pàgina web. Garanteix que el contingut serà llegible, fins i tot si l’usuari fa servir un navegador molt limitat o un dispositiu com un lector de pantalla, que llegeix el contingut de la pàgina. A més, com que el flux normal està dissenyat per a fer llegible un document, començar d'aquesta manera significa que treballes amb el document en lloc de lluitar-hi en contra perquè hi fas canvis d’ordre.</p> + +<p>Abans d’aprofundir més en diferents mètodes de disseny, val la pena revisar algunes de les qüestions que has estudiat en mòduls anteriors pel que fa al flux normal dels documents.</p> + +<h2 id="Com_es_disposen_per_defecte_els_elements">Com es disposen per defecte els elements?</h2> + +<p>Primer de tot s'agafa el contingut dels elements de les caixes, i a continuació s’hi afegeixen l'àrea de farciment, les vores i els marges al voltant. Es tracta del model de caixes, que ja coneixem.</p> + +<p>De manera predeterminada, el contingut d'un <a href="/ca/docs/Web/HTML/Block-level_elements">element de nivell de bloc</a> és del 100% de l'amplada de l’element pare, i l‘alçada està determinada pel contingut. Els <a href="/ca/docs/Web/HTML/Elements_en_línia">elements de línia</a> tenen l’amplada i l’alçada determinades pel contingut. En els elements de línia no pots establir l’amplada i l’alçada, senzillament s’inclouen dins del contingut d’elements de nivell de bloc. Si vols controlar la mida d'un element de línia d'aquesta manera, has de configurar-lo perquè es comporti com un element de nivell de bloc amb <code>display: block;</code> (o fins i tot, <code>display: inline-block;</code>, que barreja característiques de tots dos).</p> + +<p>Això pel que fa a elements individuals; però què passa amb la manera com interactuen els elements entre ells? El flux normal del disseny d’una pàgina web (que s’esmenta en l’article d’introducció al disseny de pàgines web) és el sistema pel qual els elements s’ubiquen dins de la finestra gràfica del navegador. Per defecte, els elements de nivell de bloc estan configurats en la <em>direcció del flux dels blocs</em>, en funció del <a href="/en-US/docs/Web/CSS/writing-mode">mode d'escriptura</a> de l’element pare (<em>inicialment</em>: en horitzontal): cada element de bloc apareix en una línia nova per sota de l’anterior i estan separats per qualsevol marge que s’hi hagi establert. Per tant, en català, o en qualsevol altre sistema d'escriptura horitzontal i de dalt a baix, els elements de nivell de bloc es disposen verticalment.</p> + +<p>Els elements de línia es comporten de manera diferent: no es disposen en línies noves; en lloc d’això, es disposen sobre la mateixa línia que l’anterior i que qualsevol contingut textual contigu (o que el delimiti), mentre hi hagi espai dins de l’amplada de l’element pare de nivell de bloc. Quan ja no hi ha espai, el text o els elements que desborden passen a una línia nova.</p> + +<p>Si dos elements adjacents tenen configurat un marge i els marges dels dos es toquen, predomina el que és més gran, i el més petit desapareix; es diu que els marges col·lapsen, i això també ho coneixem.</p> + +<p>Vegem un exemple senzill que il·lustra tot això:</p> + +<div id="Normal_Flow"> +<pre class="brush: html"><h1>Flux bàsic d’un document</h1> + +<p>Sóc un element de nivell de bloc bàsic. Els meus elements de nivell de bloc adjacents es distribueixen en línies noves per sota meu.</p> + +<p>Per defecte ocupem el 100% de l'amplada de l'element pare i som tan alts com el contingut dels nostres elements fill. L‘amplada i l’alçada total són el nostre contingut + l’àrea de farciment + l’amplada/alçada de la vora.</p> + +<p>Tenim marges que ens separen. Però pel col·lapse dels marges, ens separa només l'amplada d'un dels dos marges, però no l’amplada dels dos.</p> + +<p>Els elements de línia <span> com aquest </span> i <span> aquest </span> es disposen sobre la mateixa línia que els altres i que els nodes de text adjacents, si hi ha espai en la mateixa línia. Quan els elements de línia desborden, <span>continuen per la línia següent, si és possible (com el que conté aquest text)</span>; o si no és possible, passen a una línia nova, com és el cas d’aquesta imatge: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; +} + +p { + background: rgba(255,84,104,0.3); + border: 2px solid rgb(255,84,104); + padding: 10px; + margin: 10px; +} + +span { + background: white; + border: 1px solid black; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Normal_Flow', '100%', 500) }}</p> + +<h2 id="Resum">Resum</h2> + +<p>Ara que saps com funciona el flux normal del disseny de pàgina i quines són les opcions que el navegador estableix per defecte, avança i descobreix com pots canviar aquesta visualització per defecte i crear la composició de pàgina que necessita el teu disseny de pàgina web.</p> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Introduction", "Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Introduction">Introducció al disseny amb CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow">El flux normal de disposició</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox">Flexbox</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">Graella</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Floats">Flotació</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Positioning">Posicionament</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">Disseny en diverses columnes</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design">El disseny adaptatiu</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Media_queries">Guia d’iniciació a les consultes dels mèdia</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">Mètodes de disposició heretats</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">Compatibilitat amb navegadors antics</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">Avaluació del conjunt d’elements bàsics de compaginació</a></li> +</ul> diff --git a/files/ca/learn/css/disseny_css/graelles/index.html b/files/ca/learn/css/disseny_css/graelles/index.html new file mode 100644 index 0000000000..af97c6f989 --- /dev/null +++ b/files/ca/learn/css/disseny_css/graelles/index.html @@ -0,0 +1,699 @@ +--- +title: Graelles (Grids) +slug: Learn/CSS/Disseny_CSS/Graelles +tags: + - Article + - Beginner + - CSS + - CSS Grids + - CodingScripting + - Grids + - Guide + - Layout + - Learn + - Tutorial + - grid design + - grid framework + - grid system +translation_of: Learn/CSS/CSS_layout/Grids +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout/Assessment", "Learn/CSS/CSS_layout")}}</div> + +<p class="summary">Les graelles són una eina de disseny de pàgines web consolidada i molts dissenys de pàgines web moderns basen els seus dissenys de pàgina web en una graella regular. En aquest article analitzarem el disseny de pàgines web basats en graella i com es pot utilitzar CSS per a crear graelles, tant amb les eines presents com amb les noves tecnologies que comencen a estar disponibles en els navegadors.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td><span id="result_box" lang="ca">Conceptes bàsics d'HTML</span> (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a HTML</a>), <span id="result_box" lang="ca">i nocions de com funciona el CSS</span> (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a> i <a href="/ca/docs/Learn/CSS/Building_blocks">Aplicar estil a les caixes</a>.)</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre els conceptes fonamentals que hi ha darrere dels sistemes de disseny de pàgines web amb graella i la manera com implementar un disseny de pàgina web basat en graella.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_el_disseny_de_pàgines_web_basat_en_graella">Què és el disseny de pàgines web basat en graella?</h2> + +<p>Una graella és senzillament una col·lecció de línies horitzontals i verticals que creen un patró que ens serveix per a alinear els elements del disseny d’una pàgina web. Ens ajuden a crear dissenys en què els elements no es mouen ni canvien d'amplada a mesura que naveguem de pàgina en pàgina, i proporcionen més coherència als nostres llocs web.</p> + +<p>Normalment, una graella té <strong>columnes</strong> (<strong><em>columns</em></strong>), <strong>files</strong> (<strong><em>rows</em></strong>) i espais entre cada fila i columna, que anomenem comunament <strong>canals</strong> (<strong><em>gutters</em></strong>).</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13899/grid.png" style="display: block; height: 553px; margin: 0px auto; width: 1196px;"></p> + +<h2 id="Crear_la_teva_graella_en_CSS">Crear la teva graella en CSS</h2> + +<p>Després d'haver decidit la graella que necessita el vostre disseny, podeu utilitzar el disseny de graella (o grid) de CSS per crear aquesta quadrícula a CSS i col·locar-hi elements. Primer veurem les característiques bàsiques del disseny de quadrícula i després explorarem com crear un sistema de quadrícula simple per al vostre projecte.</p> + +<p>Com a punt de partida, descarregueu i obriu el <a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/grids/0-starting-point.html">fitxer del punt de partida</a> a l’editor de text i al navegador (també el podeu <a href="https://mdn.github.io/learning-area/css/css-layout/grids/0-starting-point.html">veure en directe aquí</a>). Veureu un exemple amb un contenidor que conté alguns elements secundaris. Per defecte, es mostren en un flux normal, de manera que els quadres es mostren un sota l’altre. Treballarem amb aquest fitxer durant la primera part d’aquesta lliçó, fent canvis per veure com es comporta la quadrícula.</p> + +<p>Per definir una graella utilitzem el valor <code>grid</code> de la propietat <code>display</code>. Com passa amb Flexbox, això activa el disseny de graella i tots els fills directes del contenidor es converteixen en elements de la quadrícula. Afegiu això al CSS del vostre fitxer:</p> + +<pre class="brush: css notranslate">.container { + display: grid; +}</pre> + +<p>A diferència de flexbox, els articles no tindran cap aspecte immediatament diferent. Declarar <code>display: grid</code> us dona una quadrícula d'una columna, de manera que els vostres articles continuaran mostrant-se un per sota de l'altre tal com ho fan en el flux normal.</p> + +<p>Per veure alguna cosa que sembli més una graella, haurem d’afegir algunes columnes a la quadrícula. Afegim aquí tres columnes de 200 píxels. Podeu utilitzar qualsevol unitat de longitud o percentatges per crear aquestes pistes de columna.</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 200px 200px 200px; +}</pre> + +<p><span id="docs-internal-guid-c80e169c-7fff-1a9b-8e08-9626ee0cc209" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Afegiu la segona declaració a la vostra regla CSS i, a continuació, torneu a carregar la pàgina i hauríeu de veure que els elements s'han reordenat un a cada cel·la de la quadrícula creada.</span></p> + +<div id="Grid_1"> +<div class="hidden"> +<h6 id="Simple_Grid_Example">Simple Grid Example</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container > div { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} </pre> + +<pre class="brush: html notranslate"><div class="container"> + <div>One</div> + <div>Two</div> + <div>Three</div> + <div>Four</div> + <div>Five</div> + <div>Six</div> + <div>Seven</div> +</div> </pre> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 200px 200px 200px; +} </pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Grid_1', '100%', 400) }}</p> + +<h3 id="Graelles_flexibles_amb_la_unitat_fr">Graelles flexibles amb la unitat fr</h3> + +<p>A més de crear quadrícules amb longituds i percentatges, podem utilitzar la unitat <code>fr</code> per dimensionar de manera flexible les files i les columnes de la quadrícula. Aquesta unitat representa una fracció de l'espai disponible al contenidor de la quadrícula.</p> + +<p>Canvieu el llistat de pistes a la següent definició, creant tres pistes d'<code>1fr</code>.</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 1fr 1fr 1fr; +}</pre> + +<p><span id="docs-internal-guid-b7563581-7fff-e1f8-a099-a9ce28505b44" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ara hauríeu de veure que teniu pistes flexibles. La unitat <code>fr</code> distribueix espai proporcionalment, per tant, podeu donar diferents valors positius a les vostres pistes, per exemple, si canvieu la definició així:</span></p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 2fr 1fr 1fr; +}</pre> + +<p><span id="docs-internal-guid-bbc2b6b9-7fff-d5ec-cd85-f7dc19208069" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La primera pista ara té <code>2fr</code> de l’espai disponible i les altres dues pistes <code>1fr</code>, fent que la primera pista sigui més gran. Podeu barrejar unitats de fr i pistes de longitud fixa; en aquest cas, l’espai necessari per a les pistes fixes s’elimina abans de distribuir l’espai a les altres pistes.</span></p> + +<p> + </p><div id="Grid_2"> + <div class="hidden"> + <h6 id="Simple_Grid_Example_with_fr_units">Simple Grid Example with fr units</h6> + + <pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container { + display: grid; + grid-template-columns: 2fr 1fr 1fr; +} + +.container > div { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + </pre> + + <pre class="brush: html notranslate"><div class="container"> + <div>One</div> + <div>Two</div> + <div>Three</div> + <div>Four</div> + <div>Five</div> + <div>Six</div> + <div>Seven</div> +</div> </pre> + </div> + </div> + + +<p>{{ EmbedLiveSample('Grid_2', '100%', 400) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> La unitat <code>fr</code> distribueix l'espai <em>disponible</em>, no <em>tot </em>l'espai. Per tant, si una de les vostres pistes té alguna cosa gran al seu interior, hi haurà menys espai lliure per compartir.</p> +</div> + +<h3 id="Espais_entre_pistes">Espais entre pistes</h3> + +<p>Per crear espais entre pistes, fem servir les propietats {{cssxref ("grid-column-gap")}} per a espais entre columnes, {{cssxref ("grid-row-gap")}} per a espais entre files i {{ cssxref ("grid-gap")}} per establir tots dos alhora.</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + grid-gap: 20px; +}</pre> + +<p>Aquests buits poden especificar-se en qualsevol unitat de longitud o percentatge, però no en unitats <code>fr</code>.</p> + +<div id="Grid_3"> +<div class="hidden"> +<h6 id="Simple_Grid_Example_with_fr_units_2">Simple Grid Example with fr units</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + grid-gap: 20px; +} + +.container > div { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + </pre> + +<pre class="brush: html notranslate"><div class="container"> + <div>One</div> + <div>Two</div> + <div>Three</div> + <div>Four</div> + <div>Five</div> + <div>Six</div> + <div>Seven</div> +</div> +</pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Grid_3', '100%', 400) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Les propietats <code>*gap</code> solien portar el prefix <code>grid-</code>, però això s'ha canviat a l'especificació, ja que la intenció és fer-les útils en diversos mètodes de disseny. Les versions prefixades es mantindran com a àlies, de manera que es podran utilitzar amb seguretat durant algun temps. Per estar segur, podeu duplicar i afegir les dues propietats per fer el vostre codi més a prova de bales.</p> +</div> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + grid-gap: 20px; + gap: 20px; +}</pre> + +<h3 id="Repetició_de_llistes_de_pistes">Repetició de llistes de pistes</h3> + +<p>Podeu repetir tot o una secció de la vostra llista de pistes mitjançant la notació de repetició. Canvieu la llista de pistes pel següent:</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 20px; +}</pre> + +<p>Ara tindreu 3 pistes d’<code>1fr</code> igual que abans. El primer valor que es passa a la funció de repetició és el nombre de vegades que voleu que es repeteixi el llistat, mentre que el segon valor és un llistat de pistes, que consisteix d’una o més pistes que vulgueu repetir.</p> + +<h3 id="La_quadrícula_implícita_i_explícita">La quadrícula implícita i explícita</h3> + +<p>Fins ara, només hem especificat pistes de columnes i, tot i això, s’estan creant files per contenir el nostre contingut. Aquest és un exemple de la quadrícula explícita contra la quadrícula implícita. La quadrícula explícita és la que creeu utilitzant <code>grid-template-columns</code> o <code>grid-template-rows</code>. La quadrícula implícita es crea quan el contingut es col·loca fora d’aquesta, com ara a les nostres files. Les quadrícules explícites i implícites són anàlogues als eixos flexbox principal i transversal.</p> + +<p>Per defecte, les pistes creades a la quadrícula implícita tenen una mida <code>auto</code>, cosa que en general vol dir que són prou grans per adaptar-se al seu contingut. Si voleu donar una mida implícita a les pistes de quadrícula, podeu utilitzar les propietats {{cssxref ("grid-auto-rows")}} i {{cssxref ("grid-auto-columns")}}. Si afegiu <code>grid-auto-rows</code> amb un valor de 100px al vostre CSS, veureu que aquestes files creades ara tenen una alçada de 100 píxels.</p> + +<div id="Grid_4"> +<div class="hidden"> +<h6 id="Simple_Grid_Example_with_fr_units_3">Simple Grid Example with fr units</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container > div { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} </pre> + +<pre class="brush: html notranslate"><div class="container"> + <div>One</div> + <div>Two</div> + <div>Three</div> + <div>Four</div> + <div>Five</div> + <div>Six</div> + <div>Seven</div> +</div> + </pre> +</div> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: 100px; + grid-gap: 20px; +}</pre> + +<p>{{ EmbedLiveSample('Grid_4', '100%', 400) }}</p> + +<h3 id="La_funció_minmax">La funció minmax()</h3> + +<p>Les nostres pistes de 100 píxels d’alçada no seran molt útils si afegim contingut a les pistes de més de 100 píxels, ja que aquest cas provocaria un desbordament. Podria ser millor tenir pistes de <em>com a mínim</em> 100 píxels d’alçada i que es puguin expandir si hi entra més contingut. Un fet bastant bàsic sobre el web és que mai no se sap realment la mida que tindrà alguna cosa; contingut addicional o mides de lletra més grans poden causar problemes amb els dissenys que intenten ser perfectes en píxels en totes les dimensions.</p> + +<p>La funció {{cssxref ("minmax")}} ens permet establir una mida mínima i màxima per a una pista, per exemple, <code>minmax(100 px, auto)</code>. La mida mínima és de 100 píxels, però la màxima és automàtica, i s’ampliarà per adaptar-se al contingut. Proveu de canviar <code>grid-auto-rows</code> per utilitzar un valor min-max:</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: minmax(100px, auto); + grid-gap: 20px; +}</pre> + +<p>Si afegiu contingut addicional, veureu que la pista s'expandeix per permetre que encaixi. Tingueu en compte que l'expansió es produeix al llarg de la fila.</p> + +<h3 id="Tantes_columnes_com_encaixin">Tantes columnes com encaixin</h3> + +<p>Podem combinar algunes de les coses que hem après sobre el llistat de pistes, la notació de repetició i {{cssxref ("minmax")}} per crear un patró útil. De vegades, és útil poder demanar a la quadrícula que creï tantes columnes com càpiguen al contenidor. Ho fem establint el valor de <code>grid-template-columns</code> mitjançant la notació {{cssxref ("repeat")}}}), però en lloc de passar un número, introduïu la paraula clau <code>auto-fill</code>. Per al segon paràmetre de la funció utilitzem <code>minmax()</code>, amb un valor mínim igual a la mida mínima de la pista que ens agradaria tenir i un màxim de <code>1fr</code>.</p> + +<p>Proveu-ho ara al vostre fitxer amb el CSS següent:</p> + +<div id="Grid_5"> +<div class="hidden"> +<h6 id="As_many_columns_as_will_fit">As many columns as will fit</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container > div { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + </pre> + +<pre class="brush: html notranslate"><div class="container"> + <div>One</div> + <div>Two</div> + <div>Three</div> + <div>Four</div> + <div>Five</div> + <div>Six</div> + <div>Seven</div> +</div> </pre> +</div> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + grid-auto-rows: minmax(100px, auto); + grid-gap: 20px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Grid_5', '100%', 400) }}</p> + +<p>Això funciona perquè Grid crea tantes columnes de 200 píxels com càpiguen al contenidor i, a continuació, comparteix l’espai que sobri entre totes les columnes: el màxim és 1fr que, com ja sabem, distribueix l’espai de manera uniforme entre les pistes.</p> + +<h2 id="Ubicació_basada_en_línies">Ubicació basada en línies</h2> + +<p>Ara passem de crear una graella a col·locar coses a la quadrícula. La nostra quadrícula sempre té línies, que comencen per 1 i es relacionen amb el mode d’escriptura del document. Per tant, en anglès, la línia de columna 1 es troba a la part esquerra de la quadrícula i la línia de fila 1 a la part superior. En àrab, la línia 1 de la columna estaria a la dreta, ja que l'àrab s'escriu de dreta a esquerra.</p> + +<p>Podem situar les coses segons aquestes línies especificant la línia inicial i final. Ho fem utilitzant les propietats següents:</p> + +<ul> + <li>{{cssxref ("grid-column-start")}}</li> + <li>{{cssxref ("grid-column-end")}}</li> + <li>{{cssxref ("grid-row-start")}}</li> + <li>{{cssxref ("grid-row-end")}}</li> +</ul> + +<p>Totes aquestes propietats poden tenir un número de línia com a valor. També podeu utilitzar les propietats abreujades:</p> + +<p> {{cssxref ("grid-column")}}<br> + {{cssxref ("grid-row")}}</p> + +<p>Aquests us permeten especificar les línies inicial i final alhora, separades per un <code>/</code>, un caràcter de barra inclinada cap endavant.</p> + +<p><a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/grids/8-placement-starting-point.html">Descarregueu aquest fitxer com a punt de partida</a> o <a href="https://mdn.github.io/learning-area/css/css-layout/grids/8-placement-starting-point.html">vegeu-lo en directe aquí</a>. Ja té una quadrícula definida i article senzill. Podeu veure que la col·locació automàtica col·loca elements un a cada cel·la de la quadrícula que hem creat.</p> + +<p>En lloc d'això, col·locarem tots els elements del nostre lloc a la quadrícula, mitjançant les línies de la quadrícula. Afegiu les regles següents a la part inferior del vostre CSS:</p> + +<pre class="brush: css notranslate">header { + grid-column: 1 / 3; + grid-row: 1; +} + +article { + grid-column: 2; + grid-row: 2; +} + +aside { + grid-column: 1; + grid-row: 2; +} + +footer { + grid-column: 1 / 3; + grid-row: 3; +}</pre> + +<div id="Grid_6"> +<div class="hidden"> +<h6 id="Line-based_placement">Line-based placement</h6> + +<pre class="brush: css notranslate"> body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; + } + + .container { + display: grid; + grid-template-columns: 1fr 3fr; + grid-gap: 20px; + } +header { + grid-column: 1 / 3; + grid-row: 1; +} + +article { + grid-column: 2; + grid-row: 2; +} + +aside { + grid-column: 1; + grid-row: 2; +} + +footer { + grid-column: 1 / 3; + grid-row: 3; +} + +header, +footer { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + +aside { + border-right: 1px solid #999; +} +</pre> + +<pre class="brush: html notranslate"><div class="container"> + <header>This is my lovely blog</header> + <article> + <h1>My article</h1> + <p>Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + </article> + <aside> + <h2>Other things</h2> + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est.</p> + </aside> + <footer>Contact me@mysite.com</footer> +</div> </pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Grid_6', '100%', 400) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> també podeu utilitzar el valor <code>-1</code> per referir-vos a la columna o la línia final i comptar cap a l'interior des del final mitjançant valors negatius. Tanmateix, això només funciona per a la quadrícula explícita. El valor <code>-1</code> no es referirà a la línia final de la quadrícula implícita.</p> +</div> + +<h2 id="Posicionament_amb_grid-template-areas">Posicionament amb grid-template-areas</h2> + +<p>Una forma alternativa de col·locar elements a la quadrícula és fer servir la propietat {{cssxref ("grid-template-areas")}} i donar un nom als diversos elements del vostre disseny.</p> + +<p>Traieu el posicionament basat en línies de l'últim exemple (o torneu a descarregar el fitxer per tenir un punt de partida nou) i afegiu el CSS següent.</p> + +<pre class="brush: css notranslate">.container { + display: grid; + grid-template-areas: + "header header" + "sidebar content" + "footer footer"; + grid-template-columns: 1fr 3fr; + grid-gap: 20px; +} + +header { + grid-area: header; +} + +article { + grid-area: content; +} + +aside { + grid-area: sidebar; +} + +footer { + grid-area: footer; +}</pre> + +<p>Torneu a carregar la pàgina i veureu que els vostres articles s'han col·locat igual que abans, sense que hàgim d'utilitzar cap número de línia!</p> + +<div id="Grid_7"> +<div class="hidden"> +<h6 id="Line-based_placement_2">Line-based placement</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +header, +footer { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + +aside { + border-right: 1px solid #999; +} + +.container { + display: grid; + grid-template-areas: + "header header" + "sidebar content" + "footer footer"; + grid-template-columns: 1fr 3fr; + grid-gap: 20px; +} + +header { + grid-area: header; +} + +article { + grid-area: content; +} + +aside { + grid-area: sidebar; +} + +footer { + grid-area: footer; +} + </pre> + +<pre class="brush: html notranslate"><div class="container"> + <header>This is my lovely blog</header> + <article> + <h1>My article</h1> + <p>Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + </article> + <aside><h2>Other things</h2> + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est.</p> + </aside> + <footer>Contact me@mysite.com</footer> +</div> </pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Grid_7', '100%', 400) }}</p> + +<p>Les regles per a les <code>grid-template-areas</code> són les següents:</p> + +<ul> + <li>Cal que ompliu totes les cel·les de la graella.</li> + <li>Per abastar dues cel·les, repetiu el nom.</li> + <li>Per deixar una cel·la buida, utilitzeu un <code>.</code> (punt).</li> + <li>Les àrees han de ser rectangulars; per exemple, no es pot tenir una àrea en L.</li> + <li>Les àrees no es poden repetir en ubicacions diferents.</li> +</ul> + +<p>Podeu jugar amb el nostre disseny canviant el peu de pàgina per situar-se només a sota del contingut i la barra lateral, per exemple, per abastar fins a baix de tot. Aquesta és una manera molt agradable de descriure un disseny, ja que és obvi a partir del CSS exactament el que està passant.</p> + +<h2 id="Un_framework_de_graella_amb_CSS_Grid">Un framework de graella amb CSS Grid</h2> + +<p>Els "frameworks" de quadrícula tendeixen a basar-se al voltant de 12 o 16 quadrícules i, amb CSS Grid, no necessiteu cap eina de tercers que us proporcioni aquest <em>framework</em>: ja hi és, a l’especificació.</p> + +<p><a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/grids/11-grid-system-starting-point.html">Descarregueu el fitxer de punt de partida</a>. Conté un contenidor amb una quadrícula de 12 columnes definida i el mateix marcatge que hem utilitzat en els dos exemples anteriors. Ara podem utilitzar la ubicació basada en línies per col·locar el nostre contingut a la quadrícula de 12 columnes.</p> + +<pre class="brush: css notranslate">header { + grid-column: 1 / 13; + grid-row: 1; +} + +article { + grid-column: 4 / 13; + grid-row: 2; +} + +aside { + grid-column: 1 / 4; + grid-row: 2; +} + +footer { + grid-column: 1 / 13; + grid-row: 3; +}</pre> + +<div id="Grid_8"> +<div class="hidden"> +<h6 id="A_CSS_Grid_Grid_System">A CSS Grid Grid System</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 2em auto; + font: .9em/1.2 Arial, Helvetica, sans-serif; +} + +.container { + display: grid; + grid-template-columns: repeat(12, minmax(0,1fr)); + grid-gap: 20px; +} + +header { + grid-column: 1 / 13; + grid-row: 1; +} + +article { + grid-column: 4 / 13; + grid-row: 2; +} + +aside { + grid-column: 1 / 4; + grid-row: 2; +} + +footer { + grid-column: 1 / 13; + grid-row: 3; +} + +header, +footer { + border-radius: 5px; + padding: 10px; + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); +} + +aside { + border-right: 1px solid #999; +} + </pre> + +<pre class="brush: html notranslate"><div class="container"> + <header>This is my lovely blog</header> + <article> + <h1>My article</h1> + <p>Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + </article> + <aside><h2>Other things</h2> + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est.</p> + </aside> + <footer>Contact me@mysite.com</footer> +</div> + </pre> +</div> +</div> + +<p>{{ EmbedLiveSample('Grid_8', '100%', 400) }}</p> + +<p>Si feu servir el <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts">Firefox Grid Inspector</a> per superposar les línies de quadrícula del vostre disseny, podreu veure com funciona la nostra quadrícula de 12 columnes.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/16045/learn-grids-inspector.png" style="height: 1026px; width: 2028px;"></p> +</div> + +<h2 id="Posa_a_prova_els_teus_coneixements">Posa a prova els teus coneixements</h2> + +<p>Hem arribat al final de l'article. Recordes la informació més rellevant? Trobaràs més proves per comprovar si retens aquesta informació abans de seguir a <a href="https://wiki.developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Grid_skills">Test your skills: Grids</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Després de la lectura d’aquest article, hauries de ser capaç d’entendre com funcionen els dissenys de pàgina web amb CSS Grid. Per aprofundir en l'especificació, llegeix les nostres guies sobre Disposició amb Grid, que trobaràs a continuació.</p> + +<h2 id="Veieu_també">Veieu també</h2> + +<ul> + <li><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout#Guides">CSS Grid guides</a></li> + <li><a href="https://wiki.developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts">CSS Grid Inspector: Examine grid layouts</a></li> +</ul> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Flexbox", "Learn/CSS/CSS_layout/Assessment", "Learn/CSS/CSS_layout")}}</p> diff --git a/files/ca/learn/css/disseny_css/index.html b/files/ca/learn/css/disseny_css/index.html new file mode 100644 index 0000000000..e74e5da0b9 --- /dev/null +++ b/files/ca/learn/css/disseny_css/index.html @@ -0,0 +1,66 @@ +--- +title: Disseny CSS +slug: Learn/CSS/Disseny_CSS +tags: + - Beginner + - CSS + - Floating + - Grids + - Guide + - Landing + - Layout + - Learn + - Module + - Multiple column + - Positioning + - flexbox + - float +translation_of: Learn/CSS/CSS_layout +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">En aquest punt, ja hem examinat els fonaments de CSS, com l'estil del text, i l'estil i la manipulació de les caixes en el que estroba dins el contingut. Ara és hora de veure com col·locar les caixes al lloc correcte en relació amb la finestra de visualització, entre elles. Hem cobert els requisits previs necessaris de manera que ara podem aprofundir en el disseny CSS, provant diferents paràmetres de visualització, mètodes tradicionals de disseny que inclouen flotants i posicionament, i noves eines de disseny modernas, com flexbox.</p> + +<h2 id="Requisits_previs">Requisits previs</h2> + +<p><span id="result_box" lang="ca"><span>Abans de començar aquest mòdul, ja hauríeu de:</span></span></p> + +<ol> + <li>Estar familiaritzats amb els principis bàsics d' HTML, tal com es descriu en el mòdul <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a>.</li> + <li>Sentir-vos còmodes amb els fonaments CSS, tal com s'ha tractat a la <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>.</li> + <li>Entendre com fer <a href="/en-US/docs/Learn/CSS/Styling_boxes">caixes d'estil</a>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Si esteu treballant en un ordinador/tauleta/altre dispositiu on no té la capacitat de crear els vostres propis fitxers, podeu provar (la majoria) d'exemples de codi, en un programa de codificació en línia com <a href="http://jsbin.com/">JSBin</a> o <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guies">Guies</h2> + +<p>Aquests articles proporcionaran instruccions sobre les eines i tècniques fonamentals de disseny, disponibles a CSS.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Introduction">Introducció al disseny CSS</a></dt> + <dd>Aquest article recapitularà algunes de les característiques de disseny de CSS que ja hem tocat en els mòduls anteriors, com els diferents valors de {{cssxref("display")}} - i introduïm alguns dels conceptes que cobrirem al llarg d'aquest mòdul.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Floats">Flotants</a></dt> + <dd>Originalment per a imatges flotants dins dels blocs de text, la propietat {{cssxref("float")}} s'ha convertit en una de les eines més utilitzades per crear diversos dissenys de columnes a les pàgines web. Aquest article ho explica tot.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Positioning">Posicionament</a></dt> + <dd>El posicionament us permet treure elements del flux normal de disseny del document, i fer que es comportin de manera diferent, per exemple, asseguts un damunt de l'altre o quedant sempre al mateix lloc dins de la finestra de visualització del navegador. Aquest article explica els diferents valors de {{cssxref("position")}}, i com utilitzar-los.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Practical_positioning_examples">Exemples pràctics de posicionament</a></dt> + <dd>Amb els conceptes bàsics de posicionament coberts en l'últim article, veurem, ara, com construir un parell d'exemples del món real per il·lustrar quin tipus de coses podeu fer amb el posicionament.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox">Flexbox</a></dt> + <dd>Una nova tecnologia, però amb suport, ara, bastant estès en tots els navegadors, <a href="/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_flexbox_to_lay_out_web_applications">Flexbox</a> està començant a estar preparat per a un ús generalitzat. Flexbox proporciona eines que permeten crear ràpidament dissenys complexos i flexibles i característiques que històricament resulten difícils amb CSS. Aquest article explica tots els fonaments.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">Graelles</a></dt> + <dd>Els sistemes de graella són una altra característica molt comuna que s'utilitza en els dissenys de CSS, que solen implementar-se mitjançant flotadors o altres característiques de disseny. Imagineu el disseny com un nombre establert de columnes (p. Ex. 4, 6 o 12) i, a continuació, ajusteu les columnes de contingut dins d'aquestes columnes imaginàries. En aquest article explorarem la idea bàsica sobre la creació d'un sistema de graella, mireu l'ús d'un sistema de graella confeccionat per un marc (framework) de graella i finalitzeu l'experimentació amb les Graelles CSS - una incipient nova funció de navegador fa que l'implementació de disseny de graella a la Web sigui molt més fàcil.</dd> +</dl> + +<h2 id="Avaluacions"><span id="result_box" lang="ca"><span>Avaluacions</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Les següents avaluacions posaran a prova la vostra capacitat per dissenyar pàgines web amb CSS.</span></span></p> + +<dl> + <dt>Creació d'un disseny flexible multicolumna (TBD)</dt> + <dd>Aquesta avaluació provarà la vostra capacitat per crear un disseny estàndard de diverses columnes, amb algunes característiques interessants.</dd> + <dt>Creació d'un widget de control fix (TBD)</dt> + <dd>Aquesta avaluació desafia la vostra comprensió del posicionament, demanant-vos que creeu un widget de control de posició fix que permeti a l'usuari accedir als controls d'una aplicació web independentment d'on es desplaci.</dd> +</dl> diff --git a/files/ca/learn/css/disseny_css/introduccio_disseny_css/index.html b/files/ca/learn/css/disseny_css/introduccio_disseny_css/index.html new file mode 100644 index 0000000000..88a924dc00 --- /dev/null +++ b/files/ca/learn/css/disseny_css/introduccio_disseny_css/index.html @@ -0,0 +1,700 @@ +--- +title: Introducció al disseny CSS +slug: Learn/CSS/Disseny_CSS/Introduccio_disseny_CSS +tags: + - Article + - Beginner + - CSS + - Floats + - Grids + - Introduction + - Layout + - Learn + - Positioning + - Tables + - flexbox + - flow +translation_of: Learn/CSS/CSS_layout/Introduction +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/CSS/CSS_layout/Floats", "Learn/CSS/CSS_layout")}}</div> + +<p class="summary">Aquest article recapitula algunes de les característiques de disseny CSS que ja hem tocat en els mòduls anteriors, com els diferents valors de {{cssxref ("display")}}, i introdueix alguns dels conceptes que exposem al llarg d'aquest mòdul.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td><span id="result_box" lang="ca">Conceptes bàsics d'HTML</span> (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a HTML</a>), <span id="result_box" lang="ca">i nocions de com funciona el CSS</span> (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Adquirir una visió general de les tècniques de disseny de pàgines web amb CSS. Cada tècnica es pot aprendre amb més detall en tutorials posteriors.</td> + </tr> + </tbody> +</table> + +<p>Les tècniques de disseny de pàgina web amb CSS ens permeten prendre els elements que hi ha en una pàgina web i controlar on estan posicionats en relació amb la seva posició predeterminada en el flux de disseny normal, els altres elements del voltant, l’element pare contenidor o la finestra de visualització / finestra principal. Les tècniques de disseny de pàgines que exposem amb més detall en aquest mòdul són:</p> + +<ul> + <li>Elements flotants</li> + <li>La propietat {{cssxref("display")}}</li> + <li>Flexbox</li> + <li>Graella</li> + <li>Posicionament</li> + <li>Taules CSS</li> + <li>Disposició de múltiples columnes</li> +</ul> + +<p><span id="docs-internal-guid-3d1d84d1-7fff-8b2f-5bac-858fd61ba989" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cada tècnica té els seus usos, avantatges i inconvenients, i cap tècnica s'ha dissenyat per utilitzar-se aïllada. Entenent per a què s’ha dissenyat cada mètode estaràs en una bona posició per entendre quina és la millor disposició per a cada tasca.</span></p> + +<h2 id="Flux_normal"><span id="result_box" lang="ca">Flux normal</span></h2> + +<p>El flux normal és la manera com el navegador estableix les pàgines HTML de manera predeterminada quan no es fa res per controlar el disseny de pàgina. Vegem-ne un exemple HTML ràpid:</p> + +<pre class="brush: html notranslate"><p>I love my cat.</p> + +<ul> + <li>Buy cat food</li> + <li>Exercise</li> + <li>Cheer up friend</li> +</ul> + +<p>The end!</p></pre> + +<p>Per defecte, el navegador mostra aquest codi de la manera següent:</p> + +<p>{{ EmbedLiveSample('Normal_flow', '100%', 200) }}</p> + +<p>Tingues en compte que aquí l'HTML es mostra en l'ordre exacte en què apareix en el codi d’origen, amb elements apilats l’un sobre l’altre: el primer paràgraf, seguit de la llista no ordenada, seguit del segon paràgraf.</p> + +<p>Per a molts dels elements de la pàgina el flux normal crea exactament la disposició que cal, però per dissenys més complexos et farà falta alterar aquest comportament per defecte fent ús d'alguna de les eines disponibles en CSS. Començar amb un document HTML ben estructurat és molt important, donat que així pots treballar amb com les coses es disposen per defecte, en comptes de barallar-t'hi.</p> + +<p>Les tècniques de disseny tendeixen a substituir aquest comportament predeterminat, utilitzant les tècniques següents:</p> + +<ul> + <li><strong>La propietat {{cssxref("display")}}:</strong> els valors habituals, com ara <code>block</code>, <code>inline</code> o <code>inline-block</code> poden canviar la manera com els elements es comporten en un flux normal (consulta l’article <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">Tipus de caixes CSS</a> per a obtenir-ne més informació), mentre que d’altres valors poc freqüents o especialitzats ens permeten disposar els elements de maneres completament diferents, utilitzant eines com Flexbox.</li> + <li><strong>Elements flotants:</strong> aplicant a {{cssxref("float")}} un valor com <code>left</code>, pots fer que els elements de nivell de bloc s'alineïn l’un al costat de l'altre en lloc de disposar-se l’un damunt de l'altre.</li> + <li><strong>La propietat {{cssxref("position")}}:</strong> et permet controlar amb precisió la disposició de caixes dintre d'altres caixes. El posicionat <code>static</code> és l'habitual en el flux normal, però pots fer que els elements es disposin d'altres maneres usant valors diferents, per exemple enganxats a la part superior de la finestra de visualització del navegador.</li> + <li><strong>Disposició en taules:</strong> les característiques dissenyades per aplicar estils a les parts d'una taula HTML poden usar-se sobre d'altres elements fent servir <code>display: table</code> i les propietats associades.</li> + <li><strong>Disposició multicolumna:</strong> Las propietats de <a href="/en-US/docs/Web/CSS/CSS_Columns">disposició multicolumna</a> poden fer que el contingut d'un bloc es disposi en columnes, com les d'un diari.</li> +</ul> + +<h2 id="La_propietat_display">La propietat <code>display</code></h2> + +<p>Els mètodes principals per aconseguir un disseny de pàgina amb CSS són tots els valors de la propietat <code>display</code> (visualització). Aquesta propietat ens permet canviar la manera per defecte com es mostren les coses. Tot el que hi ha al flux normal té un valor de <code>display</code>, que s'utilitza com la forma per defecte en què es comporten els elements que hi estan configurats. Per exemple, el fet que els paràgrafs en català es mostrin un per sota de l’altre es deu al fet que s’estilen amb <code>display: block</code>. Si creeu un enllaç al voltant d'un text dins d'un paràgraf, aquest enllaç romandrà en línia amb la resta del text i no es dividirà en cap línia nova. Això es deu al fet que l'element {{htmlelement("a")}} és <code>display: inline</code> per defecte.</p> + +<p>Pots canviar aquest comportament de visualització per defecte. Per exemple, l'element {{htmlelement("li")}} és <code>display: block</code> per defecte, és a dir, que els elements de la llista es mostren l'un a sota de l'altre al nostre document en català. Si canviem el valor de <code>display</code> a <code>inline</code>, ara es mostraran un al costat de l’altre, com ho farien les paraules en una frase. El fet que puguis canviar el valor de <code>display</code> de qualsevol element significa que pots triar elements HTML pel seu significat semàntic, sense preocupar-te de com quedaran. La seva aparença és una cosa que es pot canviar.</p> + +<p>A més de poder canviar la presentació predeterminada, canviant un element de <code>block</code> a <code>inline</code> i viceversa, hi ha alguns mètodes de disseny més grans que comencen com amb un valor de <code>display</code>. Tanmateix, quan els feu servir, generalment haureu d'invocar propietats addicionals. Els dos valors més importants per als nostres propòsits a l’hora de parlar del disseny són <code>display: flex</code> i <code>display: grid</code>.</p> + +<h2 id="Caixes_flexibles_Flexbox">Caixes flexibles (Flexbox)</h2> + +<p>Flexbox és el nom breu del <a href="/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout">mòdul de disseny de caixa flexible</a>, dissenyat per facilitar-nos la distribució de les coses en una dimensió, sigui com a fila o com a columna. Per utilitzar flexbox, apliqueu <code>display: flex</code> a l'element pare dels elements que vulgueu disposar; tots els seus fills directes es converteixen en ítems flexibles. Ho podem veure en un exemple senzill.</p> + +<p>L'etiquetatge HTML següent ens proporciona un element contenidor, amb una classe <code>wrapper</code>, dins del qual hi ha tres elements {{htmlelement("div")}}. Per defecte, es mostrarien com a elements de bloc, un a sota de l’altre, al nostre document.</p> + +<p>Tanmateix, si afegim <code>display: flex</code> al pare, els tres elements ara es disposen en columnes. Això es deu al fet que es converteixen en ítems flexibles (<em>flex items</em>) i es veuen afectats per alguns valors inicials que flexbox estableix al contenidor flex. Es mostren en una fila, perquè el valor inicial de {{cssxref("flex-direction")}} establert al seu pare és <code>row</code>. Tots semblen estirar-se fins a l’alçada de l’element més alt, perquè el valor inicial de la propietat {{cssxref("align-items")}} establert al seu pare és <code>stretch</code>. Això significa que els ítems s’estenen fins a l’alçada del contenidor flex, que en aquest cas està definida per l’element més alt. Tots els articles s’alineen a l’inici del contenidor, deixant qualsevol espai addicional al final de la fila.</p> + +<div id="Flex_1"> +<div class="hidden"> +<h6 id="Flexbox_Example_1">Flexbox Example 1</h6> + +<pre class="brush: css notranslate">* {box-sizing: border-box;} + +.wrapper > div { + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} + </pre> +</div> + +<pre class="brush: css notranslate">.wrapper { + display: flex; +} +</pre> + +<pre class="brush: html notranslate"><div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> +</div> +</pre> +</div> + +<p>{{ EmbedLiveSample('Flex_1', '300', '200') }}</p> + +<p>A més de les propietats anteriors que es poden aplicar al contenidor flex, hi ha propietats que es poden aplicar als ítems flex. Aquestes propietats, entre altres coses, poden canviar la manera com es “flexionen” els ítems, cosa que els permet expandir-se i contraure’s per adaptar-se a l’espai disponible.</p> + +<p>Com a exemple senzill d'això, podem afegir la propietat {{cssxref ("flex")}} a tots els nostres elements fill, amb un valor d'<code>1</code>. Això farà que tots els ítems creixin i omplin el contenidor, en comptes de deixar espai al final. Si hi ha més espai, els elements s’ampliaran; si hi ha menys espai es tornaran més estrets. A més, si afegiu un altre element al marcatge, tots els elements es faran més petits per fer-hi espai; ajustaran la seva mida per ocupar la mateixa quantitat d’espai, sigui quin sigui.</p> + +<div id="Flex_2"> +<div class="hidden"> +<h6 id="Flexbox_Example_2">Flexbox Example 2</h6> + +<pre class="brush: css notranslate"> * {box-sizing: border-box;} + + .wrapper > div { + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; + } + </pre> +</div> + +<pre class="brush: css notranslate">.wrapper { + display: flex; +} + +.wrapper > div { + flex: 1; +} +</pre> + +<pre class="brush: html notranslate"><div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> +</div> +</pre> +</div> + +<p>{{ EmbedLiveSample('Flex_2', '300', '200') }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota: </strong>Aquesta ha estat una molt breu introducció al que és possible amb Flexbox. Per obtenir més informació, consulteu el nostre article de <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flexbox">Flexbox</a>.</p> +</div> + +<h2 id="Disposició_en_graella_Grid">Disposició en graella (Grid)</h2> + +<p>Mentre que Flexbox està dissenyat per al disseny unidimensional, el disseny de quadrícula està pensat per a dues dimensions: alinear les coses en files i columnes.</p> + +<p>Una vegada més, podeu activar el disseny de quadrícula amb un valor específic de display - <code>display: grid</code>. L'exemple següent utilitza un marcatge similar a l'exemple de flex, amb un contenidor i alguns elements fills. A més d’utilitzar <code>display: grid</code>, també definim files i columnes al pare mitjançant les propietats {{cssxref("grid-template-rows")}} i {{cssxref("grid-template-columns")}}, respectivament. Hem definit tres columnes cadascuna d'<code>1fr</code> i dues files de <code>100px</code>. No necessito posar cap regla sobre els elements infantils; es col·loquen automàticament a les cel·les que ha creat la nostra graella.</p> + +<div id="Grid_1"> +<div class="hidden"> +<h6 id="Grid_example_1">Grid example 1</h6> + +<pre class="brush: css notranslate"> * {box-sizing: border-box;} + + .wrapper > div { + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; + } + </pre> +</div> + +<pre class="brush: css notranslate">.wrapper { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: 100px 100px; + grid-gap: 10px; +} +</pre> + +<pre class="brush: html notranslate"><div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> + <div class="box4">Four</div> + <div class="box5">Five</div> + <div class="box6">Six</div> +</div> +</pre> +</div> + +<p>{{ EmbedLiveSample('Grid_1', '300', '330') }}</p> + +<p><span id="docs-internal-guid-06c574d0-7fff-ef3d-b16b-035c6b7961fe" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un cop tingueu una graella, podeu col·locar-hi explícitament els elements, en lloc de confiar en el comportament de la ubicació automàtica que acabem de veure. Al segon exemple que teniu a continuació hem definit la mateixa graella, però aquesta vegada amb tres elements fills. Hem definit la línia inicial i final de cada element mitjançant les propietats {{cssxref("grid-column")}} i {{cssxref("grid-row")}}. Això fa que els elements abastin diverses pistes.</span></p> + +<div id="Grid_2"> +<div class="hidden"> +<h6 id="Grid_example_2">Grid example 2</h6> + +<pre class="brush: css notranslate"> * {box-sizing: border-box;} + + .wrapper > div { + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; + } + </pre> +</div> + +<pre class="brush: css notranslate">.wrapper { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: 100px 100px; + grid-gap: 10px; +} + +.box1 { + grid-column: 2 / 4; + grid-row: 1; +} + +.box2 { + grid-column: 1; + grid-row: 1 / 3; +} + +.box3 { + grid-row: 2; + grid-column: 3; +} +</pre> + +<pre class="brush: html notranslate"><div class="wrapper"> + <div class="box1">One</div> + <div class="box2">Two</div> + <div class="box3">Three</div> +</div> +</pre> +</div> + +<p>{{ EmbedLiveSample('Grid_2', '300', '330') }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Aquests dos exemples són només una petita part de la potència del disseny de graella; per obtenir més informació, consulteu el nostre article sobre <a href="/ca/docs/Learn/CSS/Disseny_CSS/Graelles">Graelles (Grids)</a>.</p> +</div> + +<p>La resta d'aquesta guia cobreix altres mètodes de disseny, que són menys importants per a les principals estructures de disseny de la pàgina, però que poden ajudar-vos a realitzar tasques específiques. En comprendre la naturalesa de cada tasca de disseny, aviat trobareu que, quan mireu un component concret del vostre disseny, el tipus de disseny més adequat sovint serà clar.</p> + +<h2 id="Elements_flotants_Floats">Elements flotants (<em>Floats</em>)</h2> + +<p>Flotar un element canvia el comportament d’aquest element i dels elements de nivell de bloc que el segueixen en un flux normal. L'element es mou cap a l'esquerra o cap a la dreta i s'elimina del flux normal i el contingut circumdant flota al voltant de l'element flotat.</p> + +<p>La propietat {{cssxref("float")}} té quatre valors possibles:</p> + +<ul> + <li><code>left</code>: fa flotar l'element a l'esquerra.</li> + <li><code>right</code>: fa flotar l'element a la dreta.</li> + <li><code>none</code>: no flota. Aquest és el valor predeterminat.</li> + <li><code>inherit</code>: especifica que el valor de la propietat <code>float</code> s'hereta de l'element pare.</li> +</ul> + +<p>A l'exemple següent, flotem un <code><div></code> a l'esquerra i li donem un {{cssxref("margin")}}} per la dreta per apartar el text de l'element. Això ens dona l’efecte del text rodejant aquesta caixa i és la major part del que heu de saber sobre els elements flotants tal com s’utilitzen en el disseny web modern.</p> + +<div id="Float_1"> +<div class="hidden"> +<h6 id="Floats_example">Floats example</h6> + +<pre class="brush: css notranslate">body { + width: 90%; + max-width: 900px; + margin: 0 auto; +} + +p { + line-height: 2; + word-spacing: 0.1rem; +} + +.box { + background-color: rgb(207,232,220); + border: 2px solid rgb(79,185,227); + padding: 10px; + border-radius: 5px; +} +</pre> +</div> + +<pre class="brush: html notranslate"><h1>Simple float example</h1> + +<div class="box">Float</div> + +<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +</pre> + +<pre class="brush: css notranslate"> +.box { + float: left; + width: 150px; + height: 150px; + margin-right: 30px; +} +</pre> +</div> + +<p>{{ EmbedLiveSample('Float_1', '100%', 600) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Els <em>floats</em> s’expliquen completament a la nostra lliçó sobre les propietats <a href="/ca/docs/Learn/CSS/Disseny_CSS/Flotadors">float i clear</a>. Abans de tècniques com Flexbox i Grid es feien servir <em>floats</em> com a mètode per crear dissenys de columnes. És possible que encara trobeu aquests mètodes al web; els tractarem a la lliçó sobre <a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">mètodes de disseny heretats</a>.</p> +</div> + +<h2 id="Tècniques_de_posicionament">Tècniques de posicionament</h2> + +<p>El posicionament us permet moure un element des d'on es col·locaria quan estigués en un flux normal a una altra ubicació. El posicionament no és un mètode per crear el disseny principal de la pàgina, sinó que es tracta més de gestionar i ajustar la posició d’elements específics de la pàgina.</p> + +<p>Tot i això, hi ha tècniques útils per a certs patrons de disseny que depenen de la propietat {{cssxref("position")}}. La comprensió del posicionament també ajuda a entendre el flux normal, i què significa moure un element fora del flux normal.</p> + +<p>Hi ha cinc tipus de posicionament principals, que hauries de conèixer:</p> + +<ul> + <li>El <strong>posicionament estàtic</strong> (<em><strong>static positioning</strong></em>) és el valor per defecte que té cada element; significa «posa l'element en la posició normal en el flux del disseny del document; res especial per veure aquí».</li> + <li>El <strong>posicionament relatiu</strong> (<em><strong>relative positioning</strong></em>) permet modificar la posició d'un element en la pàgina i moure’l en relació amb la seva posició en el flux normal, fins i tot fent que se superposi a altres elements de la pàgina.</li> + <li>El <strong>posicionament absolut</strong> (<em><strong>absolute positioning</strong></em>) elimina un element completament del flux normal de la pàgina, com si estigués disposat en una capa separada pròpia. A partir d'aquí, el podem fixar a una posició relativa respecte de les vores de l'element <code><html></code> de la pàgina (o l'element pare posicionat més proper). És útil per a crear efectes de disseny de pàgina complexos com ara caixes de tipus pestanya en què diferents panells de contingut es disposen els uns damunt dels altre i es mostren i oculten segons es vol, o panells d'informació que es disposen fora de la pantalla per defecte, però es poden fer lliscar cap a l’interior de la pantalla amb un control de tipus botó.</li> + <li>El <strong>posicionament fix</strong> (<strong>fixed positioning</strong>) és molt similar al posicionament absolut, excepte que fixa un element en relació amb la finestra de visualització del navegador, no amb un altre element. Això és útil per a crear efectes com ara un menú de navegació persistent, que sempre es manté al mateix lloc a la pantalla en desplaçar-se la resta del contingut.</li> + <li>El <strong>posicionament enganxós</strong> (<strong>sticky positioning</strong>) és un mètode de posicionament més recent que fa que un element actuï com si fos <code>position: static</code> fins que arriba a un desplaçament definit des de la finestra de visualització del navegador, moment en què passa a actuar com a <code>position: fixed</code>.</li> +</ul> + +<h3 id="Un_exemple_senzill_de_posicionament">Un exemple senzill de posicionament</h3> + +<p>Per familiaritzar-te amb aquestes tècniques de disseny de pàgina, el mostrem un parell d'exemples ràpids. Tots els nostres exemples tenen el mateix codi HTML, que és el següent:</p> + +<pre class="brush: html notranslate"><h1>Positioning</h1> + +<p>I am a basic block level element.</p> +<p class="positioned">I am a basic block level element.</p> +<p>I am a basic block level element.</p></pre> + +<p><span id="result_box" lang="ca">Apliquem a aquest codi HTML un estil predeterminat amb el codi CSS següent:</span></p> + +<pre class="brush: css notranslate">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +}</pre> + +<p>La sortida que dona és la següent:</p> + +<p>{{ EmbedLiveSample('Simple_positioning_example', '100%', 300) }}</p> + +<h3 id="Posicionament_Relatiu_Relative_positioning">Posicionament Relatiu (<em>Relative positioning</em>)</h3> + +<p>El posicionament relatiu et permet desplaçar un element de la posició que tindria per defecte en flux normal. Això vol dir que pots assolir una tasca com ara moure una icona cap avall de manera que quedi alineada amb una etiqueta de text. Per fer-ho, podríem afegir la següent regla per afegir un posicionament relatiu:</p> + +<pre class="notranslate">.positioned { + position: relative; + background: yellow; + top: 30px; + left: 30px; +}</pre> + +<p>Aquí hem donat al nostre paràgraf del mig un valor {{cssxref("position")}} de <code>relative</code>; això no fa res per si mateix, de manera que també afegim les propietats {{cssxref("top")}} i {{cssxref("left")}}, que serveixen per a moure l'element afectat cap avall i cap a la dreta; això podria semblar el contrari del que s'esperava, però cal pensar que l'element és empès des dels costats esquerre i superior, cosa que fa que es mogui cap a la dreta i avall.</p> + +<p>Si afegeixes aquest codi, es mostra el resultat següent:</p> + +<div class="hidden"> +<h6 id="Un_exemple_de_posicionament_relatiu">Un exemple de posicionament relatiu</h6> + +<pre class="brush: html notranslate"><h1>Relative positioning</h1> + +<p>I am a basic block level element.</p> +<p class="positioned">This is my relatively positioned element.</p> +<p>I am a basic block level element.</p></pre> + +<pre class="brush: css notranslate">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: relative; + background: yellow; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Relative_positioning_example', '100%', 300) }}</p> + +<h3 id="Posicionament_absolut_Absolute"><span id="result_box" lang="ca">Posicionament absolut</span> (Absolute)</h3> + +<p>El posicionament absolut s’utilitza per eliminar completament un element del flux normal i col·locar-lo mitjançant desplaçaments des de les vores d’un bloc contenidor.</p> + +<p>Tornant al nostre exemple original no posicionat, podríem afegir la regla CSS següent per a implementar el posicionament absolut:</p> + +<pre class="brush: css notranslate">.positioned { + position: absolute; + background: yellow; + top: 30px; + left: 30px; +}</pre> + +<p>Aquí hem donat al nostre paràgraf del mig un valor {{cssxref("position")}} d'<code>absolute</code>, i les mateixes propietats {{cssxref("top")}} i {{cssxref("left")}}, com abans. L'addició d'aquest codi, però, dona el resultat següent:</p> + +<div class="hidden"> +<h6 id="Absolute_positioning_example">Absolute positioning example</h6> + +<pre class="brush: html notranslate"><h1>Absolute positioning</h1> + +<p>I am a basic block level element.</p> +<p class="positioned">This is my absolutely positioned element.</p> +<p>I am a basic block level element.</p></pre> + +<pre class="brush: css notranslate">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: absolute; + background: yellow; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Absolute_positioning_example', '100%', 300) }}</p> + +<p>Això és molt diferent. L'element ha quedat totalment separat de la resta del disseny de la pàgina i s’hi ha col·locat a sobre en l’extrem superior. Els altres dos paràgrafs ara es disposen junts, com si el germà posicionat no existís. Les propietats {{cssxref("top")}} i {{cssxref("left")}} tenen un efecte diferent sobre elements amb posicionament absolut que sobre elements amb posicionament relatiu. En aquest cas, s'especifica la distància a la qual l'element s’ha de situar dels costats superior i esquerre de la pàgina. És possible canviar l'element pare que es converteix en aquest contenidor i ho veurem a la lliçó sobre <a href="/ca/docs/Learn/CSS/Disseny_CSS/Posicionament">posicionament</a>.</p> + +<h3 id="Posicionament_fix_fixed_positioning">Posicionament fix (fixed positioning)</h3> + +<p>El posicionament fix elimina el nostre element del flux de documents de la mateixa manera que el posicionament absolut. Tanmateix, en lloc d'aplicar els desplaçaments des del contenidor, s'apliquen des de la finestra gràfica. Com que l'element es manté fix en relació amb la finestra gràfica, podem crear efectes com un menú que es manté fix a mesura que la pàgina es desplaça per sota.</p> + +<p>Per a aquest exemple, el nostre HTML inclou tres paràgrafs de text, per tal que puguem fer que la pàgina es desplaci, i un quadre al qual donarem <code>position: fixed</code>.</p> + +<pre class="brush: html notranslate"><h1>Fixed positioning</h1> + +<div class="positioned">Fixed</div> + +<p>Paragraph 1.</p> +<p>Paragraph 2.</p> +<p>Paragraph 3.</p> +</pre> + +<div id="Fixed_1"> +<div class="hidden"> +<h6 id="Fixed_positioning_example">Fixed positioning example</h6> + +<pre class="brush: html notranslate"><h1>Fixed positioning</h1> + +<div class="positioned">Fixed</div> + +<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + +<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +</pre> + +<pre class="brush: css notranslate">body { + width: 500px; + margin: 0 auto; +} + +.positioned { + background: rgba(255,84,104,.3); + border: 2px solid rgb(255,84,104); + padding: 10px; + margin: 10px; + border-radius: 5px; +}</pre> +</div> + +<pre class="brush: css notranslate">.positioned { + position: fixed; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Fixed_1', '100%', 200) }}</p> + +<h3 id="Posicionament_enganxós_sticky_positioning">Posicionament enganxós (sticky positioning)</h3> + +<p>El posicionament enganxós és el mètode de posicionament final que tenim a la nostra disposició. Combina el posicionament estàtic per defecte amb el posicionament fix. Quan un element té <code>position: sticky</code>, es desplaçarà en flux normal fins que arribi al desplaçament sobre la finestra de visualització del navegador que definit. En aquest moment es queda "enganxat" com si tingués <code>position: fixed</code> aplicat.</p> + +<div id="Sticky_1"> +<div class="hidden"> +<h6 id="Sticky_positioning_example">Sticky positioning example</h6> + +<pre class="brush: html notranslate"><h1>Sticky positioning</h1> + +<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + +<div class="positioned">Sticky</div> + +<p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + +<p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> </pre> + +<pre class="brush: css notranslate">body { + width: 500px; + margin: 0 auto; +} + +.positioned { + background: rgba(255,84,104,.3); + border: 2px solid rgb(255,84,104); + padding: 10px; + margin: 10px; + border-radius: 5px; +}</pre> +</div> + +<pre class="brush: css notranslate">.positioned { + position: sticky; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Sticky_1', '100%', 200) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> per aprendre més sobre posicionament, aneu a l'article sobre <a href="/ca/docs/Learn/CSS/Disseny_CSS/Posicionament">posicionament</a>.</p> +</div> + +<h2 id="Taules_CSS">Taules CSS</h2> + +<p>Les taules HTML són perfectes per a mostrar dades tabulades, però fa molts anys, fins i tot abans que el CSS bàsic fos compatible de manera fiable entre els navegadors, els desenvolupadors web solien utilitzar taules per als dissenys de pàgines web senceres; col·locaven els encapçalaments, els peus de pàgina, les diferents columnes, etc., en files i columnes d’una taula. Això va funcionar en el moment, però presenta molts problemes: els dissenys de taules no són flexibles, l’etiquetatge és feixuc, són difícils de depurar, i són semànticament erronis (els usuaris de lectors de pantalla, per exemple, tenen problemes per navegar en dissenys de pàgina web amb taules).</p> + +<p>La forma en què es mostra una taula en una pàgina web quan utilitzeu el marcatge de taula es deu a un conjunt de propietats CSS que defineixen el disseny de la taula. Aquestes propietats es poden utilitzar per disposar elements que no són taules, un ús que de vegades es descriu com "utilitzar taules CSS".</p> + +<p>L'exemple següent mostra un d'aquests usos; L'ús de taules CSS per al disseny s'hauria de considerar un mètode heretat en aquest moment, per a aquelles situacions en què tingueu navegadors molt antics sense compatibilitat amb Flexbox o Grid.</p> + +<p>Vegem-ne un exemple. Primer, un marcatge senzill que crea un formulari HTML. Cada element d'entrada té una etiqueta i també hem inclòs un text dins d'un paràgraf. Cada parell label/input està envoltat d'un element {{htmlelement("div")}}, amb finalitats de disseny.</p> + +<pre class="brush: html notranslate"><form> + <p>First of all, tell us your name and age.</p> + <div> + <label for="fname">First name:</label> + <input type="text" id="fname"> + </div> + <div> + <label for="lname">Last name:</label> + <input type="text" id="lname"> + </div> + <div> + <label for="age">Age:</label> + <input type="text" id="age"> + </div> +</form></pre> + +<p>Ara afegim el CSS al nostre exemple. La major part del CSS és bastant comú, excepte els usos de la propietat {{cssxref("display")}}. A l’element {{htmlelement("form")}} i als elements {{htmlelement("div")}}, {{htmlelement("label")}} i {{htmlelement("input")}} se'ls hi ha dit que es mostrin com una taula, files de la taula i cel·les de la taula, respectivament; bàsicament actuaran com un marcatge de taula HTML que alinea les etiquetes de text i les entrades de manera predeterminada. Tot el que hem de fer és afegir una mica de mida, marges, etc. perquè tot es vegi una mica més agradable, i ja haurem acabat.</p> + +<p>Observa que s’ha assignat al paràgraf de descripció (<em>caption</em>) la declaració <code>display: table-caption;</code>, que fa que aquest paràgraf actuï com un títol de taula ({{htmlelement("caption")}}), i també <code>caption-side: bottom;</code>, que indica que el títol es posa a la part inferior de la taula amb finalitats d'estil, encara que va abans de les entrades de la taula en l’ordre del codi d’origen. Això permet una mica de flexibilitat.</p> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +form { + display: table; + margin: 0 auto; +} + +form div { + display: table-row; +} + +form label, form input { + display: table-cell; + margin-bottom: 10px; +} + +form label { + width: 200px; + padding-right: 5%; + text-align: right; +} + +form input { + width: 300px; +} + +form p { + display: table-caption; + caption-side: bottom; + width: 300px; + color: #999; + font-style: italic; +}</pre> + +<p><span id="result_box" lang="ca">Això ens dona el resultat següent:</span></p> + +<p>{{ EmbedLiveSample('CSS_tables', '100%', '170') }}</p> + +<p>També pots veure aquest exemple en viu en el fitxer <a href="https://mdn.github.io/learning-area/css/styling-boxes/box-model-recap/css-tables-example.html">css-tables-example.html</a> (i també consultar-ne el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-boxes/box-model-recap/css-tables-example.html">codi d’origen</a>).</p> + +<h2 id="Disseny_multicolumna">Disseny multicolumna</h2> + +<p>El mòdul de disseny de múltiples columnes ens proporciona una manera de distribuir contingut en columnes, de manera similar a com flueix el text en un diari. Tot i que la lectura de columnes cap amunt i cap avall és menys útil en un context web, ja que no voleu obligar els usuaris a desplaçar-se cap amunt i cap avall, la disposició del contingut en columnes pot ser una tècnica útil.</p> + +<p>Per convertir un bloc en un contenidor multicolumna, utilitzem la propietat {{cssxref("column-count")}}, que indica al navegador quantes columnes voldríem tenir o bé {{cssxref("column-width" )}}, que indica al navegador que ompli el contenidor amb tantes columnes d'almenys aquesta amplada.</p> + +<p>A l'exemple següent, comencem amb un bloc d'HTML dins d'un element <code><div></code> que conté una classe de <code>container</code>.</p> + +<pre class="brush: html notranslate"><div class="container"> + <h1>Multi-column layout</h1> + + <p>Paragraph 1.</p> + <p>Paragraph 2.</p> + +</div></pre> + +<p>Utilitzem una <code>column-width</code> (amplada de columna) de 200 píxels en aquest contenidor, cosa que provoca que el navegador creï tantes columnes de 200 píxels com càpiguen al contenidor i, a continuació, comparteixi l’espai restant entre les columnes creades.</p> + +<div id="Multicol_1"> +<div class="hidden"> +<h6 id="Multicol_example">Multicol example</h6> + +<pre class="brush: html notranslate"> <div class="container"> + <h1>Multi-column Layout</h1> + + <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla luctus aliquam dolor, eu lacinia lorem placerat vulputate. Duis felis orci, pulvinar id metus ut, rutrum luctus orci. Cras porttitor imperdiet nunc, at ultricies tellus laoreet sit amet. Sed auctor cursus massa at porta. Integer ligula ipsum, tristique sit amet orci vel, viverra egestas ligula. Curabitur vehicula tellus neque, ac ornare ex malesuada et. In vitae convallis lacus. Aliquam erat volutpat. Suspendisse ac imperdiet turpis. Aenean finibus sollicitudin eros pharetra congue. Duis ornare egestas augue ut luctus. Proin blandit quam nec lacus varius commodo et a urna. Ut id ornare felis, eget fermentum sapien.</p> + + + <p>Nam vulputate diam nec tempor bibendum. Donec luctus augue eget malesuada ultrices. Phasellus turpis est, posuere sit amet dapibus ut, facilisis sed est. Nam id risus quis ante semper consectetur eget aliquam lorem. Vivamus tristique elit dolor, sed pretium metus suscipit vel. Mauris ultricies lectus sed lobortis finibus. Vivamus eu urna eget velit cursus viverra quis vestibulum sem. Aliquam tincidunt eget purus in interdum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> + + </div> + </pre> + +<pre class="brush: css notranslate">body { max-width: 800px; margin: 0 auto; } </pre> +</div> + +<pre class="brush: css notranslate"> .container { + column-width: 200px; + }</pre> +</div> + +<p>{{ EmbedLiveSample('Multicol_1', '100%', 200) }}</p> + +<h2 id="Resum">Resum</h2> + +<p>Aquest article ha proporcionat un breu resum de totes les tecnologies de disseny que has de conèixer. Continua llegint per a obtenir més informació sobre cadascuna d’aquestes tecnologies!</p> + +<p>{{NextMenu("Learn/CSS/CSS_layout/Floats", "Learn/CSS/CSS_layout")}}</p> diff --git a/files/ca/learn/css/disseny_css/posicionament/index.html b/files/ca/learn/css/disseny_css/posicionament/index.html new file mode 100644 index 0000000000..213293ff4e --- /dev/null +++ b/files/ca/learn/css/disseny_css/posicionament/index.html @@ -0,0 +1,467 @@ +--- +title: Posicionament +slug: Learn/CSS/Disseny_CSS/Posicionament +tags: + - Article + - Beginner + - CSS + - CodingScripting + - Guide + - Layout + - Positioning + - absolute + - fixed + - relative +translation_of: Learn/CSS/CSS_layout/Positioning +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/CSS_layout/Floats", "Learn/CSS/CSS_layout/Practical_positioning_examples", "Learn/CSS/CSS_layout")}}</div> + +<p class="summary">El posicionament permet treure elements del flux normal de disseny del document, i fer que es comportin de manera diferent, per exemple, asseient-se un damunt de l'altre o mantenint-se sempre al mateix lloc dins de la finestra de visualització del navegador. Aquest article explica els diferents valors de {{cssxref("position")}}, i com utilitzar-los.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Conceptes bàsics d'HTML</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a>), <span id="result_box" lang="ca"><span>i una idea de com funciona CSS</span></span> (estudi <a href="https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com funciona el posicionament CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Flux_del_document"><span id="result_box" lang="ca"><span>Flux del document</span></span></h2> + +<p>El posicionament és un tema bastant complex, per tant, abans de submergir-nos en el codi, anem a revisar i ampliar una mica de teoria de disseny per donar-nos una idea de com funciona això.</p> + +<p>En primer lloc, les caixes d'elements individuals es defineixen tenint en compte el contingut dels elements, afegint-hi qualsevol farciment, vora i marge al voltant d'ells - és a dir, aquell <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS/Box_model">model de caixa</a> nou, que vam mirar abans. Per defecte, el contingut d'un element de nivell de bloc és del 100% de l'ample de l'element pare i tan alt com el seu contingut. Els elements en línia són tan alts i tan amples com el seu contingut. No es pot definir l'ample o alçada en elements en línia - simplement s'assenten dins del contingut dels elements de nivell de bloc. Si es vol controlar la mida d'un element en línia d'aquesta manera, s'ha d'establir perquè es comporti com un element de nivell de bloc amb <code>display: block;</code>.</p> + +<p>Això explica els elements individuals, però què passa amb els elements que interactuen els uns amb els altres? El <strong>flux de disseny normal</strong> (esmentat en l'article de presentació de disseny) és el sistema mitjançant el qual es col·loquen els elements dins de la finestra de visualització del navegador. De manera predeterminada, els elements de nivell de bloc es distribueixen verticalment a la finestra de visualització: cadascun d'ells apareixerà en una nova línia,per sota d l'última i se separaran per qualsevol marge que s'estableixi en ells.</p> + +<p>Els elements en línia es comporten de manera diferent - no apareixen en noves línies; en canvi, s'assenten en la mateixa línia que els altres i amb qualsevol contingut de text adjacent (o embolicat), sempre que hi hagi espai perquè ho facin dins de l'amplada de l'element a nivell de bloc pare. Si no hi ha espai, el text desbordat o els elements es desplacen cap a una nova línia.</p> + +<p>Si dos elements adjacents tenen un marge establert i els dos marges es toquen, el més gran dels dos es queda i el més petit desapareix - això es diu <a href="/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing">col.lapsació del marge</a>, i també ho hem conegut abans.</p> + +<p>Vegem un exemple senzill que expliqui tot això:</p> + +<pre class="brush: html"><h1>Basic document flow</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p>By default we span 100% of the width of our parent element, and we are as tall as our child content. Our total width and height is our content + padding + border width/height.</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements will <span>wrap onto a new line if possible (like this one containing text)</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +}</pre> + +<p>{{ EmbedLiveSample('Document_flow', '100%', 500) }}</p> + +<p>Revisarem aquest exemple diverses vegades al llarg d'aquest article, ja que mostrarem els efectes de les diferents opcions de posicionament disponibles per a nosaltres.</p> + +<p>Ens agradaria que seguíssiu els exercicis en el vostre ordinador, si és possible - agafeu una còpia de <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/0_basic-flow.html">0_basic-flow.html</a></code> del nostre repositori de Github (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/0_basic-flow.html">codi font aquí</a>) i utilitzeu-lo com a punt de partida.</p> + +<h2 id="Introducció_al_posicionament">Introducció al posicionament</h2> + +<p>Tota la idea del posicionament és permetre'ns anul·lar el comportament bàsic del flux de documents descrit anteriorment, per produir efectes interessants. Què passa si voleu canviar lleugerament la posició d'algunes caixes dins d'un disseny des de la seva posició de flux de disseny per defecte, per donar-li un toc lleugerament peculiar i molest? El posicionament és la vostra eina. O si voleu crear un element d'interfície d'usuari que floti a la part superior d'altres parts de la pàgina i/o sempre es trobi al mateix lloc dins de la finestra del navegador, sense importar quant es desplaça la pàgina? El posicionament fa possible aquest treball de disseny.</p> + +<p>Hi ha una sèrie de diferents tipus de posicionament que podeu implementar en elements HTML. Per fer un tipus específic de posicionament actiu en un element, utilitzem la propietat {{cssxref("position")}}.</p> + +<h3 id="Posicionament_estàtic_(Static)"><span id="result_box" lang="ca"><span>Posicionament estàtic</span></span> (Static)</h3> + +<p>El posicionament estàtic és el valor predeterminat que cada element obté - significa "posar l'element en la seva posició normal en el flux del disseny del document - res especial per veure aquí".</p> + +<p>Per demostrar això i preparar el vostre exemple per a futures seccions, primer afegiu una <code>class</code> de <code>positioned</code> al segon {{htmlelement("p")}} en l'HTML:</p> + +<pre class="brush: html"><p class="positioned"> ... </p></pre> + +<p><span id="result_box" lang="ca"><span>Ara afegiu la següent regla a la part inferior del vostre CSS:</span></span></p> + +<pre class="brush: css">.positioned { + position: static; + background: yellow; +}</pre> + +<p>Si ara deseu i actualitzeu, no veureu cap diferència en absolut, excepte el color de fons actualitzat del segon paràgraf. Està bé - com hem dit abans, el posicionament estàtic és el comportament predeterminat!</p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/1_static-positioning.html">1_static-positioning.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/1_static-positioning.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Posicionament_relatiu_(Relative)">Posicionament relatiu (Relative)</h3> + +<p>El posicionament relatiu és el primer tipus de posició que veurem. Això és molt semblant al posicionament estàtic, tret que una vegada que l'element posicionat ha tingut el seu lloc en el flux de disseny normal, podeu modificar la seva posició final, incloent-hi la superposició d'altres elements a la pàgina. Seguiu i actualitzeu la declaració de posició del vostre codi:</p> + +<pre class="brush: css">position: relative;</pre> + +<p>Si deseu i actualitzeu en aquesta etapa, no veureu cap canvi en el resultat en absolut, així, com modifiqem la posició de l'element? Heu d'utilitzar les propietats {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("left")}} i {{cssxref("right")}} , Que explicarem en la següent secció.</p> + +<h3 id="Introduir_top_bottom_left_i_right">Introduir top, bottom, left i right</h3> + +<p>{{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("left")}}, and {{cssxref("right")}} s'utilitzen juntament amb {{cssxref("position")}} per especificar exactament a on moure l'element posicionat. Per provar-ho, afegiu les següents declaracions a la regla <code>.positioned</code> al vostre CSS:</p> + +<pre>top: 30px; +left: 30px;</pre> + +<div class="note"> +<p><strong>Nota</strong>:<span id="ouHighlight__0_2TO0_2"> Els</span><span id="noHighlight_0.1974495154842031"> </span><span id="ouHighlight__4_9TO4_9">valors</span><span id="noHighlight_0.85891676862169"> </span><span class="highlighted" id="ouHighlight__14_18TO11_20">d'aquestes</span><span id="noHighlight_0.11330426706729768"> </span><span id="ouHighlight__20_29TO22_31">propietats</span><span id="noHighlight_0.18392821958485306"> </span><span id="ouHighlight__31_33TO33_35">pot</span><span id="noHighlight_0.9676838165776446"> </span><span id="ouHighlight__35_38TO37_43">prendre</span><span id="noHighlight_0.037568817284082345"> </span><span id="ouHighlight__40_42TO45_49">totes</span><span id="noHighlight_0.9017348693534137"> les </span><span id="ouHighlight__44_48TO55_61">unitats</span><span id="noHighlight_0.831725614209524"> que </span><span id="ouHighlight__66_71TO67_77">s'esperaria</span><span id="noHighlight_0.2590131286870444"> </span><span id="ouHighlight__56_64TO79_88">lògicament</span> - píxels, mm, rems,%, etc.</p> +</div> + +<p>Si ara deseu i actualitzeu, obtindreu un resultat com aquest:</p> + +<div class="hidden"> +<pre class="brush: html"><h1>Relative positioning</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p class="positioned">By default we span 100% of the width of our parent element, and we are as tall as our child content. Our total width and height is our content + padding + border width/height.</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements <span>wrap onto a new line if possible — like this one containing text</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: relative; + background: yellow; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Introducing_top_bottom_left_and_right', '100%', 500) }}</p> + +<p>Genial, eh? D'acord, aixó es probablement el que no esperaves: per què s'ha mogut a la part inferior i la dreta si s'especificat a dalt i a l'esquerra? Pot sonar Il·lògic inicialment, però aquesta és la forma en què funciona el posicionament relatiu: cal pensar en una força invisible que empeny el costat de la caixa posicionada, movent-la en la direcció oposada. Així, per exemple, si especifiqueu un <code>top: 30px;</code>, una força empeny la part superior de la caixa, fent que es mogui cap avall en 30px.</p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/2_relative-positioning.html">2_relative-positioning.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/2_relative-positioning.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Posicionament_absolut_(Absolute)"><span id="result_box" lang="ca"><span>Posicionament absolut (</span></span>Absolute)</h3> + +<p>El posicionament absolut porta resultats molt diferents. Intenteu canviar la declaració de posició del vostre de la manera següent:</p> + +<pre>position: absolute;</pre> + +<p>Si ara deseu i actualitzeu, obtindreu un resultat com aquest:</p> + +<div class="hidden"> +<pre class="brush: html"><h1>Absolute positioning</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p class="positioned">Now I'm absolutely positioned, I'm not playing by the rules any more!</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements <span>wrap onto a new line if possible — like this one containing text</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: absolute; + background: yellow; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Absolute_positioning', '100%', 420) }}</p> + +<p>En primer lloc, tingueu en compte que el buit on l'element posicionat hauria d'estar en el flux del document ja no hi és - el primer i el tercer element s'han tancat junts, com que ja no existeix!. Bé, en certa manera, això és cert. Un element absolutament posicionat ja no existeix en el flux de disseny normal del document. En lloc d'això, s'asseu a la seva pròpia capa separada de tota la resta. Això és molt útil - vol dir que podem crear funcions d'interfície d'usuari aïllades que no interfereixin amb la posició d'altres elements de la pàgina - per exemple, les caixes d'informació emergents i els menús de control, els panells de rollover, les funcions d'interfície d'usuari que es poden arrossegar i deixar anar a qualsevol lloc en la pàgina, i així successivament.</p> + +<p>En segon lloc, observeu que la posició de l'element ha canviat - això es deu al fet que {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("left")}} i {{cssxref("right")}} es comporten d'una manera diferent amb el posicionament absolut. En lloc d'especificar la direcció en què l'element s'ha de moure, especifiquen la distància que ha de tenir l'element en cada costat dels elements que contingui. Així que, en aquest cas, estem dient que l'element absolutament posicionat hauria de situar-se 30px des de la part superior del "element que conté" i 30px des de l'esquerra.</p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu utilitzar {{cssxref("top")}}, {{cssxref("bottom")}}, {{cssxref("left")}} i {{cssxref("right")}} per canviar la mida dels elements si és necessari. Intenteu establir <code>top: 0; bottom: 0; left: 0; right: 0;</code> and <code>margin: 0;</code> en els elements posicionats i veureu què passa! Torneu a posar-ho de nou després...</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Sí, els marges encara afecten els elements posicionats. Tanmateix, el col·lapse de marges no existeix.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/3_absolute-positioning.html">3_absolute-positioning.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/3_absolute-positioning.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Contextos_de_posicionament"><span id="result_box" lang="ca"><span>Contextos de posicionament</span></span></h3> + +<p>Quin element és el "element que conté" un element absolutament posicionat? Per defecte, és l'element {{htmlelement("html")}} - l'element posicionat està niat dins del {{htmlelement("body")}} en la font HTML, però en el disseny final, es troba a 30px de distància des de la part superior i esquerra de la vora de la pàgina, que és l'element {{htmlelement("html")}}. Això s'anomena més exactament com a <strong>context de posicionament</strong> de l'element.</p> + +<p>Podem canviar el <strong>context de posicionament</strong> - quin element posiciona l'element absolutament posicionat en relació a. Això es fa establint el posicionament en un dels altres avantpassats del element - un dels elements que està niat a l'interior (no es pot col·locar en relació amb un element que no està niat a l'interior). Per demostrar-ho, afegiu la següent declaració a la regla del cos:</p> + +<pre>position: relative;</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Això hauria de donar el següent resultat:</span></span></p> + +<div class="hidden"> +<pre class="brush: html"><h1>Positioning context</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p class="positioned">Now I'm absolutely positioned relative to the <code>&lt;body&gt;</code> element, not the <code>&lt;html&gt;</code> element!</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements <span>wrap onto a new line if possible — like this one containing text</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; + position: relative; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: absolute; + background: yellow; + top: 30px; + left: 30px; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Positioning_contexts', '100%', 420) }}</p> + +<p>L'element posicionat ara es troba en relació amb l'element {{htmlelement("body")}}.</p> + +<div class="note"> +<p><strong>Nota:</strong> Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/4_positioning-context.html">4_positioning-context.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/4_positioning-context.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Introducció_a_z-index">Introducció a z-index</h3> + +<p>Tot aquest posicionament absolut és una bona diversió, però hi ha una altra cosa que encara no hem considerat - quan els elements comencen a superposar-se, què determina que uns elements apareguin sobre quins altres elements? En l'exemple que hem vist fins ara, només tenim un element posicionat en el context de posicionament, i apareix a la part superior, ja que els elements posicionats guanyen elements no posicionats. Què passa quan tenim més d'un?</p> + +<p>Intenteu afegir el següent, al vostre CSS, perquè el primer paràgraf estigui absolutament posicionat també:</p> + +<pre>p:nth-of-type(1) { + position: absolute; + background: lime; + top: 10px; + right: 30px; +}</pre> + +<p>En aquest punt, veureu el primer paràgraf de color verd, desplaçat del flux del document i colocat una mica per sobre d'on era originalment. També s'apil·la a sota del paràgraf original .positioned, on els dos es superposen. Això és degut a que el paràgraf <code>.positioned</code> és el segon paràgraf de l'ordre d'origen, i els elements posicionats més endavant en l'ordre d'origen guanyen sobre els elements posicionats anteriorment en l'ordre d'origen.</p> + +<p>Es pot canviar l'ordre d'apilament? Sí, podeu fer-ho, utilitzant la propietat {{cssxref("z-index")}}. "z-index" és una referència a l'eix z. Recordareu que en punts anteriors, en la font, parlàvem de la utilització en pàgines web de coordenades horitzontals (eixos x) i verticals (eixos-y) per tal de determinar el posicionament de coses com ara imatges de fons i desplaçaments d'ombra. (0,0) es troba a la part superior esquerra de la pàgina (o element), i els eixos x i y es desplaçan cap a la dreta i avall de la pàgina (per als idiomes d'esquerra a dreta, de totes maneres).</p> + +<p>Les pàgines web també tenen un eix z - una línia imaginària que s'estén des de la superfície de la pantalla, cap a la nostra cara (o el que vulgueu tenir davant de la pantalla). Els valors de {{cssxref("z-index")}} afecten on els elements posicionats se situen en aquest eix; els valors positius els mouen més amunt per la pila, i els valors negatius els mouen més avall a la pila. De manera predeterminada, els elements posicionats tenen un z-index d'auto, que és efectivament 0.</p> + +<p>Per canviar l'ordre d'apilament, proveu d'afegir la següent declaració a la vostra regla <code>p:nth-of-type(1)</code>:</p> + +<pre>z-index: 1;</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Ara hauríeu de veure l'exemple acabat:</span></span></p> + +<div class="hidden"> +<pre class="brush: html"><h1>z-index</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p class="positioned">Now I'm absolutely positioned relative to the <code>&lt;body&gt;</code> element, not the <code>&lt;html&gt;</code> element!</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements <span>wrap onto a new line if possible — like this one containing text</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + margin: 0 auto; + position: relative; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +.positioned { + position: absolute; + background: yellow; + top: 30px; + left: 30px; +} + +p:nth-of-type(1) { + position: absolute; + background: lime; + top: 10px; + right: 30px; + z-index: 1; +} +</pre> +</div> + +<p>{{ EmbedLiveSample('Introducing_z-index', '100%', 400) }}</p> + +<p>Tingueu en compte que <code>z-index</code> només accepta valors d'índex, sense unitat; No podeu especificar que desitgeu que un element tingui 23 píxels a dalt de l'eix Z - no funciona així. Els valors més alts van per sobre dels valors inferiors, i depèn de vosaltres quins valors utilitzar. L'ús de 2 i 3 donaria el mateix efecte que 300 i 40000.</p> + +<p>Tingueu en compte que aquí només hem tractat un únic context de posicionament. Si tinguéssiu dos conjunts separats d'elements posicionats a la mateixa pàgina, i volguéssiu que es superposessin i que l'ordre d'apilament funcionés d'una manera específica, les coses es complicarien. Afortunadament, molt poques vegades trobareu tal complexitat amb z-index. Si voleu llegir amb molt més detall sobre com funciona exactament z-index, consulteu la <a href="https://www.w3.org/community/webed/wiki/CSS_absolute_and_fixed_positioning#The_third_dimension.E2.80.94z-index">Web Standards Curriculum z-index writeup</a>. En aquest article us hem proporcionat tot el que necessiteu saber en aquesta etapa del vostre aprenentatge.</p> + +<div class="note"> +<p><strong>Note</strong>: Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/5_z-index.html">5_z-index.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/5_z-index.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Posicionament_Fixa_(Fixed)"><span id="result_box" lang="ca"><span>Posicionament Fixa (</span></span>Fixed)</h3> + +<p>Hi ha un altre tipus de posicionament a cobrir - fixed. Això funciona exactament igual que el posicionament absolut, amb una diferència clau - mentre que el posicionament absolut fixa un element en el lloc en relació amb l'element {{htmlelement("html")}} o seu més proper avantpassat posicionat, el posicionament fix fixa un element en el lloc en relació a la finestra de visualització del navegador. Això vol dir que podeu crear elements útils de la interfície d'usuari que es fixen en el lloc, com ara menús de navegació persistents.</p> + +<p>Fem un exemple senzill per mostrar el que volem dir. Abans de res, elimineu les regles existents <code>p:nth-of-type(1)</code> i <code>.positioned</code> del vostre CSS.</p> + +<p>Ara, actualitzeu la regla del cos per eliminar la declaració <code>position: relative;</code> i afegiu una alçada fixa, com aixó:</p> + +<pre>body { + width: 500px; + height: 1400px; + margin: 0 auto; +}</pre> + +<p>Ara donarem a l'element {{htmlelement("h1")}} <code>position: fixed;</code>, i aconseguirem que s'assegui en el centre superior de la finestra de visualització. Afegiu la regla següent al vostre CSS:</p> + +<pre>h1 { + position: fixed; + top: 0; + width: 500px; + margin: 0 auto; + background: white; + padding: 10px; +}</pre> + +<p>El <code>top: 0;</code> és necesari per fer que s'adhereixi a la part superior de la pantalla; Donem a l'encapçalament el mateix ample que la columna de contingut i utilitzarem el fidel antic <code>margin: 0 auto;</code> com a truc per centrar-ho. A continuació, li donem un fons blanc i algun farcit, de manera que el contingut no estigui visible per sota d'ell.</p> + +<p>Si deseu i actualitzeu ara, veureu un petit efecte divertit pel qual l'encapçalament es manté fix, i el contingut apareix en desplaçar-se cap amunt i desaparèixer per sota d'ell. Però podríem millorar més, això - de moment, alguns dels continguts començan per sota de l'encapçalament, perquè el encapçalament posicionat ja no apareix en el flux del document, de manera que la resta del contingut es mou cap amunt. Necessitem moure-ho tot cap avall una mica; podem fer-ho establint un marge superior al primer paràgraf. Afegiu-ho ara:</p> + +<pre>p:nth-of-type(1) { + margin-top: 60px; +}</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Ara hauríeu de veure l'exemple acabat:</span></span></p> + +<div class="hidden"> +<pre class="brush: html"><h1>Fixed positioning</h1> + +<p>I am a basic block level element. My adjacent block level elements sit on new lines below me.</p> + +<p class="positioned">I'm not positioned any more...</p> + +<p>We are separated by our margins. Because of margin collapsing, we are separated by the width of one of our margins, not both.</p> + +<p>inline elements <span>like this one</span> and <span>this one</span> sit on the same line as one another, and adjacent text nodes, if there is space on the same line. Overflowing inline elements <span>wrap onto a new line if possible — like this one containing text</span>, or just go on to a new line if not, much like this image will do: <img src="https://mdn.mozillademos.org/files/13360/long.jpg"></p></pre> + +<pre class="brush: css">body { + width: 500px; + height: 1400px; + margin: 0 auto; +} + +p { + background: aqua; + border: 3px solid blue; + padding: 10px; + margin: 10px; +} + +span { + background: red; + border: 1px solid black; +} + +h1 { + position: fixed; + top: 0px; + width: 500px; + margin: 0 auto; + background: white; + padding: 10px; +} + +p:nth-of-type(1) { + margin-top: 60px; +}</pre> + +<p> </p> +</div> + +<p>{{ EmbedLiveSample('Fixed_positioning', '100%', 400) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: Podeu veure l'exemple en aquest moment en directe a <code><a href="http://mdn.github.io/learning-area/css/css-layout/positioning/6_fixed-positioning.html">6_fixed-positioning.html</a></code> (<a href="https://github.com/mdn/learning-area/blob/master/css/css-layout/positioning/6_fixed-positioning.html">vegeu el codi font</a>).</p> +</div> + +<h3 id="Experimental_posició_adherent_(sticky)">Experimental: posició adherent (sticky)</h3> + +<p>Hi ha un nou valor de posicionament disponible anomenat <code>position: sticky</code>, el suport del mateix no està molt estès. Aquest és bàsicament un híbrid entre una posició relativa i una fixa, que permet que un element posicionat actuï com si estigués relativament posicionat fins que es desplaci a un determinat llindar (per ex., 10px des de la part superior de la finestra de visualització), i després es torna fix. Vegeu la nostra <a href="/en-US/docs/Web/CSS/position#Sticky_positioning">entrada de referéncia de position: sticky</a> per més detalls i un exemple.</p> + +<h2 id="Resum">Resum</h2> + +<p>Estic segur que us heu divertir jugant amb el posicionament bàsic - és una de les eines essencials que està darrera en le creació de complexos dissenys CSS i funcions d'interfície d'usuari. Tenint en compte això, en el proper article tindrem encara més diversió amb el posicionament, allà anirem un pas més enllà i començarem a construir algunes coses útils del món real amb ell.</p> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Floats", "Learn/CSS/CSS_layout/Practical_positioning_examples", "Learn/CSS/CSS_layout")}}</p> diff --git a/files/ca/learn/css/disseny_css/suport_en_navegadors_antics/index.html b/files/ca/learn/css/disseny_css/suport_en_navegadors_antics/index.html new file mode 100644 index 0000000000..5a689b6437 --- /dev/null +++ b/files/ca/learn/css/disseny_css/suport_en_navegadors_antics/index.html @@ -0,0 +1,237 @@ +--- +title: Suport en navegadors antics +slug: Learn/CSS/Disseny_CSS/Suport_en_navegadors_antics +translation_of: Learn/CSS/CSS_layout/Supporting_Older_Browsers +--- +<div>{{LearnSidebar}}</div> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Legacy_Layout_methods", "Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension", "Learn/CSS/CSS_layout")}}</p> + +<p class="summary">En aquest mòdul et recomanem que utilitzis els mètodes Flexbox i Grid com a eines principals per als teus dissenys. Tot i això, hi haurà visitants del teu lloc web que utilitzin navegadors més antics o navegadors que no admetin els mètodes que has utilitzat. Això sempre serà així a la xarxa: a mesura que es desenvolupen funcions noves, els diferents navegadors prioritzen coses diferents. Aquest article explica com utilitzar tècniques web modernes sense perjudicar els usuaris que empren una tecnologia més antiga.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Els conceptes bàsics d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>), i nocions de com funciona el CSS (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a> i <a href="/ca/docs/Learn/CSS/Building_blocks">Aplicar estil a les caixes</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre com proporcionar assistència per als dissenys en navegadors antics que potser no són compatibles amb les funcions que vols utilitzar.</td> + </tr> + </tbody> +</table> + +<h2 id="El_panorama_de_compatibilitat_dels_navegadors_per_al_teu_lloc_web">El panorama de compatibilitat dels navegadors per al teu lloc web?</h2> + +<p>Cada lloc web és diferent en termes de públic objectiu. Abans de decidir l’enfocament que cal adoptar, esbrina el nombre de visitants que accedeixen al teu lloc web amb navegadors més antics. Això és senzill si ja tens un lloc web que simplement modifiques o reemplaces, perquè probablement tinguis analítiques que t'indiquin la tecnologia que utilitzen les persones que hi accedeixen. Si no tens analítiques o es tracta un lloc web totalment nou, hi ha llocs com ara <a href="http://gs.statcounter.com/">Statcounter</a> que poden proporcionar estadístiques filtrades segons la ubicació.</p> + +<p>També has de considerar el tipus de dispositius i la manera com la gent utilitza el teu lloc web; per exemple, potser esperes un nombre de dispositius mòbils superior a la mitjana. Sempre s’ha de tenir en compte l’accessibilitat i les persones que utilitzen tecnologia d’assistència, però per a alguns llocs pot ser encara més crític. Segons experiència pròpia, els desenvolupadors sovint es preocupen massa per l’experiència de l’1% d’usuaris en una versió antiga d’Internet Explorer, i no consideren del tot el nombre molt més gran d'usuaris que tenen necessitats d’accessibilitat especials.</p> + +<h2 id="La_compatibilitat_de_les_funcions_que_empres">La compatibilitat de les funcions que empres</h2> + +<p>Un cop coneixes els navegadors que accedeixen al teu lloc web, pots valorar qualsevol tecnologia que vulguis utilitzar segons la compatibilitat que presenten i la facilitat amb què pots proporcionar una alternativa als visitants que no tenen aquesta tecnologia disponible. Intentem facilitar-te aquesta experiència proporcionant informació de compatibilitat dels navegadors en cadascuna de les pàgines que detallen una propietat CSS. Per exemple, consulta la pàgina de {{cssxref("grid-template-columns")}}. Al final d'aquesta pàgina hi ha una taula que mostra els navegadors principals juntament amb la versió que va començar a admetre aquesta propietat.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/16047/browser-table.png" style="height: 1178px; width: 2102px;"></p> + +<p>Una altra manera més popular d'esbrinar què és compatible amb una funció és el lloc web <a href="https://caniuse.com/">Can I Use</a>. Aquest lloc web enumera la majoria de funcions de la plataforma web amb informació sobre l'estat de compatibilitat del navegador. Pots veure les estadístiques d’ús per ubicació, fet que resulta útil si treballes en un lloc que té usuaris d'una àrea del món determinada. Fins i tot pots enllaçar el teu compte de Google Analytics per a obtenir anàlisis basades en les teves dades d’usuari.</p> + +<p>Entendre la tecnologia que tenen els teus usuaris i les compatibilitats de les funcions que potser vulguis fer servir et proporciona una bona base per a prendre totes les decisions i saber quina és la millor manera de donar suport a tots els teus usuaris.</p> + +<h2 id="Compatibilitat_no_significa_«veures_igual»">Compatibilitat no significa «veure's igual»</h2> + +<p>És possible que un lloc web no es vegi de la mateixa manera a tots els navegadors, perquè alguns dels teus usuaris accediran al lloc web des d’un dispositiu mòbil i d’altres des de l'ordinador de taula. De la mateixa manera, alguns dels teus usuaris tindran una versió antiga del navegador, i d'altres una de més nova. És possible que alguns dels teus usuaris n’escoltin el contingut amb un lector de pantalla o hagin fet zoom a la pàgina per a poder-la llegir. Donar suport a tothom significa servir una versió del contingut dissenyada estratègicament, de manera que es vegi genial en els navegadors moderns, però que encara puguin utilitzar a un nivell bàsic els usuaris de navegadors més antics.</p> + +<p>Un nivell bàsic de compatibilitat prové d’estructurar bé el contingut perquè el flux normal de la pàgina tingui sentit. Pot ser que un usuari amb un telèfon mòbil amb funcions molt limitades no obtingui gran part del teu CSS, però el contingut fluirà de manera que faciliti la lectura. Per tant, un document HTML ben estructurat hauria de ser sempre el punt de partida. <em>El teu contingut té sentit si suprimeixes el full d’estil?</em></p> + +<p>Una opció és deixar aquesta visió senzilla del lloc web com a alternativa per a les persones que utilitzen navegadors molt antics o limitats. Si tens un nombre reduït de persones que visiten el lloc amb aquests navegadors, és possible que no tingui sentit comercial dedicar temps a intentar donar-los una experiència similar a la gent que utilitza navegadors moderns. Seria millor dedicar temps a coses que facin més accessible el lloc web, perquè així dones servei a molts més usuaris. Hi ha un punt intermedi entre una pàgina HTML simple i tots aquests recursos, i el CSS ha permès que la creació d'aquestes alternatives sigui bastant senzilla.</p> + +<h2 id="La_creació_d’alternatives_demergència_amb_CSS">La creació d’alternatives d'emergència amb CSS</h2> + +<p>Les especificacions CSS contenen informació que explica què fa el navegador quan s'apliquen dos mètodes de disseny al mateix element. Això vol dir que hi ha una definició per a què passa si un element flotant, per exemple, també és un element de graella que utilitza disseny de graella CSS. Combina aquesta informació amb el fet que els navegadors ignoren el CSS que no entenen, i tens una manera de crear dissenys senzills amb les <a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">tècniques heretades</a> que ja hem explicat, que després se sobreescriuen amb el teu disseny de graella en els navegadors moderns que l’entenen.</p> + +<p>En l'exemple següent hem especificat que tres elements de flotació <code><div></code> es mostrin en fila. Qualsevol navegador que no admeti el <a href="/ca/docs/Learn/CSS/Disseny_CSS/Graelles">disseny de graella CSS</a> veurà la fila de caixes com un disseny amb el mètode de flotació. Un element de flotació que es converteix en un element de graella perd el comportament de flotació, i això significa que si convertim l'embolcall en un contenidor de graella, els elements de flotació es converteixen en elements de graella. Si el navegador admet el disseny de graella, mostrarà la pàgina en forma de graella; si no l’admet, ignorarà les propietats relacionades amb el disseny de graella i utilitzarà el disseny de flotació.</p> + +<div id="Example1"> +<pre class="brush: css">* {box-sizing: border-box;} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + max-width: 400px; + display: grid; + grid-template-columns: 1fr 1fr 1fr; +} + +.item { + float: left; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; +} +</pre> + +<pre class="brush: html"><div class="wrapper"> + <div class="item">Primer element</div> + <div class="item">Segon element</div> + <div class="item">Tercer element</div> +</div> +</pre> + +<p>{{ EmbedLiveSample('Example1', '100%', '200') }}</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: La propietat {{cssxref("clear")}} tampoc té cap efecte un cop l'element es converteix en un element de graella, de manera que pots tenir un composició amb un peu de pàgina esborrat, que es convertirà en un disseny de graella.</p> +</div> + +<h3 id="Mètodes_de_les_solucions_alternatives">Mètodes de les solucions alternatives</h3> + +<p>Hi ha diversos mètodes de disseny que es poden utilitzar de manera similar a aquest exemple de flotació. Pots triar el que tingui més sentit per al patró de disseny que has de crear.</p> + +<dl> + <dd><strong><code>Float</code></strong> i <code><strong><strong>clear</strong></strong></code></dd> + <dd>Com s'ha mostrat abans, les propietats <em>float</em> i <em>clear</em> deixen d'afectar el disseny si els elements que passen a ser de flotació o els esborrats es converteixen en elements flexibles o de graella.</dd> + <dt><code>display: inline-block</code></dt> + <dd>Aquest mètode es pot utilitzar per a crear dissenys de columnes si un element té <code>display: inline-block</code>, però si després es converteix en un element de disseny de tipus flexible o de graella, el comportament <code>inline-block</code> s'ignora.</dd> + <dt><code>display: table</code></dt> + <dd>El mètode per a crear taules CSS que es descriu en la <a href="/ca/docs/Learn/CSS/Disseny_CSS/Introduccio_disseny_CSS">introducció</a> d'aquests articles es pot utilitzar com a mètode de solució alternativa. Els elements que estiguin configurats en la taula CSS perdran aquest comportament si es converteixen en elements Flexbox o Grid. Però és important destacar que les caixes sense nom que s’han creat per a corregir l'estructura de la taula, no es creen.</dd> + <dt>Disseny en diverses columnes</dt> + <dd>Pots utilitzar <a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">multi-col</a> com a solució alternativa en certs dissenys; si el teu contenidor té definida alguna propietat <code>column-*</code> i es converteix en un contenidor amb comportament de graella, s'anul·la el comportament en columnes.</dd> + <dt>Flexbox com a solució alternativa a la graella</dt> + <dd><a href="/ca/docs/Learn/CSS/Disseny_CSS/Flexbox">Flexbox</a> té una compatibilitat de navegador més gran que Grid perquè ha rebut el suport d’Internet Explorer 10 i 11, tot i que et recomanem que comprovis la informació que trobaràs més endavant en aquest article sobre la compatibilitat força irregular i confusa de Flexbox en navegadors més antics. Si converteixes un contenidor flexible en un contenidor de graella, s'ignorarà qualsevol propietat <code>flex</code> aplicada als descendents.</dd> +</dl> + +<p>Observa que si fas servir el CSS d'aquesta manera pots proporcionar una experiència d'usuari decent per ajustar moltes compaginacions en navegadors antics. Afegim un disseny més senzill basat en tècniques més antigues i amb bona compatibilitat, i després utilitzem el CSS més recent per a crear el disseny que veurà més del 90% del públic. Hi ha casos, però, en què el codi alternatiu haurà d’incloure alguna cosa que els navegadors nous també interpretaran. Un bon exemple d’això és si afegim amplades percentuals als nostres elements de flotació per aconseguir que les columnes s’assemblin més a la visualització de graella i s’estirin per omplir el contenidor.</p> + +<p>En el disseny de flotació, el percentatge es calcula a partir del contenidor: el 33,333% és un terç de l'amplada del contenidor. Tanmateix, a la graella es calcula que el 33,333% es calcula a partir de l’àrea de la graella en què es troba l’element, de manera que es converteix en un terç de la mida que volem un cop introduït el disseny de graella.</p> + +<div id="Example2"> +<pre class="brush: css">* {box-sizing: border-box;} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + max-width: 400px; + display: grid; + grid-template-columns: 1fr 1fr 1fr; +} + +.item { + float: left; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; + width: 33.333%; +} +</pre> + +<pre class="brush: html"><div class="wrapper"> + <div class="item">Primer element</div> + <div class="item">Segon element</div> + <div class="item">Tercer element</div> +</div> +</pre> + +<p>{{ EmbedLiveSample('Example2', '100%', '200') }}</p> +</div> + +<p>Per resoldre aquest problema, hem de tenir una manera de detectar si la graella és compatible i, per tant, si anul·larà l'amplada. El CSS té una solució.</p> + +<h2 id="Consultar_les_propietats">Consultar les propietats</h2> + +<p>Consultar les propietats et permet provar si un navegador admet alguna funció CSS en concret. Això vol dir que pots escriure algun CSS per a navegadors que no admetin una característica determinada, i a continuació comprovar si el navegador és compatible i introduir el teu disseny.</p> + +<p>Si afegim una consulta de propietats en l’exemple anterior, podem utilitzar-la per a configurar les amplades dels nostres articles de manera automàtica (<code>auto</code>) si sabem que hi ha compatibilitat amb el disseny de graella.</p> + +<div id="Example3"> +<pre class="brush: css">* {box-sizing: border-box;} + +.wrapper { + background-color: rgb(79,185,227); + padding: 10px; + max-width: 400px; + display: grid; + grid-template-columns: 1fr 1fr 1fr; +} + +.item { + float: left; + border-radius: 5px; + background-color: rgb(207,232,220); + padding: 1em; + width: 33.333%; +} + +@supports (display: grid) { + .item { + width: auto; + } +} +</pre> + +<pre class="brush: html"><div class="wrapper"> + <div class="item">Primer element</div> + <div class="item">Segon element</div> + <div class="item">Tercer element</div> +</div> +</pre> + +<p>{{ EmbedLiveSample('Example3', '100%', '200') }}</p> +</div> + +<p>La compatibilitat per a la consulta de propietats és molt bona en tots els navegadors moderns, però cal tenir en compte que són els navegadors que no admeten la graella CSS els que tampoc no admeten la consulta de propietats. Això significa que per a aquells navegadors funcionarà un enfocament com el que es detalla més amunt. El que fem és escriure primer el nostre CSS anterior, sense fer cap consulta de propietats. Els navegadors que no admeten la graella i no admeten la consulta de propietats faran servir la informació de disseny que poden comprendre i ignoraran completament la resta. Els navegadors que admeten la consulta de propietats també admeten la graella, i per tant executaran el codi de graella i el codi de la consulta de propietats.</p> + +<p>L'especificació per a la consulta de propietats també inclou la possibilitat de comprovar si un navegador no admet una propietat; això només és útil si el navegador admet consultes de propietats. En el futur tindrà sentit un enfocament que comprovi la falta de compatibilitats, perquè ja no existiran els navegadors que no disposen de compatibilitats per a la consulta. Ara, però, utilitza l’enfocament de fer servir el CSS anterior i sobreescriure'l per a obtenir la millor compatibilitat.</p> + +<h2 id="Les_versions_anteriors_de_Flexbox">Les versions anteriors de Flexbox</h2> + +<p>En versions anteriors dels navegadors, pots trobar versions anteriors de l'especificació Flexbox. En el moment d’escriure això, es tracta principalment d’un problema amb Internet Explorer 10, que utilitza el prefix <code>-ms-</code> per a Flexbox. Això també significa que hi ha articles i tutorials obsolets; <a href="https://css-tricks.com/old-flexbox-and-new-flexbox/">aquesta guia útil</a> t'ajuda a comprovar el que busques, i també pot ajudar-te si necessites compatibilitat Flexbox en navegadors molt antics.</p> + +<h2 id="La_versió_prefixada_de_graella_de_l’Internet_Explorer_10_i_11">La versió prefixada de graella de l’Internet Explorer 10 i 11</h2> + +<p>L'especificació de graella CSS es va prototipar inicialment en Internet Explorer 10; això vol dir que, tot i que IE10 i IE11 no disposen de compatibilitat de graella <em>moderna</em>, sí que tenen una versió de disseny de graella molt útil, tot i que diferent de l’especificació moderna que documentem en aquest lloc. Les implementacions d’IE10 i 11 tenen el prefix <code>-ms-</code>, que significa que les pots utilitzar per a aquests navegadors i que s'ignoraran en els navegadors que no formin part de Microsoft. Tanmateix, Edge encara entén la sintaxi antiga, així que tingues cura que tot es sobreescrigui de manera segura al teu CSS de graella moderna.</p> + +<p>La guia per a la <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement">Millora progressiva del disseny de graella</a> et pot ajudar a comprendre la versió de la graella d’Internet Explorer, i hem inclòs alguns enllaços útils addicionals al final d'aquest article. Tanmateix, a menys que tinguis un nombre molt elevat de visitants en versions d’Internet Explorer més antigues, potser és millor centrar-te en la creació d’una alternativa que funcioni per a tots els navegadors no compatibles.</p> + +<h2 id="Proves_amb_navegadors_antics">Proves amb navegadors antics</h2> + +<p>Atès que la majoria de navegadors admeten Flexbox i la graella, pot ser raonablement difícil fer proves amb navegadors més antics. Una de les maneres és utilitzar una eina de prova en línia com Sauce Labs, tal i com es detalla en el mòdul de <a href="https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing">comprovació de compatibilitat entre navegadors</a>.</p> + +<p>També pots descarregar i instal·lar màquines virtuals i executar versions anteriors de navegadors en un entorn contingut en el teu ordinador. Tenir accés a versions anteriors d’Internet Explorer és especialment útil, i amb aquest propòsit Microsoft ha posat a disposició dels usuaris una <a href="https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/">varietat de màquines virtuals de descàrrega gratuïta</a>. Estan disponibles per als sistemes operatius Mac, Windows i Linux, i per tant són una bona manera de fer proves en navegadors Windows antics i moderns, encara que no utilitzis un ordinador amb sistema operatiu de Windows.</p> + +<h2 id="Resum">Resum</h2> + +<p>Ara tens el coneixement per utilitzar tècniques de confiança com ara Grid i Flexbox, crear solucions alternatives per a navegadors més antics i utilitzar qualsevol tècnica nova que pugui aparèixer en el futur.</p> + +<h2 id="Consulta_també">Consulta també</h2> + +<ul> + <li><a href="https://hacks.mozilla.org/2016/08/using-feature-queries-in-css/">L'ús de la consulta de propietats en CSS</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox">Compatibilitat amb versions anteriors de Flexbox</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement">Disposició de graella CSS i millora progressiva</a></li> + <li><a href="https://www.smashingmagazine.com/2017/11/css-grid-supporting-browsers-without-grid/">L'ús de la graella CSS: Compatibilitat amb navegadors sense comportament de graella</a></li> + <li><a href="https://24ways.org/2012/css3-grid-layout/">Un tutorial que utilitza les versions IE10 i 11 de graella</a></li> + <li><a href="https://rachelandrew.co.uk/archives/2016/11/26/should-i-try-to-use-the-ie-implementation-of-css-grid-layout/">Hauria d’intentar utilitzar la implementació IE10 de disseny de graella?</a></li> + <li><a href="https://24ways.org/2017/cascading-web-design/">Disseny web en cascada amb consulta de propietats</a></li> + <li><a href="https://gridbyexample.com/learn/2016/12/24/learning-grid-day24/">L'ús de les consultes de propietats (vídeo)</a></li> +</ul> + +<p>{{PreviousMenuNext("Learn/CSS/CSS_layout/Legacy_Layout_methods", "Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension", "Learn/CSS/CSS_layout")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Introduction">Introducció al disseny CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Normal_Flow">Flux normal</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Flexbox">Flexbox</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Grids">Graella (Grid)</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Floats">Flotació</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Positioning">Posicionament</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Multiple-column_Layout">Disseny en columnes</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design">El disseny adaptatiu</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Media_queries">Guia d’iniciació a les consultes de mèdies</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods">Mètodes heretats de disseny de pàgines web</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers">Compatibilitat amb navegadors antics</a></li> + <li><a href="/en-US/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension">Avaluació del conjunt d'elements bàsics del disseny</a></li> +</ul> diff --git a/files/ca/learn/css/estilitzar_text/composició_pàgina_inici/index.html b/files/ca/learn/css/estilitzar_text/composició_pàgina_inici/index.html new file mode 100644 index 0000000000..2619be67e7 --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/composició_pàgina_inici/index.html @@ -0,0 +1,112 @@ +--- +title: Composició d'una pàgina d'inici de l'escola comunitaria +slug: Learn/CSS/Estilitzar_text/Composició_pàgina_inici +tags: + - Assessment + - Beginner + - CSS + - CodingScripting + - Link + - Styling text + - font + - list + - web font +translation_of: Learn/CSS/Styling_text/Typesetting_a_homepage +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/CSS/Styling_text/Web_fonts", "Learn/CSS/Styling_text")}}</div> + +<p class="summary">En aquesta avaluació, comprovarem la comprensió de totes les tècniques d'estil de text que hem cobert al llarg d'aquest mòdul, que us permetrà personalitzar el text de la pàgina d'inici d'una escola comunitària. Podríeu tindra una mica de diversió durant el camí.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Abans d'intentar aquesta avaluació, hauríeu d'haver treballat tots els articles d'aquest mòdul.</span></span></td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Provar la comprensió de les tècniques d'estil de text CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida"><span id="result_box" lang="ca"><span>Punt de partida</span></span></h2> + +<p>Per començar aquesta avaluació, heu de:</p> + +<ul> + <li>Aneu i agafeu els fitxers <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/typesetting-a-homepage-start/index.html">HTML</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/typesetting-a-homepage-start/style.css">CSS</a> per a l'exercici i la <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/typesetting-a-homepage-start/external-link-52.png">icona de l'enllaç extern proporcionada</a>.</li> + <li>Feu una còpia d'ells a l'ordinador local.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Com a alternativa, podeu utilitzar un lloc com <a class="external external-icon" href="http://jsbin.com/">JSBin</a> o <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer la vostra avaluació. Podeu enganxar el codi HTML i omplir el CSS en un d'aquests editors en línia i utilitzar <a href="http://mdn.github.io/learning-area/css/styling-text/typesetting-a-homepage-start/external-link-52.png">aquest URL</a> per indicar la imatge de fons. Si l'editor en línia que esteu utilitzant no té cap panell CSS separat, no dubteu a posar-lo en un element <code><style></code> a la capçalera del document.</p> +</div> + +<h2 id="Resum_del_projecte"><span id="result_box" lang="ca"><span>Resum del projecte</span></span></h2> + +<p>Us hem proporcionat un codi HTML sense format per a la pàgina d'inici d'una universitat comunitària imaginària, a més d'alguns estils CSS de la pàgina en un disseny de dues columnes, proporcionant un estil rudimentari. Heu d'escriure els vostres afegits CSS a sota del comentari a la part inferior del fitxer CSS, per assegurar-vos que sigui fàcil marcar les parts que heu realitzat. No us preocupeu si alguns dels selectors són repetitius; en aquest cas us deixarem.</p> + +<p>Fonts:</p> + +<ul> + <li>Primer de tot, descarregueu un parell de fonts gratuïtes. Com que es tracta d'una escola, les fonts s'haurien d'escollir per donar a la pàgina un sensació bastant seriosa, formal i de confiança - una font serif per el lloc a tot el cos del text general, juntament amb una sans-serif o una serif recta per als encapçalaments, podria ser agradable.</li> + <li>Utilitzeu un servei adequat per generar un codi font <code>@face-face</code> blindat per a aquestes dues fonts.</li> + <li>Apliqueu la font del cos a la pàgina sencera i la font d'encapçalament a les capçaleres</li> +</ul> + +<p><span id="result_box" lang="ca"><span>Estil de text general</span></span> :</p> + +<ul> + <li>Doneu a la pàgina un <code>font-size</code> de <code>10px</code> a tot el lloc.</li> + <li>Doneu els encapçalaments i altres tipus d'elements les mides de font apropiades definides amb una unitat relativa adequada.</li> + <li>Doneu al text del cos una alçada de línia (<code>line-height</code>) adequada.</li> + <li>Centreu el encapçalament de nivell superior a la pàgina.</li> + <li>Doneu als encapçalaments una mica d'espaiat a les lletres (<code>letter-spacing</code>) perquè no estiguin massa atapeïdes, i deixeu que les lletres respiren una mica.</li> + <li>Doneu al text del cos una mica d'espaiat entre lletres (<code>letter-spacing</code>) i espaiat entre paraules (<code>word-spacing</code>) , segons correspong</li> + <li>Doneu el primer paràgraf després de cada encapçalament en la <code><section></code> una mica de sagnat al text (<code>text-indentation</code>), diguem 20px.</li> +</ul> + +<p>Enllaços:</p> + +<ul> + <li>Doneu als estats de l'enllaç, visitad, enfocament i desplaçamen per damunt alguns colors que van amb el color de les barres horitzontals en la part superior i inferior de la pàgina.</li> + <li>Feu que els enllaços estiguin subratllats de manera predeterminada, però quan es passa el cursor per damunt o els enfoca, el subratllat desapareix.</li> + <li>Elimineu el contorn d'enfocament predeterminat de TOTS els enllaços de la pàgina.</li> + <li>Proporcioneu a l'estat actiu un estil notablement diferent, per la qual cosa es destaca molt bé, però cal que encaixi amb el disseny general de la pàgina.</li> + <li>Feu que els enllaços externs tinguin la icona de l'enllaç extern inserida al seu costat.</li> +</ul> + +<p>Llistes:</p> + +<ul> + <li>Assegureu-vos que l'espaiat de les vostres llistes i elements de llista funcionan bé amb l'estil de la pàgina general. Cada element de la llista hauria de tenir la mateixa alçada de línia (<code>line-height</code>) que una línia de paràgraf, i cada llista hauria de tenir el mateix espai en la part superior i inferior que hi ha entre els paràgrafs.</li> + <li>Doneu als elements de la llista una bonica vinyeta, apropiada per al disseny de la pàgina. Depenent de si trieu una imatge de vinyeta personalitzada o una altra cosa.</li> +</ul> + +<p><span id="result_box" lang="ca"><span>Menú de navegació</span></span></p> + +<ul> + <li>El estil del menú de navegació que tingui un aspecte adequat per a l'aparença de la pàgina.</li> +</ul> + +<h2 id="Consells_i_suggeriments">Consells i suggeriments</h2> + +<ul> + <li>No cal que editeu l'HTML de cap manera per a aquest exercici.</li> + <li>No necessàriament heu de fer que el menú de navegació es vegi com botons, però ha de ser una mica més alt per tal que no sembli una tonteria al costat de la pàgina; Recordeu, també, que heu de fer d'aquest un menú vertical de navegació.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p>La següent captura de pantalla mostra un exemple del que podria semblar el disseny final:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12994/example2.png" style="display: block; height: 1106px; margin: 0px auto; width: 1533px;"></p> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Si seguiu aquesta avaluació com a part d'un curs organitzat, hauríeu de poder lliurar el vostre treball al vostre professor/mentor per qualificar-ho. Si esteu en auto-aprenentatge, podreu obtenir la guia de qualificacions amb força facilitat preguntant sobre el tema <a href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">en el fil de conversa en l'àrea d'aprenentatge</a>, o en el canal IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Intenteu primer l'exercici - no es guanya res fent trampes!</p> + +<p>{{PreviousMenu("Learn/CSS/Styling_text/Web_fonts", "Learn/CSS/Styling_text")}}</p> diff --git a/files/ca/learn/css/estilitzar_text/estilitzar_enllaços/index.html b/files/ca/learn/css/estilitzar_text/estilitzar_enllaços/index.html new file mode 100644 index 0000000000..448a53289d --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/estilitzar_enllaços/index.html @@ -0,0 +1,424 @@ +--- +title: Aplicar estils a enllaços +slug: Learn/CSS/Estilitzar_text/Estilitzar_enllaços +translation_of: Learn/CSS/Styling_text/Styling_links +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_text/Styling_lists", "Learn/CSS/Styling_text/Web_fonts", "Learn/CSS/Styling_text")}}</div> + +<p class="summary">Quan s’aplica estil a <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">enllaços</a> és important entendre com fer ús de les pseudoclasses per a donar estil als estats de l’enllaç d’una manera efectiva, i com donar estil als enllaços per a utilitzar-los en diverses interfícies d’usuari característiques comunes, com ara menús de navegació i pestanyes. En aquest article tractarem tots aquests temes.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, fonaments d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), fonaments de CSS (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>), <a href="/ca/docs/Learn/CSS/Estilitzar_text/Text_fonamental">fonaments d’aplicació d’estil i tipus de lletra als textos amb CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a dissenyar els estats d'un enllaç i a fer servir enllaços de manera efectiva en interfícies d'usuari característiques comunes, com ara els menús de navegació.</td> + </tr> + </tbody> +</table> + +<h2 id="Un_cop_d’ull_a_alguns_enllaços"><span id="result_box" lang="ca">Un cop d’ull a alguns enllaços</span></h2> + +<p>En la secció <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">Creació d’hipervincles</a> hem vist com has d’implementar els enllaços en el teu codi HTML d'acord amb les bones pràctiques. En aquest article aprofundirem en aquest coneixement i et mostrarem les bones pràctiques que has de tenir en compte per a aplicar estil als enllaços.</p> + +<h3 id="Els_estats_dun_enllaç">Els estats d'un enllaç</h3> + +<p>El primer que has d'entendre és el concepte d'estats d'un enllaç; els enllaços poden tenir diversos estats, i se’ls pot aplicar estil fent servir diverses <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS">pseudoclasses</a>:</p> + +<ul> + <li><strong>link</strong>: L'estat per defecte en què es troba un enllaç, quan no es troba en cap altre estat; s’hi pot aplicar estil específicament utilitzant la pseudoclasse {{cssxref(":link")}}.</li> + <li><strong>visited</strong>: Un enllaç quan ja ha estat visitat (apareix en l’historial del navegador); s’hi pot aplicar estil utilitzant la pseudoclasse {{cssxref(":visited")}}.</li> + <li><strong>hover</strong>: Un enllaç quan el punter del ratolí de l'usuari hi passa per damunt; s’hi pot aplicar estil utilitzant la pseudoclasse {{cssxref(":hover")}}.</li> + <li><strong>focus</strong>: Un enllaç quan té el focus (per exemple, perquè un usuari es desplaça per la pàgina web amb la tecla <kbd>Tab</kbd> del teclat, o una altra, o se li ha assignat el focus per programació amb {{domxref("HTMLElement.focus()")}}); s’hi pot aplicar estil utilitzant la pseudoclasse {{cssxref(":focus")}}.</li> + <li><strong>active</strong>: Un enllaç quan s'activa (per exemple, perquè hi has fet clic); s’hi pot aplicar estil utilitzant la pseudoclasse {{cssxref(":active")}}.</li> +</ul> + +<h3 id="Estils_predeterminats"><span id="result_box" lang="ca">Estils predeterminats</span></h3> + +<p>L’exemple següent il·lustra com es comporta un enllaç de manera predeterminada (el CSS simplement amplia i centra el text perquè destaqui més).</p> + +<pre class="brush: html notranslate"><p><a href="https://mozilla.org">A link to the Mozilla homepage</a></p> +</pre> + +<pre class="brush: css notranslate">p { + font-size: 2rem; + text-align: center; +}</pre> + +<p>{{ EmbedLiveSample('Estils_predeterminats', '100%', 120) }}</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Tots els enllaços d'aquesta pàgina són falsos — s'ha posat un <code>#</code> en comptes d'un URL real. Això és perquè si incloïssim enllaços reals, fer-hi clic trencaria els exemples (acabaries amb un error, o una pàgina càrregada en l'exemple incrustat de la què no podries tornar.). <code>#</code> simplement enllaça a la pàgina actual.</p> +</div> + +<p>A mesura que exploris els estils predeterminats t’adonaràs d'algunes coses:</p> + +<ul> + <li>Els enllaços es subratllen.</li> + <li>Els enllaços no visitats són blaus.</li> + <li>Els enllaços visitats són violeta.</li> + <li>En passar per sobre d'un enllaç, el punter del ratolí canvia a una petita icona en forma de mà.</li> + <li>Els enllaços que tenen el focus tenen un contorn que els envolta: hauries de poder saltar pels enllaços d'aquesta pàgina amb el teclat, prement la tecla de tabulació (en Mac, és possible que hagis d'habilitar l’opció <em>Full Keyboard Access: All controls</em>, prement <kbd>Ctrl</kbd> + <kbd>F7</kbd> abans que això funcioni).</li> + <li>Els enllaços actius són de color vermell (deixa pres el botó del ratolí en fer clic en l’enllaç).</li> +</ul> + +<p>Curiosament, aquests estils predeterminats són gairebé idèntics que els dels primers dies dels navegadors a mitjan anys 90. Això és perquè els usuaris coneixen aquest comportament i l’esperen; si els enllaços estiguessin dissenyats de manera diferent, molta gent es confondria. Això no vol dir en absolut que no puguis aplicar estil als enllaços, només que no t’has d'allunyar del comportament que se n’espera. Com a mínim hauries de complir el següent:</p> + +<ul> + <li>Utilitzar el subratllat per als enllaços, però no per a altres coses. Si no vols subratllar els enllaços, almenys ressalta’ls d'alguna altra manera.</li> + <li>Fes que reaccionin d'alguna manera quan el punter del ratolí hi passa per sobre o quan adquireixen el focus, i d'una manera lleugerament diferent, quan s'activen.</li> +</ul> + +<p>Els estils predeterminats es poden desactivar/modificar amb les propietats CSS següents:</p> + +<ul> + <li>{{cssxref("color")}} per al color del text.</li> + <li>{{cssxref("cursor")}} per a l'estil del punter del ratolí; no l’hauries de desactivar, tret que hi hagi una raó molt bona.</li> + <li>{{cssxref("outline")}} per al contorn del text (un contorn és similar a una vora, l'única diferència és que la vora ocupa espai de la caixa, i un contorn no; és a la part superior del fons). El contorn és una ajuda d'accessibilitat útil, de manera que pensa-t’ho bé abans de desactivar aquesta propietat; com a mínim hauries de duplicar els estils per a l’estat de passar-hi el punter del ratolí per sobre l'estat amb el focus.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: No està limitat només a les propietats anteriors per al disseny dels enllaços; pots utilitzar qualsevol propietat que vulguis. Només procura no esbojarrar-te!</p> +</div> + +<h3 id="Aplicar_estil_a_enllaços">Aplicar estil a enllaços</h3> + +<p>Ara que hem examinat amb una mica de detall els estats per defecte dels enllaços, vegem un conjunt típic d'estils d'enllaç.</p> + +<p>Per començar, escriurem un conjunt de regles buides:</p> + +<pre class="brush: css notranslate">a { + +} + + +a:link { + +} + +a:visited { + +} + +a:focus { + +} + +a:hover { + +} + +a:active { + +}</pre> + +<p>Aquest ordre és important perquè els estils d'enllaç es construeixen els uns sobre els altres, per exemple, els estils de la primera regla s'aplicaran a tots els subsegüents, i quan s'activa un enllaç, també s'hi passa per sobre. Si els posem en l'ordre equivocat, les coses no funcionaran correctament. Per recordar l'ordre, pots provar d'usar un mnemotècnic com <strong>L</strong>o<strong>V</strong>e <strong>F</strong>ears <strong>HA</strong>te.</p> + +<p>Ara afegim una mica més d'informació per a obtenir aplicar-hi els estils adequats:</p> + +<pre class="brush: css notranslate">body { + width: 300px; + margin: 0 auto; + font-size: 1.2rem; + font-family: sans-serif; +} + +p { + line-height: 1.4; +} + +a { + outline: none; + text-decoration: none; + padding: 2px 1px 0; +} + +a:link { + color: #265301; +} + +a:visited { + color: #437A16; +} + +a:focus { + border-bottom: 1px solid; + background: #BAE498; +} + +a:hover { + border-bottom: 1px solid; + background: #CDFEAA; +} + +a:active { + background: #265301; + color: #CDFEAA; +}</pre> + +<p><span id="result_box" lang="ca">També et proporcionem un exemple d'HTML al qual aplicar el CSS:</span></p> + +<pre class="brush: html notranslate"><p>There are several browsers available, such as <a href="https://www.mozilla.org/en-US/firefox/">Mozilla +Firefox</a>, <a href="https://www.google.com/chrome/index.html">Google Chrome</a>, and +<a href="https://www.microsoft.com/en-us/windows/microsoft-edge">Microsoft Edge</a>.</p></pre> + +<p>Si ho posem tot junt, obtenim aquest resultat:</p> + +<p>{{ EmbedLiveSample('Aplicar_estil_a_enllaços', '100%', 150) }}</p> + +<p>Què hem fet aquí? Sens dubte, això es diferent de l'estil predeterminat, però encara proporciona una experiència prou familiar perquè els usuaris sàpiguen què passa:</p> + +<ul> + <li>Les dues primeres regles no proporcionen gaires elements de discussió.</li> + <li>La tercera regla utilitza el selector per a desfer-se del subratllat per defecte i el contorn de l’estat amb el focus (que varia d'un navegador a un altre), i afegeix una petita quantitat de farciment a cada enllaç; tot això ho acabarem d’aclarir més endavant.</li> + <li>A continuació, s'utilitzen els selectors <code>a:link</code> i <code>a:visited</code> per a establir un parell de variacions de color en els enllaços no visitats i visitats, de manera que siguin diferents.</li> + <li>Les dues regles següents utilitzen <code>a:focus</code> i <code>a:hover</code> per a establir que els estats d’enllaç amb el focus i enllaç activat pel desplaçament del punter del ratolí tinguin colors de fons diferents, i un subratllat perquè l'enllaç destaqui encara més. Dos punts que cal destacar són: + <ul> + <li>El subratllat s'ha creat amb {{cssxref("border-bottom")}}, no amb {{cssxref("text-decoration")}}; hi ha qui ho prefereix perquè la primera propietat té més opcions d'estil que la darrera, i el subratllat es dibuixa una mica més avall, de manera que no talla els traços descendents de la paraula que es subratlla (per exemple, les cues de la g i la j).</li> + <li>El valor {{cssxref("border-bottom")}} s'ha establert a <code>1px solid</code>, sense especificar-ne el color. D'aquesta manera, la vora adopta el mateix color que el text de l'element, i és útil en casos com aquest, en què el text té un color diferent en cada cas.</li> + </ul> + </li> + <li>Finalment, <code>a:active</code> s'utilitza per a donar als enllaços un esquema de color invertit quan s’activen, per deixar clar que passa alguna cosa important.</li> +</ul> + +<h3 id="Aprenentatge_actiu_Fes_el_teu_propi_disseny_d’enllaç">Aprenentatge actiu: Fes el teu propi disseny d’enllaç</h3> + +<p>En aquesta sessió d'aprenentatge actiu, et proposem que aprenguis el nostre conjunt de regles buides i hi afegeixis les teves declaracions pròpies perquè els teus enllaços llueixin fantàstics! Utilitza la imaginació, deixa't anar! Segur que pots trobar alguna cosa tan funcional com el nostre exemple, i més fresca!</p> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó <em>Reinicia</em>. Si t’encalles, prem el botó <em>Mostra la solució</em> per a inserir l'exemple mostrat a dalt.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><div class="body-wrapper" style="font-family: 'Open Sans Light',Helvetica,Arial,sans-serif;"> + <h2>HTML Input</h2> + <textarea id="code" class="html-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"><p>There are several browsers available, such as <a href="https://www.mozilla.org/en-US/firefox/">Mozilla + Firefox</a>, <a href="https://www.google.com/chrome/index.html">Google Chrome</a>, and +<a href="https://www.microsoft.com/en-us/windows/microsoft-edge">Microsoft Edge</a>.</p></textarea> + + <h2>CSS Input</h2> + <textarea id="code" class="css-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;">a { + +} + +a:link { + +} + +a:visited { + +} + +a:focus { + +} + +a:hover { + +} + +a:active { + +}</textarea> + + <h2>Output</h2> + <div class="output" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"></div> + <div class="controls"> + <input id="reset" type="button" value="Reset" style="margin: 10px 10px 0 0;"> + <input id="solution" type="button" value="Show solution" style="margin: 10px 0 0 10px;"> + </div> +</div> +</pre> + +<pre class="brush: js notranslate">var htmlInput = document.querySelector(".html-input"); +var cssInput = document.querySelector(".css-input"); +var reset = document.getElementById("reset"); +var htmlCode = htmlInput.value; +var cssCode = cssInput.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +var styleElem = document.createElement('style'); +var headElem = document.querySelector('head'); +headElem.appendChild(styleElem); + +function drawOutput() { + output.innerHTML = htmlInput.value; + styleElem.textContent = cssInput.value; +} + +reset.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = cssCode; + drawOutput(); +}); + +solution.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = 'p {\n font-size: 1.2rem;\n font-family: sans-serif;\n line-height: 1.4;\n}\n\na {\n outline: none;\n text-decoration: none;\n padding: 2px 1px 0;\n}\n\na:link {\n color: #265301;\n}\n\na:visited {\n color: #437A16;\n}\n\na:focus {\n border-bottom: 1px solid;\n background: #BAE498;\n}\n\na:hover {\n border-bottom: 1px solid;\n background: #CDFEAA;\n}\n\na:active {\n background: #265301;\n color: #CDFEAA;\n}'; + drawOutput(); +}); + +htmlInput.addEventListener("input", drawOutput); +cssInput.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 800) }}</p> + +<h2 id="Icones_en_els_enllaços">Icones en els enllaços</h2> + +<p>Una pràctica comuna és incloure icones en els enllaços per a proporcionar més d'un indicador quant al tipus de contingut al qual apunta l'enllaç. Vegem-ne un exemple molt senzill, que afegeix una icona als enllaços externs (enllaços que apunten cap a altres llocs web). Aquesta icona normalment té l’aspecte d’una petita fletxa que apunta cap enfora d'una caixa: per a aquest exemple, utilitzarem <a href="https://icons8.com/web-app/741/external-link">aquest fantàstic exemple de icons8.com</a>.</p> + +<p>Vegem alguns HTML i CSS, que ens donarà l'efecte que volem. En primer lloc, alguns simple HTML a l'estil:</p> + +<pre class="brush: html notranslate"><p>For more information on the weather, visit our <a href="weather.html">weather page</a>, +look at <a href="https://en.wikipedia.org/wiki/Weather">weather on Wikipedia</a>, or check +out <a href="http://www.extremescience.com/weather.htm">weather on Extreme Science</a>.</p></pre> + +<p><span class="short_text" id="result_box" lang="ca">A continuació, el CSS</span>:</p> + +<pre class="brush: css notranslate">body { + width: 300px; + margin: 0 auto; + font-family: sans-serif; +} + +p { + line-height: 1.4; +} + +a { + outline: none; + text-decoration: none; + padding: 2px 1px 0; +} + +a:link { + color: blue; +} + +a:visited { + color: purple; +} + +a:focus, a:hover { + border-bottom: 1px solid; +} + +a:active { + color: red; +} + +a[href*="http"] { + background: url('https://mdn.mozillademos.org/files/12982/external-link-52.png') no-repeat 100% 0; + background-size: 16px 16px; + padding-right: 19px; +}</pre> + +<p>{{ EmbedLiveSample('Icones_en_els_enllaços', '100%', 150) }}</p> + +<p>Què passa aquí, doncs? Ens saltarem la major part del CSS, perquè és la mateixa informació que ja has vist abans. Tanmateix, l'última regla és interessant perquè inserim una imatge de fons personalitzada en els enllaços externs d'una manera similar a com hem tractat les <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Estilitzar_text/Llistes_estil#%C3%9As_duna_imatge_de_vinyeta_personalitzada">vinyetes personalitzades dels elements de llista</a> de l'article anterior, però fem servir la propietat abreujada {{cssxref("background")}}, en comptes de les propietats individuals. Establim la ruta a la imatge que volem inserir i especifiquem <code>no-repeat</code> perquè només se’n vegi una còpia, i a continuació especifiquem la posició com al 100% a la dreta del contingut de text i a 0 píxels de l’extrem superior.</p> + +<p>També fem servir {{cssxref("background-size")}} per a especificar la mida amb què volem que es mostri la imatge de fons; és útil tenir una icona més gran i canviar-ne la mida per a propòsits de disseny de webs adaptatius. Tanmateix, això només funciona amb IE 9 i posteriors, de manera que si has de donar suport a aquests navegadors antics, només has de canviar la mida de la imatge i inserir-la tal qual.</p> + +<p>Finalment, establim una mica de {{cssxref("padding-right")}} als enllaços perquè la imatge de fons tingui espai i no es superposi amb el text.</p> + +<p>Per acabar, com etiquetem els enllaços externs? Bé, si escrius els teus <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">enllaços HTML</a> correctament, només has d'utilitzar URL absoluts en el codi d’etiquetatge dels enllaços externs; per enllaçar a altres parts del teu lloc web propi és més eficient utilitzar enllaços relatius. Per tant, el text «http» només hauria d'aparèixer en enllaços externs i pots etiquetar-los amb un <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS#Selectors_datribut">selector d'atributs</a>: <code>a[href*="http"]</code> selecciona elements {{htmlelement("a")}}, però només si tenen un atribut {{htmlattrxref("href","a")}} amb un valor que conté «http» en algun lloc.</p> + +<p>Això és tot — torna a visitar la secció d'aprenentatge actiu anterior i prova aquesta tècnica nova.</p> + +<div class="note"> +<p><strong>Nota</strong>: No et preocupis si encara no tens prou familiaritat amb els <a href="/ca/docs/Learn/CSS/Building_blocks">fons</a> i el <a href="/en-US/docs/Web/Apps/Progressive/Responsive/responsive_design_building_blocks">disseny web adaptatiu</a> perquè s’expliquen en altres articles.</p> +</div> + +<h2 id="Enllaços_amb_estil_de_botó">Enllaços amb estil de botó</h2> + +<p>Les eines que has explorat fins ara en aquest article també es poden utilitzar d'altres maneres. Per exemple, els estats com el flotant (<em>hover</em>) es poden utilitzar per a dissenyar molts elements diferents, no només enllaços; pot ser que vulguis dissenyar estats flotants (<em>hover</em>) per a paràgrafs, elements de llista o altres elements.</p> + +<p>A més, és habitual aplicar estil als enllaços perquè semblin i es comportin com botons en determinades circumstàncies — el menú de navegació d’un lloc web s’acostuma a marcar com una llista que conté enllaços, i es pot configurar fàcilment perquè sembli un conjunt de botons o pestanyes de control que proporcionen a l'usuari accés a les altres parts del lloc web. Expliquem com es fa.</p> + +<p>Primer, una mica d’HTML:</p> + +<pre class="brush: html notranslate"><ul> + <li><a href="#">Home</a></li><li><a href="#">Pizza</a></li><li><a href="#">Music</a></li><li><a href="#">Wombats</a></li><li><a href="#">Finland</a></li> +</ul></pre> + +<p>I ara, el nostre CSS:</p> + +<pre class="brush: css notranslate">body,html { + margin: 0; + font-family: sans-serif; +} + +ul { + padding: 0; + width: 100%; +} + +li { + display: inline; +} + +a { + outline: none; + text-decoration: none; + display: inline-block; + width: 19.5%; + margin-right: 0.625%; + text-align: center; + line-height: 3; + color: black; +} + +li:last-child a { + margin-right: 0; +} + +a:link, a:visited, a:focus { + background: yellow; +} + +a:hover { + background: orange; +} + +a:active { + background: red; + color: white; +}</pre> + +<p><span id="result_box" lang="ca">Això ens dona el resultat següent:</span></p> + +<p>{{ EmbedLiveSample('Enllaços_amb_estil_de_botó', '100%', 100) }}</p> + +<p>Expliquem què passa aquí, i ens centrem en les parts més interessants:</p> + +<ul> + <li>La segona regla elimina el {{cssxref("padding")}} per defecte de l'element {{htmlelement ("ul")}} i n’estableix una amplada que abasta el 100% del contenidor exterior (l’element {{htmlelement("body")}}, en aquest cas).</li> + <li>Els elements {{htmlelement("li")}} normalment són elements de bloc per defecte (vegeu els <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">tipus de caixes CSS</a> per refrescar la memòria), que significa que cadascun ocuparà la seva línia pròpia. En aquest cas, creem una llista d'enllaços horitzontal, i en la tercera regla establim la propietat {{cssxref("display")}} en el valor <code>inline</code>, que fa aparèixer tots els elements de la llista en la mateixa línia. Ara es comporten com elements de línia.</li> + <li>La quarta regla, que dissenya l'element {{htmlelement("a")}}, és la més complicada aquí. Anem pas a pas: + <ul> + <li>Com en els exemples anteriors, comencem per desactivar el valor per defecte de {{cssxref("text-decoration")}} i {{cssxref("outline")}}; no volem que espatllin la nostra aparença.</li> + <li>A continuació, establim la propietat {{cssxref("display")}} a <code>inline-block</code>; els elements {{htmlelement ("a")}} estan en línia per defecte, i si bé no volem que desbordin de la seva línia com passaria amb un valor <code>block</code>, volem ser capaços de dimensionar-los. La propietat <code>inline-block</code> ens permet fer-ho.</li> + <li>Ara, passem a la mida! Volem omplir tot l'ample de {{htmlelement ("ul")}} i deixarem un petit marge entre cada botó (però no hi ha un buit a la vora dreta), i hi han de cabre 5 botons que han de ser de la mateixa mida. Per a això, establim l’amplada {{cssxref("width")}} al 19,5%, i el {{cssxref("margin-right")}} al 0,625%. Observa que tot aquest ample suma 100,625%, que fa desbordar l'últim botó <code><ul></code>, que cau a la línia següent. Tanmateix, recuperem el 100% amb la regla següent, que selecciona només l'última <code><a></code> de la llista i n’elimina el marge. Fet!</li> + <li>Les tres últimes declaracions són força senzilles i acostumen a tenir finalitats cosmètiques. Centrem el text dins de cada enllaç, establim {{cssxref("line-height")}} a 3 per a donar una mica d'alçada als botons (que també té l'avantatge de centrar el text verticalment), i establim el color del text en negre.</li> + </ul> + </li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: És possible que hagis observat que en l’HTML hem col·locat tots els elements de llista en la mateixa línia; fem això perquè els espais / les línies entre els elements de línia de bloc creen espais a la pàgina, com els espais que hi ha entre les paraules, i aquests espais trencarien el disseny de menú de navegació horitzontal. De manera que hem eliminat els espais. Pots trobar més informació sobre aquest problema (i les solucions) a <a href="https://css-tricks.com/fighting-the-space-between-inline-block-elements/">Fighting the space between inline block elements</a>.</p> +</div> + +<h2 id="Resum">Resum</h2> + +<p>Esperem que aquest article t’hagi proporcionat tot el que has de saber sobre els enllaços, per ara. L'article final del nostre mòdul de text «Aplicació d’estils» explica com pots utilitzar tipus de lletra personalitzats en els teus llocs web o tipus de lletra per a web, com es coneixen més sovint.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_text/Styling_lists", "Learn/CSS/Styling_text/Web_fonts", "Learn/CSS/Styling_text")}}</p> diff --git a/files/ca/learn/css/estilitzar_text/fonts_web/index.html b/files/ca/learn/css/estilitzar_text/fonts_web/index.html new file mode 100644 index 0000000000..b4d1e8ecfd --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/fonts_web/index.html @@ -0,0 +1,193 @@ +--- +title: Fonts Web +slug: Learn/CSS/Estilitzar_text/Fonts_Web +tags: + - '@font-face' + - Article + - Beginner + - CSS + - Fonts + - Guide + - Learn + - font-family + - web fonts +translation_of: Learn/CSS/Styling_text/Web_fonts +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_text/Styling_links", "Learn/CSS/Styling_text/Typesetting_a_homepage", "Learn/CSS/Styling_text")}}</div> + +<p class="summary">En el primer article del mòdul hem explorat les característiques bàsiques de CSS que hi ha disponibles per a aplicar estil a la lletra i el text. En aquest article anem més lluny i explorem els tipus de lletra per a web amb detall, que permeten descarregar tipus de lletra personalitzats junt amb la teva pàgina web i et proporciona més varietat i personalització en l’aplicació d’estil als textos.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, fonaments d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), fonaments de CSS (consulta la <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>), <a href="/ca/docs/Learn/CSS/Estilitzar_text/Text_fonamental">fonaments d’aplicació d’estil a tipus de lletra i textos</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com aplicar tipus de lletra per a web a una pàgina web utilitzant un servei de tercers o escrivint el teu codi propi.</td> + </tr> + </tbody> +</table> + +<h2 id="Recapitulació_sobre_famílies_de_tipus_de_lletra">Recapitulació sobre famílies de tipus de lletra</h2> + +<p>Com hem vist en l’article <a href="/ca/docs/Learn/CSS/Estilitzar_text/Text_fonamental">Fonaments d’aplicació d’estil a la lletra i els textos</a>, pots controlar les fonts que fas servir per al teu HTML amb la propietat {{cssxref("font-family")}}. Aquesta propietat pren un o més noms de famílies de tipus de lletra i el navegador recorre la llista fins que troba un tipus de lletra que estigui disponible en el sistema en què s'executa:</p> + +<pre class="brush: css notranslate">p { + font-family: Helvetica, "Trebuchet MS", Verdana, sans-serif; +}</pre> + +<p>Aquest sistema funciona bé, però tradicionalment les opcions de tipus de lletra per al desenvolupament web han estat limitades. Només hi ha un grapat de tipus de lletra per a les que pots garantir la disponibilitat en tots els sistemes habituals, els anomenats <a href="/ca/docs/Learn/CSS/Estilitzar_text/Text_fonamental#Fam%C3%ADlies_de_tipus_de_lletra">tipus de lletra segurs per al web (<em>web-safe fonts</em>)</a>. Pots especificar la llista dels tipus de lletra preferents, seguits dels tipus de lletra alternatius segurs per al web, seguits dels tipus de lletra del sistema per defecte, però això afegeix una sobrecàrrega en termes de proves per a assegurar-te que els teus dissenys de pàgina presenten un aspecte correcte amb cada tipus de lletra, etc.</p> + +<h2 id="Tipografies_web"><span id="result_box" lang="ca">Tipografies web</span></h2> + +<p>Però hi ha una alternativa, que funciona molt bé, ja des de la versió 6 d'IE. Les tipografies web són una característica CSS que et permet especificar els fitxers de tipus de lletra que vols que es descarreguin juntament amb el teu lloc web quan s’hi accedeix, i això fa que qualsevol navegador que admet tipografies web pot disposar exactament dels tipus de lletra que especifiques. Increïble! La sintaxi necessària presenta aquest aspecte:</p> + +<p>En primer lloc, hi ha un bloc de codi {{cssxref("@font-face")}} al començament del CSS, que especifica els fitxers de tipus de lletra que vols que es descarreguin:</p> + +<pre class="brush: css notranslate">@font-face { + font-family: "myFont"; + src: url("myFont.ttf"); +}</pre> + +<p>A continuació pots aplicar el nom de la família del tipus de lletra personalitzada que has especificat en @font-face a qualsevol cosa que vulguis, de la manera habitual:</p> + +<pre class="brush: css notranslate">html { + font-family: "Bitstream Vera Serif Bold", serif; +}</pre> + +<p>La sintaxi es comença a complicar una mica. A continuació hi entrem amb detall.</p> + +<p>Hi ha dues coses importants que cal tenir en compte sobre els tipus de lletra segurs per al web:</p> + +<ol> + <li>Els navegadors admeten diversos formats de tipus de lletra, de manera que necessites diversos formats de tipus de lletra per a atènyer una compatibilitat de navegador decent. Per exemple, la majoria dels navegadors més moderns admeten WOFF / WOFF2 (Web Open Font Format, versions 1 i 2), el format més eficient per a tot, però les versions anteriors d'IE només admeten tipus de lletra EOT (Embedded Open Type), i és possible que hagis d'incloure una versió de tipus de lletra SVG per tenir compatibilitat amb versions anteriors dels navegadors iPhone i Android. A continuació et mostrarem com generar el codi necessari.</li> + <li>Normalment els tipus de lletra no són d’ús lliure. Cal pagar per a fer-los servir o assumir unes condicions de llicència, com ara acreditar el creador del tipus de lletra en el codi (o en el teu lloc web). No hauries de robar els tipus de lletra ni utilitzar-los sense donar-ne el crèdit adequat.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Els tipus de lletra web com a tecnologia són compatibles amb Internet Explorer des de la versió 4!</p> +</div> + +<h2 id="Aprenentatge_actiu_Un_exemple_de_tipografia_web">Aprenentatge actiu: Un exemple de tipografia web</h2> + +<p>Tenint en compte això, construïm un exemple bàsic de tipografia web des de zero. És difícil mostrar-ho a partir d’un exemple en viu, de manera que, en lloc d'això, seguirem els passos detallats en les seccions següents, per a tenir una idea del procés.</p> + +<p>Has d'utilitzar els fitxers <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/web-font-start.html">web-font-start.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/web-font-start.css">web-font-start.css</a> com a punt de partida per a afegir el codi (consulta també el codi de l’<a href="http://mdn.github.io/learning-area/css/styling-text/web-fonts/web-font-start.html">exemple en viu</a>). Fes també una còpia d'aquests fitxers en un directori nou al teu ordinador. En el fitxer <code>web-font-start.css</code> hi ha una mica de CSS per tractar el disseny bàsic i la tipografia de l'exemple.</p> + +<h3 id="Buscar_tipus_de_lletra">Buscar tipus de lletra</h3> + +<p>Per a aquest exemple, utilitzarem dos tipografies web, un per als títols d’encapçalament i un per al text del cos (<code>body</code>). Per començar, hem de trobar els fitxers que contenen els tipus de lletra. Els tipus de lletra es creen en estudis de disseny i s'emmagatzemen en diferents formats de fitxer. En general, hi ha tres tipus de llocs web en què pots obtenir tipus de lletra:</p> + +<ul> + <li>Distribuïdors de tipus de lletra gratuït: són llocs web que posen a disposició per a descarregar tipus de lletra gratuïtament (encara que hi pot haver certes condicions de llicència, com ara acreditar el creador del tipus de lletra). Alguns exemples són: <a href="https://www.fontsquirrel.com/">Font Squirrel</a>, <a href="http://www.dafont.com/">dafont</a> i <a href="https://everythingfonts.com/">Everything Fonts</a>.</li> + <li>Distribuïdors de tipus de lletra de pagament: llocs web que posen a disposició tipus de lletra per una quantitat de diners, com <a href="http://www.fonts.com/">fonts.com</a> o <a href="http://www.myfonts.com/">myfonts.com</a>. També pots comprar tipus de lletra directament a creadors de tipus de lletres, per exemple <a href="https://www.linotype.com/">Linotype</a>, <a href="http://www.monotype.com">Monotype</a> o <a href="http://www.exljbris.com/">Exljbris</a>.</li> + <li>Serveis de tipus de lletra en línia: llocs web que emmagatzemen i serveixen tipus de lletra, i que simplifiquen el procés sencer. Consulta’n els detalls en la secció {{anch("Usar un servei de tipografies en línia")}}.</li> +</ul> + +<p>Busquem ara alguns tipus de lletra! Ves a <a href="https://www.fontsquirrel.com/">Font Squirrel</a> i tria dos tipus de lletra, un que et resulti interessant i agradable per als títols (ppotser una bona tipografia tipus "Display" o "Slab Serif"), i un altre una mica menys cridaner i que resulti més llegible, per als paràgrafs. Quan hagis trobat cada tipus, prem el botó de descàrrega i desa el fitxer en el mateix directori que hi ha els fitxers HTML i CSS que has desat abans. No importa si són en format TTF (True Type Fonts) o OTF (Open Type Fonts).</p> + +<p>En cada cas, descomprimeix el paquet amb els tipus de lletra (les tipografies web s’acostumen a distribuir en fitxers ZIP que contenen els fitxers dels tipus de lletra i la informació de la llicència). Pots trobar diversos fitxers de tipus de lletra en el paquet —alguns tipus de lletra es distribueixen com una família, amb diverses variants disponibles, per exemple, fina, seminegreta, negreta, cursiva, cursiva fina, etc. Per a aquest exemple, només cal que et preocupis d'un únic fitxer de tipus de lletra per cada elecció.</p> + +<div class="note"> +<p><strong>Nota</strong>: en la columna de la dreta de la secció «Busca tipus de lletra», pots fer clic en les diverses etiquetes, i classificacions per filtrar les opcions que es mostren.</p> +</div> + +<h3 id="Generació_del_codi_necessari">Generació del codi necessari</h3> + +<p>Ara cal generar el codi necessari (i els formats de tipus de lletra). Per cada tipografia, segueix aquests passos:</p> + +<ol> + <li>Assegura’t que compleixes tots els requisits de llicència si vols fer servir això en un projecte comercial o en el web.</li> + <li>Ves al <a href="https://www.fontsquirrel.com/tools/webfont-generator">Webfont Generator</a> de Font Squirrel.</li> + <li>Carrega els dos fitxers de tipus de lletra amb el botó <em>Upload Fonts</em>.</li> + <li>Marca la casella de verificació amb el text «Sí, els tipus de lletra que carrego són legalment aptes per a la inclusió en el web».</li> + <li>Fes clic a <em>Download your kit</em>.</li> +</ol> + +<p>Un cop el generador ha acabat de processar, has d'obtenir un fitxer ZIP, descarregar-lo i desar-lo al mateix directori que els teus HTML i CSS.</p> + +<h3 id="Implementar_el_codi_a_la_teva_demo">Implementar el codi a la teva demo</h3> + +<p>En aquest punt, has de descomprimir el paquet de fitxers de tipus de lletra segurs per al web que acabes de generar. Dins del directori descomprimit, hi haurà tres elements útils:</p> + +<ul> + <li>Diverses versions de cada tipus de lletra: <code>.eot</code>, <code>.svg</code>, <code>.ttf</code>, <code>.woff</code>, <code>.woff2</code>. Com ja s’ha dit, calen diversos tipus de fitxers de tipus de lletra per a tenir compatibilitat amb els navegadors; aquesta és la manera que té Font Squirrel d’assegurar-se que tens tot el que necessites.</li> + <li>Un fitxer HTML de demostració per a cada font; carrega’l en el teu navegador i observa com es veu el tipus de lletra en diferents contextos d'ús.</li> + <li>Un fitxer <code>stylesheet.css</code> que conté el codi @font-face generat que necessites.</li> +</ul> + +<p>Per a implementar aquests tipus de lletra en el teu exemple de demostració, segueix aquests passos:</p> + +<ol> + <li>Canvia el nom del directori descomprimit per un nom que sigui senzill i fàcil de recordar, com ara <code>fonts</code>.</li> + <li>Obre el fitxer <code>stylesheet.css</code> i copia-hi els blocs <code>@font-face</code> que conté en el teu fitxer <code>web-font-start.css</code>; has de posar-los a dalt de tot, abans de qualsevol bloc de CSS, perquè els tipus de lletra s’han d’importar abans de poder-los utilitzar en el teu lloc web.</li> + <li>Cadascuna de les funcions <code>url()</code> apunta a un fitxer de tipus de lletra que volem importar al nostre CSS; afegeix <code>fonts/</code> al començament de cada ruta (o adapta-ho si cal) per a assegurar-te que les rutes d'accés als fitxers són correctes.</li> + <li>Ara pots utilitzar aquests tipus de lletra en les llistes d’arxius de tipus de lletra, igual que qualsevol tipus de lletra segur per al web o tipus de lletra predeterminat del sistema. Per exemple: + <pre class="brush: css notranslate">font-family: 'zantrokeregular', serif;</pre> + </li> +</ol> + +<p>Has d'acabar amb una pàgina de demostració amb alguns tipus de lletra agradables implementats. Atès que els diferents tipus de lletra es creen amb mides diferents, és possible que hagis d'ajustar la mida, l'espaiat, etc., per a ordenar-ne l'aspecte.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12984/web-font-example.png" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Si tens problemes perquè funcioni, no dubtis de comparar la teva versió amb els nostres fitxers acabats; consulta <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/web-font-finished.html">web-font-finished.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/web-font-finished.css">web-font-finished.css</a> (<a href="http://mdn.github.io/learning-area/css/styling-text/web-fonts/web-font-finished.html">executa l'exemple acabat en directe</a>).</p> +</div> + +<h2 id="Usar_un_servei_de_tipografies_en_línia">Usar un servei de tipografies en línia</h2> + +<p>Els serveis de tipus de lletra en línia normalment emmagatzemen i serveixen tipus de lletra per tu, de manera que no t’has de preocupar d’escriure el codi <code>@font-face</code>, i generalment només cal que insereixis una o dues línies de codi al teu lloc web perquè tot funcioni. Alguns exemples són: <a href="https://typekit.com/">Typekit</a> i <a href="http://www.typography.com/cloud/welcome/">Cloud.typography</a>. La majoria d'aquests serveis estan basats en subscripcions, amb la notable excepció de <a href="https://www.google.com/fonts">Google Fonts</a>, un útil servei gratuït, especialment per a fer proves ràpides i demostracions d'escriptura.</p> + +<p>La majoria d'aquests serveis són fàcils d'utilitzar, de manera que no hi entrarem amb molt de detall. Vegem ràpidament les fonts de Google, perquè puguis fer-te’n la idea. De nou, fes còpies de <code>web-font-start.html</code> i <code>web-font-start.css</code> com a punt de partida.</p> + +<ol> + <li>Ves a <a href="https://www.google.com/fonts">Google Fonts</a>.</li> + <li>Utilitza els filtres de la banda esquerra per visualitzar els tipus de lletra que vols triar i escull un parell de tipus de lletra.</li> + <li>Per a seleccionar un tipus de lletra, prem el botó <em>Add to Collection</em> que hi ha al costat.</li> + <li>Quan hagis escollit els tipus de lletra, prem el botó <em>Use</em> que hi ha a la part inferior de la pàgina.</li> + <li>A la pantalla resultant, primer has de copiar la línia de codi que es mostra a la secció 3 i enganxar-la al final de tot del teu fitxer HTML. Posa-la per sobre de l'element {{htmlelement("link")}} perquè el tipus de lletra s'importi abans que el teu CSS l’hagi d’utilitzar.</li> + <li>A continuació, has de copiar les declaracions que hi ha en la secció 4 al teu CSS, segons correspongui, per a aplicar els tipus de lletra personalitzats al teu codi HTML.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar una versió completa a <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/google-font.html">google-font.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/web-fonts/google-font.css">google-font.css</a>, si et cal contrastar el teu treball amb el nostre (<a href="http://mdn.github.io/learning-area/css/styling-text/web-fonts/google-font.html">consulta-ho en directe</a>).</p> +</div> + +<h2 id="font-face_amb_més_detall">@font-face amb més detall</h2> + +<p>Explorem la sintaxi <code>@font-face</code> que genera Font Squirrel. Aquest és l’aspecte que presenta un dels blocs:</p> + +<pre class="brush: css notranslate">@font-face { + font-family: 'ciclefina'; + src: url('fonts/cicle_fina-webfont.eot'); + src: url('fonts/cicle_fina-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/cicle_fina-webfont.woff2') format('woff2'), + url('fonts/cicle_fina-webfont.woff') format('woff'), + url('fonts/cicle_fina-webfont.ttf') format('truetype'), + url('fonts/cicle_fina-webfont.svg#ciclefina') format('svg'); + font-weight: normal; + font-style: normal; +}</pre> + +<p>Això s'anomena «sintaxi a prova de bales @font-face» des d'una publicació de Paul Irish dels inicis, quan <code>@font-face</code> va començar a ser popular (<a href="http://www.paulirish.com/2009/bulletproof-font-face-implementation-syntax/">Bulletproof @font-face Syntax</a>). Passem a veure què fa:</p> + +<ul> + <li><code>font-family</code>: Aquesta línia especifica el nom amb què et faràs referència al fitxer de tipus de lletra que empraràs. Pots posar-hi qualsevol cosa que t’agradi, sempre que l'utilitzis de manera coherent en tot el teu codi CSS.</li> + <li><code>src</code>: Aquestes línies especifiquen les rutes d'accés als fitxers de tipus de lletra que cal que importis al teu CSS (la part d'URL) i el format de cada fitxer de tipus de lletra (la part <code>format</code>). L'última part en cada cas és opcional, però és útil declarar-la perquè permet als navegadors trobar més ràpidament el tipus de lletra que poden utilitzar. Es poden incloure diverses declaracions, separades per comes; el navegador buscarà entre elles i usarà la primera que trobi que entén; per tant, és millor posar abans formats nous i millors, com WOFF2, i formats més antics i no tan bons, com TTF, després. L'única excepció d’això són les fonts EOT, que es col·loquen en primer lloc per corregir un parell d'errors en les versions anteriors d'IE, que intentarà utilitzar la primera que trobi, fins i tot si no pot utilitzar el tipus de lletra.</li> + <li>{{cssxref("font-weight")}}/{{cssxref("font-style")}}: Aquestes línies especifiquen el gruix del tipus de lletra i si és cursiva o no. Si importes diversos gruixos del mateix tipus de lletra, en pots especificar gruix/estil i, a continuació, utilitzar valors diferents de {{cssxref("font-weight")}}/{{cssxref("font-style")}} per a triar entre ells, en lloc d'haver de cridar tots els membres diferents de la família de tipus de lletra pels diferents noms. <a href="http://www.456bereastreet.com/archive/201012/font-face_tip_define_font-weight_and_font-style_to_keep_your_css_simple/">@font-face tip: define font-weight and font-style to keep your CSS simple</a>, de Roger Johansson, mostra amb més detall què cal fer.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: També pots especificar cada valor {{cssxref("font-variant")}} i {{cssxref("font-stretch")}} per als teus tipus de lletra segurs per al web. En els navegadors més nous també pots especificar un valor {{cssxref("unicode-range")}}, que és una gamma de caràcters específica que vols utilitzar a banda del tipus de lletra segur per al web; en els navegadors compatibles amb aquesta propietat, només es descarregaran els caràcters especificats, per a estalviar descàrregues innecessàries. <a href="https://24ways.org/2011/creating-custom-font-stacks-with-unicode-range/">Creating Custom Font Stacks with Unicode-Range</a>, de Drew McLellan, t’ofereix unes idees útils sobre com fer-ne ús.</p> +</div> + +<h2 id="Resum">Resum</h2> + +<p>Ara que has treballat els nostres articles sobre els fonaments d’aplicació d'estil al text, és hora de posar a prova el que has après amb la nostra avaluació per al mòdul, Composició tipogràfica d’una pàgina d’inici per a un lloc web d’una escola de la comunitat.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_text/Styling_links", "Learn/CSS/Styling_text/Typesetting_a_homepage", "Learn/CSS/Styling_text")}}</p> diff --git a/files/ca/learn/css/estilitzar_text/index.html b/files/ca/learn/css/estilitzar_text/index.html new file mode 100644 index 0000000000..c815d83297 --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/index.html @@ -0,0 +1,55 @@ +--- +title: Estilitzar text +slug: Learn/CSS/Estilitzar_text +tags: + - Beginner + - CSS + - CodingScripting + - Fonts + - Landing + - Links + - Module + - Text + - font + - letter + - line + - lists + - shadow + - web fonts +translation_of: Learn/CSS/Styling_text +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Amb els aspectes bàsics del llenguatge CSS coberts, el següent tema CSS, per a què us concentreu, és l'estil del text - una de les coses més habituals que fareu amb CSS. Aquí observem els fonaments d'estil de text, incloent la configuració de fonts, negreta, cursiva, espaiat entre línies i lletres, ombres i altres funcions de text. Completem el mòdul examinant l'aplicació de fonts personalitzades a la vostra pàgina i llistes d'estil i enllaços.</p> + +<h2 id="Requisits_previs">Requisits previs</h2> + +<p>Abans de començar aquest mòdul, ja hauríeu de tenir una familiaritat bàsica amb l'HTML, tal com s'ha explicat en el mòdul <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a> i estar còmodes amb els fonaments CSS, tal com s'ha explicat en <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si esteu treballant en un ordinador/tauleta/altre dispositiu on no té la capacitat de crear els vostres propis fitxers, podeu provar (la majoria) els exemples de codi en un programa de codificació en línia com <a href="http://jsbin.com/">JSBin</a> o <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guies"><span id="result_box" lang="ca"><span>Guies</span></span></h2> + +<p>Aquest mòdul conté els següents articles, que us ensenyaran tot l'essencial de l'estil del contingut de text HTML.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/Styling_text/Fundamentals">Text fonamental i estil de font</a></dt> + <dd>En aquest article, es detallen tots els conceptes bàsics d'estil de text/font, incloent la configuració del pes de la font, família i estil, abreviatura de font, alineació del text i altres efectes, i espaiat entre línies i lletres.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Styling_text/Styling_lists">Estilitzar llistes</a></dt> + <dd>Les llistes es comporten com qualsevol altre text en la seva major part, però hi ha algunes propietats CSS específiques de les llistes que necessiteu saber i algunes de les millors pràctiques a tenir en compte. Aquest article ho explica tot.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Styling_text/Styling_links">Estilitzar enllaços</a></dt> + <dd>En dissenyar enllaços, és important entendre com fer ús de pseudo-classes per crear estils de vincles de manera efectiva i com dissenyar vincles per utilitzar-los en característiques d'interfície variades comunes, com a menús de navegació i pestanyes. Veurem tots aquests temes en aquest article.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Styling_text/Web_fonts">Fonts Web</a></dt> + <dd>Aquí explorarem detalladament els tipus de fonts web, que us permeten descarregar fonts personalitzades juntament amb la vostra pàgina web, per permetre un estil de text més variat i personalitzat.</dd> +</dl> + +<h2 id="Avaluacions">Avaluacions</h2> + +<p>Les següents avaluacions posaran a prova la vostra comprensió de les tècniques d'estil de text cobertes en les guies anteriors.</p> + +<dl> + <dt><a href="/en-US/Learn/CSS/Styling_text/Typesetting_a_homepage">Composició d'una pàgina web d'una escola comunitaria</a></dt> + <dd>En aquesta avaluació, provarem la vostra comprensió sobre l'estil de text, que us permetrà personalitzar el text de la pàgina d'inici d'una escola comunitària.</dd> +</dl> diff --git a/files/ca/learn/css/estilitzar_text/llistes_estil/index.html b/files/ca/learn/css/estilitzar_text/llistes_estil/index.html new file mode 100644 index 0000000000..6caa6e0e24 --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/llistes_estil/index.html @@ -0,0 +1,382 @@ +--- +title: Estils de llistes +slug: Learn/CSS/Estilitzar_text/Llistes_estil +tags: + - Article + - Beginner + - CSS + - Guide + - Styling + - Text + - bullets + - lists +translation_of: Learn/CSS/Styling_text/Styling_lists +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/Styling_text/Fundamentals", "Learn/CSS/Styling_text/Styling_links", "Learn/CSS/Styling_text")}}</div> + +<p class="summary">Les <a href="/en-US/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#Lists">llistes</a> <span id="result_box" lang="ca">es comporten com qualsevol altre text en la seva major part, però hi ha algunes propietats CSS específiques de les llistes que has de conèixer i algunes bones pràctiques que has de tenir en compte. Aquest article ho explica tot.</span></p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, els fonaments d'HTML (estudi <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a HTML</a> ), fonaments CSS (estudi <a href="/ca/docs/Learn/CSS/First_steps">Introducció a CSS</a>), <a href="/ca/docs/Learn/CSS/Estilitzar_text/Text_fonamental">fonaments d’aplicació d’estil i tipus de lletra a textos amb CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td><span id="result_box" lang="ca">Familiaritzar-se amb les bones pràctiques i propietats relacionades amb l’aplicació d'estil a les llistes</span> .</td> + </tr> + </tbody> +</table> + +<h2 id="Un_exemple_senzill_de_llista">Un exemple senzill de llista</h2> + +<p>Per començar, observa un exemple senzill de llista. Al llarg d'aquest article, veurem llistes no ordenades, ordenades i de descripció: totes tenen característiques d'estil similars, i algunes que són particulars per al tipus de llista concret. Tens l'exemple sense estil <a href="http://mdn.github.io/learning-area/css/styling-text/styling-lists/unstyled-list.html">disponible a GitHub</a> (consulta també el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/styling-lists/unstyled-list.html">codi d’origen</a>).</p> + +<p>El codi HTML del nostre exemple de llista té aquest aspecte:</p> + +<pre class="brush: html notranslate"><h2>Shopping (unordered) list</h2> + +<p>Paragraph for reference, paragraph for reference, paragraph for reference, +paragraph for reference, paragraph for reference, paragraph for reference.</p> + +<ul> + <li>Humous</li> + <li>Pitta</li> + <li>Green salad</li> + <li>Halloumi</li> +</ul> + +<h2>Recipe (ordered) list</h2> + +<p>Paragraph for reference, paragraph for reference, paragraph for reference, +paragraph for reference, paragraph for reference, paragraph for reference.</p> + +<ol> + <li>Toast pitta, leave to cool, then slice down the edge.</li> + <li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> + <li>Wash and chop the salad.</li> + <li>Fill pitta with salad, humous, and fried halloumi.</li> +</ol> + +<h2>Ingredient description list</h2> + +<p>Paragraph for reference, paragraph for reference, paragraph for reference, +paragraph for reference, paragraph for reference, paragraph for reference.</p> + +<dl> + <dt>Humous</dt> + <dd>A thick dip/sauce generally made from chick peas blended with tahini, lemon juice, salt, garlic, and other ingredients.</dd> + <dt>Pitta</dt> + <dd>A soft, slightly leavened flatbread.</dd> + <dt>Halloumi</dt> + <dd>A semi-hard, unripened, brined cheese with a higher-than-usual melting point, usually made from goat/sheep milk.</dd> + <dt>Green salad</dt> + <dd>That green healthy stuff that many of us just use to garnish kebabs.</dd> +</dl></pre> + +<p>Si ara vas a l'exemple en directe i investigues els elements de la llista amb les <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">eines de desenvolupador del navegador</a>, t’adonaràs que hi ha un parell d'estils per defecte:</p> + +<ul> + <li>Els elements {{htmlelement("ul")}} i {{htmlelement("ol")}} tenen un {{cssxref("margin")}} superior i inferior de <code>16px</code> (<code>1em</code>) i un {{cssxref("padding-left")}} de <code>40px</code> (<code>2.5em</code>).</li> + <li>Els elements de llista (elements {{htmlelement("li")}}) no tenen valors predeterminats establerts per a l’espaiat.</li> + <li>L'element {{htmlelement("dl")}} té un {{cssxref("margin")}} superior i inferior de <code>16px</code> (<code>1em</code>), però no hi ha cap farciment (<em>padding</em>) establert.</li> + <li>Els elements {{htmlelement("dd")}} tenen un {{cssxref("margin-left")}} de <code>40px</code> (<code>2.5em</code>).</li> + <li>Els elements {{htmlelement("p")}} que hem inclòs com a referència tenen un {{cssxref("margin")}} de <code>16px</code> (<code>1em</code>), el mateix que els diferents tipus de llista.</li> +</ul> + +<h2 id="Tractament_dels_espais_en_llistes">Tractament dels espais en llistes</h2> + +<p>Quan fas llistes d'estil, has d'ajustar-ne els estils perquè mantinguin el mateix espai vertical que els elements que l'envolten (com ara paràgrafs i imatges, que de vegades s’anomena <em>ritme vertical</em>), i el mateix espaiat horitzontal que la resta (observa l'<a href="http://mdn.github.io/learning-area/css/styling-text/styling-lists/">exemple d'estil acabat</a> a GitHub, i també el <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/styling-lists/index.html">codi d’origen</a> que hi trobaràs).</p> + +<p>El CSS que s’utilitza per a aplicar l'estil al text i l'espaiat és el següent:</p> + +<pre class="brush: css notranslate">/* General styles */ + +html { + font-family: Helvetica, Arial, sans-serif; + font-size: 10px; +} + +h2 { + font-size: 2rem; +} + +ul,ol,dl,p { + font-size: 1.5rem; +} + +li, p { + line-height: 1.5; +} + +/* Description list styles */ + + +dd, dt { + line-height: 1.5; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: 1.5rem; +}</pre> + +<ul> + <li>La primera regla estableix un tipus de lletra per a tot el lloc web i una mida de lletra de referència de 10 px, que hereta tota la pàgina web.</li> + <li>Les regles 2 i 3 estableixen mides de lletra relatives per als títols d’encapçalament, els diferents tipus de llista (els fills dels elements de la llista els hereten) i els paràgrafs. Això significa que cada paràgraf i cada llista tindrà la mateixa mida de lletra i el mateix espaiat superior i inferior, que ajuden a mantenir un ritme vertical constant.</li> + <li>La regla 4 estableix la mateixa {{cssxref("line-height")}} en els paràgrafs i els elements de llista, de manera que els paràgrafs i cada element de llista tindran el mateix espaiat entre línies. Això també ajuda a mantenir el ritme vertical consistent.</li> + <li>Les regles 5-7 es refereixen a la llista de descripció: establim la mateixa <code>line-height</code> per als termes i les descripcions de terme de la llista de descripció que els que hem establert per als paràgrafs i els elements de llista, i un {{cssxref("margin-bottom")}} de <code>1.5rem</code>, el mateix que hi ha per als paràgrafs (<code>p</code>) i els elements de la llista (<code>li</code>). Una vegada més, la coherència és bona. També establim els termes de descripció en negreta, de manera que destaquin més visualment.</li> +</ul> + +<h2 id="Estils_específics_de_llista"><span id="result_box" lang="ca">Estils específics de llista</span></h2> + +<p>Hem examinat l'espaiat general de les llistes, ara explorarem algunes propietats específiques de la llista. Per començar, hi ha tres propietats que has de conèixer, que es poden establir en els elements {{htmlelement("ul")}} o {{htmlelement("ol")}}:</p> + +<ul> + <li>{{cssxref("list-style-type")}}: Estableix el tipus de vinyeta que s'utilitza per a la llista, per exemple vinyetes quadrades o circulars per a una llista no ordenada, números, lletres o números romans per a una llista ordenada.</li> + <li>{{cssxref("list-style-position")}}: Estableix si les vinyetes apareixen dins dels elements de la llista, o a fora, abans de l'inici de cada element.</li> + <li>{{cssxref("list-style-image")}}: Permet utilitzar una imatge personalitzada per a la vinyeta, en comptes d'un quadrat o cercle.</li> +</ul> + +<h3 id="Estils_de_vinyeta">Estils de vinyeta</h3> + +<p>Com s'ha comentat, la propietat {{cssxref("list-style-type")}} permet establir quin tipus de vinyeta s'usa per als punts de vinyeta. En el nostre exemple, hem establert que la llista ordenada utilitzi números romans en majúscules, amb:</p> + +<pre class="brush: css notranslate">ol { + list-style-type: upper-roman; +}</pre> + +<p>Això ens dona l’aspecte següent:</p> + +<p><img alt="Una llista ordenada amb vinyetes que apareixex fora del text de l'element de llista." src="https://mdn.mozillademos.org/files/12962/outer-bullets.png" style="border-style: solid; border-width: 1px; display: block; height: 119px; margin: 0px auto; width: 376px;"></p> + +<p>Podeu trobar moltes més opcions consultant la pàgina de referència {{cssxref("list-style-type")}}.</p> + +<h3 id="Posició_de_la_vinyeta">Posició de la vinyeta</h3> + +<p>La propietat {{cssxref("list-style-position")}} estableix si les vinyetes apareixen dins dels elements de llista, o a fora, abans de l'inici de cada element. El valor predeterminat és <code>outside</code> (fora), que fa que les vinyetes se situïn fora dels elements de llista, tal com hem vist.</p> + +<p>Si estableixes el valor <code>inside</code> (dins), les vinyetes se situen dins de les línies:</p> + +<pre class="brush: css notranslate">ol { + list-style-type: upper-roman; + list-style-position: inside; +}</pre> + +<p><img alt="Una llista ordenada amb vinyetes que apareixex dins del text de l'element de llista." src="https://mdn.mozillademos.org/files/12958/inner-bullets.png" style="border-style: solid; border-width: 1px; display: block; height: 123px; margin: 0px auto; width: 370px;"></p> + +<h3 id="Ús_duna_imatge_de_vinyeta_personalitzada">Ús d'una imatge de vinyeta personalitzada</h3> + +<p>La propietat {{cssxref("list-style-image")}} et permet fer servir una imatge personalitzada per a la vinyeta. La sintaxi és bastant senzilla:</p> + +<pre class="brush: css notranslate">ul { + list-style-image: url(star.svg); +}</pre> + +<p>Tanmateix, aquesta propietat és una mica limitada en termes de control de la posició, la mida, etc., de les vinyetes. És millor utilitzar la família de propietats {{cssxref("background")}}, que aprendràs amb més detall en el mòdul de <a href="/ca/docs/Learn/CSS/Building_blocks">Aplicar estil a les caixes</a>. De moment, aquí en tens un tast!</p> + +<p>En el nostre exemple acabat, hem aplicat estil a la llista no ordenada d’aquesta manera (a sobre del que ja has vist abans):</p> + +<pre class="brush: css notranslate">ul { + padding-left: 2rem; +} + +ul li { + padding-left: 2rem; + list-style-type: none; + background-image: url(star.svg); + background-position: 0 0; + background-size: 1.6rem 1.6rem; + background-repeat: no-repeat; +}</pre> + +<p>Aquí hem fet el següent:</p> + +<ul> + <li>Hem reduït el valor per defecte del {{cssxref("padding-left")}} de {{htmlelement("ul")}} de <code>40px</code> a <code>20px</code>, i establim la mateixa quantitat per als elements de llista. D’aquesta manera, en general, els elements de llista encara estan alineats amb els elements de llista ordenada i les descripcions de llista de descripció, però els elements de llista tenen un farciment per a poder-hi encabir imatges de fons. Si no ho féssim així, les imatges de fons es superposarien amb el text de l'element de la llista, i es veuria desordenat.</li> + <li>Hem establert el {{cssxref("list-style-type")}} a <code>none</code>, de manera que no aparegui cap vinyeta per defecte. En lloc d’això, utilitzarem les propietats {{cssxref("background")}} per tractar les vinyetes.</li> + <li>Hem inserit una vinyeta en cada element de llista no ordenada. Les propietats rellevants són les següents: + <ul> + <li>{{cssxref("background-image")}}: Especifica la ruta del fitxer d'imatge que vols utilitzar com a vinyeta.</li> + <li>{{cssxref("background-position")}}: Defineix en quin lloc del fons de l'element seleccionat apareix la imatge; en aquest cas, <code>0 0</code>, que significa que la vinyeta apareix a la part superior esquerra de cada element de llista.</li> + <li>{{cssxref("background-size")}}: Estableix la mida de la imatge de fons. Idealment voldríem que les vinyetes tinguessin la mateixa mida que els elements de llista (o lleugerament més petits o més grans). Fem servir una mida de <code>1.6rem</code> (16px), que s'adiu molt bé amb el farciment de <code>20px</code> que hem establert per e encabir-hi la vinyeta; 16 px, més 4 px d'espai entre la vinyeta i el text de l'element de llista funciona bé.</li> + <li>{{cssxref("background-repeat")}}: Per defecte, les imatges de fons es repeteixen fins que omplen l'espai del fons disponible. Només volem que es faci una còpia de la imatge inserida en cada cas, de manera que el fixem en un valor de no-repetició (<code>no-repeat</code>).</li> + </ul> + </li> +</ul> + +<p><span class="short_text" id="result_box" lang="ca">Això ens dona el resultat següent:</span></p> + +<p><img alt="Una llista no ordenada amb vinyetes en forma de petites estrelles." src="https://mdn.mozillademos.org/files/12956/image-bullets.png" style="border-style: solid; border-width: 1px; display: block; height: 106px; margin: 0px auto; width: 124px;"></p> + +<h3 id="La_propietat_abreujada_list-style">La propietat abreujada list-style</h3> + +<p>Les tres propietats anteriors esmentades es poden configurar amb una única propietat abreujada, {{cssxref("list-style")}}. Per exemple, el CSS següent:</p> + +<pre class="brush: css notranslate">ul { + list-style-type: square; + list-style-image: url(example.png); + list-style-position: inside; +}</pre> + +<p>Podria reemplaçar-se per això:</p> + +<pre class="notranslate">ul { + list-style: square url(example.png) inside; +}</pre> + +<p>Els valors es poden incloure en qualsevol ordre, i pots utilitzar-ne un, dos o els tres (els valors predeterminats que s’utilitzen per a les propietats que no s'inclouen són <code>disc</code>, <code>none</code> i <code>outside</code>). Si s'especifica un tipus i una imatge, el tipus s'utilitza com a alternativa si la imatge no es carrega per alguna raó.</p> + +<h2 id="El_control_de_la_numeració_de_les_llistes">El control de la numeració de les llistes</h2> + +<p>De vegades pot ser que vulguis numerar de manera diferent una llista ordenada, per exemple, que comenci a partir d'un número diferent de 1, o bé que compti enrere, o que compti en passos de més d'1. L'HTML i el CSS disposen d’algunes eines que et poden ajudar amb això.</p> + +<h3 id="start">start</h3> + +<p>L'atribut {{htmlattrxref("start", "ol")}} permet iniciar el recompte de la llista a partir d'un número diferent de 1. L’exemple següent:</p> + +<pre class="brush: html notranslate"><ol start="4"> + <li>Toast pitta, leave to cool, then slice down the edge.</li> + <li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> + <li>Wash and chop the salad.</li> + <li>Fill pitta with salad, humous, and fried halloumi.</li> +</ol></pre> + +<p>Dona aquesta sortida:</p> + +<p>{{ EmbedLiveSample('start', '100%', 150) }}</p> + +<h3 id="reversed">reversed</h3> + +<p>L'atribut {{htmlattrxref("reversed","ol")}} inicia la llista comptant cap enrere en comptes de cap endavant. L'exemple següent</p> + +<pre class="brush: html notranslate"><ol start="4" reversed> + <li>Toast pitta, leave to cool, then slice down the edge.</li> + <li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> + <li>Wash and chop the salad.</li> + <li>Fill pitta with salad, humous, and fried halloumi.</li> +</ol></pre> + +<p>Dona aquesta sortida:</p> + +<p>{{ EmbedLiveSample('reversed', '100%', 150) }}</p> + +<h3 id="value">value</h3> + +<p>L'atribut {{htmlattrxref("value", "ol")}} permet establir valors numèrics específics per a cada element de llista. L’exemple següent:</p> + +<pre class="brush: html notranslate"><ol> + <li value="2">Toast pitta, leave to cool, then slice down the edge.</li> + <li value="4">Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> + <li value="6">Wash and chop the salad.</li> + <li value="8">Fill pitta with salad, humous, and fried halloumi.</li> +</ol></pre> + +<p>Dona aquesta sortida:</p> + +<p>{{ EmbedLiveSample('value', '100%', 150) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: Fins i tot si fas servir un valor de {{cssxref("list-style-type")}} no numèric, cal que utilitzis els valors numèrics equivalents per a l'atribut <code>value</code>.</p> +</div> + +<h2 id="Aprenentatge_actiu_Aplicar_estil_a_una_llista_imbricada">Aprenentatge actiu: Aplicar estil a una llista imbricada</h2> + +<p>En aquesta sessió d'aprenentatge actiu, volem que prenguis allò que has après i dissenyis una llista imbricada. T’hem proporcionat un codi HTML, i volem que:</p> + +<ol> + <li>Apliquis vinyetes quadrades als elements de llista no ordenada.</li> + <li>Apliquis als elements de llista no ordenada i els elements de llista ordenada una alçada de línia d'1,5 respecte de la mida de la lletra.</li> + <li>Apliquis als elements de llista ordenada valors de lletra minúscula.</li> + <li>No dubtis de jugar amb l'exemple de llistes tant com vulguis, experimenta amb els tipus de vinyeta, l’espaiat o qualsevol altra cosa que hi trobis.</li> +</ol> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó <em>Reinicia</em>. Si t’encalles, prem el botó <em>Mostra la solució</em> per veure’n una resposta possible.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><div class="body-wrapper" style="font-family: 'Open Sans Light',Helvetica,Arial,sans-serif;"> + <h2>HTML Input</h2> + <textarea id="code" class="html-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"><ul> + <li>First, light the candle.</li> + <li>Next, open the box.</li> + <li>Finally, place the three magic items in the box, in this exact order, to complete the spell: + <ol> + <li>The book of spells</li> + <li>The shiny rod</li> + <li>The goblin statue</li> + </ol> + </li> +</ul></textarea> + + <h2>CSS Input</h2> + <textarea id="code" class="css-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"></textarea> + + <h2>Output</h2> + <div class="output" style="width: 90%;height: 12em;padding: 10px;border: 1px solid #0095dd;overflow: auto;"></div> + <div class="controls"> + <input id="reset" type="button" value="Reset" style="margin: 10px 10px 0 0;"> + <input id="solution" type="button" value="Show solution" style="margin: 10px 0 0 10px;"> + </div> +</div> +</pre> + +<pre class="brush: js notranslate">var htmlInput = document.querySelector(".html-input"); +var cssInput = document.querySelector(".css-input"); +var reset = document.getElementById("reset"); +var htmlCode = htmlInput.value; +var cssCode = cssInput.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +var styleElem = document.createElement('style'); +var headElem = document.querySelector('head'); +headElem.appendChild(styleElem); + +function drawOutput() { + output.innerHTML = htmlInput.value; + styleElem.textContent = cssInput.value; +} + +reset.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = cssCode; + drawOutput(); +}); + +solution.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = 'ul {\n list-style-type: square;\n}\n\nul li {\n line-height: 1.5;\n}\n\nol li {\n list-style-type: lower-alpha\n}'; + drawOutput(); +}); + +htmlInput.addEventListener("input", drawOutput); +cssInput.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 800) }}</p> + +<h2 id="Vegeu_també"><span id="result_box" lang="ca">Vegeu també</span></h2> + +<p>Els comptadors CSS proporcionen eines avançades per a personalitzar el recompte i l'estil de les llistes, però són bastant complexos. Et recomanem que hi facis un cop d'ull si vols ampliar la informació. Vegeu:</p> + +<ul> + <li>{{cssxref("@counter-style")}}</li> + <li>{{cssxref("counter-increment")}}</li> + <li>{{cssxref("counter-reset")}}</li> +</ul> + +<h2 id="Resum">Resum</h2> + +<p>Resulta relativament fàcil de dominar l'aplicació d’estil a les llistes una vegada que en coneixes els principis bàsics associats i les propietats específiques. En l’article següent continuarem amb les tècniques d'estil.</p> + +<p>{{PreviousMenuNext("Learn/CSS/Styling_text/Fundamentals", "Learn/CSS/Styling_text/Styling_links", "Learn/CSS/Styling_text")}}</p> diff --git a/files/ca/learn/css/estilitzar_text/text_fonamental/index.html b/files/ca/learn/css/estilitzar_text/text_fonamental/index.html new file mode 100644 index 0000000000..e258171ffc --- /dev/null +++ b/files/ca/learn/css/estilitzar_text/text_fonamental/index.html @@ -0,0 +1,739 @@ +--- +title: Text fonamental i estil de font +slug: Learn/CSS/Estilitzar_text/Text_fonamental +tags: + - Article + - Beginner + - CSS + - Guide + - Style + - Text + - alignment + - family + - font + - shorthand + - spacing + - weight +translation_of: Learn/CSS/Styling_text/Fundamentals +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/CSS/Styling_text/Styling_lists", "Learn/CSS/Styling_text")}}</div> + +<p class="summary">En aquest article t'iniciem en el viatge cap al domini de l'aplicació d’estil a text amb {{glossary("CSS")}}. Aquí passarem amb detall per tots els fonaments bàsics de l'aplicació d’estil a textos / tipus de lletra, inclosos el gruix, la família i l'estil del tipus de lletra, les propietats abreviades per al tipus de lletra, l'alineació del text i altres efectes, i l’interlineat i l’interlletratge.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, fonaments bàsics d'HTML (consulta l’article <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>), fonaments de CSS (consulta l’article <a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre les propietats i tècniques bàsiques necessàries per a l'aplicació d’estil al text de les pàgines web.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_implica_laplicació_d’estil_al_text_en_CSS">Què implica l'aplicació d’estil al text en CSS?</h2> + +<p>Com ja deus conèixer d’haver treballat amb l’HTML i el CSS, el text dins d'un element es defineix dins de la caixa de contingut de l'element. Comença a la part superior esquerra de l'àrea de contingut (o a la part superior dreta, en el cas de contingut en idiomes RTL, o right-to-left, que s'escriuen de dreta a esquerra) i flueix cap al final de la línia. Quan arriba al final, passa a la línia següent i continua; i després, a la següent línia, fins que tot el contingut s'ha col·locat a la caixa. El contingut de text es comporta en efecte com un seguit d'elements en línia, es distribueix en línies adjacents entre si, i no crea salts de línia fins que s’ateny el final de la línia, o tret que s'obligui a un salt de línia manual de l'element {{htmlelement("br")}}.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si el paràgraf anterior et sembla confós, no t’hi amoïnis, torna enrere i fes un repàs de la teoria del model de caixa que s’explica en l’article <a href="/ca/docs/Learn/CSS/Building_blocks/The_box_model">El model de caixa</a> abans de continuar.</p> +</div> + +<p>Les propietats CSS que s'utilitzen per a escriure text generalment es divideixen en dues categories, que veurem per separat en aquest article:</p> + +<ul> + <li><strong>Els estils dels tipus de lletra</strong>: són les propietats que afecten el tipus de lletra que es fa servir per al text, que afecta el tipus de lletra que s’empra, la mida, els formats de negreta, cursiva, etc.</li> + <li><strong>Els estils de text en el disseny de pàgina</strong>: són les propietats que afecten l'espaiat i altres funcions de disseny de pàgina relacionades amb el text, que permeten la manipulació de, per exemple, l'espai entre línies i lletres, i la manera com s’alinea el text dins de la caixa de contingut.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Tingues en compte que les propietats que afecten el text dins d'un element hi actuen com una única entitat. No pots seleccionar i modificar l'estil de les subseccions de text si no les etiquetes amb un element apropiat (com ara {{htmlelement("span")}} o {{htmlelement("strong")}}) o utilitzes un pseudoelement específic per a text com <a href="/ca/docs/Web/CSS/::first-letter">::first-letter</a> (selecciona la primera lletra del text d'un element), <a href="/ca/docs/Web/CSS/::first-line">::first-line</a> (selecciona la primera línia del text d'un element) o <a href="/ca/docs/Web/CSS/::selection">::selection</a> (selecciona el text que el cursor ressalta en aquell moment).</p> +</div> + +<h2 id="Tipus_de_lletra">Tipus de lletra</h2> + +<p>Continuem endavant per veure les propietats d'estil dels tipus de lletra. En aquest exemple aplicarem algunes propietats CSS diferents a la mateixa mostra d’HTML, que té l’aspecte següent:</p> + +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p></pre> + +<p>Podeu trobar l'<a href="http://mdn.github.io/learning-area/css/styling-text/fundamentals/">exemple acabat en GitHub</a> (vegeu-ne també <a href="https://github.com/mdn/learning-area/blob/master/css/styling-text/fundamentals/index.html">el codi font</a>).</p> + +<h3 id="Color">Color</h3> + +<p>La propietat {{cssxref("color")}} estableix el color del contingut de primer pla dels elements seleccionats (que normalment és el text, però també pot incloure un parell d'altres coses, com ara un subratllat o un sobreratllat en el text, amb la propietat {{cssxref("text-decoration")}}).</p> + +<p>La propietat <code>color</code> pot acceptar qualsevol <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitat de color CSS</a>, per exemple:</p> + +<pre class="brush: css notranslate">p { + color: red; +}</pre> + +<p>Això fa que els paràgrafs es converteixin en vermells, en comptes del negre estàndard per defecte del navegador, així:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p></pre> +</div> + +<p>{{ EmbedLiveSample('Color', '100%', 220) }}</p> + +<h3 id="Famílies_de_tipus_de_lletra">Famílies de tipus de lletra</h3> + +<p>Per a establir un tipus de lletra diferent en el teu text, utilitza la propietat {{cssxref("font-family")}}; això et permet especificar un tipus de lletra (o una llista de tipus de lletra) perquè el navegador l'apliqui als elements seleccionats. El navegador només aplica un tipus de lletra si està disponible en la màquina amb què s’accedeix al lloc web. Si no, només usarà un {{anch("Default fonts", "tipus de lletra predeterminat")}} del navegador. Un exemple senzill és el següent:</p> + +<pre class="brush: css notranslate">p { + font-family: arial; +}</pre> + +<p>Això fa que tots els paràgrafs d'una pàgina adoptin el tipus de lletra Arial, que es troba en qualsevol ordinador.</p> + +<h4 id="Tipus_de_lletra_segurs_per_a_la_xarxa_web">Tipus de lletra segurs per a la xarxa web</h4> + +<p>Parlant de la disponibilitat dels tipus de lletra, només una certa quantitat de tipus de lletra es troben generalment disponibles en tots els sistemes i, per tant, es poden utilitzar sense gaires preocupacions. Són els anomenats <strong>tipus de lletra segurs per a la xarxa web</strong>.</p> + +<p><span id="result_box" lang="ca">La majoria de les vegades, com a desenvolupadors web, volem tenir un control més específic sobre els tipus de lletra que s’utilitzen per a mostrar el contingut del text. El problema és trobar una manera de saber quin tipus de lletra està disponible en l'ordinador que es fa servir per a accedir a les nostres pàgines web. No hi ha manera de saber-ho en tots els casos, però se sap que els tipus de lletra segurs per a la web estan disponibles en gairebé totes les instàncies dels sistemes operatius més utilitzats (Windows, Mac, les distribucions més habituals de Linux, Android i iOS).</span></p> + +<p>La llista de tipus de lletra segurs per a la xarxa web reals canvia a mesura que evolucionen els sistemes operatius, però és convenient considerar els tipus de lletra segurs per a la xarxa web següents, almenys ara com ara (molts d'ells s’han popularitzades gràcies a la iniciativa de Microsoft <em><a href="https://ca.wikipedia.org/wiki/Core_fonts_for_the_Web">Tipus de lletra principals per a la xarxa web</a></em>, de finals dels anys 1990 i principis dels anys 2000):</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Nom</th> + <th scope="col" style="white-space: nowrap;"><span class="short_text" id="result_box" lang="ca"><span>Tipus de lletra genèric</span></span></th> + <th scope="col">Observacions</th> + </tr> + </thead> + <tbody> + <tr> + <td>Arial</td> + <td>sans-serif</td> + <td>Sovint es considera una bona pràctica afegir també el tipus de lletra <em>Helvetica</em> com una alternativa preferent a <em>Arial</em>; encara que són gairebé idèntiques, es considera que <em>Helvetica</em> té una forma més agradable, tot i que <em>Arial</em> està més disponible.</td> + </tr> + <tr> + <td>Courier New</td> + <td>monospace</td> + <td>Hi ha sistemes operatius que tenen una versió alternativa (possiblement més antiga) del tipus de lletra <em>Courier New</em> anomenada <em>Courier</em>. Es considera una bona pràctica utilitzar-les totes dues, amb <em>Courier New</em> com l’opció preferent.</td> + </tr> + <tr> + <td style="white-space: nowrap;">Georgia</td> + <td>serif</td> + <td></td> + </tr> + <tr> + <td style="white-space: nowrap;">Times New Roman</td> + <td>serif</td> + <td>Hi ha sistemes operatius que tenen una versió alternativa (possiblement més antiga) del tipus de lletra <em>Times New Roman</em> anomenada <em>Times</em>. Es considera una bona pràctica utilitzar-les totes dues, amb <em>Times New Roman</em> com l’opció preferent.</td> + </tr> + <tr> + <td>Trebuchet MS</td> + <td>sans-serif</td> + <td>Has de tenir cura amb l'ús d'aquest tipus de lletra perquè no està àmpliament disponible en sistemes operatius mòbils.</td> + </tr> + <tr> + <td>Verdana</td> + <td>sans-serif</td> + <td></td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: Entre els diversos recursos, el lloc web <a href="http://www.cssfontstack.com/">cssfontstack.com</a> manté una llista de tipus de lletra segurs per a la web disponibles en sistemes operatius Windows i macOS, que poden ajudar-te a prendre la decisió sobre el que consideris segur per al teu ús.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Hi ha una manera de descarregar un tipus de lletra personalitzat juntament amb una pàgina web, que et permet personalitzar l'ús del tipus de lletra de la manera que vulguis: <strong>web fonts</strong>. Això és una mica més complex, i ho exposarem en un <a href="/ca/docs/Learn/CSS/Estilitzar_text/Fonts_Web">article separat</a> més endavant en el mòdul.</p> +</div> + +<h4 id="Tipus_de_lletra_predeterminats">Tipus de lletra predeterminats</h4> + +<p>CSS defineix cinc noms genèrics per als tipus de lletra: <code>serif</code>, <code>sans-serif</code>, <code>monospace</code>, <code>cursive</code> i <code>fantasy</code>. Són noms molt genèrics i l’aspecte exacte del tipus de lletra usat quan s'utilitzen aquests noms genèrics correspon a cada navegador i pot variar per a cada sistema operatiu amb què s'executa. Representa un pitjor escenari, en què el navegador tracta de fer el possible per a oferir almenys un tipus de lletra que es consideri adequat. <code>serif</code>, <code>sans-serif</code> i <code>monospace</code> són bastant previsibles i han de proporcionar alguna cosa raonable. D'altra banda, <code>cursive</code> i <code>fantasy</code> són menys previsibles i et recomanem utilitzar-les amb molta cura i provar-les cada vegada.</p> + +<p>Els cinc noms es defineixen de la manera següent:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Nom</th> + <th scope="col">Definició</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>serif</code></td> + <td>Tipus de lletra que tenen serifes (les floritures i altres petits detalls que es veuen en els extrems dels traços en algunes tipografies).</td> + <td><span style="font-family: serif;">My big red elephant</span></td> + </tr> + <tr> + <td><code>sans-serif</code></td> + <td>Tipus de lletra que no tenen serifes.</td> + <td><span style="font-family: sans-serif;">My big red elephant</span></td> + </tr> + <tr> + <td><code>monospace</code></td> + <td>Tipus de lletra en què cada caràcter ocupa la mateixa amplada, normalment s’utilitza en les llistes d’instruccions que constitueixen el codi informàtic.</td> + <td><span style="font-family: monospace;">My big red elephant</span></td> + </tr> + <tr> + <td><code>cursive</code></td> + <td>Tipus de lletra que tenen com a objectiu emular l'escriptura manuscrita, amb moviments fluids i connectats.</td> + <td><span style="font-family: cursive;">My big red elephant</span></td> + </tr> + <tr> + <td><code>fantasy</code></td> + <td>Tipus de lletra amb intencions decoratives.</td> + <td><span style="font-family: fantasy;">My big red elephant</span></td> + </tr> + </tbody> +</table> + +<h4 id="Llistes_de_tipus_de_lletra">Llistes de tipus de lletra</h4> + +<p>Com que no pots garantir la disponibilitat dels tipus de lletra que vols utilitzar en les teves pàgines web (fins i tot un tipus de lletra segur per a la xarxa web <em>podria</em> fallar per alguna raó), pots proporcionar una <strong>llista de tipus de lletra</strong> perquè el navegador tingui diversos tipus de lletra per poder triar. Això només implica introduir un atribut <code>font-family</code> amb un valor que consti de diversos noms de tipus de lletra separats per comes, per exemple:</p> + +<pre class="brush: css notranslate">p { + font-family: "Trebuchet MS", Verdana, sans-serif; +}</pre> + +<p>En aquest cas, el navegador comença pel principi de la llista i mira si el primer tipus de lletra està disponible en la màquina. Si és així, s'aplica aquesta font als elements seleccionats. En cas contrari, es passa al tipus de lletra següent, i així successivament.</p> + +<p>És recomanable proporcionar al final de la llista un nom de tipus de lletra genèric que sigui adequat perquè el navegador pugui almenys proporcionar alguna cosa adequada aproximada si cap dels tipus de lletra de la llista estan disponibles. Per il·lustrar aquest punt, els navegadors presenten els paràgrafs en un tipus de lletra serifa predeterminada, que normalment és Times New Roman, si no hi ha cap altra opció disponible; però això no és bo quan s’espera un tipus de lletra sans-serif!</p> + +<div class="note"> +<p><strong>Nota</strong>: Els noms dels tipus de lletra que tenen més d'una paraula, com <code>Trebuchet MS</code> s’han d’escriure entre cometes.</p> +</div> + +<h4 id="Un_exemple_de_font-family"><span id="result_box" lang="ca">Un exemple de <code>font-family</code></span></h4> + +<p><span id="result_box" lang="ca">Afegim les línies següents al nostre exemple anterior per a donar als paràgrafs un tipus de lletra sans-serif</span>:</p> + +<pre class="brush: css notranslate">p { + color: red; + font-family: Helvetica, Arial, sans-serif; +}</pre> + +<p><span id="result_box" lang="ca">Això ens dona el resultat següent</span>:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p></pre> +</div> + +<p>{{ EmbedLiveSample('Un_exemple_de_font-family', '100%', 220) }}</p> + +<h3 id="La_mida_de_la_lletra"><span id="result_box" lang="ca">La mida de la lletra</span></h3> + +<p>En l'article de <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">valors i unitats en CSS</a> del mòdul anterior, hem revisat les <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitats de longitud i mida</a>. La mida de la lletra (que s’estableix amb la propietat {{cssxref("font-size")}} pot prendre valors que es mesuren en la majoria d'aquestes unitats (i d’altres, com ara <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS#Percentatges">percentatges</a>), però les unitats més comunes que faràs servir per a la mida del text són:</p> + +<ul> + <li><code>px</code> (píxels): L’alçada expressada en nombre de píxels que vols que tingui el text. Aquesta és una unitat absoluta; dona sempre el mateix valor final calculat per al tipus de lletra de la pàgina en qualsevol situació.</li> + <li><code>em</code>: 1 <code>em</code> és igual a la mida de la lletra que s’ha establert per al tipus de lletra de l'element pare de l'element al qual apliquem estil (més concretament, l'amplada d'una lletra M majúscula continguda dins de l'element pare). Això pot arribar a ser complicat de calcular si hi ha molts elements imbricats amb mides de tipus de lletra establertes diferents, però és factible, com veuràs a continuació. Així, doncs, per què t’ha de preocupar? Resulta força natural una vegada que t’hi acostumes i pots fer servir unitats <code>em</code> per a dimensionar-ho tot, no només text. Pots tenir un lloc web complet definit amb mides en unitats <code>em</code>, i així se simplifica molt el manteniment.</li> + <li><code>rem</code>: Aquestes unitats funcionen igual que les unitats <code>em</code>, excepte que 1 <code>rem</code> és igual a la mida de lletra del tipus de lletra que s’ha establert per a l'element arrel del document (és a dir, {{htmlelement("html")}}), no l'element pare. Això facilita força els càlculs per a esbrinar la mida de la lletra, però malauradament les unitats <code>rem</code> no són compatibles amb Internet Explorer 8 o anteriors. Si necessites compatibilitat amb navegadors antics per al teu projecte, pots utilitzar unitats <code>em</code> o <code>px</code>, o bé utilitzar un {{glossary("polyfill")}} com <a href="https://github.com/chuckcarpenter/REM-unit-polyfill">REM-unit-polyfill</a>.</li> +</ul> + +<p>L’atribut <code>font-size</code> d'un element s'hereta de l'element pare d'aquest element. Tot comença amb l'element arrel del document, {{htmlelement("html")}}, en què l’atribut <code>font-size</code> està establert en 16 px de manera estàndard en els navegadors. Qualsevol paràgraf (o un altre element que no tingui una mida diferent establerta pel navegador) de l'interior de l'element arrel tindrà una mida final de 16 px. Altres elements poden tenir mides predeterminades diferents, per exemple, un element {{htmlelement("h1")}} té una mida de 2 <code>em</code> establerta per defecte, de manera que tindrà una mida final de 32 píxels.</p> + +<p>Les coses es tornen més difícils quan es comença a alterar la mida del tipus de lletra dels elements imbricats. Per exemple, si en la teva pàgina hi ha un element {{htmlelement("article")}} i hi estableixes la mida del tipus de lletra en 1,5 <code>em</code> (que donaria una mida final de 24 px), i llavors vols que els paràgrafs de dins de l'element <code><article></code> tinguin una mida de lletra computada de 20 px, quin valor <code>em</code> hem d’utilitzar?</p> + +<pre class="brush: html notranslate"><!-- document base font-size is 16px --> +<article> <!-- If my font-size is 1.5em --> + <p>My paragraph</p> <!-- How do I compute to 20px font-size? --> +</article></pre> + +<p>Hauràs d'establir el valor <code>em</code> en 20/24 o 0,83333333 <code>em</code>. Els càlculs poden complicar-se, de manera que cal tenir cura a l’hora de com aplicar estils. El millor és utilitzar unitats <code>rem</code> on puguis per mantenir les coses senzilles i evitar establir la mida de la lletra dels elements del contenidor quan sigui possible.</p> + +<h4 id="Un_exemple_senzill_de_dimensionament">Un exemple senzill de dimensionament</h4> + +<p>Quan dimensiones el teu text, normalment és una bona idea establir l’atribut base <code>font-size</code> del document en 10 px, de manera que resulta molt més senzill de fer els càlculs, perquè llavors els valors <code>(r)em</code> són la mida de la lletra en píxels dividida per 10, no per 16. A continuació, pots dimensionar fàcilment els diferents tipus de text del document si ho vols. És una bona idea fer una llista de tot el conjunt de regles <code>font-size</code> en una zona determinada del teu full d'estil, i així són fàcils de trobar.</p> + +<p>El nostre nou resultat és així:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> +</div> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 2.6rem; +} + +p { + font-size: 1.4rem; + color: red; + font-family: Helvetica, Arial, sans-serif; +}</pre> + +<p>{{ EmbedLiveSample('Un_exemple_senzill_de_dimensionament', '100%', 220) }}</p> + +<h3 id="Estils_i_gruixos_de_lletra_transformacions_i_decoracions_del_text"><span id="result_box" lang="ca">Estils i gruixos de lletra, transformacions i decoracions del text</span></h3> + +<p>CSS proporciona quatre propietats comunes per a alterar el gruix visual / l’èmfasi del text:</p> + +<ul> + <li>{{cssxref("font-style")}}: s'utilitza per a activar i desactivar el text en cursiva. Els valors possibles són els següents (rarament es farà servir això, tret que vulgueu desactivar algun estil de cursiva per alguna raó): + <ul> + <li><code>normal</code>: Estableix per al text el tipus de lletra normal (activa les cursives).</li> + <li><code>italic</code>: Estableix per al text l’ús de la <em>versió cursiva del tipus de lletra</em>, si està disponible; si no està disponible, simula la cursiva amb <code>oblique</code>.</li> + <li><code>oblique</code>: Estableix per al text l’ús d’una versió simulada d'un tipus de lletra en cursiva, creada <em>inclinant la versió normal</em>.</li> + </ul> + </li> + <li>{{cssxref("font-weight")}}: estableix el "pes" del text. Això té molts valors disponibles en cas que hi hagi moltes variants de fonts disponibles (com ara -<em>light</em>, -<em>normal</em>, -<em>bold</em>, -<em>extrabold</em>, -<em>black</em>, etc.), però en una situació realista poques vegades n’usaràs cap, excepte per a <code>normal</code> i <code>bold</code>: + <ul> + <li><code>normal</code>, <code>bold</code>: Gruix dels tipus de lletra normal i negreta</li> + <li><code>lighter</code>, <code>bolder</code>: Estableix la intensitat de negreta en un element un nivell més lleu o més intens que la intensitat de negreta de l'element pare.</li> + <li><code>100</code>–<code>900</code>: Valors numèrics d'intensitat de negreta que proporcionen un control de gra més fi que les paraules clau anteriors, si cal.</li> + </ul> + </li> + <li>{{cssxref("text-transform")}}: Et permet configurar el tipus de transformació que admet el tipus de lletra. Els valors inclouen: + <ul> + <li><code>none</code>: Evita qualsevol transformació.</li> + <li><code>uppercase</code>: Transforma TOT EL TEXT A MAJÚSCULES.</li> + <li><code>lowercase</code>: Transforma tot el text a minúscules.</li> + <li><code>capitalize</code>: Transforma totes les paraules perquè tinguin La Primera Lletra en Majúscula.</li> + <li><code>full-width</code>: Transforma tots els glifs de manera que s'escriuen dins d'un quadrat d'amplada fixa, similar a un tipus de lletra monoespaiada, i permet l'alineació de, per ex., caràcters llatins juntament amb glifs de llengua asiàtica (com el xinès, el japonès, el coreà).</li> + </ul> + </li> + <li>{{cssxref("text-decoration")}}: Activa/desactiva les decoracions de text en els tipus de lletra (s'utilitza principalment per a desfer el subratllat predeterminat dels enllaços en aplicar-los estil). Els valors disponibles són: + <ul> + <li><code>none</code>: Anul·la qualsevol decoració de text ja present.</li> + <li><code>underline</code>: <u>Subratlla el text</u>.</li> + <li><code>overline</code>: <span style="text-decoration: overline;">Posa una línia sobre el text</span>.</li> + <li><code>line-through</code>: Posa una <s style="text-decoration: line-through;">ratlla sobre el text</s>.</li> + </ul> + </li> +</ul> + +<p>Cal tenir en compte que {{cssxref("text-decoration")}} pot acceptar diversos valors alhora, si vols afegir diverses decoracions alhora; per exemple, <span style="text-decoration: underline overline;"><code>text-decoration: underline overline</code></span>. Tingues en compte que {{cssxref("text-decoration")}} és una propietat abreujada per a {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-style")}} i {{cssxref("text-decoration-color")}}. Pots utilitzar les combinacions d'aquests valors de propietat per a crear efectes interessants, per exemple, <span style="text-decoration: line-through red wavy;"><code>text-decoration: line-through red wavy</code></span></p> + +<p>Observem com afegir un parell d'aquestes propietats al nostre exemple:</p> + +<p>El resultat és aquest:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> +</div> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 2.6rem; + text-transform: capitalize; +} + +h1 + p { + font-weight: bold; +} + +p { + font-size: 1.4rem; + color: red; + font-family: Helvetica, Arial, sans-serif; +}</pre> + +<p>{{ EmbedLiveSample('Estils_i_gruixos_de_lletra_transformacions_i_decoracions_del_text', '100%', 220) }}</p> + +<h3 id="Ombres_en_el_text">Ombres en el text</h3> + +<p>Pots aplicar ombres al text amb la propietat {{cssxref("text-shadow")}}. Això involucra fins a quatre valors, com es mostra en l'exemple següent:</p> + +<pre class="brush: css notranslate">text-shadow: 4px 4px 5px red;</pre> + +<p>Les quatre propietats són:</p> + +<ol> + <li>El desplaçament horitzontal de la silueta del text original: pot prendre la majoria de les <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitats de longitud i grandària</a> disponibles en CSS, però el més convenient és usar <code>px</code>. Aquest valor s'ha d'incloure.</li> + <li>El desplaçament vertical de la silueta del text original: es comporta bàsicament igual que el desplaçament horitzontal, excepte que mou l'ombra amunt i avall, no a dreta i esquerra. Aquest valor s'ha d'incloure.</li> + <li>El radi d'esborronat: un valor més alt significa que l'ombra es dispersa més àmpliament. Si aquest valor no s'inclou, el valor predeterminat és 0, que significa que no s’esborrona. Pot prendre la majoria de les <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitats de longitud i grandària</a> disponibles en CSS.</li> + <li>El color base de l'ombra: pot prendre qualsevol <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitat de color CSS</a>. Si no s'inclou, el valor predeterminat és <code>black</code>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Els valors de desplaçament positius mouen l'ombra cap a la dreta i cap avall, però també pots utilitzar valors de desplaçament negatius per a moure l'ombra cap a l'esquerra i cap amunt, com per exemple <code>-1px -1px</code>.</p> +</div> + +<h4 id="Ombres_múltiples">Ombres múltiples</h4> + +<p>Pots aplicar diverses ombres a un mateix text si inclous més d’un valor d'ombra separats per comes, per exemple:</p> + +<pre class="brush: css notranslate"><code class="language-css"><span class="property token">text-shadow</span><span class="punctuation token">:</span> -<span class="number token">1</span>px -<span class="number token">1</span>px <span class="number token">1</span>px <span class="hexcode token">#aaa</span>, + <span class="number token">0</span>px <span class="number token">4</span>px <span class="number token">1</span>px <span class="function token">rgba</span><span class="punctuation token">(</span><span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0.5</span><span class="punctuation token">)</span>, + <span class="number token">4</span>px <span class="number token">4</span>px <span class="number token">5</span>px <span class="function token">rgba</span><span class="punctuation token">(</span><span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0.7</span><span class="punctuation token">)</span>, + <span class="number token">0</span>px <span class="number token">0</span>px <span class="number token">7</span>px <span class="function token">rgba</span><span class="punctuation token">(</span><span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0</span>,<span class="number token">0.4</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre> + +<p>Si apliquem això a l'element {{htmlelement("h1")}} del nostre exemple de Tommy the cat, obtenim això:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 26px; + text-transform: capitalize; + text-shadow: -1px -1px 1px #aaa, + 0px 2px 1px rgba(0,0,0,0.5), + 2px 2px 2px rgba(0,0,0,0.7), + 0px 0px 3px rgba(0,0,0,0.4); +} + +h1 + p { + font-weight: bold; +} + +p { + font-size: 14px; + color: red; + font-family: Helvetica, Arial, sans-serif; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Ombres_múltiples', '100%', 220) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: Pots veure més exemples interessants d'ús de <code>text-shadow</code> en l'article de Sitepoint <a href="http://www.sitepoint.com/moonlighting-css-text-shadow/">Moonlighting with CSS text-shadow</a>.</p> +</div> + +<h2 id="Disseny_de_pàgina_del_text">Disseny de pàgina del text</h2> + +<p>Ara que ja coneixem les propietats bàsiques dels tipus de lletra, passem a veure les propietats del text que podem utilitzar que afecten el disseny de pàgina.</p> + +<h3 id="Alineació_del_text">Alineació del text</h3> + +<p>La propietat {{cssxref("text-align")}} s'utilitza per a controlar com s'alinea el text dins de la caixa que conté els continguts. Els valors disponibles són els següents i funcionen gairebé de la mateixa manera que ho fa una aplicació de processador de text normal:</p> + +<ul> + <li><code>left</code>: Justifica el text a l'esquerra.</li> + <li><code>right</code>: Justifica el text a la dreta.</li> + <li><code>center</code>: Centra el text.</li> + <li><code>justify</code>: Varia els espais entre les paraules perquè totes les línies de text ocupin la mateixa amplada. Cal utilitzar-lo amb cura; pot presentar un aspecte terrible, sobretot quan s'aplica a un paràgraf amb paraules molt llargues. Si fas servir aquesta propietat, has de pensar d’utilitzar-hi també conjuntament alguna altra cosa, com ara {{cssxref("hyphens")}}, per partir les paraules més llargues al final de línia.</li> +</ul> + +<p>Si s'aplica <code>text-align: center;</code> a l’{{htmlelement("h1")}} en el nostre exemple, obtenim això:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 2.6rem; + text-transform: capitalize; + text-shadow: -1px -1px 1px #aaa, + 0px 2px 1px rgba(0,0,0,0.5), + 2px 2px 2px rgba(0,0,0,0.7), + 0px 0px 3px rgba(0,0,0,0.4); + text-align: center; +} + +h1 + p { + font-weight: bold; +} + +p { + font-size: 1.4rem; + color: red; + font-family: Helvetica, Arial, sans-serif; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Alineació_del_text', '100%', 220) }}</p> + +<h3 id="Interlineat">Interlineat</h3> + +<p>La propietat {{cssxref("line-height")}} estableix l'alçada que hi ha entre les línies de text. Pot prendre la majoria de les <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitats de longitud i grandària</a>, però també un valor sense unitat, que actua com un multiplicador, i generalment es considera l’opció més bona; es multiplica el valor de {{cssxref("font-size")}} i s’obté <code>line-height</code>. El text del <code>body</code> en general es veu més bé i és més fàcil de llegir si les línies estan prou separades. L'alçada de la línia recomanada és d'aproximadament 1,5-2 (doble espai). Per tant, si vols establir les línies de text a 1,6 vegades l'alçada del tipus de lletra, utilitzaries això:</p> + +<pre class="brush: css notranslate">line-height: 1.6;</pre> + +<p>Si apliques això als elements {{htmlelement("p")}} del nostre exemple, obtindràs aquest resultat:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 2.6rem; + text-transform: capitalize; + text-shadow: -1px -1px 1px #aaa, + 0px 2px 1px rgba(0,0,0,0.5), + 2px 2px 2px rgba(0,0,0,0.7), + 0px 0px 3px rgba(0,0,0,0.4); + text-align: center; +} + +h1 + p { + font-weight: bold; +} + +p { + font-size: 1.4rem; + color: red; + font-family: Helvetica, Arial, sans-serif; + line-height: 1.5; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Interlineat', '100%', 250) }}</p> + +<h3 id="Espaiat_entre_lletres_i_entre_paraules">Espaiat entre lletres i entre paraules</h3> + +<p>Les propietats {{cssxref("spacing-letter")}} i {{cssxref("word-spacing")}} permeten establir l'espaiat entre lletres i l'espaiat entre paraules en el text. No ho faràs amb gaire freqüència, però potser ho trobes útil per a obtenir un cert tipus de presentació o per millorar la llegibilitat d'un tipus de lletra especialment densa. Pot prendre la majoria de les <a href="/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS">unitats de longitud i grandària</a>.</p> + +<p>Així, per exemple, podríem aplicar una mica d’espai entre lletres i espai entre paraules a la primera línia de cada element {{htmlelement("p")}} del nostre exemple:</p> + +<pre class="brush: css notranslate">p::first-line { + letter-spacing: 4px; + word-spacing: 4px; +}</pre> + +<p>Afegim-ne una mica al nostre exemple, així:</p> + +<div class="hidden"> +<pre class="brush: html notranslate"><h1>Tommy the cat</h1> + +<p>I remember as if it were a meal ago...</p> + +<p>Said Tommy the Cat as he reeled back to clear whatever foreign matter + may have nestled its way into his mighty throat. Many a fat alley rat +had met its demise while staring point blank down the cavernous barrel of + this awesome prowling machine. Truly a wonder of nature this urban +predator — Tommy the cat had many a story to tell. But it was a rare +occasion such as this that he did.</p> +</pre> + +<pre class="brush: css notranslate">html { + font-size: 10px; +} + +h1 { + font-size: 2.6rem; + text-transform: capitalize; + text-shadow: -1px -1px 1px #aaa, + 0px 2px 1px rgba(0,0,0,0.5), + 2px 2px 2px rgba(0,0,0,0.7), + 0px 0px 3px rgba(0,0,0,0.4); + text-align: center; +} + +h1 + p { + font-weight: bold; +} + +p::first-line { + letter-spacing: 2px; + word-spacing: 4px; +} + +p { + font-size: 1.4rem; + color: red; + font-family: Helvetica, Arial, sans-serif; + line-height: 1.5; +}</pre> +</div> + +<p>{{ EmbedLiveSample('Espaiat_entre_lletres_i_entre_paraules', '100%', 250) }}</p> + +<h3 id="Altres_propietats_que_convé_conèixer"><span id="result_box" lang="ca"><span title="Other properties worth looking at">Altres propietats que convé conèixer</span></span></h3> + +<p>Les propietats anteriors et donen una idea de com començar a aplicar estil al text d’una pàgina web, però hi ha moltes altres propietats que es poden utilitzar. Aquí només hem volgut exposar les més importants. Un cop t’hagis acostumat a fer-les servir, també hauries d'explorar les següents:</p> + +<p>Estils per als tipus de lletra:</p> + +<ul> + <li>{{cssxref("font-variant")}}: Alterna entre la versaleta i la lletra normal</li> + <li>{{cssxref("font-kerning")}}: Activa i desactiva les opcions de kerning del tipus de lletra.</li> + <li>{{cssxref("font-feature-settings")}}: Activa i desactiva diverses característiques dels tipus de lletra <a href="https://en.wikipedia.org/wiki/OpenType">OpenType</a>.</li> + <li>{{cssxref("font-variant-alternates")}}: Controla l'ús de caràcters alternatius per a un tipus de lletra determinat.</li> + <li>{{cssxref("font-variant-caps")}}: Controla l'ús de caràcters alternatius en majúscules.</li> + <li>{{cssxref("font-variant-east-asian")}}: Controla l'ús de caràcters alternatius per a textos en caràcters de llengües de l'Àsia oriental, com ara el japonès i el xinès.</li> + <li>{{cssxref("font-variant-ligatures")}}: Controla les lligadures i les formes contextuals que s'utilitzen en text.</li> + <li>{{cssxref("font-variant-numeric")}}: Controla l'ús de glifs alternatius per a números, fraccions i marcadors ordinaris.</li> + <li>{{cssxref("font-variant-position")}}: Controla l'ús de caràcters alternatius de mides més petites posicionades com superíndex o subíndex.</li> + <li>{{cssxref("font-size-adjust")}}: Ajusta la mida visual del tipus de lletra independentment de la mida real de la lletra.</li> + <li>{{cssxref("font-stretch")}}: Alterna entre versions espaiades alternatives possibles d'un tipus de lletra donat.</li> + <li>{{cssxref("text-underline-position")}}: Especifica la posició dels subratllats amb el valor <code>underline</code> de la propietat <code>text-decoration-line</code>.</li> + <li>{{cssxref("text-rendering")}}: Intenta aconseguir una optimització de la presentació del text.</li> +</ul> + +<p>Aplicació d’estil al text per al disseny de pàgina</p> + +<ul> + <li>{{cssxref("text-indent")}}: Especifica quant d’espai horitzontal s'hauria de deixar abans del començament de la primera línia del contingut del text.</li> + <li>{{cssxref("text-overflow")}}: Defineix com s’indica als usuaris el contingut desbordat que no es mostra.</li> + <li>{{cssxref("white-space")}}: Defineix com es tracten els espais en blanc i els salts de línia associats dins de l'element.</li> + <li>{{cssxref("word-break")}}: Especifica si vols partició de paraules entre línies.</li> + <li>{{cssxref("direction")}}: Defineix la direcció del text (això depèn de l’idioma i, en general, és millor deixar que HTML s’encarregui d’aquesta part, perquè va associada al contingut del text).</li> + <li>{{cssxref("hyphens")}}: Activa i desactiva la partició de paraules per als idiomes admesos.</li> + <li>{{cssxref("line-break")}}: Relaxa o força la partició de línies per a les llengües asiàtiques.</li> + <li>{{cssxref("text-align-last")}}: Defineix com s'alinea l'última línia d'un bloc o una línia, just abans d'un salt de línia forçat.</li> + <li>{{cssxref("text-orientation")}}: Defineix l'orientació del text en una línia.</li> + <li>{{cssxref("word-wrap")}}: Especifica si el navegador pot partir o no paraules entre línies per a evitar desbordaments.</li> + <li>{{cssxref("writing-mode")}}: Estableix si les línies de text estan en horitzontal o vertical, i en quina direcció flueixen les línies posteriors.</li> +</ul> + +<h2 id="Propietat_abreujada_per_al_tipus_de_lletra">Propietat abreujada per al tipus de lletra</h2> + +<p>També es poden establir moltes propietats de tipus de lletra amb la propietat abreujada {{cssxref("font")}}. S’escriuen en l’ordre següent: {{cssxref("font-style")}}, {{cssxref("font-variant")}}, {{cssxref("font-weight")}}, {{cssxref("font-stretch")}}, {{cssxref("font-size")}}, {{cssxref("line-height")}} i {{cssxref("font-family")}}.</p> + +<p>Entre totes aquestes propietats, només es requereixen <code>font-size</code> i <code>font-family</code> quan s'utilitza la propietat abreujada <code>font</code>.</p> + +<p>S'ha d'incloure una barra diagonal entre les propietats {{cssxref("font-size")}} i {{cssxref("line-height")}}.</p> + +<p>Un exemple complet tindria un aspecte com aquest:</p> + +<pre class="brush: css notranslate">font: italic normal bold normal 3em/1.5 Helvetica, Arial, sans-serif;</pre> + +<h2 id="Aprenentatge_actiu_Jugar_amb_els_estils_de_text"><span id="result_box" lang="ca">Aprenentatge actiu: Jugar amb els estils de text</span></h2> + +<p>En aquesta sessió d'aprenentatge actiu, no et proposem de fer cap exercici específic: et proposem que juguis amb algunes propietats del tipus de lletra i el text aplicades al disseny de pàgina i observis què ets capaç de crear. Pots fer-ho usant els fitxers HTML/CSS fora de línia, o pots introduir el teu codi en l'exemple editat en viu a continuació.</p> + +<p>Si t’equivoques, sempre pots tornar a l’inici amb el botó <em>Reinicia</em>.</p> + +<div class="hidden"> +<h6 id="Codi_executable">Codi executable</h6> + +<pre class="brush: html notranslate"><div class="body-wrapper" style="font-family: 'Open Sans Light',Helvetica,Arial,sans-serif;"> + <h2>HTML Input</h2> + <textarea id="code" class="html-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"> + <p>Some sample text for your delight</p></textarea> + + <h2>CSS Input</h2> + <textarea id="code" class="css-input" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;">p { + + }</textarea> + + <h2>Output</h2> + <div class="output" style="width: 90%;height: 10em;padding: 10px;border: 1px solid #0095dd;"></div> + <div class="controls"> + <input id="reset" type="button" value="Reset" style="margin: 10px 10px 0 0;"> + </div> +</div> +</pre> + +<pre class="brush: js notranslate">var htmlInput = document.querySelector(".html-input"); +var cssInput = document.querySelector(".css-input"); +var reset = document.getElementById("reset"); +var htmlCode = htmlInput.value; +var cssCode = cssInput.value; +var output = document.querySelector(".output"); + +var styleElem = document.createElement('style'); +var headElem = document.querySelector('head'); +headElem.appendChild(styleElem); + +function drawOutput() { + output.innerHTML = htmlInput.value; + styleElem.textContent = cssInput.value; +} + +reset.addEventListener("click", function() { + htmlInput.value = htmlCode; + cssInput.value = cssCode; + drawOutput(); +}); + +htmlInput.addEventListener("input", drawOutput); +cssInput.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Codi_executable', 700, 800) }}</p> + +<h2 id="Resum"><span id="result_box" lang="ca">Resum</span></h2> + +<p>Esperem que hagis gaudit jugant amb el text d’aquest article! L’article següent t’explicarà tot el que has de saber sobre l’aplicació d'estil a llistes HTML.</p> + +<p>{{NextMenu("Learn/CSS/Styling_text/Styling_lists", "Learn/CSS/Styling_text")}}</p> diff --git a/files/ca/learn/css/first_steps/com_començar_amb_css/index.html b/files/ca/learn/css/first_steps/com_començar_amb_css/index.html new file mode 100644 index 0000000000..dfc1ae29b3 --- /dev/null +++ b/files/ca/learn/css/first_steps/com_començar_amb_css/index.html @@ -0,0 +1,254 @@ +--- +title: Com començar amb CSS +slug: Learn/CSS/First_steps/Com_començar_amb_CSS +translation_of: Learn/CSS/First_steps/Getting_started +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/First_steps/What_is_CSS", "Learn/CSS/First_steps/How_CSS_is_structured", "Learn/CSS/First_steps")}}</div> + +<p class="summary">En aquest article, agafarem un document HTML senzill i hi aplicarem una mica de CSS per aprendre algunes coses pràctiques sobre aquest llenguatge informàtic.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Comprendre els fonaments bàsics d’enllaçar un document CSS a un fitxer HTML i poder crear un text simple amb CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Començar_amb_lHTML">Començar amb l'HTML</h2> + +<p>El nostre punt de partida és un document HTML. Pots copiar el codi de sota si vols treballar al teu propi ordinador. Desa el codi de sota com a <code>index.html</code> en una carpeta de l'ordinador.</p> + +<pre class="brush: html notranslate"><!doctype html> +<html lang="ca"> +<head> + <meta charset="utf-8"> + <title>Introducció al CSS</title> +</head> + +<body> + + <h1>Sóc un títol de nivell u</h1> + + <p>Aquest és un paràgraf de text. Al text hi ha un <span>element span</span> +i també un enllaç <a href="http://example.com">link</a>.</p> + + <p>Aquest és el segon paràgraf. Conté un element <em>subratllat</em>.</p> + + <ul> + <li>Article 1</li> + <li>Article 2</li> + <li>Article <em>tres</em></li> + </ul> + +</body> + +</html> +</pre> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Si llegeixes això en un dispositiu o en un entorn on no pots crear fitxers fàcilment, no et preocupis: a continuació es mostren editors de codi en directe per a escriure un exemple de codi aquí a la pàgina.</p> +</div> + +<h2 id="Afegir_CSS_al_nostre_document">Afegir CSS al nostre document</h2> + +<p>El primer que hem de fer és dir al document HTML que tenim unes regles CSS que volem que utilitzi. Habitualment trobaràs tres maneres diferents d’aplicar CSS a un document HTML, però de moment examinarem la manera més comuna i útil: enllaçar el CSS des de la capçalera del document.</p> + +<p>Crea un fitxer a la mateixa carpeta que el teu document HTML i desa’l com <code>styles.css</code>. L’extensió <code>.css</code> mostra que es tracta d’un fitxer CSS.</p> + +<p>Per a enllaçar <code>styles.css</code> a <code>index.html</code>, afegeix la línia següent en algun lloc de la capçalera ({{htmlelement("head")}}) del document HTML:</p> + +<pre class="brush: html notranslate"><link rel="stylesheet" href="styles.css"></pre> + +<p>Aquest element {{htmlelement("link")}} indica al navegador que hi ha un full d'estil i utilitza l'atribut <code>rel</code> i la ubicació d'aquest full d'estil com a valor de l'atribut <code>href</code>. Pots provar si funciona el CSS afegint una regla a <code>styles.css</code>. Fent servir l'editor de codi, afegeix el següent al fitxer CSS:</p> + +<pre class="brush: css notranslate">h1 { + color: red; +}</pre> + +<p>Desa els fitxers HTML i CSS i torna a carregar la pàgina en un navegador web. Ara el títol d’encapçalament de primer nivell a la part superior del document s'ha de veure de color vermell. Si això succeeix, enhorabona: has aplicat amb èxit una mica de CSS a un document HTML. Si això no passa, comprova ho has escrit tot correctament.</p> + +<p>Pots continuar treballant amb <code>styles.css</code> localment, o bé pots utilitzar el nostre editor interactiu, que trobaràs a continuació, per continuar amb aquest tutorial. L’editor interactiu actua com si el CSS del primer quadre estigués vinculat al document HTML, tal com passa amb el nostre document anterior.</p> + +<h2 id="Aplicar_estil_als_elements_HTML">Aplicar estil als elements HTML</h2> + +<p>En tornar el títol vermell, ja hem demostrat que podem seleccionar un element HTML i aplicar-hi estil. Ho fem delimitant un <em>selector d’elements</em>: un seleccionador que coincideix directament amb un nom d’element HTML. Per a seleccionar tots els paràgrafs del document, utilitzaries el selector <code>p</code>. Per a convertir tots els paràgrafs en verd, faries servir:</p> + +<pre class="brush: css notranslate">p { + color: green; +}</pre> + +<p>Pots seleccionar diversos selectors alhora, separats amb una coma. Si volem que tots els paràgrafs i tots els elements de la llista siguin verds, la regla ha de ser la següent:</p> + +<pre class="brush: css notranslate">p, li { + color: green; +}</pre> + +<p>Prova-ho a l’editor interactiu següent (edita els quadres de codi) o al teu document CSS local.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/getting-started/started1.html", '100%', 900)}} </p> + +<h2 id="Canviar_el_comportament_predeterminat_dels_elements">Canviar el comportament predeterminat dels elements</h2> + +<p>Quan observem un document HTML ben marcat, fins i tot una cosa tan simple com el nostre exemple, podem veure que el navegador afegeix algun estil per defecte per fer que l’HTML sigui llegible. Els títols són grans i en lletra negreta i la nostra llista inclou vinyetes. Això passa perquè els navegadors tenen fulls d’estil interns que contenen estils predeterminats que s’apliquen per defecte a totes les pàgines; sense això no hi hauria distincions dins el text i hauríem d’aplicar estil a tot des de zero. Tots els navegadors moderns mostren el contingut HTML de la mateixa manera per defecte.</p> + +<p>Tanmateix, sovint voldràs alguna cosa que no sigui la tria que ha fet el navegador. Això es pot fer escollint només l’element HTML que vols canviar i fent servir una regla CSS per a canviar-ne l’aspecte. Un bon exemple és <code><ul></code>, que marca una llista no ordenada. Mostra boletes en els elements de llista, però si decideixo que no les vull, les puc eliminar:</p> + +<pre class="brush: css notranslate">li { + list-style-type: none; +}</pre> + +<p>Prova d’afegir això al teu CSS.</p> + +<p>És una bona opció consultar la propietat <code>list-style-type</code> a la pàgina de MDN per veure quins valors admet. Per provar uns valors diferents, dona una ullada a la pàgina <code><a href="/en-US/docs/Web/CSS/list-style-type">list-style-type</a></code>, on trobaràs un exemple interactiu a la part superior de la pàgina i, a continuació, es detallen tots els valors que s’admeten.</p> + +<p>Si consultes aquesta pàgina, descobriràs que, a banda d’eliminar les vinyetes de la llista, també les pots canviar: prova de canviar-les per vinyetes quadrades amb el valor <code>square</code>.</p> + +<h2 id="Afegir_una_classe">Afegir una classe</h2> + +<p>Fins al moment hem dissenyat elements basats en els seus noms en HTML. Això funciona sempre que vulguis que tots els elements d’aquest tipus del document presentin el mateix aspecte. Moltes vegades no és el cas, així que hauràs de trobar la manera de seleccionar un subconjunt dels elements sense canviar els altres. La manera més habitual de fer-ho és afegir una classe a l'element HTML i delimitar aquesta classe.</p> + +<p>Al teu document HTML, afegeix un <a href="/ca/docs/Web/HTML/Global_attributes/class">atribut de classe</a> al segon element de la llista. La teva llista ara es veurà així:</p> + +<pre class="brush: html notranslate"><ul> + <li>Article 1</li> + <li <strong>class="special"</strong>>Item two</li> + <li>Article <em>tres</em></li> +</ul></pre> + +<p>Al teu CSS pots seleccionar la classe <code>special</code> creant un selector que comenci amb un punt. Afegeix el següent al teu fitxer CSS:</p> + +<pre class="brush: css notranslate">.special { + color: orange; + font-weight: bold; +}</pre> + +<p>Desa i actualitza per veure quin és el resultat.</p> + +<p>Pots aplicar la classe <code>special</code> a qualsevol element de la pàgina que vulguis que tingui el mateix aspecte que aquesta llista. Per exemple, potser vols que l’element <code><span></code> del paràgraf també es vegi de color taronja i en negreta. Prova d’afegir-hi una classe <code>special</code> i torna a carregar la pàgina, i observa què passa.</p> + +<p>De vegades veuràs regles amb un selector que enumera el selector d’elements HTML juntament amb la classe:</p> + +<pre class="brush: css notranslate">li.special { + color: orange; + font-weight: bold; +}</pre> + +<p>Aquesta sintaxi vol dir «selecciona qualsevol element <code>li</code> que tingui una classe <code>special</code>». Si ho fas així, ja no podràs aplicar la classe a un element <code><span></code> o qualsevol altre element simplement afegint-hi la classe; hauràs d’afegir aquest element a la llista de selectors:</p> + +<pre class="brush: css notranslate">li.special, +span.special { + color: orange; + font-weight: bold; +}</pre> + +<p>Com pots imaginar, algunes classes podrien aplicar-se a molts elements i no vols haver d’editar el CSS cada vegada que calgui adoptar un estil nou. Per tant, de vegades és millor deixar de banda l’element i simplement fer referència a la classe, tret que sàpigues que vols crear algunes regles especials per a un sol element i potser vols assegurar-te que no s’apliquen a altres coses.</p> + +<h2 id="Aplicar_estil_en_funció_de_la_ubicació_en_un_document">Aplicar estil en funció de la ubicació en un document</h2> + +<p>Hi ha vegades que voldràs que alguna cosa sembli diferent segons el lloc en què es troba dins el document. Hi ha diversos selectors que poden ajudar en aquesta situació, però ara per ara només ens fixarem en un parell. Al nostre document hi ha dos elements <code><em></code>: un dins d’un paràgraf i l’altre dins d’una llista. Per a seleccionar només un <code><em></code> que estigui situat dins d'un element <code><li></code>, pots utilitzar un selector anomenat <strong>combinador de descendents</strong>, que simplement pren la forma d'un espai entre dos altres selectors.</p> + +<p>Afegeix la regla següent al teu full d’estil.</p> + +<pre class="brush: css notranslate">li em { + color: rebeccapurple; +}</pre> + +<p>Aquest selector seleccionarà qualsevol element <code><em></code> que es trobi dins un (descendent de) <code><li></code>. Per tant, al document d’exemple, hauries de trobar que el <code><em></code> de l’element de la tercera llista és morat, però el que hi ha dins del paràgraf no canvia.</p> + +<p>Una altra cosa que potser t'agradaria provar és aplicar estil a un paràgraf que surt immediatament després d'un títol d’encapçalament del mateix nivell de jerarquia de l'HTML. Per fer-ho, col·loca un <code>+</code> (un <strong>combinador de germans adjacents</strong>) entre els selectors.</p> + +<p>Prova d'afegir aquesta regla al teu full d'estil, també:</p> + +<pre class="brush: css notranslate">h1 + p { + font-size: 200%; +}</pre> + +<p>L'exemple en directe següent inclou les dues regles anteriors. Prova d'afegir una regla perquè un element <code>span</code> es mostri de color vermell si és dins d'un element paràgraf. Sabràs que ho has fet bé si element <code>span</code> del primer paràgraf és vermell, però el que apareix al primer element de llista no canvia de color.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/getting-started/started2.html", '100%', 1100)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Com pots veure, el CSS ens ofereix diverses maneres de seleccionar elements, i fins ara només n’hem gratat la superfície! Analitzarem amb detall tots aquests selectors i molts més en els nostres articles sobre <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS">selectors</a> que trobaràs més endavant en el curs.</p> +</div> + +<h2 id="Aplicar_estil_en_funció_de_l’estat">Aplicar estil en funció de l’estat</h2> + +<p>El darrer tipus d’aplicació d’estil que analitzarem en aquest article és la capacitat d’aplicar estil a les coses en funció del seu estat. Un exemple senzill d’això són els enllaços. Quan dissenyem un enllaç, hem de seleccionar l’element <code><a href="/en-US/docs/Web/HTML/Element/a"><a></a></code> (<em>anchor</em>). Això té diferents estats en funció de si no s’ha visitat, s’ha visitat, s’hi passa pel damunt, se selecciona amb el teclat o s'hi fa clic (s’activa). Pots fer servir el CSS per a dirigir-te a aquests estats diferents: el CSS que trobaràs a continuació estableix els enllaços no visitats en rosa, i els visitats en verd.</p> + +<pre class="brush: css line-numbers language-css notranslate"><code class="language-css"><span class="selector token">a<span class="pseudo-class token">:link</span></span> <span class="punctuation token">{</span> + <span class="property token">color</span><span class="punctuation token">:</span> pink<span class="punctuation token">;</span> +<span class="punctuation token">}</span> + +<span class="selector token">a<span class="pseudo-class token">:visited</span></span> <span class="punctuation token">{</span> + <span class="property token">color</span><span class="punctuation token">:</span> green<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>Pots canviar l'aparença de l'enllaç quan l'usuari hi col·loca el punter a sobre, per exemple, eliminar-ne el subratllat, que s'aconsegueix amb la regla següent:</p> + +<pre class="brush: css line-numbers language-css notranslate"><code class="language-css"><span class="selector token">a<span class="pseudo-class token">:hover</span></span> <span class="punctuation token">{</span> + <span class="property token">text-decoration</span><span class="punctuation token">:</span> none<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<p>A l’exemple en directe següent pots jugar amb diferents valors per als diversos estats d’un enllaç. Hi hem afegit les regles anteriors, i ens adonem que el color rosa és força clar i difícil de llegir; per què no el canviem per un color que vagi més bé? Es poden posar els enllaços en negreta?</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/getting-started/started3.html", '100%', 900)}} </p> + +<p>Hem eliminat el subratllat del nostre enllaç quan s’hi passa el punter del ratolí per sobre. Pots eliminar el subratllat de tots els estats d’un enllaç. Val la pena recordar, però, que en un lloc web real, vols que els visitants sàpiguen que un enllaç és un enllaç. Deixar el subratllat a lloc pot ser una pista important perquè la gent s’adoni que pot fer clic en un text dins d’un paràgraf; aquest és el comportament al qual estan acostumats. Com tot en CSS, amb els canvis es pot fer que el document sigui menys accessible; tractarem de posar en evidència els entrebancs potencials en els llocs adequats.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: sovint veuràs que en aquests articles i en l’MDN es menciona <a href="/ca/docs/Learn/Accessibility">l'accessibilitat</a>. Quan parlem d’accessibilitat ens referim al requisit que les nostres pàgines web siguin comprensibles i utilitzables per tothom.</p> + +<p>El teu visitant pot entrar a la pàgina web des d'un ordinador amb un ratolí o un <em>trackpad</em>, o des d’un telèfon amb pantalla tàctil. O potser utilitza un lector de pantalla que llegeix el contingut del document; o necessita utilitzar una mida de lletra del text molt més gran; o bé navega pel lloc web només amb el teclat.</p> + +<p>Un document HTML senzill és en general accessible per a tothom, i a l'hora d’aplicar estil a aquest document, és important que no el facis menys accessible.</p> +</div> + +<h2 id="Combinar_selectors_i_combinadors">Combinar selectors i combinadors</h2> + +<p>Val la pena assenyalar que pots combinar diversos selectors i combinadors. Per exemple:</p> + +<pre class="brush: css notranslate">/* selecciona qualsevol <span> que estigui dins d'un <p>, que està dins d'un <article> */ +article p span { ... } + +/* Selecciona qualsevol <p> que vagi directament després d'un <ul>, que vagi directament després d'un <h1> */ +h1 + ul + p { ... }</pre> + +<p>També pots combinar diversos tipus. Intenta afegir el següent al teu codi:</p> + +<pre class="brush: css notranslate">body h1 + p .special { + color: yellow; + background-color: black; + padding: 5px; +}</pre> + +<p>Aplicarà estil a qualsevol element amb una classe <code>special</code> que es trobi dins d’un element <code><p></code>, que vingui just després d’un element <code><h1></code>> que es trobi dins del <code><body></code>. Uf!</p> + +<p>A l'HTML original que t’hem proporcionat, l'únic element amb estil és <code><span class="special"></code>.</p> + +<p>No et preocupis si et sembla complicat en aquest moment, començaràs a entendre-ho ben aviat de seguida que treballis més amb el CSS.</p> + +<h2 id="Tancant">Tancant</h2> + +<p>En aquest tutorial hem analitzat diverses maneres d’aplicar estil a un document amb CSS. Anirem desenvolupant aquests coneixements a mesura que avancem amb la resta d'articles. Tanmateix, ja en coneixes prou per a aplicar estil al text, aplicar CSS a partir de diferents maneres de seleccionar els elements del document i cercar propietats i valors en la documentació MDN.</p> + +<p>Al proper article analitzarem com s’estructura el CSS.</p> + +<p>{{PreviousMenuNext("Learn/CSS/First_steps/What_is_CSS", "Learn/CSS/First_steps/How_CSS_is_structured", "Learn/CSS/First_steps")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS">Què és el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Getting_started">Primers passos amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured">Com s'estructura el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_works">Com funciona el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Using_your_new_knowledge">Aplica els teus nous coneixements</a></li> +</ol> diff --git a/files/ca/learn/css/first_steps/com_estructurar_el_css/index.html b/files/ca/learn/css/first_steps/com_estructurar_el_css/index.html new file mode 100644 index 0000000000..6c216af68c --- /dev/null +++ b/files/ca/learn/css/first_steps/com_estructurar_el_css/index.html @@ -0,0 +1,512 @@ +--- +title: Com estructurar el CSS +slug: Learn/CSS/First_steps/Com_estructurar_el_CSS +translation_of: Learn/CSS/First_steps/How_CSS_is_structured +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/CSS/First_steps/Getting_started", "Learn/CSS/First_steps/How_CSS_works", "Learn/CSS/First_steps")}}</div> + +<p class="summary">Ara que tens una idea sobre què és el CSS i les bases de com fer-lo servir, és hora d’aprofundir una mica més en l’estructura pròpia del llenguatge. Ja hem vist molts dels conceptes que s'esmenten en aquest article; pots recapitular si t’entrebanques amb els conceptes que et trobes a partir d’ara.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>) i nocions de <a href="/ca/docs/Learn/CSS/First_steps/Com_funciona_el_CSS">com funciona el CSS</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre amb detall les estructures de sintaxi fonamentals del CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Aplicar_CSS_a_lHTML">Aplicar CSS a l'HTML</h2> + +<p>El primer que analitzarem són els tres mètodes d’aplicació del CSS a un document.</p> + +<h3 id="Fulls_d’estils_externs">Fulls d’estils externs</h3> + +<p>En l’article <a href="/ca/docs/Learn/CSS/First_steps/Com_començar_amb_CSS">Primers passos amb el CSS</a> hem enllaçat un full d’estil extern a la nostra pàgina. Aquest és el mètode més comú i útil d’adjuntar CSS a un document perquè pots enllaçar el CSS a diverses pàgines, cosa que et permet d’aplicar-hi estil a totes amb el mateix full d’estil. En la majoria dels casos, les diverses pàgines d’un lloc web presentaran un aspecte molt semblant i, per tant, pots utilitzar el mateix conjunt de regles per a la presentació bàsica.</p> + +<p>Un full d’estil extern és quan el CSS està escrit en un fitxer independent amb l’extensió <code>.css</code> i s'hi fa referència des d’un element HTML <code><link></code>:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>El meu experiment amb CSS</title> + <link rel="stylesheet" href="styles.css"> + </head> + <body> + <h1>Hola món!</h1> + <p>Aquest és el meu primer exemple amb CSS</p> + </body> +</html></pre> + +<p>El fitxer CSS podria presentar un aspecte així:</p> + +<pre class="brush: css notranslate">h1 { + color: blue; + background-color: yellow; + border: 1px solid black; +} + +p { + color: red; +}</pre> + +<p>L'atribut <code>href</code> de l'element {{htmlelement ("link")}} necessita fer referència a un fitxer del sistema de fitxers.</p> + +<p>A l'exemple anterior, el fitxer CSS es troba a la mateixa carpeta que el document HTML, però el pots col·locar en un altre lloc i ajustar la ruta especificada per a adaptar-s’hi, per exemple:</p> + +<pre class="brush: html notranslate"><!-- Dins d’un subdirector anomenat styles dins del directori actual --> +<link rel="stylesheet" href="styles/style.css"> + +<!-- Dins d’un subdirector anomenat general, que es troba en un subdirector anomenat styles, dins del directori actual --> +<link rel="stylesheet" href="styles/general/style.css"> + +<!-- Puja un nivell de directori i, a continuació, a un subdirector anomenat styles --> +<link rel="stylesheet" href="../styles/style.css"></pre> + +<h3 id="Fulls_d’estil_interns">Fulls d’estil interns</h3> + +<p>Un full d’estil intern és on no hi ha cap fitxer CSS extern, sinó que el CSS se situa dins d’un element {{htmlelement("style")}} que hi ha dins de l’HTML {{htmlelement("head")}}.</p> + +<p>Així doncs, l’HTML quedaria així:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>El meu experiment amb CSS</title> + <style> + h1 { + color: blue; + background-color: yellow; + border: 1px solid black; + } + + p { + color: red; + } + </style> + </head> + <body> + <h1>Hola món!</h1> + <p>Aquest és el meu primer exemple amb CSS</p> + </body> +</html></pre> + +<p>Això pot ser útil en algunes circumstàncies (potser treballes amb un sistema de gestió de continguts en què no pots modificar els fitxers CSS directament), però no és tan eficient com els fulls d'estil externs; en un lloc web, el CSS s'hauria de canviar individualment a cada pàgina i actualitzar-se en diversos llocs si s’hi haguessin de fer canvis.</p> + +<h3 id="Estils_en_línia">Estils en línia</h3> + +<p>Els estils en línia són declaracions CSS que afecten només un element, que està contingut dins d'un atribut <code>style</code>:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>El meu experiment amb CSS </title> + </head> + <body> + <h1 style="color: blue;background-color: yellow;border: 1px solid black;">Hola món!</h1> + <p style="color:red;">Aquest és el meu primer exemple amb CSS</p> + </body> +</html></pre> + +<p><strong>Si et plau, no ho facis!, tret que realment ho hagis de fer.</strong> És molt dolent per al manteniment (potser hauràs d’actualitzar la mateixa informació diverses vegades per cada document) i també barreges la informació de presentació del CSS amb la informació d’estructuració de l’HTML, i dificultes la llegibilitat i comprensió del codi. Mantenir diferents tipus de codificació separats permet una feina molt més fàcil a tots aquells que treballen en el codi.</p> + +<p>Hi ha llocs web en què els estils en línia són més comuns, o fins i tot recomanables. Pot ser que hagis de recórrer a utilitzar-los si el teu entorn de treball és molt restrictiu (potser el teu CMS només et permet editar el cos de l'HTML). També veuràs que s’utilitzen molt al correu electrònic per a obtenir compatibilitat amb tants clients de correu electrònic com sigui possible.</p> + +<h2 id="Jugar_amb_el_CSS_en_aquest_article">Jugar amb el CSS en aquest article</h2> + +<p>En aquest article hi ha molt de CSS. Per fer-ho, et recomanem que creïs un directori/carpeta al teu ordinador i, a dins, hi creïs una còpia dels dos fitxers següents:</p> + +<p><strong>index.html:</strong></p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html lang="ca"> + <head> + <meta charset="utf-8"> + <title>El meu experiment amb CSS</title> + <link rel="stylesheet" href="styles.css"> + </head> + <body> + + <p>Crea el teu HTML de prova aquí</p> + + </body> +</html></pre> + +<p><strong>styles.css:</strong></p> + +<pre class="brush: css notranslate">/* Crea el teu CSS de prova aquí */ + +p { + color: red; +}</pre> + +<p>Aleshores, quan vulguis experimentar amb un CSS, substitueix el contingut del <code><body></code> de l’HTML per un altre HTML, i comença per afegir el codi CSS per a donar-hi estil dins del fitxer CSS.</p> + +<p>Si no utilitzes un sistema amb què puguis crear fitxers fàcilment, pots utilitzar l'editor interactiu següent per experimentar.</p> + +<p>{{EmbedGHLiveSample("css-examples/learn/getting-started/experiment-sandbox.html", '100%', 800)}}</p> + +<p>Continua i diverteix-te!</p> + +<h2 id="Selectors">Selectors</h2> + +<p>No es pot parlar de CSS sense parlar de selectors, i ja n'hem descobert diversos tipus al tutorial de <a href="/ca/docs/Learn/CSS/First_steps/Com_començar_amb_CSS">Primers passos amb el CSS</a>. Un selector és la manera amb què seleccionem alguna cosa del document HTML per a aplicar-hi estils. Si els teus estils no s’apliquen, és probable que el selector no coincideixi amb el que creus que hauria de coincidir.</p> + +<p>Cada regla CSS comença amb un selector o una llista de selectors que indica al navegador a quin element o elements han d’aplicar-se les regles. Totes les mostres següents són exemples de selectors o llistes de selectors vàlids.</p> + +<pre class="brush: css notranslate">h1 +a:link +.manythings +#onething +* +.box p +.box p:first-child +h1, h2, .intro</pre> + +<p><strong>Prova de crear algunes regles CSS que utilitzin els selectors anteriors i algun codi HTML al qual aplicar-hi els estils. Si no saps què significa alguna de les sintaxis anterior, prova de buscar-la a MDN.</strong></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Aprendràs molt més sobre els selectors als nostres tutorials <a href="/ca/docs/Learn/CSS/Building_blocks/Selectors_CSS">Selectors CSS</a>, al mòdul següent.</p> +</div> + +<h3 id="Especificitat">Especificitat</h3> + +<p>Sovint hi haurà escenaris en què dos selectors podrien seleccionar el mateix element HTML. Considera el full d’estil següent, en què hi ha una regla amb un selector <code>p</code> que mostrarà els paràgrafs de color blau, i també una classe que mostrarà els elements seleccionats de color vermell.</p> + +<pre class="brush: css notranslate">.special { + color: red; +} + +p { + color: blue; +}</pre> + +<p>Diguem que al document HTML hi ha un paràgraf amb una classe <code>special</code>. Totes dues regles es podrien aplicar; quina guanyaria? De quin color creus que es veurà el nostre paràgraf?</p> + +<pre class="brush: html notranslate"><p class="special">De quin color sóc?</p></pre> + +<p>El llenguatge CSS té regles per a controlar quina regla guanyarà en cas de collisió; s'anomenen <strong>cascada</strong> i <strong>especificitat</strong>. Al bloc de codi següent hem definit dues regles per al selector <code>p</code>, però el paràgraf acaba sent de color blau. Això és perquè la declaració que hauria de fer que es veiés de color blau apareix més tard al full d’estil, i els estils posteriors anul·len els anteriors. És la cascada en acció.</p> + +<pre class="brush: css notranslate">p { + color: red; +} + +p { + color: blue; +}</pre> + +<p>Tanmateix, en el cas del nostre exemple anterior, amb el selector de classes i el selector d’elements, la classe guanya, i el paràgraf es veu de color vermell, encara que apareix abans en el full d’estil. Es diu que una classe és més específica, o té més especificitat, que un selector d’elements, de manera que guanya.</p> + +<p><strong>Prova l'experiment anterior: afegeix el codi HTML al teu experiment i, a continuació, afegeix les dues regles <code>p { ... }</code> al teu full d'estil. A continuació, canvia el primer selector de <code>p</code> per <code>.special</code> i observa com canvia l’estil.</strong></p> + +<p>Les regles d’especificitat i cascada poden semblar una mica complicades al principi, però són més fàcils d’entendre a mesura que s'avança amb el CSS. A l'article <a href="/ca/docs/Learn/CSS/Building_blocks/Cascada_i_herència">Cascada i herència</a>, al qual accediràs al mòdul següent, s'explica amb més detall, entre altres coses, la manera de calcular l’especificitat. Ara per ara, només has de recordar que existeix, i que és possible que de vegades el CSS no s'apliqui tal com esperes perquè alguna cosa del full d'estil té una especificitat més alta. Identificar que hi ha més d'una regla que pot aplicar-se a un element és el primer pas per a solucionar aquests problemes.</p> + +<h2 id="Propietats_i_valors">Propietats i valors</h2> + +<p>El CSS consta de dos blocs de construcció bàsics:</p> + +<ul> + <li><strong>Propietats</strong>: Són identificadors que indiquen quines són les característiques d’estil (per exemple, <code><a href="/en-US/docs/Web/CSS/font-size">font-size</a></code>, <code><a href="/en-US/docs/Web/CSS/width">width</a></code> o <code><a href="/en-US/docs/Web/CSS/background-color">background-color</a></code>) que es volen canviar.</li> + <li><strong>Valors</strong>: Cada propietat especificada rep un valor, que indica com vols canviar aquestes característiques d’estil (per exemple, quin tipus de lletra, l'amplada o el color de fons que vols).</li> +</ul> + +<p>En la imatge següent es ressalten una sola propietat i el seu valor. El nom de la propietat és <code>color</code> i el valor <code>blue</code>.</p> + +<p><img alt="Una declaració del CSS ressaltada" src="https://mdn.mozillademos.org/files/16498/declaration.png" style="border: 1px solid #cccccc; display: block; height: 218px; margin: 0 auto; width: 471px;"></p> + +<p>Una propietat emparellada amb un valor s'anomena <em>declaració CSS</em>. Les declaracions CSS es posen dins dels <em>blocs de declaració CSS</em>. Aquesta imatge següent mostra el nostre CSS amb el bloc de declaracions ressaltat.</p> + +<p><img alt="Un bloc de declaracions ressaltat" src="https://mdn.mozillademos.org/files/16499/declaration-block.png" style="border: 1px solid #cccccc; display: block; height: 218px; margin: 0 auto; width: 471px;"></p> + +<p>Finalment, els blocs de declaració CSS es combinen amb <em>selectors</em> per a produir <em>conjunts de regles CSS</em> (o <em>regles CSS</em>). La nostra imatge conté dues regles, una per al selector <code>h1</code> i una altra per al selector <code>p</code>. La regla per a <code>h1</code> està ressaltada.</p> + +<p><img alt="La regla per a h1 està ressaltada" src="https://mdn.mozillademos.org/files/16500/rules.png" style="border: 1px solid #cccccc; display: block; height: 218px; margin: 0 auto; width: 471px;"></p> + +<p>Definir propietats CSS amb valors específics és la funció principal del llenguatge CSS. El motor CSS calcula quines declaracions s’apliquen a cada element d’una pàgina per tal de definir-la i donar-hi l’estil adequat.</p> + +<div class="blockIndicator warning"> +<p><strong>Important:</strong> Les propietats i valors de CSS són sensibles a majúscules i minúscules. Cada parella de propietat i valor es separa per un dos punts (:).</p> +</div> + +<p><strong>Prova de cercar diferents valors de les propietats següents i escriu regles CSS que s’apliquin a diferents elements HTML: </strong></p> + +<ul> + <li><strong>{{cssxref("font-size")}}</strong></li> + <li><strong>{{cssxref("width")}}</strong></li> + <li><strong>{{cssxref("background-color")}}</strong></li> + <li><strong>{{cssxref("color")}}</strong></li> + <li><strong>{{cssxref("border")}}</strong></li> +</ul> + +<div class="warning"> +<p><strong>Important</strong>: Si una propietat és desconeguda o si un valor no és vàlid per a una propietat determinada, es considera que la declaració no és vàlida i el motor CSS del navegador la ignora completament.</p> +</div> + +<div class="warning"> +<p><strong>Important</strong>: En CSS (i altres estàndards web) s'ha acceptat l'ortografia nord-americana com a estàndard per a resoldre la incertesa lingüística. Per exemple, la propietat <code>color</code> <em>sempre</em> s'ha d'escriure <code>color</code>. Si n’escrivim la versió britànica <code>colour</code>, no funcionarà.</p> +</div> + +<h3 id="Funcions">Funcions</h3> + +<p>Si bé la majoria dels valors són paraules clau o valors numèrics relativament simples, hi ha alguns valors que prenen la forma d’una funció. Un exemple seria la funció <code>calc()</code>. Aquesta funció permet fer operacions matemàtiques senzilles des del CSS, per exemple:</p> + +<div id="calc_example"> +<pre class="brush: html notranslate"><div class="outer"><div class="box">la caixa interior és de 90% - 30px.</div></div></pre> + +<pre class="brush: css notranslate">.outer { + border: 5px solid black; +} + +.box { + padding: 10px; + width: calc(90% - 30px); + background-color: rebeccapurple; + color: white; +}</pre> +</div> + +<p>Això es presenta així:</p> + +<p>{{EmbedLiveSample('calc_example', '100%', 200)}}</p> + +<p>Una funció consisteix en el nom de la funció i, a continuació, uns parèntesis entre els quals es col·loquen els valors permesos per a aquesta funció. En el cas de l'exemple <code>calc()</code> anterior, volem que l'amplada d'aquesta caixa sigui el 90% de l'amplada del bloc que la conté, menys 30 píxels. No és un valor que es pugui calcular d’antuvi i senzillament introduir-lo en el CSS corresponent, perquè no sabem quin serà aquest 90%. Com en tots els valors, en la pàgina corresponent de MDN hi ha exemples d’ús perquè puguis veure com funciona aquesta funció.</p> + +<p>Un altre exemple serien els diversos valors de {{cssxref("transform")}}, com ara <code>rotate()</code>.</p> + +<div id="transform_example"> +<pre class="brush: html notranslate"><div class="box"></div></pre> + +<pre class="brush: css notranslate">.box { + margin: 30px; + width: 100px; + height: 100px; + background-color: rebeccapurple; + transform: rotate(0.8turn) +}</pre> +</div> + +<p>La sortida del codi anterior és la següent:</p> + +<p>{{EmbedLiveSample('transform_example', '100%', 200)}}</p> + +<p><strong>Prova de cercar diferents valors de les propietats següents i escriu regles CSS que s’apliquin a diferents elements HTML: </strong></p> + +<ul> + <li><strong>{{cssxref("transform")}}</strong></li> + <li><strong>{{cssxref("background-image")}}, en particular valors de gradient</strong></li> + <li><strong>{{cssxref("color")}}, en particular els valors rgb/rgba/hsl/hsla</strong></li> +</ul> + +<h2 id="rules">@rules</h2> + +<p>Les <code><a href="/ca/docs/Web/CSS/At-rule">@rules</a></code> (llegit «at-rules», en anglès) proporcionen instruccions sobre com ha de comportar-se el CSS, o quin CSS s'ha d'aplicar. Algunes <code>@rules</code> són senzilles i es formen només amb el nom de la regla i el valor. Per exemple, per a importar un full d’estil addicional al teu full d’estil CSS principal, pots utilitzar <code>@import</code>:</p> + +<pre class="brush: css notranslate">@import 'styles2.css';</pre> + +<p>Una de les <code>@rules</code> més comunes que trobaràs és <code>@media</code>, que et permet crear <a href="/en-US/docs/Web/CSS/Media_Queries">consultes a mèdia (o media queries, en anglès)</a> per a aplicar CSS només quan determinades condicions són certes (per exemple, quan la resolució de la pantalla està per sobre d’una quantitat determinada, o la pantalla és més ampla que una certa amplada).</p> + +<p>Al CSS següent hi ha un full d’estil que dona a l’element <code><body></code> un color de fons rosat. Tot i això, després utilitzem <code>@media</code> per a crear una secció al nostre full d’estil que només s’aplicarà als navegadors amb una visualització més ampla de 30em. Si el navegador és més ample de 30em, el color de fons serà blau.</p> + +<pre class="brush: css notranslate">body { + background-color: pink; +} + +@media (min-width: 30em) { + body { + background-color: blue; + } +}</pre> + +<p>Trobaràs altres <code>@rules</code> al llarg d’aquests tutorials.</p> + +<p><strong>Prova d’afegir una consulta a un mèdia al teu CSS que canviï els estils en funció de l’amplada de la visualització. Canvia l'amplada de la finestra del navegador per veure’n el resultat.</strong></p> + +<h2 id="Propietats_abreviades">Propietats abreviades</h2> + +<p>Algunes propietats com {{cssxref ("font")}}, {{cssxref ("background")}}, {{cssxref ("padding")}}, {{cssxref ("border")}} i {{cssxref ("margin")}} s’anomenen <strong>propietats abreviades</strong>: això és perquè permeten establir diversos valors de propietat en una sola línia, que estalvia temps i aconsegueix que el codi es vegi més net.</p> + +<p>Per exemple, aquesta línia:</p> + +<pre class="brush: css notranslate">/* En les propietats abreviades de 4 valors, com ara margin i padding, s'apliquen els valors + a la part superior, dreta, inferior, esquerra (en sentit horari des de la part superior). També hi ha altres + propietats abreviades, per exemple les propietats abreviades de 2 valors, que estableixen una àrea de farciment/marge + a la part superior/inferior, a l'esquerra/a la dreta */ +padding: 10px 15px 15px 5px;</pre> + +<p>Fa el mateix que totes aquestes juntes:</p> + +<pre class="brush: css notranslate">padding-top: 10px; +padding-right: 15px; +padding-bottom: 15px; +padding-left: 5px;</pre> + +<p>Mentre que aquesta línia:</p> + +<pre class="brush: css notranslate">background: red url(bg-graphic.png) 10px 10px repeat-x fixed;</pre> + +<p>Fa el mateix que totes aquestes juntes:</p> + +<pre class="brush: css notranslate">background-color: red; +background-image: url(bg-graphic.png); +background-position: 10px 10px; +background-repeat: repeat-x; +background-scroll: fixed;</pre> + +<p>No intentarem ensenyar-les de manera exhaustiva ara; trobaràs molts exemples més endavant en el curs i et recomanem que cerquis més noms de propietats abreviades clau a les nostres <a href="/ca/docs/Web/CSS/Referéncia_CSS">referències CSS</a> per a obtenir-ne més informació.</p> + +<p><strong>Prova d’afegir les declaracions anteriors al teu CSS per veure com afecta a l’estil del teu HTML. Prova d’experimentar amb valors diferents.</strong></p> + +<div class="blockIndicator warning"> +<p><strong>Atenció</strong>: Mentre que les propietats abreviades sovint et permeten ometre els valors, després restabliran els valors que no incloguis als seus valors inicials. D’aquesta manera es garanteix l’ús d’un conjunt de valors coherent. Però et pot confondre si esperes que la propietat abreviada només canviï els valors que has marcat.</p> +</div> + +<h2 id="Comentaris">Comentaris</h2> + +<p>De la mateixa manera que amb l’HTML, et convidem a posar comentaris al teu CSS per a ajudar-te a comprendre com funciona el teu codi en tornar-hi al cap d’uns mesos, i per a ajudar altres que treballin sobre aquest codi.</p> + +<p>Els comentaris en CSS comencen amb <code>/*</code> i acaben amb <code>*/</code>. Al bloc de codi següent hem utilitzat comentaris per marcar l'inici de diverses seccions de codi diferents. És útil per a ajudar-te a orientar-te pel codi a mesura que n’augmenta l’extensió. Cerca els comentaris al teu editor de codi.</p> + +<pre class="brush: css notranslate">/* Manejar una aplicació d’estil als elements bàsics */ +/* -------------------------------------------------------------------------------------------- */ +body { + font: 1em/150% Helvetica, Arial, sans-serif; + padding: 1em; + margin: 0 auto; + max-width: 33em; +} + +@media (min-width: 70em) { + /* Posem en cas especial la mida del tipus de lletra general. En una pantalla gran o en una finestra, + augmentem la mida de la lletra per a facilitar la lectura */ + body { + font-size: 130%; + } +} + +h1 {font-size: 1.5em;} + +/* Manejar elements específics que es troben al DOM */ +/* -------------------------------------------------------------------------------------------- */ +div p, #id:first-line { + background-color: red; + border-radius: 3px; +} + +div p { + margin: 0; + padding: 1em; +} + +div p + p { + padding-top: 0; +}</pre> + +<p>Els comentaris també són útils <em>per a inhabilitar</em> temporalment algunes parts del codi amb finalitats de prova, per exemple, si intentes trobar quina part del teu codi causa un error. A l’exemple següent hem «comentat» (posat com a comentaris) les regles per al selector <code>.special</code>.</p> + +<pre class="brush: css notranslate">/*.special { + color: red; +}*/ + +p { + color: blue; +}</pre> + +<p><strong>Afegeix alguns comentaris al teu CSS per acostumar-te a utilitzar-los.</strong></p> + +<h2 id="Espais_en_blanc">Espais en blanc</h2> + +<p>Els espais en blanc són els espais, els sagnats de text i les línies noves. De la mateixa manera que en l’HTML, el navegador ignora els espais en blanc del teu CSS. El valor dels espais en blanc està en que són molt útils per a millorar la llegibilitat.</p> + +<p>En l'exemple que trobaràs a continuació, cada declaració (i inici/final de regla) és en una línia de text pròpia. Probablement és una bona manera d’escriure el CSS, perquè fa que sigui fàcil de mantenir i d'entendre:</p> + +<pre class="brush: css notranslate">body { + font: 1em/150% Helvetica, Arial, sans-serif; + padding: 1em; + margin: 0 auto; + max-width: 33em; +} + +@media (min-width: 70em) { + body { + font-size: 130%; + } +} + +h1 { + font-size: 1.5em; +} + +div p, +#id:first-line { + background-color: red; + border-radius: 3px; +} + +div p { + margin: 0; + padding: 1em; +} + +div p + p { + padding-top: 0; +} +</pre> + +<p id="Very_compact">Podries escriure exactament el mateix CSS de la manera següent, eliminant-ne la majoria d’espais en blanc. Aquest codi és funcionalment idèntic al del primer exemple, però segur que estàs d’acord que és una mica més feixuc de llegir:</p> + +<pre class="brush: css notranslate">body {font: 1em/150% Helvetica, Arial, sans-serif; padding: 1em; margin: 0 auto; max-width: 33em;} +@media (min-width: 70em) { body {font-size: 130%;} } + +h1 {font-size: 1.5em;} + +div p, #id:first-line {background-color: red; border-radius: 3px;} +div p {margin: 0; padding: 1em;} +div p + p {padding-top: 0;} +</pre> + +<p>La disposició del codi que tries sol ser una preferència personal, tot i que quan comences a treballar en equip, és possible que trobis que l’equip té la seva guia d’estil pròpia que especifica una convenció acordada a seguir.</p> + +<div class="blockIndicator warning"> +<p><strong>Important:</strong> Has de tenir cura amb l’espai en blanc que hi ha d’haver entre una propietat del CSS i el seu valor.</p> +</div> + +<p>Per exemple, les declaracions següents són vàlides en CSS:</p> + +<pre class="brush: css notranslate">margin: 0 auto; +padding-left: 10px;</pre> + +<p>Però les següents no són vàlids:</p> + +<pre class="brush: css notranslate">margin: 0auto; +padding- left: 10px;</pre> + +<p><code>Veus els errors d'espaiat? 0auto</code> no es reconeix com a valor vàlid per a la propietat <code>margin</code> (<code>0</code> i <code>auto</code> són dos valors separats), i el navegador no reconeix <code>padding-</code> com a propietat vàlida. El nom correcte de la propietat (<code>padding-left</code>) ha quedat separat per un espai perdut.</p> + +<p>Sempre t'has d'assegurar de separar valors diferenciats els uns dels altres com a mínim per un espai, però mantenir els noms de la propietat i els valors de propietat junts, com cadenes ininterrompudes.</p> + +<p><strong>Prova de jugar amb espais en blanc al teu CSS per veure què es trenca i què no.</strong></p> + +<h2 id="Què_segueix">Què segueix?</h2> + +<p>És útil entendre una mica com el navegador pren els teus codis HTML i CSS i els converteix en una pàgina web, així que en l’article següent, (<a href="/ca/docs/Learn/CSS/First_steps/Com_funciona_el_CSS">Com funciona el CSS</a>), donarem una ullada a aquest procés.</p> + +<p>{{PreviousMenuNext("Learn/CSS/First_steps/Getting_started", "Learn/CSS/First_steps/How_CSS_works", "Learn/CSS/First_steps")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS">Què és el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Getting_started">Primers passos amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured">Com s'estructura el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_works">Com funciona el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Using_your_new_knowledge">Aplica els teus nous coneixements</a></li> +</ol> diff --git a/files/ca/learn/css/first_steps/com_funciona_el_css/index.html b/files/ca/learn/css/first_steps/com_funciona_el_css/index.html new file mode 100644 index 0000000000..9621d2c21c --- /dev/null +++ b/files/ca/learn/css/first_steps/com_funciona_el_css/index.html @@ -0,0 +1,156 @@ +--- +title: Com funciona el CSS +slug: Learn/CSS/First_steps/Com_funciona_el_CSS +translation_of: Learn/CSS/First_steps/How_CSS_works +--- +<p>{{LearnSidebar}}<br> + {{PreviousMenuNext("Learn/CSS/First_steps/How_CSS_is_structured", "Learn/CSS/First_steps/Using_your_new_knowledge", "Learn/CSS/First_steps")}}</p> + +<p class="summary">Hem après els conceptes bàsics de CSS, per a què serveix i com escriure fulls d'estil senzills. En aquest article veurem com un navegador pren els llenguatges CSS i HTML i els converteix en una pàgina web.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i d'HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre els conceptes bàsics de com el navegador analitza els llenguatges CSS i HTML i què passa quan un navegador troba un CSS que no entén.</td> + </tr> + </tbody> +</table> + +<h2 id="Com_funciona_realment_el_CSS">Com funciona realment el CSS?</h2> + +<p>Quan un navegador mostra un document, ha de combinar el contingut del document amb la informació d’estil. Processa el document en un seguit d'etapes, que enumerarem a continuació. Tingues present que aquesta és una versió molt simplificada de què passa quan un navegador carrega una pàgina web, i que els diversos navegadors gestionen el procés de maneres diferents. Però això és més o menys el que succeeix.</p> + +<ol> + <li>El navegador carrega el codi HTML (per exemple, el rep de la xarxa).</li> + <li>Converteix el codi {{Glossary("HTML")}} en un model d'objectes del document (<em>document object model</em> o {{Glossary("DOM")}}). El DOM representa el document a la memòria de l'ordinador. L’explicarem amb més detall en la secció següent.</li> + <li>El navegador recupera la majoria dels recursos als quals està vinculat el document HTML, com ara imatges i vídeos incrustats... i CSS enllaçats. El JavaScript es tracta una mica més endavant en el procés, i no en parlarem aquí per no embolicar les coses.</li> + <li>El navegador analitza el CSS recuperat i ordena les diferents regles segons els tipus de selector en diferents «cubetes». Per exemple: element, classe, ID, etc. A partir dels selectors que troba, calcula quines regles s’han d’aplicar als nodes del DOM i hi atribueix l’estil segons sigui necessari (aquest pas intermedi s’anomena <em>arbre de renderització</em>).</li> + <li>L'arbre de representació presenta l'estructura en què ha d'aparèixer després que s'apliquin les regles.</li> + <li>La presentació visual de la pàgina es mostra a la pantalla (aquesta etapa s’anomena <em>pintura</em>).</li> +</ol> + +<p>El diagrama següent ofereix una visió senzilla del procés.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/11781/rendering.svg" style="height: auto; max-width: 635px; width: 100%;"></p> + +<h2 id="Sobre_el_DOM">Sobre el DOM</h2> + +<p>Un DOM té una estructura en forma d'arbre. Cada element, atribut i fragment de text del llenguatge de marcatge es converteix en un {{Glossary("Node/DOM","node DOM")}} en l'estructura de l'arbre. Els nodes es defineixen per la seva relació amb els altres nodes del DOM. Alguns elements són pares de nodes secundaris, i els nodes secundaris tenen nodes germans.</p> + +<p>Entendre el DOM t'ajuda a dissenyar, depurar i mantenir el teu CSS perquè el DOM és el lloc on es troba el CSS i el contingut del document. Quan comencis a treballar amb les eines DevTools (o eines del desenvolupador) del navegador, et desplaçaràs pel DOM mentre selecciones els elements per veure quines regles s'apliquen.</p> + +<h2 id="Una_representació_real_del_DOM">Una representació real del DOM</h2> + +<p>En lloc d’una llarga i avorrida explicació, vegem amb un exemple com un fragment HTML es converteix en un DOM.</p> + +<p>Prenguem el codi HTML següent:</p> + +<pre class="brush: html notranslate"><p> + Utilitzem: + <span>Fulls</span> + <span>d'estil</span> + <span>en cascada</span> +</p> +</pre> + +<p>En el DOM, el node que correspon al nostre element <code><p></code> és un element pare. Els nodes fills són un node de text i els tres nodes corresponen als elements <code><span></code>. Els nodes <code>SPAN</code> són també nodes <span style="background-color: #f5f6f5;">pare</span>, i tenen nodes de text com a nodes fill:</p> + +<pre class="notranslate">P +├─ "Utilitzem:" +├─ SPAN +| └─ "Fulls" +├─ SPAN +| └─ "d’estil" +└─ SPAN + └─ "en cascada" +</pre> + +<p>Així és com un navegador interpreta aquest fragment HTML: es confecciona l'arbre DOM anterior i el navegador el representa així:</p> + +<p>{{EmbedLiveSample('Una_representació_real_del_DOM', '100%', 55)}}</p> + +<div class="hidden"> +<pre class="brush: css notranslate">p {margin:0;}</pre> +</div> + +<h2 id="Aplicar_CSS_al_DOM">Aplicar CSS al DOM</h2> + +<p>Suposem que hem afegit una mica de codi CSS al nostre document per a donar-hi estil. Un cop més, l'HTML és el següent:</p> + +<pre class="brush: html notranslate"><p> + Utilitzem: + <span>Fulls</span> + <span>d'estil</span> + <span>en cascada</span> +</p></pre> + +<p>Suposem que hi apliquem el CSS següent:</p> + +<pre class="brush: css notranslate">span { + border: 1px solid black; + background-color: lime; +}</pre> + +<p>El navegador analitza el codi HTML i crea un DOM, i després analitza el CSS. Atès que l'única regla disponible en el CSS té un selector <code>span</code>, el navegador pot ordenar el CSS molt de pressa! Aplica aquesta regla a cadascun dels tres <code><span></code> i després pinta a la pantalla la representació visual final.</p> + +<p>La sortida actualitzada és la següent:</p> + +<p>{{EmbedLiveSample('Aplicar_CSS_al_DOM', '100%', 55)}}</p> + +<p>En el nostre article <a href="/ca/docs/Learn/CSS/Building_blocks/Depurar_el_CSS">Depurar el CSS</a> del mòdul següent, utilitzarem les eines DevTools del navegador per depurar problemes del CSS i coneixerem més sobre com l'interpreta el navegador.</p> + +<h2 id="Què_passa_si_un_navegador_es_troba_amb_CSS_que_no_entén">Què passa si un navegador es troba amb CSS que no entén?</h2> + +<p><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS#Browser_support">En un article anterior</a> hem esmentat que no tots els navegadors implementen el CSS al mateix temps. A més, molta gent no utilitza la versió més recent del navegador. Tenint en compte que el CSS està en desenvolupament constant i, per tant, va per davant del que els navegadors poden reconèixer, et podries preguntar què passa si un navegador troba un selector CSS o una declaració que no reconeix.</p> + +<p>La resposta és que no fa res i només passa a la declaració CSS següent.</p> + +<p>Si un navegador analitza les teves regles i troba una propietat o un valor que no entén, l'ignora i passa a la declaració següent. Ho fa si has comès un error i has escrit malament una propietat o un valor, o si la propietat o el valor són massa recents i el navegador encara no és compatible.</p> + +<p>De la mateixa manera, si un navegador troba un selector que no entén, ignora tota la regla i passa a la següent.</p> + +<p>En l’exemple següent hem utilitzat l’ortografia britànica per a la propietat del color, cosa que invalida aquesta propietat perquè no es reconeix. Per tant, el paràgraf no es veu de color blau. Tots els altres CSS s'han aplicat; només s’ignora la línia no vàlida.</p> + +<div id="Skipping_example"> +<pre class="brush: html notranslate"><p>Vull que aquest text sigui gran, en negreta i blau.</p></pre> + +<pre class="brush: css notranslate">p { + font-weight: bold; + colour: blue; /* Ortografia incorrecta de la propietat color */ + font-size: 200%; +}</pre> +</div> + +<p>{{EmbedLiveSample('Skipping_example', '100%', 200)}}</p> + +<p>Aquest comportament és molt útil. Significa que pots utilitzar el CSS nou com una millora, perquè no es produirà cap error si no s’entén: pot ser que el navegador entengui la funció nova, o que no l’entengui. Combinat amb el funcionament en cascada i el fet que els navegadors utilitzen l’últim CSS que es troben en un full d’estil quan hi ha dues regles amb la mateixa especificitat, també pots oferir alternatives per a navegadors que no admeten el CSS nou.</p> + +<p>Això funciona especialment bé quan vols fer servir un valor força nou i no és compatible amb tots els navegadors. Per exemple, alguns navegadors antics no admeten <code>calc()</code> com a valor. Podríem donar una amplada alternativa a una caixa en píxels i després donar una amplada amb un valor <code>calc()</code> de <code>100% - 50px</code>. Els navegadors antics faran servir la versió en píxels i ignoraran la línia sobre <code>calc()</code> perquè no l’entenen. Els navegadors nous interpretaran la línia amb píxels i després la substituiran per la línia amb <code>calc()</code>, perquè la línia apareix més tard en la cascada.</p> + +<pre class="brush: css notranslate">.box { + width: 500px; + width: calc(100% - 50px); +}</pre> + +<p>En articles posteriors analitzarem moltes maneres més de donar compatibilitat a diferents navegadors.</p> + +<h2 id="Per_acabar">Per acabar</h2> + +<p>Ja has acabat aquest mòdul; només hi ha una cosa més per fer. En l’article següent faràs servir els teus nous coneixements per a canviar el disseny d'un exemple i provar una mica de codi CSS en el procés.</p> + +<p>{{PreviousMenuNext("Learn/CSS/First_steps/How_CSS_is_structured", "Learn/CSS/First_steps/Using_your_new_knowledge", "Learn/CSS/First_steps")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS">Què és el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Getting_started">Primers passos amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured">Com s'estructura el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_works">Com funciona el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Using_your_new_knowledge">Aplica els teus nous coneixements</a></li> +</ol> diff --git a/files/ca/learn/css/first_steps/index.html b/files/ca/learn/css/first_steps/index.html new file mode 100644 index 0000000000..a3a11678a2 --- /dev/null +++ b/files/ca/learn/css/first_steps/index.html @@ -0,0 +1,55 @@ +--- +title: CSS first steps +slug: Learn/CSS/First_steps +tags: + - Beginner + - CSS + - Landing + - Learn + - Module + - NeedsTranslation + - TopicStub + - first steps +translation_of: Learn/CSS/First_steps +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">CSS (Cascading Style Sheets) is used to style and lay out web pages — for example, to alter the font, color, size, and spacing of your content, split it into multiple columns, or add animations and other decorative features. This module provides a gentle beginning to your path towards CSS mastery with the basics of how it works, what the syntax looks like, and how you can start using it to add styling to HTML.</p> + +<h2 id="Prerequisites">Prerequisites</h2> + +<p>Before starting this module, you should have:</p> + +<ol> + <li>Basic familiarity with using computers, and using the Web passively (i.e. looking at it, consuming the content.)</li> + <li>A basic work environment set up as detailed in <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software">Installing basic software</a>, and an understanding of how to create and manage files, as detailed in <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files">Dealing with files</a>.</li> + <li>Basic familiarity with HTML, as discussed in the <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introduction to HTML</a> module.</li> +</ol> + +<div class="note"> +<p><strong>Note</strong>: If you are working on a computer/tablet/other device where you don't have the ability to create your own files, you could try out (most of) the code examples in an online coding program such as <a href="http://jsbin.com/">JSBin</a> or <a href="https://glitch.com/">Glitch</a>.</p> +</div> + +<h2 id="Guides">Guides</h2> + +<p>This module contains the following articles, which will take you through all the basic theory of CSS, and provide opportunities for you to test out some skills.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS">What is CSS?</a></dt> + <dd><strong>{{Glossary("CSS")}}</strong> (Cascading Style Sheets) allows you to create great-looking web pages, but how does it work under the hood? This article explains what CSS is, with a simple syntax example, and also covers some key terms about the language.</dd> + <dt><a href="/en-US/docs/Learn/CSS/First_steps/Getting_started">Getting started with CSS</a></dt> + <dd>In this article we will take a simple HTML document and apply CSS to it, learning some practical things about the language along the way.</dd> + <dt><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured">How CSS is structured</a></dt> + <dd>Now that you have an idea about what CSS is and the basics of using it, it is time to look a little deeper into the structure of the language itself. We have already met many of the concepts discussed here; you can return to this one to recap if you find any later concepts confusing.</dd> + <dt><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_works">How CSS works</a></dt> + <dd>We have learned the basics of CSS, what it is for and how to write simple stylesheets. In this lesson we will take a look at how a browser takes CSS and HTML and turns that into a webpage.</dd> + <dt><a href="/en-US/docs/Learn/CSS/First_steps/Using_your_new_knowledge">Using your new knowledge</a></dt> + <dd>With the things you have learned in the last few lessons you should find that you can format simple text documents using CSS, to add your own style to them. This article gives you a chance to do that.</dd> +</dl> + +<h2 id="See_also">See also</h2> + +<dl> + <dt><a href="https://teach.mozilla.org/activities/intermediate-web-lit/">Intermediate Web Literacy 1: Intro to CSS</a></dt> + <dd>An excellent Mozilla foundation course that explores and tests a lot of the skills talked about in the <em>Introduction to CSS</em> module. Learn about styling HTML elements on a webpage, CSS selectors, attributes, and values.</dd> +</dl> diff --git a/files/ca/learn/css/first_steps/que_es_el_css/index.html b/files/ca/learn/css/first_steps/que_es_el_css/index.html new file mode 100644 index 0000000000..b158b8e62e --- /dev/null +++ b/files/ca/learn/css/first_steps/que_es_el_css/index.html @@ -0,0 +1,119 @@ +--- +title: Què és el CSS? +slug: Learn/CSS/First_steps/Que_es_el_CSS +translation_of: Learn/CSS/First_steps/What_is_CSS +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/CSS/First_steps/Getting_started", "Learn/CSS/First_steps")}}</div> + +<p class="summary">Els fulls d'estil en cascada (<strong>{{Glossary("CSS")}}</strong> o cascading style sheets) et permeten crear pàgines web atractives; però, com funcionen realment? Aquest article explica què és el CSS amb un exemple de sintaxi senzilla, i també inclou alguns termes clau sobre aquest llenguatge informàtic.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica, tenir el <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a>, coneixements bàsics de com <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb fitxers</a> i amb HTML (mira <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre què és el CSS.</td> + </tr> + </tbody> +</table> + +<p>Al mòdul <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l'HTML</a> exposem què és l’HTML i com s'utilitza per a etiquetar documents. Aquests documents es podran llegir en un navegador web. Els títols d’encapçalament es veuran més grans que el text normal, els paràgrafs començaran en una línia nova i estaran separats per un espai entre ells. Als enllaços se'ls dona color i es subratllen per a distingir-los de la resta del text. El que veus són els estils predeterminats del navegador: estils molt bàsics que el navegador aplica a l'HTML per a assegurar-se que es pot llegir, fins i tot si l'autor de la pàgina no especifica cap estil explícit.</p> + +<p><img alt="Els estils predeterminats que utilitza un navegador" src="https://mdn.mozillademos.org/files/16493/html-example.png" style="border: 1px solid #cccccc; height: 594px; width: 1385px;"></p> + +<p>No obstant això, Internet seria un lloc avorrit si tots els llocs web fossin així. Amb CSS pots controlar exactament com es veuen els elements HTML al navegador, i presentar el teu etiquetatge amb el disseny que t'agradi.</p> + +<h2 id="Per_a_què_serveix_el_CSS">Per a què serveix el CSS?</h2> + +<p>Com hem comentat anteriorment, el CSS és un llenguatge informàtic que especifica com es presenten els documents als usuaris, com se’ls aplica estil, s’elaboren, etc.</p> + +<p>Un <strong>document</strong> sol ser un fitxer de text estructurat que utilitza un llenguatge d’etiquetatge: {{Glossary("HTML")}} és el més comú, però també en pots trobar d'altres com ara {{Glossary("SVG")}} or {{Glossary("XML")}}.</p> + +<p><strong>Presentar</strong> un document a un usuari significa convertir-lo en una forma que el públic pugui fer servir. Els {{Glossary("browser","navegadors")}} com {{Glossary("Mozilla Firefox","Firefox")}}, {{Glossary("Google Chrome","Chrome")}} o {{Glossary("Microsoft Edge","Edge")}} estan dissenyats per a presentar documents visualment, per exemple, en una pantalla d'ordinador, un projector o una impressora.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: De vegades, als navegadors se'ls anomena {{Glossary("User agent","agents d'usuari")}}, que significa bàsicament un programa informàtic que representa a una persona dins d'un sistema informàtic. Els navegadors són el principal tipus d’agent d’usuari en què pensem quan parlem de CSS, però no són l’únic. Hi ha altres agents d'usuari disponibles, com els que converteixen documents HTML i CSS en PDF per a imprimir.</p> +</div> + +<p>El CSS es pot fer servir per a dissenyar el text de documents molt bàsics, per exemple, per a canviar el <a href="/en-US/docs/Web/CSS/color_value">color</a> i la <a href="/en-US/docs/Web/CSS/font-size">mida de la lletra</a> dels títols i els enllaços. Es pot utilitzar per a donar disseny de la pàgina web; per exemple, convertir una sola columna de text en un disseny de pàgina amb una àrea de contingut principal i una barra lateral per a obtenir informació relacionada. Fins i tot es pot utilitzar per a efectes com <a href="/en-US/docs/Web/CSS/CSS_Animations">l’animació</a>. Consulta els enllaços d’aquest paràgraf per a obtenir exemples concrets.</p> + +<h2 id="La_sintaxi_CSS">La sintaxi CSS</h2> + +<p>El CSS és un llenguatge basat en regles: cada usuari defineix regles que especifiquen grups d’estils que s’han d’aplicar a determinats elements o grups d’elements de la teva pàgina web. Per exemple: «Vull que el títol d’encapçalament principal de la pàgina es vegi amb lletra gran i de color vermell».</p> + +<p>El codi següent mostra una regla CSS molt simple que aplicaria l'estil descrit al paràgraf anterior:</p> + +<pre class="brush: css notranslate">h1 { + color: red; + font-size: 5em; +}</pre> + +<p>La regla s’obre amb un {{Glossary("CSS Selector", "selector")}}, que <em>selecciona</em> l'element HTML al qual aplicarem estil. En aquest cas, aplicarem estil als títols de nivell 1 ({{htmlelement ("h1")}}).</p> + +<p>Tot seguit, hi ha un conjunt de claus <code>{ }</code>, i a dins hi haurà una o més <strong>declaracions</strong>, que prenen la forma de parells <strong>propietat</strong> i <strong>valor</strong>. Cada parell especifica una propietat dels elements que seleccionem i, a continuació, un valor que volem donar a la propietat.</p> + +<p>Abans de la clau hi ha la propietat, i després, el valor. Les {{Glossary("property/CSS","propietats")}} CSS admeten diferents valors, depenent de quina propietat s'especifica. En el nostre exemple, tenim la propietat <code>color</code>, que pot prendre diversos <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS#Color">valors de color</a>. També hi ha la propietat <code>font-size</code>. Aquesta propietat pot prendre diverses <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/CSS/Building_blocks/Valors_i_unitats_CSS#Nombres_longituds_i_percentatges">unitats de mida</a> com a valor.</p> + +<p>Un full d’estils CSS contindrà moltes regles d’aquestes, escrites l’una darrere de l’altra.</p> + +<pre class="brush: css notranslate">h1 { + color: red; + font-size: 5em; +} + +p { + color: black; +}</pre> + +<p>Trobaràs que aprens ràpidament alguns valors, mentre que d’altres els hauràs de buscar. Les pàgines de propietat individuals del projecte MDN t'ofereixen una manera ràpida de cercar propietats i els seus valors si se t’obliden o si vols saber què més pots fer servir com a valor.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar enllaços a totes les pàgines de propietat CSS (juntament amb altres funcions CSS) a la pàgina de <a href="/ca/docs/Web/CSS/Referéncia_CSS">referències CSS</a> de MDN. De manera alternativa, t'has d’acostumar a cercar «mdn <em>css-feature-name</em>» al teu motor de cerca preferit sempre que necessitis més informació sobre una característica CSS. Per exemple, prova de cercar «mdn color» i «mdn font-size».</p> +</div> + +<h2 id="Mòduls_CSS">Mòduls CSS</h2> + +<p>Com que amb CSS es pot aplicar estil a tantes coses, el llenguatge es desglossa en <em>mòduls</em>. Veuràs diverses referències a aquests mòduls a mesura que explores la pàgina de MDN i moltes de les pàgines de documentació que s’organitzen al voltant d’un mòdul determinat. Per exemple, pots donar una ullada a la referència MDN en el mòdul <a href="/en-US/docs/Web/CSS/CSS_Backgrounds_and_Borders">Fons i vores</a> per a esbrinar quin n’és el propòsit i quines en són les diferents propietats i altres característiques que conté. També trobaràs enllaços a <em>l’especificació CSS</em> que defineix la tecnologia.</p> + +<p>En aquesta fase, no t'has de preocupar gaire de la manera en què s’estructura el CSS, però pot facilitar la cerca d’informació si, per exemple, saps que és probable que una propietat determinada es trobi entre altres coses similars i, probablement, en la mateixa especificació. </p> + +<p>Per veure un exemple concret, tornem al mòdul Fons i vores; podries pensar que té sentit lògic que les propietats <code><a href="/en-US/docs/Web/CSS/background-color">background-color</a></code> i <code><a href="/en-US/docs/Web/CSS/border-color">border-color</a></code> es defineixin en aquest mòdul. I tens raó.</p> + +<h3 id="Especificacions_CSS">Especificacions CSS</h3> + +<p>Totes les tecnologies d’estàndards web (HTML, CSS, JavaScript, etc.) estan definides en extensos documents anomenats especificacions (o simplement «specs»), que publiquen les organitzacions d’estàndards (com {{glossary("W3C")}}, {{glossary("WHATWG")}}, {{glossary("ECMA")}} o {{glossary("Khronos")}}) i defineixen amb precisió com se suposa que aquestes tecnologies han de comportar-se.</p> + +<p>El CSS no és diferent: el desenvolupa un grup del W3C anomenat <a href="https://www.w3.org/Style/CSS/">CSS Working Group</a>. Aquest grup està format per representants de creadors de navegadors i altres empreses que tenen interès en el CSS. També hi ha altres persones, conegudes com a experts convidats, que actuen com a veus independents, i que no estan vinculats a cap organització.</p> + +<p>El CSS Working Group desenvolupa i especifica les noves funcions CSS. De vegades, perquè un navegador determinat està interessat a tenir alguna capacitat, d’altres vegades perquè els dissenyadors i els desenvolupadors web demanen una funció i, de vegades, perquè el grup de treball mateix ha identificat un requisit. El CSS es troba en desenvolupament constant, introduint característiques noves. Tot i això, una cosa clau sobre CSS és que tothom treballa molt per no canviar mai les coses d’una manera que trenqui els llocs web antics. Un lloc web creat el 2000, que utilitza el CSS limitat que hi havia aleshores, encara es pot fer servir avui dia.</p> + +<p>Com a nouvingut al CSS, és probable que trobis aclaparadores les especificacions CSS, ja que estan destinades a l’ús dels enginyers perquè les utilitzin per a implementar-ne suport als d'agents d’usuari, no perquè els desenvolupadors web les llegeixin. Molts desenvolupadors experimentats preferirien consultar la documentació a MDN o en altres tutorials. No obstant això, val la pena saber que existeixen, i entendre la relació que hi ha entre el CSS que utilitzes, el suport del navegador i les especificacions.</p> + +<h2 id="Suport_dels_navegadors">Suport dels navegadors</h2> + +<p>Un cop especificat el CSS, només ens és útil per desenvolupar pàgines web si un o més navegadors l’han implementat. Això vol dir que el codi ha estat escrit per a convertir la instrucció del nostre fitxer CSS en quelcom que pugui sortir a la pantalla. Analitzarem més aquest procés en l’article <a href="/ca/docs/Learn/CSS/First_steps/Com_funciona_el_CSS">Com funciona el CSS</a>. És inusual que tots els navegadors implementin una característica alhora, i per tant hi sol haver un buit en quina part del CSS es pot fer servir en quins navegadors i en quins no. Per això, és útil ser capaç de comprovar l’estat d’implementació. A cada pàgina de propietats de MDN pots veure l'estat de la propietat que t'interessa, de manera que pots saber si pots fer-la servir en un lloc web.</p> + +<p>El que segueix és el gràfic de dades de compatibilitat per a la propietat <code><a href="/en-US/docs/Web/CSS/font-family">font-family</a></code> de CSS.</p> + +<p>{{Compat("css.properties.font-family")}}</p> + +<h2 id="Què_segueix">Què segueix</h2> + +<p>Ara que coneixes què és el CSS, passem a <a href="/ca/docs/Learn/CSS/First_steps/Com_començar_amb_CSS">Començar amb el CSS</a>, on pots començar a escriure algun codi CSS.</p> + +<p>{{NextMenu("Learn/CSS/First_steps/Getting_started", "Learn/CSS/First_steps")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ol> + <li><a href="/en-US/docs/Learn/CSS/First_steps/What_is_CSS">Què és el el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Getting_started">Primers passos amb el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured">Com s'estructura el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/How_CSS_works">Com funciona el CSS</a></li> + <li><a href="/en-US/docs/Learn/CSS/First_steps/Using_your_new_knowledge">Aplica els teus nous coneixements</a></li> +</ol> diff --git a/files/ca/learn/css/howto/generated_content/index.html b/files/ca/learn/css/howto/generated_content/index.html new file mode 100644 index 0000000000..877bfefad7 --- /dev/null +++ b/files/ca/learn/css/howto/generated_content/index.html @@ -0,0 +1,179 @@ +--- +title: Contingut +slug: Learn/CSS/Howto/Generated_content +tags: + - Basic + - Beginner + - CSS + - CSS Background + - 'CSS:Getting_Started' + - Graphics + - Guide + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Learn/CSS/Howto/Generated_content +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Color", "Color") }}Aquesta és la 9th secció del tutorial<span class="seoSummary"> <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started;</a></span> descriu algunes formes en què es pot utilitzar CSS per afegir contingut quan es visualitza un document. Modifiqueu la fulla d'estil per afegir el contingut del text i una imatge.</p> + +<h2 class="clearLeft" id="Informació_Contingut"><span class="short_text" id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>Contingut</span></span></h2> + +<p>Un dels avantatges importants de CSS és que ajuda a separar l'estil d'un document, del seu contingut. No obstant això, hi ha situacions en què té sentit especificar certs continguts com a part de la fulla d'estil, no com a part del document.</p> + +<p>El contingut especificat en una fulla d'estil pot constar de text o imatges. S'especifica el contingut de la fulla d'estils quan el contingut està estretament lligat a l'estructura del document.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Especificar el contingut d'una fulla d'estil pot causar complicacions. Per exemple, es poden tenir diferents versions d'idioma del document que comparteix una fulla d'estil. Si una part de la fulla d'estil ha de ser traduït, vol dir que heu de posar parts de la fulla d'estil en arxius separats i encarregar-se de fer els vincles amb la versió d'idioma adequat a cada document.</p> + +<p>Aquestes complicacions no sorgeixen si el contingut que especifiqueu consisteix en símbols o imatges que s'apliquen en tots els idiomes i cultures.</p> + +<p>El contingut especificat en una fulla d'estil no es converteixi en part del DOM.</p> +</div> + +<h3 id="Text_content" name="Text_content"><span id="result_box" lang="ca"><span>Contingut de</span> <span>text</span></span></h3> + +<p>CSS pot inserir el contingut de text abans o després d'un element. Per especificar això, fer una regla i afegir {{ cssxref("::before") }} o {{ cssxref("::after") }} al selector. En la declaració, especificar la propietat {{ cssxref("content") }} amb el contingut de text com el seu valor.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html">A text where I need to <span class="ref">something</span> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">.ref::before { + font-weight: bold; + color: navy; + content: "Reference: "; +}</pre> + +<h4 id="Sortida">Sortida</h4> + +<p>{{ EmbedLiveSample('Text_content', 600, 30) }}</p> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>El joc de caràcters d'una fulla d'estil és UTF-8 per defecte, però es pot especificar a l'enllaç, en la pròpia fulla d'estil o d'altres maneres. Per a més detalls, veure <a href="http://www.w3.org/TR/CSS21/syndata.html#q23">4.4 representació de fulles d'estil CSS</a> en l'especificació CSS.</p> + +<p>Els caràcters individuals també poden ser especificats per un mecanisme d'escapament que utilitza la barra invertida com a caràcter d'escapament. Per exemple, \ 265B és el símbol d'escacs per a una reina negre ♛. Per a més detalls, vegeu <a class="external" href="http://www.w3.org/TR/CSS21/syndata.html#q24">Referència a caràcters que no estan representats en una codificació de caràcters</a> i també <a class="external" href="http://www.w3.org/TR/CSS21/syndata.html#q6">Caràcters i suposats</a> en l'especificació CSS.</p> +</div> + +<h3 id="Contingut_d'image">Contingut d'image</h3> + +<p>Per afegir una imatge abans o després d'un element, especifiqueu l'adreça URL d'un fitxer d'imatge en el valor de la propietat {{ cssxref("content") }}.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla afegeix un espai i una icona després de cada vincle que té la classe <code>glossari</code>:</p> + +<pre class="brush:css">a.glossary:after {content: " " url("../images/glossary-icon.gif");} +</pre> +</div> + +<p>Per afegir una imatge com a fons d'un element, introduïu l'adreça URL d'un fitxer d'imatge en el valor de la propietat {{ cssxref("background") }}. Aquesta és una propietat abreujada que especifica el color de fons, la imatge, com la imatge es repeteix i alguns altres detalls.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta norma estableix el fons d'un element específic, utilitzant una URL per especificar un fitxer d'imatge.</p> + +<p>El selector especifica el <code>id</code> de l'element. El valor <code>no-repeat</code> fa que la imatge aparegui una sola vegada:</p> + +<pre class="brush:css">#sidebar-box {background: url("../images/sidebar-ground.png") no-repeat;} +</pre> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Per obtenir informació sobre les propietats individuals que afecten els fons, i sobre altres opcions quan s'especifican imatges de fons, veure la pàgina de referència {{ cssxref("background") }}.</p> +</div> + +<h2 id="Acció_Afegir_una_imatge_de_fons">Acció: Afegir una imatge de fons</h2> + +<p>Aquesta imatge és un quadrat blanc amb una línia blava a la part inferior:</p> + +<table style="border: 2px solid #cccccc;"> + <tbody> + <tr> + <td><img alt="Image:Blue-rule.png" class="internal" src="https://mdn.mozillademos.org/files/160/Blue-rule.png"></td> + </tr> + </tbody> +</table> + +<ol> + <li>Descarregueu l'arxiu d'imatge en el mateix directori que el fitxer CSS. (Per exemple, feu-hi clic per obtenir un menú de context, a continuació, selecciona Desar imatge com i especifiqueu el directori que utilitzeu per aquest tutorial.)</li> + <li>Editeu l'arxiu CSS i afegiu aquesta regla al cos, establint una imatge de fons per tota la pàgina. + <pre class="brush:css">background: url("Blue-rule.png"); +</pre> + + <p>El valor de <code>repeat</code> és el valor per defecte, de manera que no necessita ser especificat. La imatge es repeteix horitzontal i verticalment, donant una aparença com de paper pautat:</p> + + <div style="position: relative; width: 24em; height: 11em; border: 2px outset #36b; overflow: hidden;"> + <p style="margin: 0px;"><img alt="Image:Blue-rule-ground.png" class="internal" src="https://mdn.mozillademos.org/files/161/Blue-rule-ground.png"></p> + + <div style="position: absolute; top: 0px; left: 0px; border: none; margin: 0px; padding: .5em 0px 0px 1em; font: 16px 'Comic Sams MS', cursive; color: blue; background-color: transparent;"> + <div style="font-style: italic; width: 24em;"> + <p><strong style="background-color: #ddddff; color: red; font: 200% serif;">C</strong>ascading <strong style="background-color: #ddddff; color: green; font: 200% serif;">S</strong>tyle <strong style="background-color: #ddddff; color: green; font: 200% serif;">S</strong>heets</p> + </div> + + <div style="font-style: normal; padding-top: 2px; height: 8em;"> + <p><strong style="background-color: #ddddff; color: red; font: 200% serif;">C</strong>ascading <strong style="background-color: #ddddff; color: red; font: 200% serif;">S</strong>tyle <strong style="background-color: #ddddff; color: red; font: 200% serif;">S</strong>heets</p> + </div> + </div> + </div> + </li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>Descarregueu aquesta imatge:</p> + +<table style="border: 2px solid #cccccc;"> + <tbody> + <tr> + <td><img alt="Image:Yellow-pin.png" class="internal" src="https://mdn.mozillademos.org/files/924/Yellow-pin.png"></td> + </tr> + </tbody> +</table> + +<p>Afegiu una regla a la fulla d'estils perquè mostri la imatge al començament de cada línia:</p> + +<div style="position: relative; width: 24em; height: 11em; border: 2px outset #36b; overflow: hidden;"> +<p style="margin: 0px;"><img alt="Image:Blue-rule-ground.png" class="internal" src="https://mdn.mozillademos.org/files/161/Blue-rule-ground.png"></p> + +<div style="position: absolute; top: 0px; left: 0px; border: none; margin: 0px; padding: .5em 0px 0px 1em; font: 16px 'Comic Sams MS', cursive; color: blue; background-color: transparent;"> +<div style="font-style: italic; width: 24em; padding-top: 8px;"><img alt="image:Yellow-pin.png" class="internal" src="https://mdn.mozillademos.org/files/924/Yellow-pin.png"> <strong style="background-color: #ddddff; color: red; font: 200% serif;">C</strong>ascading <strong style="background-color: #ddddff; color: green; font: 200% serif;">S</strong>tyle <strong style="background-color: #ddddff; color: green; font: 200% serif;">S</strong>heets</div> + +<div style="font-style: normal; padding-top: 12px; height: 8em;"><img alt="image:Yellow-pin.png" class="internal" src="https://mdn.mozillademos.org/files/924/Yellow-pin.png"> <strong style="background-color: #ddddff; color: red; font: 200% serif;">C</strong>ascading <strong style="background-color: #ddddff; color: red; font: 200% serif;">S</strong>tyle <strong style="background-color: #ddddff; color: red; font: 200% serif;">S</strong>heets</div> +</div> +</div> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>Add this rule to your stylesheet:</p> + +<pre class="brush: css">p:before{ + content: url("yellow-pin.png"); +} +</pre> + +<p> </p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Lists", "Llistes") }}Una forma comuna d'afegir contingut a les fulles d'estil és marcar elements en les llistes. La següent secció descriu com especificar l'estil d'elements de llista.</p> diff --git a/files/ca/learn/css/howto/index.html b/files/ca/learn/css/howto/index.html new file mode 100644 index 0000000000..1f087d3e22 --- /dev/null +++ b/files/ca/learn/css/howto/index.html @@ -0,0 +1,86 @@ +--- +title: Use CSS to solve common problems +slug: Learn/CSS/Howto +translation_of: Learn/CSS/Howto +--- +<div>Translation in progress{{LearnSidebar}}</div> + +<p class="summary">The following links provide solutions to common problems you can solve with CSS.</p> + +<h2 id="Common_use_cases">Common use cases</h2> + +<div class="column-container"> +<div class="column-half"> +<h3 id="Basics">Basics</h3> + +<ul> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/How_CSS_works#How_to_apply_your_CSS_to_your_HTML">How to apply CSS to HTML</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Syntax#White_space">How to use whitespace in CSS</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Syntax#Comments">How to write comments in CSS</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Selectors#Simple_selectors">How to select elements via element name, class or ID</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Selectors#Attribute_selectors">How to select elements via attribute name and content</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Selectors#Pseudo-classes">How to use pseudo-classes</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Selectors#Pseudo-elements">How to use pseudo-elements</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Selectors#Multiple_selectors_on_one_rule">How to apply multiple selectors to the same rule</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Values_and_units#Colors">How to specify colors in CSS</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Debugging_CSS#Inspecting_the_DOM_and_CSS">How to debug CSS in the browser</a></li> +</ul> + +<h3 id="CSS_and_text">CSS and text</h3> + +<ul> + <li><a href="/en-US/docs/Learn/CSS/Styling_text/Fundamentals">How to style text</a></li> + <li><a href="/en-US/docs/Learn/CSS/Styling_text/Styling_lists">How to customize a list of elements</a></li> + <li><a href="/en-US/Learn/CSS/Styling_text/Styling_links">How to style links</a></li> + <li><a href="/en-US/Learn/CSS/Styling_text/Fundamentals#Text_drop_shadows">How to add shadows to text</a></li> +</ul> +</div> + +<div class="column-half"> +<h3 id="Boxes_and_layouts">Boxes and layouts</h3> + +<ul> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Box_model#Box_properties">How to size CSS boxes</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Box_model#Overflow">How to control overflowing content</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Box_model#Background_clip">How to control the part of a CSS box that the background is drawn under</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Box_model#Types_of_CSS_boxes">How do I define inline, block, and inline-block?</a></li> + <li><a href="/en-US/docs/Learn/CSS/Howto/create_fancy_boxes">How to create fancy boxes</a> (also see the <a href="/en-US/docs/Learn/CSS/Styling_boxes">Styling boxes</a> module, generally).</li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Box_model#Background_clip">How to use <code>background-clip</code> to control how much of the box your background image covers</a>.</li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Box_model_recap#Changing_the_box_model_completely">How to change the box model completely using <code>box-sizing</code></a></li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Backgrounds">How to control backgrounds</a></li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Borders">How to control borders</a></li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Styling_tables">How to style an HTML table</a></li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Advanced_box_effects#Box_shadows">How to add shadows to boxes</a></li> +</ul> +</div> +</div> + +<h2 id="Uncommon_and_advanced_techniques">Uncommon and advanced techniques</h2> + +<p>CSS allows very advanced design techniques. These articles help demistify the harder use cases you may face.</p> + +<h3 id="General">General</h3> + +<ul> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Cascade_and_inheritance#Specificity">How to calculate specificity of a CSS selector</a></li> + <li><a href="/en-US/Learn/CSS/Introduction_to_CSS/Cascade_and_inheritance#Controlling_inheritance">How to control inheritance in CSS</a></li> +</ul> + +<h3 id="Advanced_effects">Advanced effects</h3> + +<ul> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Advanced_box_effects#Filters">How to use filters in CSS</a></li> + <li><a href="/en-US/Learn/CSS/Styling_boxes/Advanced_box_effects#Blend_modes">How to use blend modes in CSS</a></li> +</ul> + +<h3 id="Layout">Layout</h3> + +<ul> + <li><a href="/en-US/docs/Web/Guide/CSS/Flexible_boxes">Using CSS flexible boxes</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts" title="/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts">Using CSS multi-column layouts</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_started/Content">Using CSS generated content</a></li> +</ul> + +<h2 id="See_also">See also</h2> + +<p><a href="/en-US/docs/Learn/CSS/Howto/CSS_FAQ">CSS FAQ</a> — A variety of topics: from debugging to selector usage.</p> diff --git a/files/ca/learn/css/index.html b/files/ca/learn/css/index.html new file mode 100644 index 0000000000..05c93dfbb8 --- /dev/null +++ b/files/ca/learn/css/index.html @@ -0,0 +1,64 @@ +--- +title: CSS +slug: Learn/CSS +tags: + - Beginner + - CSS + - CodingScripting + - Debugging + - Landing + - NeedsContent + - NeedsTranslation + - Topic + - TopicStub + - length + - specificity +translation_of: Learn/CSS +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Les Fulles d'estil en cascada (de l'anglès <em>Cascading Stylesheets</em> {{glossary("CSS")}}) és la segona tecnologia que hauries de començar a aprendre després de l'{{glossary("HTML")}}. Mentre que l'HTML s'utilitza per definir l'estructura i la semàntica del teu contingut, el CSS s'utilitza per donar-li estil i forma. Per exemple, pots utilitzar CSS per modificar el color, mida i espaiat de la tipografia del contingut, dividir-lo en múltiples columnes o afegir animacions i altres funcionalitats decoratives.</p> + +<h2 id="Itinerari_d'aprenentatge">Itinerari d'aprenentatge</h2> + +<p>Abans de començar amb CSS s'han d'aprendre els aspectes bàsics d'HTML. Recomanem que primer facis un cop d'ull a la nostra <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a> i posteriorment podràs aprendre:</p> + +<ul> + <li>CSS, començant amb el mòdul l'introducció a CSS</li> + <li><a href="/en-US/Learn/HTML#Modules">Mòduls HTML</a> més avançats</li> + <li><a href="/en-US/docs/Learn/JavaScript">JavaScript</a> i com utilitzar-lo per afegir funcionalitats dinàmiques a les pàgines web</li> +</ul> + +<p>Es recomana aprendre HTML i CSS a la vegada, treballant de manera conjunta les dues disciplines. Això es deu a que HTML és molt més interessant conjuntament amb CSS i no pots aprendre CSS sense saber HTML.</p> + +<p>Abans de començar aquest tema, hauries d'estar familiaritzat amb l'ús d'ordinadors i l'utilització passiva del Web (per exemple navegant i consumint contingut). Hauries de tenir configurat un entorn de treball bàsic com es detalla a <a href="/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software">Instal·lant programari bàsic</a> i entendre com crear i gestionar arxius, com es detalla a <a href="/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files">Treballant amb arxius.</a> Ambdós temes formen part del mòdul complet per a principiants <a href="/en-US/docs/Learn/Getting_started_with_the_web">Començant amb la web</a>.</p> + +<p>Malgrat que no és absolutament necessari, es recomana treballar el mòdul <a href="/en-US/docs/Learn/Getting_started_with_the_web">Començant amb la web</a> abans de començar amb aquest tema. Gran part del tractat a l'article d'introducció a CSS també es tracta al mòdul d'introducció a CSS, encara que d'una manera més detallada.</p> + +<h2 id="Mòduls">Mòduls</h2> + +<p>Aquest tema conté els següents mòduls en un ordre recomanat per un correcte aprenentatge. Es recomana que comencis pel primer.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a></dt> + <dd>Aquest mòdul t'introdueix als conceptes bàsics de com funciona CSS, incloent selectors i propietats, escrivint regles CSS, aplicant CSS a l'HTML, com especificar longitud, color i altres unitats a CSS, cascada i herència, conceptes bàsic del model de caixes i depurant el CSS.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Styling_text">Donant estil al text</a></dt> + <dd>Aqui veurem els aspectes bàsics dels estils de text: tipografia, gruixudària, cursiva, espai d'interlínia, espai entre caràcters, ombres i altres funcions que es poden aplicar al text. Acabarem d'arrodonir el mòdul fent un cop d'ull a la manera d'aplicar tipografies personalitzades a la teva pàgina web, donar estil a llistes i enllaços.</dd> + <dt><a href="/en-US/docs/Learn/CSS/Styling_boxes">Donant estil a les caixes</a></dt> + <dd>A continuació, veurem com donar estil a les caixes, un dels passos fonamentals per poder maquetar una pàgina web. En aquest mòdul resumirem el model de caixa i veurem com controlar la maquetació de les caixes, donan-hi espaiat, vores i marges, configurant colors de fons, imatges i altres funcionalitats divertides com per exemple ombrejat i filtres.</dd> + <dt><a href="/en-US/docs/Learn/CSS/CSS_layout">Disseny CSS</a></dt> + <dd>Arribats a aquest punt ja hem vist els aspectes bàsics de CSS, com donar estil al text i com manipular les caixes on posem el contingut. Ara és moment de veure com posicionar les caixes al lloc correcte en relació a la finestra de visualització o a la resta de caixes. Hem cobert els prerequisits necessaris amb el que ens podem submergir a la maquetació CSS, veure les diferents configuracions de visualització, mètodes tradicionals utilitzant float i posicionament i les noves eines de maquetació com per exemple flexbox.</dd> + <dt>Disseny Adaptable</dt> + <dd>Amb tants tipus de dispositius amb els que es pot navegar per la Web avui en dia, el <a href="/en-US/docs/Web/Guide/Responsive_design">disseny web adaptable</a> (<em>RWD - Responsive Web Design</em>) ha esdevingut un aspecte clau pel que fa al desenvolupament de pàgines web. Aquest mòdul cobrirà les eines i principis bàsics del RWD, explicarà com aplicar diferents estils de CSS a un document en funció de les diferents característiques del dispositiu com poden ser la mida de la pantalla, orientació, i resolució i explorarà les tecnologies que tenim al nostre abast per servir vídeo i imatges en funció d'aquestes característiques.</dd> +</dl> + +<h2 id="Resolent_problemes_habituals_de_CSS">Resolent problemes habituals de CSS</h2> + +<p><a href="/en-US/docs/Learn/CSS/Howto">Ús de CSS per resoldre problemes habituals</a> ofereix enllaços a seccions de contingut explicant com utilitzar CSS per resoldre problemes molt habituals en el moment de crear pàgines web.</p> + +<h2 id="Veure_també">Veure també</h2> + +<dl> + <dt><a href="/en-US/docs/Web/CSS">CSS a MDN</a></dt> + <dd>Principal punt d'entrada de la documentació sobre CSS a MDN, on trobaràs una documentació detallada de totes les funcionalitats del llenguatge CSS. Vols saber tots els valors que pot prendre una determinada propietat? Aquest és el lloc on anar.</dd> +</dl> diff --git a/files/ca/learn/css/introducció_a_css/comprensió_css_fonamental/index.html b/files/ca/learn/css/introducció_a_css/comprensió_css_fonamental/index.html new file mode 100644 index 0000000000..34a654269a --- /dev/null +++ b/files/ca/learn/css/introducció_a_css/comprensió_css_fonamental/index.html @@ -0,0 +1,114 @@ +--- +title: Comprensió CSS fonamental +slug: Learn/CSS/Introducció_a_CSS/Comprensió_CSS_fonamental +tags: + - Assessment + - Beginner + - CSS + - CodingScripting + - Selectors + - Style + - Syntax + - box model + - comments + - rules +translation_of: Learn/CSS/Building_blocks/Fundamental_CSS_comprehension +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/CSS/Introduction_to_CSS/Debugging_CSS", "Learn/CSS/Introduction_to_CSS")}}</div> + +<p class="summary">Heu cobert molt en aquest mòdul, de manera que us heu de sentir bé d'haver arribat al final!. El pas final abans de continuar és intentar l'avaluació del mòdul: això implica una sèrie d'exercicis relacionats que s'han de completar per crear el disseny final - un perfil de targeta de visita/targeta de jugador/perfil social.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td><span id="result_box" lang="ca"><span>Abans d'intentar aquesta avaluació, hauríeu d'haver treballat tots els articles d'aquest mòdul.</span></span></td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td><span id="result_box" lang="ca"><span>Comprovar la comprensió de la teoria CSS fonamental, la sintaxi i la mecànica</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida"><span id="result_box" lang="ca"><span>Punt de partida</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Per començar aquesta avaluació, heu de:</span></span></p> + +<ul> + <li>Aneu i agafeu el <a href="https://github.com/mdn/learning-area/blob/master/css/introduction-to-css/fundamental-css-comprehension/index.html">fitxer HTML per a l'exercici</a>, i el <a href="https://github.com/mdn/learning-area/blob/master/css/introduction-to-css/fundamental-css-comprehension/chris.jpg">fitxer d'image associat</a>, i deseu-los en un directori nou a l'ordinador local. Si voleu utilitzar el vostre propi fitxer d'imatge i ompliu el vostre nom, podeu fer-ho: simplement assegureu-vos que la imatge sigui quadrada.</li> + <li>Agafa el <a href="https://github.com/mdn/learning-area/blob/master/css/introduction-to-css/fundamental-css-comprehension/style-resources.txt">fitxer de text de recursos CSS</a> - aquest conté un conjunt de selectors i regles que necesitaràs estudiar i combinar per respondre part d'aquesta avaluació.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: D'altra banda, podeu utilitzar un lloc com <a class="external external-icon" href="http://jsbin.com/">JSBin</a> o <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer la vostra avaluació. Podeu enganxar el codi HTML i omplir el CSS en un d'aquests editors en línia i utilitzar <a href="http://mdn.github.io/learning-area/css/introduction-to-css/fundamental-css-comprehension/chris.jpg">aquest URL</a> per indicar a l'element <img> el fitxer d'imatge. Si l'editor en línia que esteu utilitzant no té cap panell CSS separat, no dubteu a posar-lo en un element <code><style></code> al capdavant del document.</p> +</div> + +<h2 id="Resum_del_projecte"><span id="result_box" lang="ca"><span>Resum del projecte</span></span></h2> + +<p>Se us ha proporcionat un mica d'HTML sense processar i una imatge, i heu d'escriure el CSS necessari per d'introduir una mica d'estil bonic en una targeta de negocis en línia, que potser es pot duplicar com a targeta de jugador o perfil de xarxes socials. <span id="result_box" lang="ca"><span>Les següents seccions descriuen el que heu de fer.</span></span></p> + +<p><span id="result_box" lang="ca"><span>Configuració bàsica:</span></span></p> + +<ul> + <li>En primer lloc, creeu un nou fitxer al mateix directori que el vostre fitxer HTML i d'imatge. Nomeneu-ho alguna cosa realment imaginativa com <code>style.css</code>.</li> + <li>Enllaceu el vostre CSS al vostre fitxer HTML a través d'un element <code><link></code>.</li> + <li>Els dos primers conjunts de regles del fitxer de recursos CSS són vostres, GRATIS! Després d'haver acabat d'alegrar-se amb la vostra bona fortuna, copieu-los i enganxeu-los a la part superior del vostre nou fitxer CSS. Utilitzeu-les com a prova per assegurar-vos que el vostre CSS s'apliqui correctament al vostre HTML.</li> + <li>A sobre de les dues regles, afegiu un comentari CSS amb algun text dins d'ell per indicar que es tracta d'un conjunt d'estils generals per a la pàgina general. Faríeu "Estils de pàgina general". També afegiu tres comentaris més a la part inferior del fitxer CSS per indicar els estils específics de la configuració del contenidor de la targeta, els estils específics del encapçalament i el peu de pàgina, i els estils específics per el contingut principal de la targeta de visita. A partir d'ara, els estils posteriors afegits al full d'estils s'han d'organitzar en un lloc adequat.</li> +</ul> + +<p>Tingueu cura dels selectors i els conjunts de regles proporcionats:</p> + +<ul> + <li>A continuació, ens agradaria que consultéssiu els quatre selectors i calculéssiu l'especificitat de cadascun d'ells. Escriviu-les en algun lloc on es pugui trobar més endavant, com ara un comentari a la part superior del vostre CSS.</li> + <li>Ara és el moment de posar el selector adequat al conjunt de regles correctes! Teniu quatre parells de selector i un conjunt de regles perquè coincideixin amb els vostres recursos CSS. Feu això ara i afegiu-los el vostre fitxer CSS. Necessitareu: + <ul> + <li>Doneu al contenidor principal de la targeta una amplada/alçada fixa, un color de fons sòlid, una vora i un radi de vora (cantonades arrodonides), entre d'altres.</li> + <li>Doneu a la capçalera un degradat de fons que va des de més fosc a més clar, a més cantonades arrodonides que encaixen amb les cantonades arrodonides establertes al contenidor principal de la targeta.</li> + <li>Doneu al peu de pàgina un degradat de fons que va des de més clar a més fosc, a més de cantonades arrodonides que encaixen amb les cantonades arrodonides establertes al contenidor principal de la targeta.</li> + <li>Floteu la imatge a la dreta per tal que s'adhereixi al costat dret dels continguts principals de la targeta de visita i li proporcioneu una alçada màxima (max-height) del 100% (un truc intel·ligent que assegura que creixerà/disminuirà per mantenir la mateixa alçada que el seu contenidor principal, independentment de l'alçada que es faci).</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Aneu amb compte!</span> <span>Hi ha dos errors en els conjunts de regles proporcionats.</span> <span>Usant qualsevol tècnica que coneixeu, seguiu-los i solucioneu-los abans de continuar</span></span>.</li> +</ul> + +<p>Nou conjunt de regles que necessiteu escriure :</p> + +<ul> + <li>Escriviu un conjunt de regles que apunti tant a l'encapçalat de la targeta com al peu de la targeta, donant-los una alçada total de 50 px, que inclou una alçada de contingut de 30px i un farcit de 10px en tots els costats. Però expressat en <code>em</code>s.</li> + <li>El marge predeterminat aplicat als elements <code><h2></code> i <code><p></code> per el navegador interfereix amb el nostre disseny, així que escriviu una regla que apunti a tots aquests elements i estableixi el seu marge a 0.</li> + <li>Per evitar que la imatge es vessi fos del contingut principal de la targeta de visita (l'element <code><article></code>), hem de donar-li una alçada específica. Establiu l'alçada de <code><article></code> a 120px, expressada en <code>em</code>s. A més, doneu-li un color de fons negre semitransparent, resultant una ombra lleugerament més fosca, que permet que el color vermell de fons resplendeixi molt més.</li> + <li>Escriviu un conjunt de regles que doni a <code><h2></code> una mida efectiva de font de 20px (però expressat en <code>em</code>s) i una alçada de línia adequada per col·locar-la al centre de la caixa de contingut del encapçalament. Recordeu que anteriorment, l'alçada de contingut de la caixa hauria de ser de 30px - això us proporcionarà tots els números que necessiteu per calcular l'alçada de la línia.</li> + <li>Escriviu un conjunt de regles que doni a <code><p></code> dins del peu de pàgina una mida de font efectiva de 15px (però expressat en <code>em</code>s) i una alçada de línia adequada per col·locar-la al centre de la caixa de contingut del peu de pàgina. Recordeu que anteriorment, l'alçada de la caixa de contingut hauria de ser de 30px - això us proporcionarà tots els números que necessiteu per calcular l'alçada de la línia..</li> + <li>Com a últim toc, doneu el paràgraf dins de <code><article></code> un valor de farcit adequat de manera que la seva vora esquerra s'alineï amb el paràgraf <code><h2></code> i el peu de pàgina, i establiu el seu color per que sigui prou clar per facilitar la seva lectura.</li> +</ul> + +<p>Altres coses a pensar:</p> + +<ul> + <li>Obtindreu bonificacions si escriviu el vostre CSS amb la màxima llegibilitat, amb una declaració independent en cada línia.</li> + <li>Haureu d'incloure <code>.card</code> al principi de la cadena del selector a totes les vostres regles, de manera que aquestes regles no interfereixin amb l'estil de qualsevol altre element si la targeta de visita es col·loqués en una pàgina amb una càrrega d'un altre contingut</li> +</ul> + +<h2 id="Consells_i_suggeriments">Consells i suggeriments</h2> + +<ul> + <li>No cal que editeu l'HTML de cap manera, excepte per aplicar el CSS a l'HTML.</li> + <li>Per tractar d'esbrinar el valor <code>em</code>, que necessiteu, per representar una determinada longitud de píxels, penseu en la mida de font base que té l'element arrel (<code><html></code>) i el que necessita ser multiplicat per obtenir el valor desitjat. Això us donarà el seu valor <code>em</code>, almenys en un cas senzill com aquest.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>La següent captura de pantalla mostra un exemple del que hauria de tenir el disseny acabat:</span></span></p> + +<p><img alt="A view of the finished business card, show a reader header and footer, and a darker center panel containing the main details and image." src="https://mdn.mozillademos.org/files/12616/business-card.png" style="display: block; margin: 0 auto;"></p> + +<p> </p> + +<h2 id="Avaluació"><span id="result_box" lang="ca"><span>Avaluació</span></span></h2> + +<p>Si seguiu aquesta avaluació com a part d'un curs organitzat, hauríeu de poder lliurar el vostre treball al vostre professor/mentor per qualificar-ho. Si esteu en auto-aprenentatge, podreu obtenir la guia de qualificacions amb força facilitat preguntant sobre el tema en el <a href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">fil de conversa en l'àrea d'aprenentatge</a>, o en el canal IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Intenteu primer l'exercici - no es guanya res fent trampes!</p> + +<p>{{PreviousMenu("Learn/CSS/Introduction_to_CSS/Debugging_CSS", "Learn/CSS/Introduction_to_CSS")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/com_funciona_web/index.html b/files/ca/learn/getting_started_with_the_web/com_funciona_web/index.html new file mode 100644 index 0000000000..4a36fb2bff --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/com_funciona_web/index.html @@ -0,0 +1,99 @@ +--- +title: Com funciona la Web +slug: Learn/Getting_started_with_the_web/Com_funciona_Web +tags: + - Beginner + - Client + - DNS + - HTTP + - IP + - Infrastructure + - Learn + - Server + - TCP + - 'l10n:priority' +translation_of: Learn/Getting_started_with_the_web/How_the_Web_works +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/Getting_started_with_the_web/Publishing_your_website", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p><em>Com funciona la web</em>, proporciona una visió simplificada del que passa quan veieu una pàgina web en un navegador web en el vostre ordinador o telèfon.</p> +</div> + +<p>Aquesta teoria no és essencial per a l'escriptura de codi web en el curt termini, però en poc temps realment començareu a beneficiar-vos de la comprensió del que està passant en el fons.</p> + +<h2 id="Clients_i_servidors">Clients i servidors</h2> + +<p><span id="result_box" lang="ca"><span>Ordinadors</span> <span>connectats a</span> <span>la web són</span> <span>anomenats</span> <span>clients</span> <span>i</span> <span>servidors.</span> <span>Un diagrama</span> <span>simplificat</span> <span>de com</span> <span>interactuen</span> <span>podria</span> <span>tenir aquest</span> <span>aspecte</span><span>:</span></span></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8973/Client-server.jpg" style="height: 123px; width: 336px;"></p> + +<ul> + <li>Els clients són els dispositius connectats a Internet dels típics usuaris web (per exemple, l'ordinador connectat a la xarxa Wi-Fi o el telèfon connectat a la xarxa mòbil) i el programari d'accés a Internet disponible en aquests dispositius (normalment un navegador web com Firefox o Chrome).</li> + <li>Els servidors són ordinadors que emmagatzemen pàgines web, llocs o aplicacions. Quan un dispositiu client vol accedir a una pàgina web, una còpia de la pàgina web es descarrega des del servidor en l'equip del client, mostrant-se en el navegador web de l'usuari.</li> +</ul> + +<h2 id="Altres_parts_de_la_caixa_d'eines">Altres parts de la caixa d'eines</h2> + +<p>El client i el servidor que hem descrit més amunt no expliquen tota la història. Hi ha moltes altres parts involucrades i que descriurem a continuació.</p> + +<p>Per ara, imaginem que la web és un camí. En un extrem del carrer hi ha el client, que és com casa vostra. A l'altre extrem del carrer hi ha el servidor, que és una botiga que voleu comprar alguna cosa.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9749/road.jpg" style="display: block; height: 427px; margin: 0px auto; width: 640px;"></p> + +<p>A més del client i el servidor, també hem de saludar:</p> + +<ul> + <li><strong>La vostra connexió a Internet</strong>: Us permet enviar i rebre dades a la web. És bàsicament com el carrer entre casa i la botiga.</li> + <li><strong>TCP/IP</strong>: Transmission Control Protocol i Internet Protocol són els protocols de comunicació que defineixen com les dades han de viatjar a través del web. Això és com els mecanismes de transport que us permeten realitzar una comanda, anar a la botiga i comprar els seus productes. En el nostre exemple, això és com un cotxe o una moto (o com una altra cosa que es pugui moure).</li> + <li><strong>DNS</strong>: Domain Name System Servers són com un llibre d'adreces de llocs web. Quan escriviu una adreça web al navegador, el navegador busca en el DNS abans de recuperar el lloc web. El navegador necessita saber en quin servidor viu la pàgina web, de manera que podrà enviar missatges HTTP al lloc correcte (veure més a baix). Això és com buscar l'adreça de la tenda perquè pugueu accedir a ella.</li> + <li><strong>HTTP</strong>: Hypertext Transfer Protocol és una aplicació {{Glossary( "Protocol", "protocol")}} que defineix un llenguatge per als clients i servidors per parlar l'un a l'altre. Això és com el llenguatge que s'utilitza per ordenar les vostres mercaderies.</li> + <li><strong>Arxius de components</strong>: Un lloc web es compon de molts arxius diferents, que són com les diferents parts dels productes que compreu a la botiga. Aquests arxius són de dos tipus principals: + <ul> + <li><strong>Arxius de codi</strong>: Els llocs web estan construïts principalment d'HTML, CSS i Javascript, encara que coneixereu a altres tecnologies una mica més tard.</li> + <li><strong>Actius</strong>: Aquest és un nom col·lectiu per a totes les altres coses de que es compon un lloc web, com ara imatges, música, vídeo, documents de Word i PDF.</li> + </ul> + </li> +</ul> + +<h2 id="Llavors_què_passa_exactament">Llavors, què passa exactament?</h2> + +<p>En escriure una adreça web al navegador (per la nostra analogia, és com entrar a la botiga):</p> + +<ol> + <li>El navegador va al servidor DNS i troba l'adreça real del servidor on el lloc web viu (trobar ll'adreça de la botiga).</li> + <li>El navegador envia un missatge de petició HTTP al servidor demanant-li que enviï una còpia de la pàgina web per al client (que vagi a la botiga i demani els seus béns). Aquest missatge i totes les altres dades enviades entre el client i el servidor, s'envian a través de la vostra connexió a Internet mitjançant el TCP/IP.</li> + <li>Sempre i quan el servidor aprovi la sol·licitud del client, el servidor envia al client un missatge "200 OK" , el que significa "Per descomptat que podeu veure aquest lloc web! Aquí és" i, a continuació, inicia l'enviament d'arxius del lloc web al navegador com una sèrie de petits trossos anomenats paquets de dades (la botiga us dóna la vostra mercaderia, i les porteu de tornada a casa).</li> + <li>El navegador acobla els petits trossos en un lloc web complet i us el mostra (la mercaderia arriba a la vostra porta - coses noves, impressionant!).</li> +</ol> + +<h2 id="DNS_explicat">DNS explicat</h2> + +<p>Les adreces web real no són cadenes agradables i fàcils de recordar si les escriviu a la barra d'adreces per trobar els vostres llocs web favorits. Són cadenes de nombres, com aquesta: 63.245.217.105.</p> + +<p>Això s'anomena {{Glossary("IP Address","adreça IP")}}, i representa una ubicació única a la web. No obstant això, no és molt fàcil de recordar, oi? És per això que es van inventar els servidors de noms de domini. Aquests són servidors especials que responen a una adreça web que escriviu en el vostre navegador (com "mozilla.org") a l'adreça real (IP) del lloc web.</p> + +<p>Els llocs web poden ser aconseguits directament a través de les seves adreces IP. Intenteu anar a la pàgina web de Mozilla escrivint <code>63.245.217.105</code> a la barra d'adreces en una nova pestanya del navegador.</p> + +<p><img alt="A domain name is just another form of an IP address" src="https://mdn.mozillademos.org/files/8405/dns-ip.png" style="height: 160px; width: 330px;"></p> + +<h2 id="Paquets_explicat">Paquets explicat</h2> + +<p>Anteriorment hem utilitzat el terme "paquets" per descriure el format en què s'envien les dades del servidor al client. Què volem dir aquí? Bàsicament, quan les dades s'envien a través del web, s'envian com milers de petits trossos, de manera que molts diferents usuaris d'Internet poden descarregar el mateix lloc web al mateix temps. Si els llocs web s'enviessin en grans trossos individuals, només un usuari podria descarregar-los alhora, el que òbviament faria la Web molt ineficient i no seria molt divertit d'utilitzar.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/Learn/How_the_Internet_works">Com funciona Internet</a></li> + <li><a href="https://dev.opera.com/articles/http-basic-introduction/">HTTP — un Protocol a Nivell d'Aplicació</a></li> + <li><a href="https://dev.opera.com/articles/http-lets-get-it-on/">HTTP: Seguirem endavant!</a></li> + <li><a href="https://dev.opera.com/articles/http-response-codes/">HTTP: Codis de resposta</a></li> +</ul> + +<h2 id="Crèdit">Crèdit</h2> + +<p>Foto carrer: <a href="https://www.flickr.com/photos/kdigga/9110990882/in/photolist-cXrKFs-c1j6hQ-mKrPUT-oRTUK4-7jSQQq-eT7daG-cZEZrh-5xT9L6-bUnkip-9jAbvr-5hVkHn-pMfobT-dm8JuZ-gjwYYM-pREaSM-822JRW-5hhMf9-9RVQNn-bnDMSZ-pL2z3y-k7FRM4-pzd8Y7-822upY-8bFN4Y-kedD87-pzaATg-nrF8ft-5anP2x-mpVky9-ceKc9W-dG75mD-pY62sp-gZmXVZ-7vVJL9-h7r9AQ-gagPYh-jvo5aM-J32rC-ibP2zY-a4JBcH-ndxM5Y-iFHsde-dtJ15p-8nYRgp-93uCB1-o6N5Bh-nBPUny-dNJ66P-9XWmVP-efXhxJ">Street composing</a>, per <a href="https://www.flickr.com/photos/kdigga/">Kevin D</a>.</p> + +<p>{{PreviousMenu("Learn/Getting_started_with_the_web/Publishing_your_website", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/css_bàsic/index.html b/files/ca/learn/getting_started_with_the_web/css_bàsic/index.html new file mode 100644 index 0000000000..991a20ca78 --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/css_bàsic/index.html @@ -0,0 +1,276 @@ +--- +title: CSS bàsic +slug: Learn/Getting_started_with_the_web/CSS_bàsic +tags: + - Beginner + - CSS + - CodingScripting + - Learn + - Styling + - Web + - 'l10n:priority' +translation_of: Learn/Getting_started_with_the_web/CSS_basics +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/HTML_basics", "Learn/Getting_started_with_the_web/JavaScript_basics", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>CSS (Cascading Style Sheets) és el codi que utilitzareu per dissenyar la vostre pàgina web. CSS Bàsic us portarà a través del que necessiteu per començar. Respondrem a preguntes com: Com puc fer perquè el meu text sigui negre o vermell? Com puc fer perquè el meu contingut aparegui en tal i tal lloc en la pantalla? Com puc decorar la meva pàgina web amb imatges de fons i colors?</p> +</div> + +<h2 id="Què_és_CSS_en_realitat"><span id="result_box" lang="ca"><span>Què</span> <span>és</span> <span>CSS,</span> <span>en realitat</span><span>?</span></span> ?</h2> + +<p>Igual que HTML, CSS no és realment un llenguatge de programació. És un llenguatge de fulles d'estil, és a dir, us permet aplicar estils de manera selectiva als elements en els documents HTML. Per exemple, per seleccionar tots els elements de paràgraf en una pàgina HTML i convertir el text en color vermell, escriuríeu aquest CSS:</p> + +<pre class="brush: css">p { + color: red; +}</pre> + +<p>Anem a provar: enganxeu aquestes tres línies de CSS en un arxiu nou a l'editor de text i, a continuació, deseu el arxiu com <code>style.css</code> en el directori d'estils.</p> + +<p>Però encara heu d'aplicar el CSS al vostre document HTML, en cas contrari l'estil CSS no afectarà en la forma en que el navegador mostrarà el document HTML. (Si no heu estat seguint el nostre projecte, llegiu <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Dealing_with_files">Tractar amb arxius</a> i <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/HTML_basics">HTML bàsic</a> per esbrinar el que cal fer en primer lloc.)</p> + +<ol> + <li>Obriu el arxiu <code>index.html</code> i enganxeu la següent línia en algun lloc del cap, és a dir, entre les etiquetes <code><head></code> i <code></head></code>: + + <pre class="brush: html"><link href="styles/style.css" rel="stylesheet" type="text/css"></pre> + </li> + <li>Deseu <code>index.html</code> i carregar-ho en el navegador. Hauriau de veure alguna cosa com això:</li> +</ol> + +<p><img alt="A mozilla logo and some paragraphs. The paragraph text has been styled red by our css." src="https://mdn.mozillademos.org/files/9435/website-screenshot-styled.png" style="display: block; height: 832px; margin: 0px auto; width: 711px;">Si el text del paràgraf és ara de color vermell, felicitacions, ara heu escrit el vostre primer CSS amb èxit!</p> + +<h3 id="Anatomia_d'un_conjunt_de_regles_CSS">Anatomia d'un conjunt de regles CSS</h3> + +<p>Vegem el CSS anterior en una mica més de detall:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9461/css-declaration-small.png" style="display: block; height: 480px; margin: 0px auto; width: 850px;"></p> + +<p>Tota l'estructura es denomina un <strong>conjunt de regles</strong> (però sovint "regla" per abreujar). Tingueu en compte també els noms dels components individuals:</p> + +<dl> + <dt>Selector</dt> + <dd>El nom de l'element HTML en l'inici del conjunt de regles. Es selecciona l'element o els elements per donar estil (en aquest cas, els elements <code>p</code>). Per l'estil d'un element diferent, només cal canviar el selector.</dd> + <dt>Declaració</dt> + <dd>Una sola regla com <code>color: red</code>; especificant quines de les <strong>propietats</strong> de l'element voleu estil.</dd> + <dt>Propietats</dt> + <dd>Maneres en què podem donar estil a un element HTML. (En aquest cas, <code>color</code> és una propietat dels elements <code>p</code>.) CSS, ens permet triar quines propietats volem afectar amb la nostra regla.</dd> + <dt>Valor de propietat</dt> + <dd>A la dreta de la propietat, després dels dos punts, tenim el <strong>valor de la propietat</strong>, per triar una de les moltes aparicions possibles per a una determinada propietat (hi ha molts valors de <code>color</code>, a més de <code>red</code>).</dd> +</dl> + +<p>Recordeu les altres parts importants de la sintaxi:</p> + +<ul> + <li>Cada conjunt de regles (a part del selector) han de ser embolicades en les claus (<code>{}</code>).</li> + <li>Dins de cada declaració, heu d'usar els dos punts (:) per separar la propietat dels seus valors.</li> + <li>Dins de cada conjunt de regles, heu d'utilitzar un punt i coma (;) per separar cada declaració de la següent.</li> +</ul> + +<p>Així que per modificar diversos valors de propietats a la vegada, només les heu d'escriure separades per punt i coma, per exemple:</p> + +<pre class="brush: css">p { + color: red; + width: 500px; + border: 1px solid black; +}</pre> + +<h3 id="Seleccionar_diversos_elements">Seleccionar diversos elements</h3> + +<p>També podeu seleccionar diversos tipus d'elements i aplicar un únic conjunt de regles per a tots ells. Incloure múltiples selectors separats per comes. Per exemple:</p> + +<pre class="brush: css">p,li,h1 { + color: red; +}</pre> + +<h3 id="Diferents_tipus_de_selector">Diferents tipus de selector</h3> + +<p>Hi ha molts tipus diferents de selector. Per sobre, només ens fixarem en <strong>selectors d'elements</strong>, els quals seleccionen tots els elements d'un tipus determinat en els documents HTML donats. Però podem fer seleccions més específiques que això. Aquests són alguns dels tipus més comuns de selector:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Nom del Selector</th> + <th scope="col">Què es selecciona</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <td><span id="result_box" lang="ca"><span>Selector</span> <span>d'element</span> <span>(</span><span>de vegades</span> <span>anomenat</span> <span>un selector</span> <span>d'etiquetes</span> <span>o</span> <span>tipus</span><span>)</span></span></td> + <td>Tot(s) element(s) HTML del tipus especificat.</td> + <td><code>p</code><br> + Selecciona <code><p></code></td> + </tr> + <tr> + <td>selector ID</td> + <td>L'element de la pàgina amb l'ID especificat (en una pàgina HTML donada, només es permet un element per ID).</td> + <td><code>#my-id</code><br> + Selecciona <code><p id="my-id"></code> o <code><a id="my-id"></code></td> + </tr> + <tr> + <td>selector Class</td> + <td>L'element(s) a la pàgina amb la classe especificada (múltiples instàncies de la classe podem aparèixer en una pàgina).</td> + <td><code>.my-class</code><br> + Selecciona <code><p class="my-class"></code> i <code><a class="my-class"></code></td> + </tr> + <tr> + <td>selector Attribute</td> + <td>L'element(s) a la pàgina amb l'atribut especificat.</td> + <td><code>img[src]</code><br> + Selecciona <code><img src="myimage.png"></code> però no <code><img></code></td> + </tr> + <tr> + <td>selector Pseudo class</td> + <td>L'element(s) especificat(s), però només quan està en l'estat especificat, per exemple, planejar per sobre.</td> + <td><code>a:hover</code><br> + Selecciona <code><a></code>, però només quan el punter del ratolí planeja sobre l'enllaç.</td> + </tr> + </tbody> +</table> + +<p>Hi ha moltes més selectors per explorar, i podeu trobar una llista més detallada a la nostra <a href="/en-US/docs/Web/Guide/CSS/Getting_started/Selectors">Guia de selectors</a>.</p> + +<h2 id="Tipus_de_lletra_i_text">Tipus de lletra i text</h2> + +<p>Ara que hem explorat alguns conceptes bàsics de CSS, començarem a afegir algunes regles més i informació al nostre arxiu <code>style.css</code> per fer que el nostre exemple es vegi bé. En primer lloc, anem a aconseguir els nostres tipus de lletra i text perquè es vegi una mica millor.</p> + +<ol> + <li>En primer lloc, torneu enrere i trobeu els <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/What_should_your_web_site_be_like#Font">enllaços de Google Fonts</a> que vau guardar en un lloc segur. Afegiu l'element <code><link...></code> algun lloc dins del cap del vostre index.html (de nou, en qualsevol lloc entre les etiquetes <code><head></code> i <code></head></code>). Es veurà alguna cosa com això: + + <pre class="brush: html"><link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'></pre> + </li> + <li>A continuació, elimineu la regla existent que teniu en el vostre arxiu <code>style.css</code>. Va ser una bona prova, però el text en vermell en realitat no es veu molt bé.</li> + <li>Afegiu les següents línies al seu lloc, en substitució de la línia de marcador de posició amb la línia de <code>font-family</code> que vau obtenir de Google fonts. (<code>font-family</code> només significa el tipùs de lletra que voleu utilitzar per al text.) Aquesta primera regla estableix una base global en tipùs de lletra i mida per a tota la pàgina (ja que <code><html></code> és l'element principal de tota la pàgina, i tots els elements dins d'ella heretaran el mateix tipus de lletra (<code>font-family)</code> i mida (<code>font-size</code>)): + <pre class="brush: css">html { + font-size: 10px; /* px means 'pixels': the base font size is now 10 pixels high */ + font-family: placeholder: this should be the rest of the output you got from Google fonts +}</pre> + + <div class="note"> + <p><strong>Nota</strong>: He afegit un comentari per explicar el que significa "px". Qualsevol cosa en un document CSS entre <code>/*</code> i <code>*/</code> és un <strong>comentari CSS</strong>, que el navegador ignora quan processa el codi. Aquest és un lloc per vosaltres, per escriure notes útils sobre el que esteu fent.</p> + </div> + </li> + <li>Ara establirem les mides del tipus de lletra per als elements que contenen text, a l'interior del cos HTML ({{htmlelement("h1")}}, {{htmlelement("li")}} i {{htmlelement("p")}}). També centrarem el text del nostre encapçalament i establirem una certa altura de línia i espaiat entre caràcters en el contingut del cos perquè sigui una mica més fàcil de llegir: + <pre class="brush: css">h1 { + font-size: 60px; + text-align: center; +} + +p, li { + font-size: 16px; + line-height: 2; + letter-spacing: 1px; +}</pre> + </li> +</ol> + +<p>Podeu ajustar aquests valors de <code>px</code> al vostre gust per tal d'aconseguir el disseny que busqueu, però en general el vostre disseny ha de tenir aquest aspecte:</p> + +<p><img alt="a mozilla logo and some paragraphs. a sans-serif font has been set, the font sizes, line height and letter spacing are adjusted, and the main page heading has been centered" src="https://mdn.mozillademos.org/files/9447/website-screenshot-font-small.png" style="display: block; height: 1020px; margin: 0px auto; width: 921px;"></p> + +<h2 id="Caixes_caixes_tot_es_tracta_de_caixes"><span id="result_box" lang="ca"><span>Caixes</span><span>, caixes,</span> <span>tot</span> <span>es</span> <span>tracta</span> <span>de caixes</span></span></h2> + +<p>Una cosa que notareu en escriure CSS és que molt d'ell es tracta de caixes - establir la seva mida, color, posició, etc. La major part dels elements HTML de la pàgina pot estar pensat com caixes que se sentin unes sobre unes altres.</p> + +<p><img alt="a big stack of boxes or crates sat on top of one another" src="https://mdn.mozillademos.org/files/9441/boxes.jpg" style="display: block; height: 463px; margin: 0px auto; width: 640px;"></p> + +<p>No us estranyeu, el disseny CSS es basa principalment en el <em>model de caixa</em>. Cada un dels blocs que ocupa espai en la vostra pàgina té propietats com aquesta:</p> + +<ul> + <li><code>padding</code>, l'espai al voltant dels continguts (per exemple, al voltant del text del paràgraf)</li> + <li><code>border</code>, la línia contínua que es troba just fora del farciment (padding)</li> + <li><code>margin</code>, l'espai al voltant de l'exterior de l'element</li> +</ul> + +<p><img alt="three boxes sat inside one another. From outside to in they are labelled margin, border and padding" src="https://mdn.mozillademos.org/files/9443/box-model.png" style="display: block; height: 450px; margin: 0px auto; width: 574px;"></p> + +<p><span class="short_text" id="result_box" lang="ca"><span>En aquesta</span> <span>secció</span> <span>també</span> <span>utilitzem</span><span>:</span></span></p> + +<ul> + <li><code>width</code> (d'un element)</li> + <li><code>background-color</code>, El color de fons del contingut d'un element i el farcit</li> + <li><code>color</code>, <span id="result_box" lang="ca"><span>el color</span> <span>del contingut d'un</span> <span>element</span> <span>(</span><span>en general el</span> <span>text</span><span>)</span></span></li> + <li><code>text-shadow</code>: <span id="result_box" lang="ca"><span>estableix una</span> <span>ombra sobre</span> <span>el text dins</span> <span>d'un element</span></span></li> + <li><code>display</code>: estableix la manera de visualitzar un element (no es preocupeu per això encara)</li> +</ul> + +<p>Per tant, anem a començar i afegir una mica més de CSS a la nostra pàgina! Seguiu afegint aquestes noves regles al final de la pàgina, i no tingueu por d'experimentar amb el canvi de valors per veure com resulta.</p> + +<h3 id="Canviar_el_color_de_la_pàgina"><span class="short_text" id="result_box" lang="ca"><span>Canviar el color</span> <span>de la pàgina</span></span></h3> + +<pre class="brush: css">html { + background-color: #00539F; +}</pre> + +<p>Aquesta regla estableix un color de fons a tota la pàgina. Canvieu el codi de color per qualsevol altre color que vau triar a l'hora de planificar el vostre lloc.</p> + +<h3 id="Ordenar_el_cos"><span class="short_text" id="result_box" lang="ca"><span class="alt-edited">Ordenar el cos</span></span></h3> + +<pre class="brush: css">body { + width: 600px; + margin: 0 auto; + background-color: #FF9500; + padding: 0 20px 20px 20px; + border: 5px solid black; +}</pre> + +<p>Ara l'element <code>body</code>. Hi ha bastants declaracions aquí, així que passarem per totes elles una per una:</p> + +<ul> + <li><code>width: 600px;</code> — Això obliga el cos a estar sempre a 600 píxels d'ample.</li> + <li><code>margin: 0 auto;</code> — En establir dos valors en una propietat com <code>margin</code> o <code>padding</code>, el primer valor afecta a la part superior <strong>i</strong> inferior de l'element (És el <code>0</code> en aquest cas), i el segon valor a la part esquerra <strong>i</strong> dreta (en aquest cas, <code>auto</code> és un valor especial que divideix l'espai horitzontal disponible uniformement entre l'esquerra i la dreta). També podeu utilitzar un, tercer o quart valor, tal com es documenta <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/margin#Values">aquí</a>.</li> + <li><code>background-color: #FF9500;</code> — com abans, això estableix el color de fons de l'element. He utilitzat una mena de color taronja vermellós per al cos (body) en lloc del blau fosc per a l'element <code>html</code>. Endevant i experimenteu. Sentir-vos lliures d'usar el blanc (<code>white</code>) o el que vulgueu.</li> + <li><code>padding: 0 20px 20px 20px;</code> — tenim quatre valors establerts en el farciment (padding), per fer una mica d'espai al voltant del nostre contingut. Aquesta vegada no hem establert cap farcit (padding) a la part superior del cos, i 20 píxels a l'esquerra, a baix i a la dreta. Els valors s'estableixen a dalt, dreta, a baix, esquerra, en aquest ordre.</li> + <li><code>border: 5px solid black;</code> — això simplement estableix una vora (border) negra sòlid de 5 píxels d'ample en tots els costats del cos.</li> +</ul> + +<h3 id="Posicionament_i_estil_del_títol_de_la_pàgina_principal">Posicionament i estil del títol de la pàgina principal</h3> + +<pre class="brush: css">h1 { + margin: 0; + padding: 20px 0; + color: #00539F; + text-shadow: 3px 3px 1px black; +}</pre> + +<p>Podeu haver notat que hi ha un buit horrible a la part superior del cos. Això succeeix perquè els navegadors apliquen algun <strong>estil predeterminat</strong> a l'element {{htmlelement("h1")}} (entre d'altres), tot i que no s'ha aplicat cap CSS en absolut! Això pot semblar una mala idea, però volem que fins i tot una pàgina web sense estil tingui la facilitat d'una lectura bàsica. Per desfer-nos de la bretxa sobreescriurem l'estil per defecte, establint <code>margin: 0;</code>.</p> + +<p>A continuació, hem establert el farciment (padding) superior i inferior de l'encapçalat a 20 píxels, i el text del encapçalat del mateix color que el color de fons de l'HTML.</p> + +<p>Una de les propietats més interessants que hem utilitzat aquí és <code>text-shadow</code> , la qual aplica una ombra de text el contingut de text de l'element. Els seus quatre valors són els següents:</p> + +<ul> + <li>El primer valor de píxel estableix el <strong>desplaçament horitzontal</strong> de l'ombra del text - quant es mou a través de: un valor negatiu ha de moure's cap a l'esquerra.</li> + <li>El segon valor de píxel estableix el <strong>desplaçament vertical</strong> de l'ombra del text - quant es mou cap avall, en aquest exemple; un valor negatiu ha de moure-ho cap amunt.</li> + <li>El tercer valor de píxel estableix el <strong>radi de desenfoquement</strong> de l'ombra - un valor major significarà una ombra més fosca.</li> + <li>El quart valor estableix el color base de l'ombra.</li> +</ul> + +<p>Un cop més, tracteu d'experimentar amb diferents valors per veure el que pot passar.</p> + +<h3 id="Centrar_la_imatge">Centrar la imatge</h3> + +<pre class="brush: css">img { + display: block; + margin: 0 auto; +}</pre> + +<p>Finalment, centrarem la imatge perquè es vegi millor. Podríem utilitzar el <code>marge: 0 auto</code>, nou truc que hem fet servir anteriorment per al cos, però també hem de fer alguna cosa més. L'element del cos és a <strong>nivell de bloc</strong>, el que significa que ocupa un espai a la pàgina i pot tenir marges i altres valors d'espaiat que se li apliquen. Les imatges, per altra banda, són elements <strong>en línia</strong>, el que significa que no poden. Així que per aplicar marges a la imatge, hem de donar a la imatge el comportament a nivell de bloc usant <code>display: block;</code>.</p> + +<div class="note"> +<p><strong>Note</strong>: No us preocupeu si encara no enteneu <code>display: block</code>; i la distinció a nivell de bloc/en línia. Ho fareu mentre estudieu CSS amb més profunditat. Podeu trobar més informació sobre els diferents valors de visualització disponibles a la nostra <a href="/en-US/docs/Web/CSS/display">pàgina de referència de la pantalla</a>.</p> +</div> + +<h2 id="Conclusió">Conclusió</h2> + +<p>Si heu seguit totes les instruccions d'aquest article, hareu d'acabar amb una pàgina que es vegi alguna cosa com això (també es pot <a href="http://mdn.github.io/beginner-html-site-styled/">veure la nostra versió aquí</a>):</p> + +<p><img alt="a mozilla logo, centered, and a header and paragraphs. It now looks nicely styled, with a blue background for the whole page and orange background for the centered main content strip." src="https://mdn.mozillademos.org/files/9455/website-screenshot-final.png" style="display: block; height: 1084px; margin: 0px auto; width: 940px;"></p> + +<p>Si us quedeu encallats, sempre podreu comparar el vostre treball amb el nostre <a href="https://github.com/mdn/beginner-html-site-styled/blob/gh-pages/styles/style.css">codi d'exemple acabat en Github</a>.</p> + +<p>Aquí, en realitat només hem tractat una part superficial de CSS. Per obtenir més informació, visiteu el nostre <a href="https://developer.mozilla.org/en-US/Learn/CSS">tema d'aprenentatge CSS</a>.</p> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/HTML_basics", "Learn/Getting_started_with_the_web/JavaScript_basics", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/html_basics/index.html b/files/ca/learn/getting_started_with_the_web/html_basics/index.html new file mode 100644 index 0000000000..42ee2b4c30 --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/html_basics/index.html @@ -0,0 +1,218 @@ +--- +title: HTML basics +slug: Learn/Getting_started_with_the_web/HTML_basics +tags: + - Beginner + - CodingScripting + - HTML + - Learn + - Web + - 'l10n:priority' +translation_of: Learn/Getting_started_with_the_web/HTML_basics +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/Dealing_with_files", "Learn/Getting_started_with_the_web/CSS_basics", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>HTML (Hypertext Markup Language) és el codi que s'utilitza per estructurar i visualitzar una pàgina web i el seu contingut. Per exemple, el contingut podria està estructurat dins d'un conjunt de paràgrafs, una llista de vinyetes o l'ús d'imatges i taules de dades. Com el títol indica, aquest article us donarà un coneixement bàsic d'HTML i quina és la seva funció.</p> +</div> + +<h2 id="Llavors_què_és_HTML_en_realitat">Llavors, què és HTML, en realitat?</h2> + +<p>HTML no és un llenguatge de programació; és un <em>llenguatge de marcat</em>, i s'utilitza per dir-li al navegador com mostrar les pàgines web que visiteu. Pot ser tan complicat o tan simple com el dissenyador de pàgines web desitji que sigui. HTML consisteix en una sèrie de <strong>{{Glossary("element", "elements")}}</strong>, que s'utilitza per tancar o embolicar, diferents parts del contingut per fer que apareguin o actuïn d'una manera determinada. L'envoltant {{Glossary("tag", "tags")}} pot fer una paraula o imatge un hipervincle a un altre lloc, pot posar en cursiva les paraules, i pot fer que el tipus de lletra sigui més gran o més petit, i així successivament. Per exemple, prenguem la següent línia de contingut:</p> + +<pre>My cat is very grumpy</pre> + +<p>Si volguéssim que la línia es mantingués independent, podríem especificar que és un paràgraf, tancant-ho, en un element d'etiqueta de paràgraf ({{htmlelement ("p")}}:</p> + +<pre class="brush: html"><p>My cat is very grumpy</p></pre> + +<h3 id="Anatomia_d'un_element_HTML"><span id="result_box" lang="ca"><span>Anatomia</span> <span>d'un</span> <span>element</span> <span>HTML</span></span></h3> + +<p>Anem a explorar aquest element paràgraf una mica més lluny.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9347/grumpy-cat-small.png" style="display: block; height: 255px; margin: 0px auto; width: 821px;"></p> + +<p><span id="result_box" lang="ca"><span>Les</span> <span>parts</span> <span>principals</span> <span>del nostre</span> <span>element</span> <span>són</span><span>:</span></span></p> + +<ol> + <li><strong>L'etiqueta d'obertura:</strong> Aquest consisteix en el nom de l'element (en aquest cas, p), embolicat en <strong>claus angulars</strong> d'obertura i tancament. Això indica on comença l'element, o on comença a tenir efecte - en aquest cas és en el començament del paràgraf.</li> + <li><strong>L'etiqueta de tancament:</strong> Aquesta és la mateixa que l'etiqueta d'obertura, excepte que inclou una barra inclinada abans del nom de l'element. Això indica on acaba l'element - en aquest cas és en el final del paràgraf. No incloure una etiqueta de tancament és un dels errors comuns per a principiants i pot conduir a resultats estranys.</li> + <li><strong>El contingut:</strong> Aquest és el contingut de l'element, que en aquest cas és només text.</li> + <li><strong>L'element:</strong> L'etiqueta d'obertura, més de l'etiqueta de tancament, més el contingut, és igual a l'element.</li> +</ol> + +<p><span id="result_box" lang="ca"><span>Els</span> <span>elements</span> <span>també</span> <span>poden tenir</span> <span>atributs, </span><span>es</span> <span>veuen</span> <span>així</span><span>:</span></span></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9345/grumpy-cat-attribute-small.png" style="display: block; height: 156px; margin: 0px auto; width: 1287px;"></p> + +<p>Els atributs contenen informació addicional sobre l'element que no voleu que aparegui en el contingut real. Aquí, <code>class</code> és el <em>nom</em> de l'atribut, i <code>editor-note</code> és el <em>valor</em> de l'atribut. L'atribut <code>class</code> li permet donar a l'element un identificador que pot ser utilitzat posteriorment per l'element de destí amb informació d'estil i altres coses.</p> + +<p>Un atribut sempre ha de tenir:</p> + +<ol> + <li>Un espai entre el mateix i el nom de l'element (o l'atribut anterior, si l'element ja té un o més atributs).</li> + <li>El nom de l'atribut, seguit d'un signe igual.</li> + <li>Obertura i tancament de cometes al voltant del valor de l'atribut. </li> +</ol> + +<h3 id="Niar_elements">Niar elements</h3> + +<p>Podeu posar, també, elements dins d'altres elements - això es diu <strong>niar</strong>. Si volguéssim afirmar que el nostre gat està de molt (VERY) mal humor, podríem embolicar la paraula "molt" ("very") en un element {{htmlelement("strong")}}, el que significa que la paraula està fortament emfatitzada:</p> + +<pre class="brush: html"><p>My cat is <strong>very</strong> grumpy.</p></pre> + +<p>No obstant això, necessiteu assegurar-vos que els seus elements estan correctament niats: en l'exemple anterior vam obrir l'element <p> en primer lloc, a continuació, l'element <strong>, per tant, primer hem de tancar l'element <strong>, després el <p >. El següent és incorrecte:</p> + +<pre class="example-bad brush: html"><p>My cat is <strong>very grumpy.</p></strong></pre> + +<p>Els elements han de ser oberts i tancats correctament perquè estiguin clarament dins o fora uns dels altres. Si es superposen com els de dalt, llavors el navegador web tractarà de fer una millor estimació del que estava tractant de dir, i així es poden obtenir resultats inesperats. Així que no ho feu!</p> + +<h3 id="Elements_buits">Elements buits</h3> + +<p>Alguns elements no tenen contingut, es diuen <strong>elements buits</strong>. Prengueu l'element {{htmlelement("img")}} que ja tenim en el nostre HTML:</p> + +<pre class="brush: html"><img src="images/firefox-icon.png" alt="My test image"></pre> + +<p>Aquest conté dos atributs, però no hi ha cap etiqueta de tancament <code></img></code>, i cap contingut intern. Això es deu al fet que un element image no embolica el contingut per tenir un efecte sobre ell. La seva finalitat és la d'inserir una imatge a la pàgina HTML, en el lloc que apareix.</p> + +<h3 id="Anatomia_d'un_document_HTML"><span id="result_box" lang="ca"><span>Anatomia</span> <span>d'un</span> <span>document HTML</span></span></h3> + +<p>Envolta els conceptes bàsics dels elements HTML individuals, els quals són poc útils per si mateixos. Ara veurem com els elements individuals es combinen per formar tota una pàgina HTML. Revisarem el codi que posarem en el nostre exemple <code>index.html</code> (que per primera vegada ens trobem amb el article <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Dealing_with_files">Tractar amb arxius</a>):</p> + +<pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My test page</title> + </head> + <body> + <img src="images/firefox-icon.png" alt="My test image"> + </body> +</html></pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquí tenim</span><span>:</span></span></p> + +<ul> + <li><code><!DOCTYPE html></code> — el doctype. En la nit dels temps, quan HTML era jove (al voltant de 1991/2), els doctypes havien d'actuar com a enllaços a un conjunt de regles que la pàgina HTML havia de seguir per ser considerada un bon HTML, la qual cosa podria significar la verificació automàtica d'errors i altres coses útils. No obstant això, en aquests dies ningú realment es preocupa per ells, i realment només son un artefacte històric que ha de ser inclòs perquè tot funcioni bé. Per ara, això és tot el que necessiteu saber.</li> + <li><code><html></html></code> — l'element <code><html></code>. Aquest element envolta tot el contingut de la pàgina sencera, algunes vegades es coneix com l'element arrel.</li> + <li><code><head></head></code> — l'element <code><head></code>. Aquest element actua com a contenidor de totes les coses que voleu incloure a la pàgina HTML que <em>no és</em> el contingut que es mostre als espectadors de la vostre pàgina. Això inclou coses com {{Glossary("keyword", "keywords")}} i una descripció de la pàgina que voleu que aparegui en els resultats de cerca, CSS per l'estil del vostre contingut, declaracions de conjunt de caràcters, i més.</li> + <li><code><body></body></code> — l'element <code><body></code>. Això inclou tot el contingut que voleu mostrar als usuaris d'Internet quan visiten la vostre pàgina, ja sigui text, imatges, vídeos, jocs, reproducció de pistes d'àudio, o qualsevol altra cosa.</li> + <li><code><meta charset="utf-8"></code> — aquest element defineix el conjunt de caràcters que el document ha d'utilitzar per utf-8, inclou la majoria dels caràcters de tots els idiomes de la humanitat coneguts. En essència, ara podeu gestionar qualsevol contingut textual, possible, que vulgueu posar. No hi ha cap raó per no establir aquest, i pot ajudar a evitar alguns problemes més endavant.</li> + <li><code><title></title></code> — Estableix el títol de la pàgina, que és el títol que apareix a la pestanya del navegador quan es carrega la pàgina, i s'utilitza per descriure la pàgina quan aquest és un marcador/favorit.</li> +</ul> + +<h2 id="Imatges">Imatges</h2> + +<p>Anem a centrar de nou la nostra atenció en l'element image:</p> + +<pre class="brush: html"><img src="images/firefox-icon.png" alt="My test image"></pre> + +<p>Com hem dit abans, incrusta una imatge a la nostra pàgina en la posició que apareix. Això ho fa a través de l'atribut <code>src</code> (source), que conté la ruta d'accés al nostre arxiu d'imatge.</p> + +<p>També hem inclòs un atribut <code>alt</code> (alternatiu). En aquest atribut, s'especifica un text descriptiu per als usuaris que no puguin veure la imatge, possiblement pel fet que:</p> + +<ol> + <li>Tenen trastorns visuals. Els usuaris amb impediments visuals significatius sovint utilitzen eines anomenades lectors de pantalla (Screen Readers) per llegir el text alternatiu.</li> + <li>Alguna cosa ha anat malament provocant que la imatge no es vegi. Per exemple, tractar deliberadament de canviar la ruta d'accés dins del seu atribut src perquè sigui incorrecta. Si guardeu i torneu a carregar la pàgina, hauríeu de veure alguna cosa com això en lloc de la imatge:</li> +</ol> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9349/alt-text-example.png" style="display: block; height: 36px; margin: 0px auto; width: 108px;"></p> + +<p>Les paraules clau sobre el text alternatiu són "text descriptiu". El text alternatiu escrit ha de proporcionar al lector informació suficient per tenir una bona idea del que la imatge transmet. En aquest exemple, el nostre text actual "La meva imatge de prova" no és bo en absolut. Una alternativa molt millor per al nostre logotip de Firefox seria "El logo de Firefox: una guineu en flames que envolta la Terra."</p> + +<p><strong>Tracteu d'arribar amb un text alternatiu millor per a la vostre imatge ara.</strong></p> + +<div class="note"> +<p><strong>Nota</strong>: Per saber més sobre l'accessibilitat en <a href="/en-US/docs/Web/Accessibility">MDN's Accessibility landing page</a>.</p> +</div> + +<h2 id="Marcat_de_text">Marcat de text</h2> + +<p>En aquesta secció es descriuen alguns dels elements HTML bàsics que utilitzareu per marcar el text.</p> + +<h3 id="Encapçalaments">E<span id="result_box" lang="ca"><span>ncapçalaments</span></span></h3> + +<p>Els elements d'encapçalat permeten especificar que certes parts del seu contingut són encapçalats o subtítols del seu contingut. De la mateixa manera que un llibre té un títol principal, títols de capítols i subtítols, un document HTML també pot. HTML conté sis nivells d'encapçalament, {{htmlelement("h1")}}–{{htmlelement("h6")}} encara que normalment només s'utilitza 3-4 en la majoria de les vegades:</p> + +<pre class="brush: html"><h1>My main title</h1> +<h2>My top level heading</h2> +<h3>My subheading</h3> +<h4>My sub-subheading</h4></pre> + +<p>Ara tracteu d'afegir un títol adequat a la vostre pàgina HTML just per sobre de l'element {{htmlelement("img")}}.</p> + +<h3 id="Paràgrafs">Paràgrafs</h3> + +<p>Com es va explicar anteriorment, els elements {{htmlelement("p")}} són per contenir paràgrafs de text; Els utilitzareu freqüentment quan marqueu un contingut de text normal:</p> + +<pre class="brush: html"><p>This is a single paragraph</p></pre> + +<p>Afegir el text de mostra<strong> (</strong>ha de tenir el que <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/What_should_your_web_site_be_like">hauria de semblar al vostre lloc web?</a><strong>) </strong>en un o uns pocs paràgrafs, col·locats directament sota de l'element <img>.</p> + +<h3 id="Llistes">Llistes</h3> + +<p>Una gran quantitat de contingut de la web son llistes HTML i té elements especials per a aquestes. El marcat de les llistes es compon sempre d'almenys dos elements. Els tipus de llistes més comuns son ordenades i desordenades:</p> + +<ol> + <li><strong>Llistes desordenades</strong> són llistes en què l'ordre dels elements no importa, com una llista de la compra. Aquestes estan embolicades en un element {{htmlelement("ul")}}.</li> + <li><strong>Llistes ordenades</strong> són llistes en què l'ordre dels elements és important, com una recepta. Aquestes estan embolicades en un element {{htmlelement("ol")}}.</li> +</ol> + +<p>Cada element dins de les llistes es col·loca dins d'un element {{htmlelement("li")}} (llista d'elements).</p> + +<p>Per exemple, si volguéssim convertir la part del fragment del següent paràgraf en una llista:</p> + +<pre class="brush: html"><p>At Mozilla, we’re a global community of technologists, thinkers, and builders working together ... </p></pre> + +<p>Podríem modificar el marcat a això:</p> + +<pre class="brush: html"><p>At Mozilla, we’re a global community of</p> + +<ul> + <li>technologists</li> + <li>thinkers</li> + <li>builders</li> +</ul> + +<p>working together ... </p></pre> + +<p><strong>Intenteu afegir una llista ordenada o desordenada a la vostre pàgina d'exemple.</strong></p> + +<h2 id="Enllaços">Enllaços</h2> + +<p>Els enllaços són molt importants, perquè són els que converteixen a la Web en UN LLOC WEB. Per afegir un vincle, necessiteu utilitzar un element simple - {{htmlelement("a")}} - sent l'abreviatura de "ancora". Per posar el text en el seu apartat en un enllaç, seguiu aquests passos:</p> + +<ol> + <li>Trieu un text. Triem el text "Manifest de Mozilla".</li> + <li>Emboliqueu el text en un element <a>, així: + <pre class="brush: html"><a>Mozilla Manifesto</a></pre> + </li> + <li>Doneu a l'element <a> un atribut href, així: + <pre class="brush: html"><a href="">Mozilla Manifesto</a></pre> + </li> + <li>Ompliu el valor d'aquest atribut amb l'adreça web que desitjeu enllaçar el vincle: + <pre class="brush: html"><a href="https://www.mozilla.org/en-US/about/manifesto/">Mozilla Manifesto</a></pre> + </li> +</ol> + +<p>És possible obtenir resultats inesperats si s'omet la part <code>https://</code> o <code>http://</code>, anomenat el protocol, al principi de l'adreça web. Després de fer un enllaç, feu-hi clic per assegurar-vos que us està enviant on volíeu.</p> + +<div class="note"> +<p><code>href</code> podria aparèixer com una elecció bastant fosca per a un nom d'atribut al principi. Si teniu problemes per recordar-la, recordeu que representa una <em><strong>h</strong>ypertext <strong>ref</strong>erence</em>.</p> +</div> + +<p><strong>Afegiu un enllaç a la vostre pàgina d'ara, si no ho heu fet encara.</strong></p> + +<h2 id="Conclusió">Conclusió</h2> + +<p>Si heu seguit totes les instruccions d'aquest article, heu d'acabar amb una pàgina que s'assembla a la de sota (també es pot <a href="http://mdn.github.io/beginner-html-site/">veure aquí</a>):<br> + <br> + <img alt="A web page screenshot showing a firefox logo, a heading saying mozilla is cool, and two paragraphs of filler text" src="https://mdn.mozillademos.org/files/9351/finished-test-page-small.png" style="display: block; height: 838px; margin: 0px auto; width: 716px;"></p> + +<p>Si us quedeu encallats, sempre podeu comparar el vostre treball amb el nostre <a href="https://github.com/mdn/beginner-html-site/blob/gh-pages/index.html">codi d'exemple acabat</a> en Github.</p> + +<p>Aquí, en realitat, només hem tractat una part superficial d'HTML. Per obtenir més informació, visiteu el nostre <a href="/en-US/Learn/HTML">HTML Learning topic</a>.</p> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/Dealing_with_files", "Learn/Getting_started_with_the_web/CSS_basics", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/index.html b/files/ca/learn/getting_started_with_the_web/index.html new file mode 100644 index 0000000000..2681cd612f --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/index.html @@ -0,0 +1,62 @@ +--- +title: Introducció a la Web +slug: Learn/Getting_started_with_the_web +tags: + - Beginner + - CSS + - Design + - Disseny + - Guide + - Guía + - HTML + - Index + - Principiant + - 'l10n:priority' + - publishing + - teoria + - theory +translation_of: Learn/Getting_started_with_the_web +--- +<div>{{LearnSidebar}}</div> + +<div class="summary"> +<p><em>Iniciació a la Web</em> és una sèrie concisa que us introdueix en als aspectes pràctics de desenvolupament web. Podreu configurar les eines que necessiteu per construir una pàgina web senzilla i publicar el vostre propi codi.</p> +</div> + +<h2 id="La_història_del_vostre_primer_lloc_web">La història del vostre primer lloc web</h2> + +<p>És molta feina crear un lloc web professional, per si sou nous en el desenvolupament web us recomanem començar a poc a poc. No es tracta de construir un altre Facebook immediatament, però no és difícil aconseguir d'una manera senzilla el vostre propi lloc web en xarxa, així que començarem per aquí.</p> + +<p>Treballant a través dels articles que figuren en ordre a continuació, passareu del no-res a aconseguir la vostre primera pàgina web en línia. Som-hi!</p> + +<h3 id="Instal.lació_del_programari_bàsic"><a href="/ca/Learn/Getting_started_with_the_web/Installing_basic_software">Instal.lació del programari bàsic</a></h3> + +<p>Quan es tracta d'eines per a la construcció d'un lloc web, hi ha molt per triar. Si esteu començant, pot ser confós per la varietat d'editors de codi, marcs i eines de prova que hi ha. En la <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">instal·lació del programari bàsic</a> t'ensenyarem pas a pas com instal·lar només el programari que necessites per començar un desenvolupament web bàsic.</p> + +<h3 id="Com_serà_el_teu_lloc_web"><a href="/ca/Learn/Getting_started_with_the_web/Quin_aspecte_tindrà_vostre_lloc_web">Com serà el teu lloc web?</a></h3> + +<p>Abans de començar a escriure el codi del vostre lloc web, en primer lloc ho heu de planificar. Quina informació es mostrarà? Quins tipus de lletra i colors utilitzar? <a href="/ca/Learn/Getting_started_with_the_web/Quin_aspecte_tindrà_vostre_lloc_web">Com serà el teu lloc web?</a> Descriure un mètode senzill a seguir per planificar el contingut i el disseny del lloc.</p> + +<h3 id="Tractar_amb_arxius"><a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">Tractar amb arxius</a></h3> + +<p>Un lloc web es compon de molts arxius: contingut de text, codi, fulles d'estil, contingut multimèdia, i successivament. Quan esteu construint un lloc web, és necessari reunir aquests arxius en una estructura sensible i assegurar-se que poden parlar l'un a l'altre. <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">Tractar amb arxius</a> explica com configurar una estructura raonable d'arxius per al vostra lloc web i quins aspectes s'han de tenir en compte.</p> + +<h3 id="HTML_bàsics"><a href="/ca/Learn/Getting_started_with_the_web/HTML_basics">HTML bàsics</a></h3> + +<p>Llenguatge de marcat d'hipertext (HTML) és el codi que s'utilitza per estructurar el contingut de la vostra web, donant-li sentit i propòsit. Per exemple, el meu contingut és un conjunt de paràgrafs, o una llista de vinyetes? He inserit imatges a la meva pàgina? Tinc una taula de dades? Sense aclaparar-vos, els conceptes <a href="https://developer.mozilla.org/ca/Learn/Getting_started_with_the_web/HTML_basics">bàsics d'HTML</a> proporcionen suficient informació per familiaritzar-vos amb HTML.</p> + +<h3 id="CSS_bàsics"><a href="/ca/Learn/Getting_started_with_the_web/CSS_bàsic">CSS bàsics</a></h3> + +<p>Els fulls d'estil en cascada (CSS) és el codi que s'utilitza per donar estil el vostre lloc web. Per exemple, voleu que el text sigui negre o vermell? On s'ha de dibuixar el contingut en la pantalla? Quines imatges de fons i colors han d'usar-se per decorar el vostre lloc web? <a href="/ca/Learn/Getting_started_with_the_web/CSS_bàsic">CSS bàsic</a> us portarà a través del que necessiteu per començar.</p> + +<h3 id="JavaScript_bàsics"><a href="/en-US/Learn/Getting_started_with_the_web/JavaScript_basics">JavaScript bàsics</a></h3> + +<p>JavaScript és el llenguatge de programació que s'utilitza per afegir característiques interactives al vostra lloc web, per exemple, jocs, coses que succeeixen quan es pressionen els botons o s'introdueixen les dades en els formularis, els efectes dinàmics d'estil, animació i molt més. Els conceptes <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/JavaScript_basics">bàsics de JavaScript</a> us dnarà una idea del que és possible amb aquest llenguatge emocionant, i com començar.</p> + +<h3 id="Publicació_del_vostre_lloc_web"><a href="/en-US/Learn/Getting_started_with_the_web/Publishing_your_website">Publicació del vostre lloc web</a></h3> + +<p>Un cop hàgiu acabat d'escriure el codi i l'organització dels arxius que componen el vostre lloc web, cal posar-ho tot en línia perquè la gent el pugui trobar. <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Publishing_your_website">Publicar el codi d'exemple</a> es descriu com obtenir el teu simple codi de mostra en línia amb el mínim esforç.</p> + +<h3 id="Com_funciona_el_web"><a href="/en-US/Learn/Getting_started_with_the_web/How_the_Web_works">Com funciona el web</a></h3> + +<p>Quan accediu al vostre lloc web favorit, un munt de coses complicades succeeixen en el fons que no podeu saber. <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/How_the_Web_works">Com funciona la web</a> descriu el que succeeix quan veieu una pàgina web en el vostra ordinador.</p> diff --git a/files/ca/learn/getting_started_with_the_web/instal·lació_bàsica_programari/index.html b/files/ca/learn/getting_started_with_the_web/instal·lació_bàsica_programari/index.html new file mode 100644 index 0000000000..aa431f3199 --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/instal·lació_bàsica_programari/index.html @@ -0,0 +1,67 @@ +--- +title: Instal·lació bàsica del programari +slug: Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari +tags: + - Beginner + - Browser + - Learn + - Setup + - Tools + - WebMechanics + - 'l10n:priority' + - text editor +translation_of: Learn/Getting_started_with_the_web/Installing_basic_software +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/Getting_started_with_the_web/What_will_your_website_look_like", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>En la <em><strong>Instal·lació de programari bàsic</strong></em>, us mostrarem les eines que necessiteu per a començar amb el desenvolupament web, i com instal·lar-les correctament.</p> +</div> + +<h2 id="Quines_eines_fan_servir_els_professionals"><span id="result_box" lang="ca"><span>Quines eines</span> <span>fan servir els professionals</span></span>?</h2> + +<ul> + <li><strong>Un ordinador</strong>. Potser això sona obvi per a algunes persones, però alguns de vosaltres esteu llegint aquest article des del vostre telèfon o un ordinador de la biblioteca. Per a un desenvolupament web seriós, és millor invertir en un ordinador d'escriptori (Windows, Mac, o Linux).</li> + <li><strong>Un editor de text</strong>, per escriure codi. Tant pot ser un editor de text (per exemple <a href="http://brackets.io/">Brackets</a>, <a href="https://atom.io/">Atom</a> o <a href="https://code.visualstudio.com/">Visual Studio Code</a>), com un editor híbrid (per exemple <a href="https://www.adobe.com/products/dreamweaver.html">Dreamweaver</a> o <a href="https://www.jetbrains.com/webstorm/">WebStorm</a>). Els editors de documents d'oficina no són adequats per a aquest ús, ja que es basen en elements ocults que interfereixen amb els motors de renderitzat utilitzats pels navegadors web.</li> + <li><strong>Navegadors web</strong>, per posar a prova el codi. Actualment els navegadors més utilitzats són <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>, <a href="https://www.google.com/chrome/browser/">Chrome</a>, <a href="http://www.opera.com/">Opera</a>, <a href="https://www.apple.com/safari/">Safari</a>, <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie">Internet Explorer</a> i <a href="https://www.microsoft.com/en-us/windows/microsoft-edge">Microsoft Edge</a>. També heu de provar com funciona el vostre lloc en dispositius mòbils i en qualsevol navegador antic en què el seu públic objectiu encara pugui està utilitzant-lo extensivament (com IE 8-10).</li> + <li><strong>Un editor de gràfics</strong>, com <a href="http://www.gimp.org/">GIMP</a>, <a href="http://www.getpaint.net/">Paint.NET</a> o <a href="https://www.adobe.com/products/photoshop.html">Photoshop</a>, per crear imatges per a les vostres pàgines web.</li> + <li><strong>Un sistema de control de versions</strong>, per administrar arxius en servidors, col·laborar en un projecte amb un equip, compartir codi i actius, i evitar conflictes d'edició. En aquest moment <a href="http://git-scm.com/">Git</a> és l'eina de control de versions més popular, i el servei d'allotjament de codi en <a href="https://github.com/">GitHub</a> basat en Git, és també molt popular.</li> + <li><strong>Un programa FTP</strong>, utilitzat en els serveis d'allotjament web més antics per a administrar els arxius en els servidors (<a href="http://git-scm.com/">Git</a> està reemplaçant cada vegada més els FTP per a aquest propòsit). Hi ha un munt de programes (S)FTP disponibles, incloent <a href="https://cyberduck.io/">Cyberduck</a>, <a href="http://fetchsoftworks.com/">Fetch</a> i <a href="https://filezilla-project.org/">FileZilla</a>.</li> + <li><strong>Un sistema d'automatització</strong>, com <a href="http://gruntjs.com/">Grunt</a> o <a href="http://gulpjs.com/">Gulp</a>, per a realitzar tasques repetitives de forma automàtica, per exemple minifying codi i execució de proves.</li> + <li>Plantilles, biblioteques, entorns de treball, etc., per accelerar l'escriptura de funcions comunes.</li> + <li>Moltres altres eines!</li> +</ul> + +<h2 id="Quines_eines_realment_necessito_ara_mateix"><span id="result_box" lang="ca"><span>Quines eines</span> <span>realment</span> <span>necessito</span><span>, ara</span> <span>mateix</span><span>?</span></span></h2> + +<p>Sembla una llista aterridora, però, afortunadament, es pot començar en el desenvolupament web sense saber-ne res de la majoria. En aquest article només en configurarem les mínimes - un editor de text i alguns navegadors web moderns.</p> + +<h3 id="Instal·lació_dun_editor_de_text">Instal·lació d'un editor de text</h3> + +<p>Probablement ja teniu un editor de text bàsic en l'equip. Per defecte, Windows inclou el <a href="https://en.wikipedia.org/wiki/Microsoft_Notepad">Notepad</a> i OS X ve amb <a href="https://en.wikipedia.org/wiki/TextEdit">TextEdit</a>. Les distribucions de Linux varien; Ubuntu ve amb <a href="https://en.wikipedia.org/wiki/Gedit">gedit</a> per defecte.</p> + +<p>Per al desenvolupament web, segurament treballareu millor amb altres eines que el NotePad o el TextEdit. Es recomana començar amb <a href="https://brackets.io">Brackets</a>, que és un editor gratuït que ofereix vistes prèvies i suggeriments per al codi.</p> + +<h3 id="Instal·lació_de_navegadors_web_moderns">I<span id="result_box" lang="ca"><span>nstal·lació</span> <span>de navegadors</span> <span>web moderns</span></span></h3> + +<p>Per ara, només haurem d'instal·lar un parell de navegadors web d'escriptori per provar el nostre codi. Seleccioneu el vostre sistema operatiu i feu clic a l'enllaç corresponent per descarregar els instal·ladors per als vostres navegadors preferits:</p> + +<ul> + <li>Linux: <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>, <a href="https://www.google.com/chrome/browser/">Chrome</a>, <a href="http://www.opera.com/">Opera</a>.</li> + <li>Windows: <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>, <a href="https://www.google.com/chrome/browser/">Chrome</a>, <a href="http://www.opera.com/">Opera</a>, <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie">Internet Explorer</a>, <a href="https://www.microsoft.com/en-us/windows/microsoft-edge">Microsoft Edge</a> (Windows 10 ve amb Edge per defecte. Si teniu Windows 7 o superior, podeu instal·lar IE 11; en qualsevol altre cas us caldrà instal·lar un navegador alternatiu)</li> + <li>Mac: <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>, <a href="https://www.google.com/chrome/browser/">Chrome</a>, <a href="http://www.opera.com/">Opera</a>, <a href="https://www.apple.com/safari/">Safari</a> (Safari ve amb iOS i macOS per defecte)</li> +</ul> + +<p>Abans de continuar, heu d'instal·lar almenys dos d'aquests navegadors i tenir-los llestos per a la prova.</p> + + + +<h3 id="Instal·lació_dun_servidor_web_local">Instal·lació d'un servidor web local</h3> + +<p>Alguns exemples, per a que funcionin correctament caldrà executar-los amb un servidor web local instal·lat. Podeu esbrinar com fer-ho a <a href="https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server">Com instal·lar i configurar un servidor local de test?</a> (en anglès)</p> + + + +<p>{{NextMenu("Learn/Getting_started_with_the_web/What_will_your_website_look_like", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/javascript_bàsic/index.html b/files/ca/learn/getting_started_with_the_web/javascript_bàsic/index.html new file mode 100644 index 0000000000..e9b90830ca --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/javascript_bàsic/index.html @@ -0,0 +1,394 @@ +--- +title: JavaScript bàsic +slug: Learn/Getting_started_with_the_web/JavaScript_bàsic +tags: + - Beginner + - CodingScripting + - JavaScript + - Learn + - Web + - 'l10n:priority' +translation_of: Learn/Getting_started_with_the_web/JavaScript_basics +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/CSS_basics", "Learn/Getting_started_with_the_web/Publishing_your_website", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>JavaScript és un llenguatge de programació que afegeix interactivitat al vostre lloc web (per exemple: jocs, respostes quan es premen els botons o les dades introduïdes en formularis, estil dinàmic, animació). Aquest article us ajudarà a començar amb aquest llenguatge emocionant i us donarà una idea del que és possible.</p> +</div> + +<h2 id="Què_és_JavaScript_realment"><span class="short_text" id="result_box" lang="ca"><span>Què</span> <span>és</span> <span>JavaScript,</span> <span>realment</span><span>?</span></span></h2> + +<p>{{Glossary("JavaScript")}} ("JS" abreujat) és un veritable {{Glossary("Dynamic programming language", "llenguatge dinàmic de programació")}} en tota regla, que quan s'aplica a un document {{Glossary("HTML")}}, pot proporcionar interactivitat dinàmica en els llocs web. Va ser inventat per Brendan Eich, cofundador del projecte Mozilla, la Fundació Mozilla i Mozilla Corporation.</p> + +<p>Javascript és increïblement versàtil. Podeu començar a poc a poc, amb carrusels, galeries d'imatges, dissenys fluctuants i les respostes a les pulsacions de botó. Amb més experiència sereu capaços de crear jocs, gràfics animats en 2D i 3D, aplicacions completes de bases de dades i molt més!</p> + +<p>JavaScript per si mateix és bastant compacte però molt flexible. Els desenvolupadors han escrit una gran varietat d'eines que complementen el nucli del llenguatge JavaScript, el desbloqueig d'una gran quantitat de funcionalitats extra amb el mínim esforç. Aquestes inclouen:</p> + +<ul> + <li>Interfícies de programació d'aplicacions ({{Glossary("API","APIs")}}) en els navegadors web, proporcionant funcionalitats com la creació dinàmica HTML i l'establiment d'estils CSS, recol·lecció i manipulació d'una seqüència de vídeo des de la càmera web de l'usuari, o la generació de gràfics 3D i mostres d'àudio.</li> + <li>APIs de tercers per permetre als desenvolupadors incorporar funcionalitat en els seus llocs d'altres proveïdors de contingut, com Twitter o Facebook.</li> + <li>Marcs de tercers i biblioteques que podreu aplicar al vostre HTML els quals us permetrà construir ràpidament llocs i aplicacions.</li> +</ul> + +<h2 id="Un_exemple_hola_món"><span id="result_box" lang="ca"><span>Un exemple</span> <span>"</span><span>hola</span> <span>món</span><span>"</span></span></h2> + +<p>La secció anterior pot sonar molt emocionant, i així ha de ser - i Javascript és una de les tecnologies web més vives i quan comenceu a ser bons en el seu ús, els vostres llocs web entraran en una nova dimensió de poder i creativitat.</p> + +<p>No obstant això, Javascript és una mica més complex per sentir-se còmodes que amb HTML i CSS. Podria ser necessari començar a poc a poc i seguir treballant en petits passos consistents. Per començar, us mostrarem com afegir una mica de Javascript bàsic a la vostre pàgina, creant un "Hello world!" d'exemple (<a href="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program">l'estandard en els exemples bàsics de programació</a>).</p> + +<div class="warning"> +<p><strong>Important</strong>: Si no ho heu estat seguint juntament amb la resta del nostre curs, <a href="https://github.com/mdn/beginner-html-site-styled/archive/gh-pages.zip">descarregueu el codi exemple</a> i utilitzar-ho com a punt de partida.</p> +</div> + +<ol> + <li>En primer lloc, aneu al vostre lloc de prova i creeu una nova carpeta amb el nom 'scripts' (sense les cometes). Després, en la nova carpeta scripts que acabeu de crear, creeu un nou arxiu anomenat <code>main.js</code>. Guardeu-ho en la carpeta <code>scripts</code>.</li> + <li>A continuació, en l'arxiu <code>index.html</code> introduir l'element següent en una nova línia just abans de l'etiqueta de tancament <code></body></code>: + <pre class="brush: html"><script src="scripts/main.js"></script></pre> + </li> + <li>La seva funció fa bàsicament la mateixa feina que l'element {{htmlelement("link")}} per CSS - s'aplica el codi JavaScript a la pàgina, de manera que pot tenir un efecte sobre el codi HTML (juntament amb el CSS, i qualsevol altra cosa en la pàgina).</li> + <li> + <p>Ara afegiu el codi següent a l'arxiu <code>main.js</code>:</p> + + <pre class="brush: js">var myHeading = document.querySelector('h1'); +myHeading.textContent = 'Hello world!';</pre> + </li> + <li>Finalment, assegureu-vos que els fitxers HTML i JavaScript es guarden i <code>index.html</code> es carrega en el navegador. Haurieu de veure alguna cosa com el següent:<img alt="" src="https://mdn.mozillademos.org/files/9543/hello-world.png" style="display: block; height: 236px; margin: 0px auto; width: 806px;"></li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: La raó per la qual hem posat l'element {{htmlelement("script")}} prop de la part inferior de l'arxiu HTML és que l'HTML és carregat pel navegador en l'ordre en què apareix en l'arxiu. Si el Javascript es carrega primer i se suposa que afecta a l'HTML sota ell, pot ser que no funcioni, ja que el Javascript es carregaria abans de l'HTML que se suposa que funciona. Per tant, col·locar Javascript prop de la part inferior de la pàgina HTML és sovint la millor estratègia.</p> +</div> + +<h3 id="Què_va_passar"><span id="result_box" lang="ca"><span>Què va passar?</span></span></h3> + +<p>Al text de la capçalera ara s'ha canviat a "Hola, món!" amb l'ús de JavaScript. Això s'ha fet utilitzant primer una funció denominada {{domxref("Document.querySelector", "querySelector()")}} per obtenir una referència al vostre encapçalament, i emmagatzemar-ho en una variable denominada myHeading. Això és molt similar al que vam fer amb l'ús de selectors CSS. Quan es vol fer alguna cosa en un element, primer heu de seleccionar-lo.</p> + +<p>Després d'això, s'estableix el valor de la variable <code>myHeading</code> amb la propietat {{domxref("Node.textContent", "textContent")}} (que representa el contingut del encapçalament) a "Hola, món!".</p> + +<h2 id="Curs_intensiu_bàsic_del_llenguatge">Curs intensiu bàsic del llenguatge</h2> + +<p>Anem a explicar algunes de les característiques bàsiques del llenguatge JavaScript, per donar-vos una major comprensió de com funciona tot. Millor encara, aquestes característiques són comunes a tots els llenguatges de programació. Si domineu aquests fonaments, esteu en el camí de ser capaços de programar gairebé qualsevol cosa!</p> + +<div class="warning"> +<p><strong>Important</strong>:En aquest article, intenteu introduir les línies de codi d'exemple en la vostra consola de Javascript per veure què succeeix. Per a més detalls sobre les consoles de JavaScript, consulteu <a href="/en-US/Learn/Discover_browser_developer_tools">Descobrir eines per a desenvolupadotrs del navegador</a>.</p> +</div> + +<h3 id="Variables">Variables</h3> + +<p>{{Glossary("Variable", "Variables")}} són contenidors en els quals es poden emmagatzemar valors. Es comença per declarar una variable amb la paraula clau var, seguit pel nom que voleu nomenar:</p> + +<pre class="brush: js">var myVariable;</pre> + +<div class="note"> +<p><strong>Nota</strong>: Totes les sentències en JavaScript han d'acabar amb un punt i coma, per indicar que aquí és on acaba la sentència. Si no incloeu aquests, es poden obtenir resultats inesperats.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Podeu nomenar una variable gairebé qualsevol cosa, però hi ha algunes restriccions de nom (vegeu <a href="http://www.codelifter.com/main/tips/tip_020.shtml">aquest article sobre les regles de denominació de les variables</a>). Si no esteu segur, podeu <a href="https://mothereff.in/js-variables">comprovar el nom de la variable</a> per veure si és vàlida.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: JavaScript és sensible a majúscules - myVariable és una variable diferent a myvariable. Si si esteu tenint problemes en el vostre codi, comprobeu el cos!</p> +</div> + +<p>Després de declarar una variable, podeu donar-li un valor:</p> + +<pre class="brush: js">myVariable = 'Bob';</pre> + +<p>Podeu fer les dues operacions en la mateixa línia si ho desitjeu:</p> + +<pre class="brush: js">var myVariable = 'Bob';</pre> + +<p>Podeu recuperar el valor amb només cridar la variable pel seu nom:</p> + +<pre class="brush: js">myVariable;</pre> + +<p>Després de donar a una variable un valor, posteriorment podeu optar per canviar-ho:</p> + +<pre>var myVariable = 'Bob'; +myVariable = 'Steve';</pre> + +<p>Recordeu que les variables tenen diferents <a href="/en-US/docs/Web/JavaScript/Data_structures">tipus de dades</a>:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="row">Variable</th> + <th scope="col">Explicació</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">{{Glossary("String")}}</th> + <td>Una seqüència de text coneguda com una cadena. Per indicar que la variable és una cadena, heu de tancar-la entre cometes.</td> + <td><code>var myVariable = 'Bob';</code></td> + </tr> + <tr> + <th scope="row">{{Glossary("Number")}}</th> + <td>Un nombre. Els nombres no tenen cometes al voltant d'ells.</td> + <td><code>var myVariable = 10;</code></td> + </tr> + <tr> + <th scope="row">{{Glossary("Boolean")}}</th> + <td>Un valor True/False. Les paraules true i false són paraules clau especials en JS, i no necessiten cometes.</td> + <td><code>var myVariable = true;</code></td> + </tr> + <tr> + <th scope="row">{{Glossary("Array")}}</th> + <td>Una estructura que permet emmagatzemar diversos valors en una sola referència.</td> + <td><code>var myVariable = [1,'Bob','Steve',10];</code><br> + Referir-se a cada membre de la matriu d'aquesta manera:<br> + <code>myVariable[0]</code>, <code>myVariable[1]</code>, etc.</td> + </tr> + <tr> + <th scope="row">{{Glossary("Object")}}</th> + <td>Bàsicament, qualsevol cosa. Tot en JavaScript és un objecte, i pot ser emmagatzemat en una variable. Tingueu això en compte a mesura que apreneu.</td> + <td><code>var myVariable = document.querySelector('h1');</code><br> + <span class="short_text" id="result_box" lang="ca"><span>Tots</span> <span>els</span> <span>exemples</span> <span>anteriors</span> <span>també</span></span></td> + </tr> + </tbody> +</table> + +<p>Llavors, per què necessitem les variables? Bé, es necessiten les variables per fer alguna cosa interessant en la programació. Si els valors no poden canviar, llavors no es pot fer res dinàmic, com personalitzar un missatge de salutació o canviar la imatge mostrada en una galeria d'imatges.</p> + +<h3 id="Comentaris">Comentaris</h3> + +<p>Podeu posar comentaris en el codi JavaScript, de la mateixa manera que en el CSS:</p> + +<pre class="brush: js">/* +Everything in between is a comment. +*/</pre> + +<p>Si el vostre comentari no conté salts de línia, sovint és més fàcil de posar-ho darrere de dues barres d'aquest tipus:</p> + +<pre class="brush: js" style="font-size: 14px;">// This is a comment +</pre> + +<h3 id="Operadors">Operadors</h3> + +<p>Un {{Glossary("operator")}} és un símbol matemàtic que produeix un resultat basat en dos valors (o variables). A la següent taula es pot veure alguns dels operadors més simples, juntament amb alguns exemples per provar-ho a la consola de JavaScript.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="row">Operador</th> + <th scope="col">Explicació</th> + <th scope="col">Símbol(s)</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">suma/concatenació</th> + <td><span id="result_box" lang="ca"><span>S'utilitza</span> <span>per sumar</span> <span>dos nombres,</span> <span>o enganxar</span> <span>dues cadenes</span> <span>juntes.</span></span></td> + <td><code>+</code></td> + <td><code>6 + 9;<br> + "Hello " + "world!";</code></td> + </tr> + <tr> + <th scope="row">resta, multiplicació, divisió</th> + <td><span id="result_box" lang="ca"><span>Aquests</span> <span>fan el que</span> <span>s'espera que</span> <span>ho facin en</span> <span>les</span> <span>matemàtiques</span> <span>bàsiques.</span></span></td> + <td><code>-</code>, <code>*</code>, <code>/</code></td> + <td><code>9 - 3;<br> + 8 * 2; // multiplicar en JS és un </code> <span id="result_box" lang="ca"><span>asterisc</span></span><br> + <code>9 / 3;</code></td> + </tr> + <tr> + <th scope="row">operador d'assignació</th> + <td>Heu vist això ja: s'assigna un valor a una variable.</td> + <td><code>=</code></td> + <td><code>var myVariable = 'Bob';</code></td> + </tr> + <tr> + <th scope="row">operador d'identitat</th> + <td>Fa una prova per veure si dos valors són iguals entre si, i retorna un resultat <code>true/false</code> (booleà).</td> + <td><code>===</code></td> + <td><code>var myVariable = 3;<br> + myVariable === 4;</code></td> + </tr> + <tr> + <th scope="row">No, No igual</th> + <td>Retorna el valor lògic contrari del que precedeix; converteix un <code>true</code> en un <code>false</code>, etc. Quan s'utilitza juntament amb l'operador d'igualtat, el operador de negació comprova si dos valors són <em>no iguals</em>.</td> + <td><code>!</code>, <code>!==</code></td> + <td> + <p>L'expressió bàsica és <code>true</code>, però la comparació retorna <code>false</code>, perquè l'hem negat:</p> + + <p><code>var myVariable = 3;<br> + !(myVariable === 3);</code></p> + + <p>Aquí estem provant "és <code>myVariable</code> NO és igual a 3". Això retorna <code>false</code>, perquè <code>myVariable</code> ÉS igual a 3.</p> + + <p><code><code>var myVariable = 3;</code><br> + myVariable !== 3;</code></p> + </td> + </tr> + </tbody> +</table> + +<p>Hi ha molts més operadors per explorar, però això és suficient per ara. Veure <a href="/en-US/docs/Web/JavaScript/Reference/Operators">Expressions i operadors</a> per obtenir una llista completa.</p> + +<div class="note"> +<p><strong>Nota</strong>: La barreja de tipus de dades pot donar lloc a alguns resultats estranys al realitzar càlculs, així que aneu amb compte quan us referiu a les variables correctament, i obtenir els resultats que espereu. Per exemple, introduïu "35" + "25" a la consola. Per què no s'obté el resultat que esperavau? A causa de que les cometes converteixen els nombres en cadenes, pel que acabat en concatenació de cadenes en lloc d'afegir nombres. Si introduiu, 35 + 25 Obtindreu el resultat correcte.</p> +</div> + +<h3 id="Condicionals">Condicionals</h3> + +<p>Els condicionals són estructures de codi que permeten posar a prova si una expressió retorna veritable o no, s'executa codi alternatiu revelat pel seu resultat. La forma més comuna de condicional és nomenada <code>if ... else</code>. Així, per exemple:</p> + +<pre class="brush: js">var iceCream = 'chocolate'; +if (iceCream === 'chocolate') { + alert('Yay, I love chocolate ice cream!'); +} else { + alert('Awwww, but chocolate is my favorite...'); +}</pre> + +<p>L'expressió dins del <code>if ( ... )</code> és la prova - s'utilitza l'operador d'identitat (com es va descriure anteriorment) per comparar la variable <code>iceCream</code> amb la cadena <code>chocolate</code> per veure si els dos són iguals. Si aquesta comparació retorna <code>true</code>, s'executa el primer bloc de codi. Si la comparació no és certa, el primer bloc s'omet i el segon bloc de codi, després de la instrucció <code>else</code>, s'executa al seu lloc.</p> + +<h3 id="Funcions">Funcions</h3> + +<p>{{Glossary("Function", "Functions")}} són una forma d'empaquetar la funcionalitat que desitjeu reutilitzar. Quan es necessita el procediment es pot cridar a una funció, amb el nom de la funció, en lloc de tornar a reescriure tot el codi cada vegada. Ja heu vist alguns usos de les funcions anteriorment, per exemple:</p> + +<ol> + <li> + <pre class="brush: js">var myVariable = document.querySelector('h1');</pre> + </li> + <li> + <pre class="brush: js">alert('hello!');</pre> + </li> +</ol> + +<p>Aquestes funcions, <code>document.querySelector</code> i <code>alert</code>, estan integrades en el navegador per poder utilitzar-les sempre que ho desitgeu.</p> + +<p>Si veieu alguna cosa que s'assembla a un nom de variable, però té claudàtors - () - després d'ell, és probable que sigui una funció. Les funcions sovint prenen {{Glossary("Argument", "arguments")}} - bits de dades que necessiten per treballar. Aquests van dins dels claudàtors, separats per comes si n'hi ha més d'un argument.</p> + +<p>Per exemple, la funció <code>alert()</code> realitza una finestra emergent que apareix dins de la finestra del navegador, però cal donar-li una cadena com a argument per dir-li a la funció que ha d'escriure en el quadre emergent.</p> + +<p>La bona notícia és que podeu definir les vostras pròpies funcions - en el següent exemple escrivim una funció simple que pren dos nombres com a arguments i els multiplica:</p> + +<pre class="brush: js">function multiply(num1,num2) { + var result = num1 * num2; + return result; +}</pre> + +<p>Proveu a executar la funció anterior a la consola, i després provar amb diversos arguments. Per exemple:</p> + +<pre class="brush: js">multiply(4,7); +multiply(20,20); +multiply(0.5,3);</pre> + +<div class="note"> +<p><strong>Nota</strong>: La instrucció return indica al navegador que retorni la variable result de la funció perquè estigui disponible per al seu ús. Això és necessari perquè les variables definides dins de funcions només estan disponibles dins d'aquestes funcions. Això es diu {{Glossary("Scope", "àmbit")}} de la variable. (Llegiu <a href="/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Variable_scope">mès sobre l'àmbit de les variables</a>.)</p> +</div> + +<h3 id="Esdeveniments">E<span id="result_box" lang="ca"><span>sdeveniments</span></span></h3> + +<p>La interactivitat real en un lloc web necessita esdeveniments. Es tracta d'estructures de codi que escolten les coses que succeeixen al navegador, executant el codi en resposta. L'exemple més obvi és l'<a href="https://developer.mozilla.org/en-US/docs/Web/Events/click">esdeveniment de clic</a>, que es dispara pel navegador quan es fa clic en alguna cosa amb el ratolí. Per demostrar això, escriviu el següent a la consola, a continuació feu clic a la pàgina web actual:</p> + +<pre class="brush: js">document.querySelector('html').onclick = function() { + alert('Ouch! Stop poking me!'); +}</pre> + +<p>Hi ha moltes formes d'adjuntar un esdeveniment a un element. Aquí seleccionem l'element HTML, establint la seva propietat <a href="https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onclick">onclick</a> igual a una funció anònima (és a dir, sense nom), que conté el codi que volem que l'esdeveniment clic executi.</p> + +<p>Tingues en compte que</p> + +<pre class="brush: js">document.querySelector('html').onclick = function() {};</pre> + +<p>és equivalent a</p> + +<pre class="brush: js">var myHTML = document.querySelector('html'); +myHTML.onclick = function() {};</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>És només</span> <span>més</span> <span>curt.</span></span></p> + +<h2 id="Alimentant_nostra_pàgina_web_d'exemple">Alimentant nostra pàgina web d'exemple</h2> + +<p>Ara hem repassat alguns conceptes bàsics de Javascript, afegirem algunes característiques interessants per al nostre lloc d'exemple, per veure el que és possible.</p> + +<h3 id="Afegir_un_canviador_d'imatge">Afegir un canviador d'imatge</h3> + +<p>En aquesta secció, afegirem una imatge addicional al nostre lloc, afegint una mica de JavaScript per canviar entre les dues quan es fa clic a la imatge.</p> + +<ol> + <li>En primer lloc, busqueu una altra imatge que volgueu oferir al vostre lloc. Assegureu-vos que és de la mateixa mida que la primera imatge, o el més a prop possible.</li> + <li>Guardeu aquesta imatge a la carpeta <code>images</code>.</li> + <li>Canvieu el nom d'aquesta imatge 'firefox2.png' (sense cometes).</li> + <li>Aneu a l'arxiu <code>main.js</code> i entrar el següent JavaScript. (Si el vostre "hola món" JavaScript està encara allà, esborrar-ho.) + <pre class="brush: js">var myImage = document.querySelector('img'); + +myImage.onclick = function() { + var mySrc = myImage.getAttribute('src'); + if(mySrc === 'images/firefox-icon.png') { + myImage.setAttribute ('src','images/firefox2.png'); + } else { + myImage.setAttribute ('src','images/firefox-icon.png'); + } +}</pre> + </li> + <li>Deseu tots els arxius i <code>index.html,</code> carregar-ho en el navegador. Ara en fer clic a la imatge, s'ha de canviar per l'altra!</li> +</ol> + +<p>S'emmagatzema una referència al vostre element d'imatge en la variable <code>myImage</code>. A continuació, converteix la propietat <code>onclick</code> del controlador d'esdeveniments d'aquesta variable igual a una funció sense nom (una funció "anònima"). Ara, cada vegada que es fa clic en aquest element d'imatge:</p> + +<ol> + <li>Recupera el valor de l'atribut src de la imatge <code>src</code>.</li> + <li>Utilitzar un condicional per comprovar si el valor <code>src</code> és igual a la ruta a la imatge original: + <ol> + <li>Si és així, canvia el valor de <code>src</code> a la ruta d'accés de la 2ª imatge, obligant a l'altra imatge a ser carregada dins de l'element {{htmlelement("image")}}.</li> + <li>Si no ho és (el que significa que ja ha d'haver canviat), el valor <code>src</code> canvia de nou a la ruta original de la imatge, a l'estat original..</li> + </ol> + </li> +</ol> + +<h3 id="Afegir_un_missatge_de_benvinguda_personalitzat">Afegir un missatge de benvinguda personalitzat</h3> + +<p>A continuació afegirem una altre mica de codi, canviant el títol de la pàgina a un missatge de benvinguda personalitzat, quan l'usuari navegui per primera vegada al lloc. Aquest missatge de benvinguda persistirà, l'usuari ha d'abandonar el lloc i tornar més tard. També inclourem una opció per canviar l'usuari i, per tant, el missatge de benvinguda en qualsevol moment que es requereixi.</p> + +<ol> + <li>En <code>index.html</code>, afegiu la següent línia just abans de l'element {{htmlelement("script")}}: + + <pre class="brush: html"><button>Change user</button></pre> + </li> + <li>En <code>main.js</code>, poseu el següent codi a la part inferior de l'arxiu, exactament com està escrit - això pren referències al nou botó i l'encapçalat, emmagatzemant-los en les variables: + <pre class="brush: js">var myButton = document.querySelector('button'); +var myHeading = document.querySelector('h1');</pre> + </li> + <li>Ara afegiu la següent funció per establir la salutació personalitzada - això no farà res, però ho arreglarem en un moment: + <pre class="brush: js">function setUserName() { + var myName = prompt('Please enter your name.'); + localStorage.setItem('name', myName); + myHeading.textContent = 'Mozilla is cool, ' + myName; +}</pre> + Aquesta funció conté una funció <a href="/en-US/docs/Web/API/Window.prompt"><code>prompt()</code></a>, obre un quadre de diàleg, una mica com <code>alert()</code>. No obstant això, aquest <code>prompt()</code> li demana a l'usuari que introdueixi algunes dades, emmagatzemant-les en una variable després que l'usuari pressioni <strong>OK</strong>. En aquest cas, estem demanant a l'usuari que introdueixi el seu nom. A continuació, fem una crida a una API anomenada <code>localStorage</code>, que ens permet emmagatzemar les dades en el navegador i posteriorment recuperar-les. Utilitzem la funció <code>setItem()</code> de localStorage per crear i emmagatzemar un element de dades anomenat "<code>name</code>", establint el seu valor en la variable <code>myName</code> que conté les dades que ha introduït l'usuari. Finalment, establim el <code>textContent</code> de l'encapçalat a una cadena, més el nom recentment emmagatzemat de l'usuari. </li> + <li>A continuació, afegiu aquest bloc <code>if ... else</code> - que podríem anomenar el codi d'inicialització, ja que estructura l'aplicació quan es carrega per primera vegada: + <pre class="brush: js">if(!localStorage.getItem('name')) { + setUserName(); +} else { + var storedName = localStorage.getItem('name'); + myHeading.textContent = 'Mozilla is cool, ' + storedName; +}</pre> + Aquest primer bloc utilitza l'operador de negació (NOT lògic, representada pel!) per comprovar si existeix o no les dades de nom. Si no és així, la funció <code>setUserName()</code> s'executa per crear-lo. Si existeix (és a dir, l'usuari ho va establir durant una visita anterior), recuperarem el nom emmagatzemat utilitzant <code>getItem()</code> i establint el <code>textContent</code> de l'encapçalat en una cadena, a més del nom de l'usuari, com ho vam fer dins de <code>setUserName()</code>.</li> + <li>Finalment, col·loqueu el següent controlador d'esdeveniments <code>onclick</code> en el botó. En fer clic, la funció <code>setUserName()</code> s'executa. Això permet a l'usuari configurar un nou nom, quan ho desitgi, prement el botó: + <pre class="brush: js">myButton.onclick = function() { + setUserName(); +} +</pre> + </li> +</ol> + +<p>Ara, quan visiteu per primera vegada el lloc, se us demanarà el vostre nom d'usuari i us donarà un missatge personalitzat. Podeu canviar el nom en qualsevol moment que desitgeu, oprimint el botó. Com un avantatge addicional, ja que el nom s'emmagatzema dins localStorage, aquest persistirà després que el lloc estigui tancat, mantinguen el missatge personalitzat quan torneu a obrir el lloc!</p> + +<h2 id="Conclusió">Conclusió</h2> + +<p>Si heu seguit totes les instruccions d'aquest article, heu d'acabar veient una pàgina amb aquest aspecte (també podreu <a href="https://mdn.github.io/beginner-html-site-scripted/">veure la nostra versió aquí</a>):</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9539/website-screen-scripted.png" style="display: block; height: 995px; margin: 0px auto; width: 800px;"></p> + +<p>Si us quedeu encallats, sempre podreu comparar el vostre treball amb el nostre <a href="https://github.com/mdn/beginner-html-site-scripted/blob/gh-pages/scripts/main.js">codi d'exemple acabat en Github</a>.</p> + +<p>Tot just hem tractat una part superficial de JavaScript. Si heu gaudit del joc i desitgeu avançar encara més, dirigir-vos al nostre <a href="/en-US/docs/Learn/JavaScript">tema d'aprenentatge de JavaScript</a>.</p> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/CSS_basics", "Learn/Getting_started_with_the_web/Publishing_your_website", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/publicar_nostre_lloc_web/index.html b/files/ca/learn/getting_started_with_the_web/publicar_nostre_lloc_web/index.html new file mode 100644 index 0000000000..0329bbfcd0 --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/publicar_nostre_lloc_web/index.html @@ -0,0 +1,115 @@ +--- +title: Publicar el nostre lloc web +slug: Learn/Getting_started_with_the_web/Publicar_nostre_lloc_web +tags: + - Beginner + - CodingScripting + - FTP + - GitHub + - Google App Engine + - Learn + - Web + - 'l10n:priority' + - publishing + - web server +translation_of: Learn/Getting_started_with_the_web/Publishing_your_website +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/JavaScript_basics", "Learn/Getting_started_with_the_web/How_the_Web_works", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>Un cop hagueu acabat d'escriure el codi i l'organització dels arxius que componen el vostre lloc web, cal posar-ho tot en línia perquè la gent ho pugui trobar. En aquest article s'exposa com arribar a obtenir un codi d'exemple senzill, en línia, amb poc esforç.</p> +</div> + +<h2 id="Quines_són_les_opcions">Quines són les opcions?</h2> + +<p>La publicació d'un lloc web no és un tema senzill, sobretot perquè hi ha tantes maneres diferents de fer-ho. En aquest article no pretenem documentar tots els mètodes possibles. Més aviat, anem a discutir els pros i els contres de tres estratègies generals des del punt de vista d'un principiant, i després caminar a través d'un mètode que funcioni per ara.</p> + +<h3 id="Aconseguir_allotjament_i_un_nom_de_domini"><span id="result_box" lang="ca"><span>Aconseguir</span> <span>allotjament</span> <span>i un</span> <span>nom</span> <span>de domini</span></span></h3> + +<p>Si desitjeu tenir un control total sobre el vostre lloc web publicat, llavors és probable que hagiu de gastar diners per comprar:</p> + +<ul> + <li>Hosting — llogueu espai d'arxius al <a href="https://developer.mozilla.org/en-US/Learn/What_is_a_web_server">servidor web</a> (<a href="/en-US/Learn/What_is_a_web_server">web server) </a>d'una empresa d'allotjament. Poseu els arxius del lloc web en aquest espai, i el servidor web serveix el contingut als usuaris d'Internet que ho sol·licitin.</li> + <li>Un <a href="/en-US/Learn/Understanding_domain_names">nom de domini</a> (<a href="/en-US/Learn/Understanding_domain_names">domain name)</a> —direcció única on la gent pot trobar el vostre lloc web, igual que <code>http://www.mozilla.org</code>, o <code>http://www.bbc.co.uk</code>. Llogueu el vostre nom de domini durant tants anys d'un <strong>registrador de dominis</strong>.</li> +</ul> + +<p><span id="result_box" lang="ca"><span>Molts</span> <span>llocs web</span> <span>professionals</span> <span>van en línia</span> <span>d'aquesta manera.</span></span></p> + +<p>A més, es necessita un programa {{Glossary("FTP", "File Transfer Protocol (FTP)")}} (veure <a href="https://developer.mozilla.org/en-US/Learn/How_much_does_it_cost#Software">Quant costa: el programari per a més detalls</a>) per a transferir efectivament els arxius del lloc web al servidor. Programes FTP varian àmpliament, però en general heu d'iniciar sessió al servidor web utilitzant les dades proporcionades per la vostra empresa d'allotjament (per exemple, nom d'usuari, contrasenya, nom de sistema principal). A continuació, el programa mostra els arxius locals i arxius del servidor web en dues finestres, perquè pugueu transferir-los d'anada i tornada:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9469/ftp.jpg" style="display: block; height: 487px; margin: 0px auto; width: 800px;"></p> + +<h4 id="Consells_de_cerca_d'allotjament_i_dominis"><span class="short_text" id="result_box" lang="ca"><span>Consells de cerca</span> <span>d'allotjament i</span> <span>dominis</span></span></h4> + +<ul> + <li>Aquí no promocionem empreses d'allotjament comercials específiques. Per trobar empreses d'allotjament i registradors de noms de domini, només busqueu "allotjament web" i "noms de domini" per trobar una empresa que ven registres de noms de domini. Totes aquestes empreses tenen una funció que us permetrà buscar el nom de domini que desitgeu.</li> + <li>A la vostre llar o oficina un {{Glossary("ISP", "proveïdor de serveis d'Internet")}} pot proporcionar-vos un allotjament limitat per a un lloc web petit. El conjunt de funcions disponibles estarà limitat, però pot ser perfecte per als vostres primers experiments - contacteu amb ells i pregunteu!</li> + <li>Hi ha uns pocs serveis gratuïts disponibles com <a href="https://neocities.org/">Neocities</a>, <a href="https://www.blogger.com">Blogger</a> i <a href="https://wordpress.com/">WordPress</a>. Un cop més, s'obté el que es paga, però que són ideals per als vostres experiments inicials. Els serveis gratuïts majoritàriament no requereixen programari de FTP per pujar o bé - es pot simplement arrossegar i deixar anar dins de la seva interfície web.</li> + <li>De vegades les empreses ofereixen tant hosting i dominis en un sol paquet.</li> +</ul> + +<h3 id="L'ús_d'una_eina_en_línia_com_GitHub_Google_App_Engine_o_Dropbox"><span id="result_box" lang="ca"><span>L'ús d'una</span> <span>eina en</span> <span>línia</span> <span>com</span> <span>GitHub</span><span>,</span> <span>Google</span> <span>App Engine</span> <span>o</span> <span>Dropbox</span></span></h3> + +<p>Algunes eines us poden permetre publicar el vostre lloc web en línia:</p> + +<ul> + <li><a href="https://github.com/">GitHub</a> és un lloc de "codificació social". Us permet carregar repositoris de codi per al seu emmagatzematge en el <strong>sistema de control de versions</strong> de <a href="http://git-scm.com/">Git</a> A continuació, pot col·laborar en projectes de codi i el sistema és de codi obert per defecte, la qual cosa significa que qualsevol persona al món pot trobar el vostre codi GitHub, utilitzar-ho, aprendre d'ell i millorar-ho. GitHub té una característica molt útil anomenada <a href="https://pages.github.com/">GitHub Pages</a>, que us permet exposar el codi del lloc web en viu a la Web.</li> + <li><a href="https://cloud.google.com/appengine/" title="App Engine - Platform as a Service — Google Cloud Platform">Google App Engine</a> és una potent plataforma que us permet crear i executar aplicacions en la infraestructura de Google - ja sigui des de la necessitat de construir una aplicació web de diversos nivells des de zero o allotjar una pàgina web estàtica. Veure <a href="https://developer.mozilla.org/en-US/Learn/Common_questions/How_do_you_host_your_website_on_Google_App_Engine">Com veieu allotjar el vostre lloc web a Google App Engine?</a> per a més informació.</li> + <li><a href="https://www.dropbox.com/">Dropbox</a> és un sistema d'emmagatzematge d'arxius que us permet guardar els arxius a la web i tenir-los disponibles des de qualsevol ordinador. Qualsevol persona amb una connexió a Internet pot accedir a qualsevol carpeta de Dropbox que faci accessible al públic. Si aquesta carpeta conté arxius de llocs web, es publicarà automàticament com a lloc web. Veure <a href="http://www.dropboxwiki.com/tips-and-tricks/host-websites-with-dropbox">Allotjar llocs web amb Dropbox</a> per a més informació.</li> +</ul> + +<p>A diferència de la majoria d'allotjaments, tals eines solen ser d'ús gratuït, però només s'obté un conjunt limitat de funcions.</p> + +<h3 id="L'ús_d'un_IDE_basat_en_web_com_Thimble">L'ús d'un IDE basat en web com Thimble</h3> + +<p>Hi ha una sèrie d'aplicacions web que emulen un entorn de desenvolupament de llocs web, que us permet introduir codi HTML, CSS i JavaScript i després mostrar el resultat d'aquest codi quan es representa com un lloc web - tot en una pestanya del navegador. En termes generals aquestes eines són molt fàcils, ideal per a l'aprenentatge, i lliure (per a funcions bàsiques), i l'allotjament de la vostre pàgina representada en una única adreça web. No obstant això, les característiques bàsiques són bastant limitades, i les aplicacions no solen proporcionar l'espai d'allotjament per actius (com imatges).</p> + +<p>Intenteu jugar amb alguns d'aquests exemples, i veure quin és el millor que us agrada:</p> + +<ul> + <li><a href="https://jsfiddle.net/">JSFiddle</a></li> + <li><a href="https://thimble.mozilla.org">Thimble</a></li> + <li><a href="http://jsbin.com/">JS Bin</a></li> +</ul> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9471/jsbin-screen.png" style="display: block; height: 849px; margin: 0px auto; width: 1392px;"></p> + +<h2 id="Publicar_via_GitHub">Publicar via GitHub</h2> + +<p>Ara us portaren a través de com publicar fàcilment el vostre lloc mitjançant GitHub Pages.</p> + +<ol> + <li>En primer lloc, <a href="https://github.com/">registrar-vos a GitHub</a> i verifiqueu la vostre adreça de correu electrònic.</li> + <li>A continuació, cal <a href="https://github.com/new">crear un repositori</a> per als arxius a entrar.</li> + <li>En aquesta pàgina, en el <em>quadre Nom del repositori</em>, introduïu username.github.io, on <em>username</em> és el vostre nom d'usuari. Així, per exemple, el nostre amic bobsmith entraria com <em>bobsmith.github.io</em>.<br> + Comproveu també <em>Inicialitzar aquest repositori amb un README</em> i després feu clic a <em>Crear repositori</em>.<img alt="" src="https://mdn.mozillademos.org/files/9479/github-create-repo.png" style="display: block; height: 849px; margin: 0px auto; width: 1392px;"></li> + <li>Després d'això, arrossegar i deixar anar el contingut de la vostra carpeta del lloc web en el vostre repositori, i després feu clic a <em>Registrar els canvis</em>.<br> + + <div class="note"> + <p><strong>Nota</strong>: Assegureu-vos que la carpeta té un arxiu <em>index.html</em>.</p> + </div> + </li> + <li> + <p>Ara navegueu pel vostre navegador a <em>username</em>.github.io per veure el vostre lloc web en línia. Per exemple, per al nom d'usuari <em>chrisdavidmills</em>, aneu a <a href="http://chrisdavidmills.github.io/">chrisdavidmills.github.io</a>.</p> + + <div class="note"> + <p><strong>Nota</strong>: Pot trigar alguns minuts perquè el vostre lloc web pugui està actiu. Si no funciona immediatament, és possible que hagiu d'esperar uns minuts i torneu a intentar-ho.</p> + </div> + </li> +</ol> + +<p>Per a més informació, consulteu les <a href="https://help.github.com/categories/github-pages-basics/">Pàgines d'ajuda de GitHub</a>.</p> + +<h2 id="Altres_lectures">Altres lectures</h2> + +<ul> + <li><a href="/en-US/Learn/What_is_a_web_server">Que és un servidor webr</a></li> + <li><a href="/en-US/Learn/Understanding_domain_names">La comprensió dels noms de domini</a></li> + <li><a href="/en-US/Learn/How_much_does_it_cost">Quant costa fer una cosa a la web?</a></li> + <li><a href="https://www.codecademy.com/learn/deploy-a-website">Implementar un lloc web</a>: <span id="result_box" lang="ca"><span>Un bon</span> <span>tutorial</span> <span>de</span> <span>Codecademy</span> <span>que</span> <span>va una mica</span> <span>més</span> <span>enllà</span> <span>i</span> <span>mostra</span> <span>algunes</span> <span>tècniques addicionals</span><span>.</span></span></li> + <li><a href="http://alignedleft.com/resources/cheap-web-hosting">Allotjament web estàtic barat o gratuit</a> <span id="result_box" lang="ca"><span>per Scott</span> <span>Murray,</span> <span>té algunes</span> <span>idees</span> <span>útils</span> <span>sobre els</span> <span>serveis disponibles.</span></span></li> +</ul> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/JavaScript_basics", "Learn/Getting_started_with_the_web/How_the_Web_works", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/quin_aspecte_tindrà_vostre_lloc_web/index.html b/files/ca/learn/getting_started_with_the_web/quin_aspecte_tindrà_vostre_lloc_web/index.html new file mode 100644 index 0000000000..a7e5ef4b2c --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/quin_aspecte_tindrà_vostre_lloc_web/index.html @@ -0,0 +1,103 @@ +--- +title: Quin aspecte tindrà el vostre lloc web? +slug: Learn/Getting_started_with_the_web/Quin_aspecte_tindrà_vostre_lloc_web +tags: + - Assets + - Beginner + - Composing + - Content + - Design + - Fonts + - Learn + - Plan + - 'l10n:priority' +translation_of: Learn/Getting_started_with_the_web/What_will_your_website_look_like +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/Installing_basic_software", "Learn/Getting_started_with_the_web/Dealing_with_files", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p><em><strong>Quin serà l'aspecte del vostre lloc web?</strong></em> Analitzeu la planificació i disseny de treball que heu de fer per al vostre lloc web <em><strong>abans</strong></em> d'escriure el codi, incloent, "Quina informació ofereix el meu lloc web?" "Quins tipus de lletra i colors és el que vull?" "Què fa el meu lloc?"</p> +</div> + +<h2 id="El_primer_és_el_primer_planificació"><span id="result_box" lang="ca"><span>El primer és</span> <span>el primer:</span> <span>planificació</span></span></h2> + +<p>Abans de fer res, necessiteu algunes idees. Què hauria de fer el vostre lloc web en realitat? Un lloc web pot fer bàsicament qualsevol cosa, però per al vostre primer intent heu de mantenir les coses simples. Anem a començar per la creació d'una pàgina web senzilla amb una capçalera, una imatge, i uns pocs paràgrafs.</p> + +<p>Per començar, haureu de respondre a aquestes preguntes:</p> + +<ol> + <li><strong>Quin és la teva pàgina web?</strong> Us agraden els gossos, Nova York, o Pacman?</li> + <li><strong>Quina informació esteu presentant sobre el tema?</strong> Escriviu un títol i alguns paràgrafs, i penseu en una imatge que volgueu mostrar en la vostra pàgina.</li> + <li><strong>Com es veu el vostre lloc web</strong>, en termes simples d'alt nivell. Quin és el color de fons? Quin tipus de font és apropiada: formals, dibuixos animats, audaç i fort, subtil?</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Els projectes complexos necessiten directrius detallades que incloent tots els detalls de colors, tipus de lletra, espaiat entre els elements d'una pàgina, l'estil d'escriptura apropiada, i així successivament. Això de vegades es diu una guia de disseny o un llibre de marca, i es pot veure un exemple en les <a href="https://www.mozilla.org/en-US/styleguide/products/firefox-os/">Firefox OS Guidelines</a>.</p> +</div> + +<h2 id="Esbossar_el_disseny">Esbossar el disseny</h2> + +<p>A continuació, obtenir un llapis i paper i esbossar més o menys com voleu el aspecte del vostre lloc. En la vostra primera pàgina web senzilla, no hi ha molt per esbossar, però heu d'aconseguir l'hàbit de fer això ara. Realment ajuda - no heu de ser un Van Gogh!</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9239/website-drawing-scan.png" style="display: block; height: 460px; margin: 0px auto; width: 640px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Fins i tot en els llocs web reals, complexos, els equips de disseny en general comencen amb esbossos en paper, i posteriorment construeixen maquetes digitals utilitzant un editor de gràfics o tecnologies web.</p> + +<p>Els equips web sovint inclouen tant un dissenyador gràfic i un {{Glossary("UX", "user-experience")}} dissenyador (UX). Els dissenyadors gràfics, òbviament, posar junts els elements visuals de la pàgina web. Els dissenyadors UX tenen un paper una mica més abstracte a l'hora d'abordar com els usuaris han d'experimentar i interactuar amb el lloc web.</p> +</div> + +<h2 id="Escollir_els_vostres_recursos">Escollir els vostres recursos</h2> + +<p>En aquest punt, és bo per començar a armar el contingut que apareixerà finalment a la vostra pàgina web.</p> + +<h3 id="Text">Text</h3> + +<p>No obstant això hauríeu de tenir els paràgrafs i títols abans. Tingueu això molt a prop.</p> + +<h3 id="Color_del_tema">Color del tema</h3> + +<p>Per triar un color, aneu al <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Colors/Color_picker_tool">selector de color</a> i trobeu un color que us agradi. En fer clic a un color, apareixerà un codi de sis caràcters estranys com <code>#660066</code>. Això es diu un codi <em>hex(adecimal)</em>, i representa el vostre color. Copieu el codi en un lloc segur per ara.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8975/Screenshot%20from%202014-11-03%2017:40:49.png" style="height: 262px; width: 448px;"></p> + +<h3 id="Imatges">Imatges</h3> + +<p>Per triar una imatge, anar a <a href="https://www.google.com/imghp?gws_rd=ssl">Google Images</a> i buscar alguna adequada.</p> + +<ol> + <li>Quan trobeu la imatge que desitjeu, feu clic a la imatge.</li> + <li>Premeu el botó <em>Veure imatge</em>.</li> + <li>A la següent pàgina, feu clic amb el botó dret del ratolí en la imatge (Ctrl + clic en Mac), seleccioneu <em>Guardar imatge com...</em> i trieu un lloc segur per guardar la imatge. Com a alternativa, copieu l'adreça Web de la imatge des de la barra d'adreces del vostre navegador per usar-la més tard.</li> +</ol> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8985/Screenshot%20from%202014-11-04%2015:09:21.png" style="height: 293px; width: 420px;"></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8989/Screenshot%20from%202014-11-04%2015:20:48.png" style="height: 292px; width: 340px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: La majoria de les imatges a la web, incloent a Google Images, tenen drets d'autor. Per reduir la probabilitat de que violeu els drets d'autor, podeu utilitzar el filtre de llicència de Google. Només 1) feu clic a <strong>Eines de recerca</strong>, a continuació, a 2) <strong>Drets d'ús</strong>:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/8981/Screenshot%20from%202014-11-04%2014:27:45.png" style="height: 195px; width: 587px;"></p> +</div> + +<h3 id="Tipus_de_lletra">Tipus de lletra</h3> + +<p>Per triar un tipus de lletra:</p> + +<ol> + <li>Anar a <a href="http://www.google.com/fonts">Google Fonts</a> i examinar la llista fins que trobeu una que us agradi. També podeu utilitzar els controls de la dreta per filtrar encara més els resultats.</li> + <li>Feu clic al icona "plus" (Afegir a) al costat del tipus de lletra que vulgueu.</li> + <li>Feu clic al botó "*, Familia Seleccionada" en el panell a la part inferior de la pàgina ("*" depèn del nombre de fonts que hagiu seleccionat)</li> + <li>En el quadre emergent, es pot veure i copiar les línies de codi que Google us dóna en el vostre editor de text per a guardar per més endavant.</li> +</ol> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13871/font1.png" style="height: 359px; width: 600px;"></p> + +<p> </p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13873/font2.png" style="height: 608px; width: 600px;"></p> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/Installing_basic_software", "Learn/Getting_started_with_the_web/Dealing_with_files", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/getting_started_with_the_web/tractar_amb_arxius/index.html b/files/ca/learn/getting_started_with_the_web/tractar_amb_arxius/index.html new file mode 100644 index 0000000000..0ba94d3273 --- /dev/null +++ b/files/ca/learn/getting_started_with_the_web/tractar_amb_arxius/index.html @@ -0,0 +1,104 @@ +--- +title: Tractar amb arxius +slug: Learn/Getting_started_with_the_web/Tractar_amb_arxius +tags: + - Beginner + - CodingScripting + - Files + - Guide + - HTML + - 'l10n:priority' + - theory + - website +translation_of: Learn/Getting_started_with_the_web/Dealing_with_files +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Getting_started_with_the_web/What_will_your_website_look_like", "Learn/Getting_started_with_the_web/HTML_basics", "Learn/Getting_started_with_the_web")}}</div> + +<div class="summary"> +<p>Un lloc web es compon de molts arxius: contingut de text, codi, fulles d'estil, contingut multimèdia, i així successivament. Quan estigueu construint un lloc web, necessitareu muntar aquests arxius en una estructura assenyada al vostre ordinador, assegurar-vos que poden parlar l'un a l'altre, i obtenir tot el seu contingut buscat, abans de que finalment <a href="/en-US/Learn/Getting_started_with_the_web/Publishing_your_website">els pujeu a un servidor</a>. Tractar amb arxius descriu alguns problemes que heu de tenir en compte perquè pugueu establir una estructura d'arxius assenyada per al vostre lloc web.</p> +</div> + +<h2 id="On_ha_de_viure_el_lloc_web_en_l'ordinador">On ha de viure el lloc web en l'ordinador?</h2> + +<p>Quan treballeu un lloc web en local en el vostre ordinador, heu de tenir tots els arxius relacionats en una sola carpeta que reflecteix l'estructura d'arxius de la pàgina web publicada al servidor. Aquesta carpeta pot viure en qualsevol lloc que us agradi, però cal posar-la en algun lloc on es pugui trobar fàcilment, potser en el escriptori de la vostra carpeta d'inici, o en l'arrel del disc dur.</p> + +<ol> + <li>Trieu un lloc per emmagatzemar els vostres projectes web. A continuació, creeu una nova carpeta anomenada <code>web-projects</code> (o similar). Aqui és on viuran tots els vostres projectes web.</li> + <li>Dins d'aquesta primera carpeta, creeu una altra carpeta per emmagatzemar el vostre primer lloc web. Nomeneu-ho <code>test-site</code> (o alguna cosa més imaginativa).</li> +</ol> + +<h2 id="Un_a_part_en_l'embolcall_i_espaiament">Un a part en l'embolcall i espaiament</h2> + +<p>Us donareu compte de que al llarg d'aquest article, us demanarem que nomeneu les carpetes i arxius completament en minúscules i sense espais. Això és perquè:</p> + +<ol> + <li>Molts equips, especialment en servidors web, són sensibles a les majúscules i minúscules. Així, per exemple, si poseu una imatge a la vostra pàgina web en la prova in <code>test-site/MyImage.jpg</code>, i després en un arxiu diferent intenteu invocar la imatge com <code>test-site/myimage.jpg</code>, pot ser que no funcioni.</li> + <li>Navegadors, servidors web, i llenguatges de programació no manegen espais de forma coherent. Per exemple, si utilitzeu espais en els noms d'arxiu, alguns sistemes poden tractar el nom d'arxiu com dos noms d'arxiu. Alguns servidors substituiran els espais en els noms d'arxiu amb "%20" (el codi de caràcters d'espais en els URI), trencant tots els seus enllaços. Es millor separar les paraules amb guions o subratllats: <code>my-file.html </code>o <code>my_file.html</code>.</li> +</ol> + +<p>Per aquestes raons, el millor és tenir l'hàbit d'escriure els noms de carpetes i arxius en minúscules i sense espais, almenys fins que sapigueu que és el que esteu fent. D'aquesta manera evitareu un menor numero de problemes.</p> + +<h2 id="Quina_estructura_ha_de_tenir_el_lloc_web">Quina estructura ha de tenir el lloc web?</h2> + +<p>A continuació, anem a veure quina estructura ha de tenir el nostre lloc de prova. Les coses més comuns que tindrem en qualsevol projecte de lloc web que creiem són un arxiu índex HTML i carpetes que continguin imatges, arxius d'estil i arxius de scripts. Crearem aquests ara:</p> + +<ol> + <li><code><strong>index.html</strong></code>: Aquest arxiu contindrà generalment el contingut de la vostra pàgina d'inici, és a dir, el text i les imatges que la gent veu quan accedeixin per primera vegada al vostre lloc. Usant el vostre editor de text, creeu un nou arxiu anomenat <code>index.html</code> i guardeu-ho just dins de la carpeta <code>test-site</code>.</li> + <li><strong><code>carpeta d'imatges</code></strong>: Aquesta carpeta contindrà totes les imatges que utilitzeu en el vostre lloc. Creeu una carpeta anomenada <code>images</code>, dins de la carpeta <code>test-site</code>.</li> + <li><strong><code>carpeta d'estils</code></strong>: Aquesta carpeta contindrà el codi CSS per donar estil el vostre contingut (per exemple, l'establiment de text i colors de fons). Creeu una carpeta anomenada <code>styles</code>, dins de la carpeta <code>test-site</code>.</li> + <li><strong><code>carpeta de scripts</code></strong>: Aquesta carpeta contindrà tot el codi JavaScript que s'utilitza per afegir funcionalitat interactiva al vostre lloc (per exemple, els botons que carreguen dades quan es fa clic). Crear una carpeta anomenada <code>scripts</code>, dins de la carpeta <code>test-site</code>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: En ordinadors Windows, és possible que tingueu problemes per veure els noms dels arxius, ja que Windows té una opció molesta anomenada <strong>Ocultar extensions per a tipus d'arxiu coneguts</strong>, activat per defecte. En general, podeu desactivar aquesta opció, aneu a l'Explorador de Windows, seleccioneu l'opció <strong>Opcions de carpeta</strong>..., desmarqueu la casella <strong>Ocultar les extensions dels tipus d'arxiu coneguts</strong> i fent clic a <strong>OK</strong>. Per obtenir informació més específica sobre la vostra versió de Windows, feu una cerca de Yahoo!</p> +</div> + +<h2 id="Rutes_d'arxius">R<span id="result_box" lang="ca"><span>utes</span> <span>d'arxius</span></span></h2> + +<p>Per fer que els arxius parlin uns amb uns altres, heu de proporcionar una ruta d'accés entre ells - bàsicament una ruta per a un arxiu sap on és l'altre. Per demostrar això, introduirem una mica d'HTML en el nostre arxiu index.html, i farem que es vegi la imatge que vam escollir en l'article. <a href="/en-US/Learn/Getting_started_with_the_web/What_should_your_web_site_be_like">"Quin aspecte tindrà en el vostre lloc web?"</a></p> + +<ol> + <li>Copieu la imatge que vau escollir anteriorment a la carpeta <code>images</code>.</li> + <li>Obriu el vostre arxiu <code>index.html</code>, i inseriu el codi següent a l'arxiu exactament com es mostra. No es preocupeu per tot el que significa per ara - veureu les estructures amb més detall més endavant en la sèrie. + <pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My test page</title> + </head> + <body> + <img src="" alt="My test image"> + </body> +</html> </pre> + </li> + <li>La línia <code><img src="" alt="My test image"></code> és el codi HTML que insereix una imatge a la pàgina. Hem de dir-li a l'HTML on és la imatge. La imatge es troba dins del directori <em>images</em>, que està en el mateix directori que <code>index.html</code>. Per caminar per l'estructura de l'arxiu de <code>index.html</code> fins a la nostra imatge, la ruta de l'arxiu que necessitaríeu és <code>images/your-image-filename</code>. Per exemple, la nostra imatge es diu firefox-icon.png, de manera que la ruta de l'arxiu és <code>images/firefox-icon.png</code>.</li> + <li>Introduïu la ruta de l'arxiu en el codi HTML entre dobles cometes del codi <code>src=""</code>.</li> + <li>Deseu el fitxer HTML, després carregar-la en el vostre navegador web (doble clic al fitxer). Heu de veure la nova pàgina web que mostra la imatge!</li> +</ol> + +<p><img alt="A screenshot of our basic website showing just the firefox logo - a flaming fox wrapping the world" src="https://mdn.mozillademos.org/files/9229/website-screenshot.png" style="display: block; height: 542px; margin: 0px auto; width: 690px;"></p> + +<p>Algunes regles generals per a les rutes d'arxius:</p> + +<ul> + <li>Per enllaçar a un arxiu de destinació en el mateix directori que el fitxer HTML que ho invoca, només heu d'utilitzar el nom d'arxiu, per exemple, <code>my-image.jpg</code>.</li> + <li>Per fer referència a un arxiu en un subdirectori, escriviu el nom del directori davant de la ruta, a més d'una barra inclinada, per exemple, <code>subdirectory/my-image.jpg</code>.</li> + <li>Per enllaçar a un arxiu de destinació en el directori anterior de l'arxiu HTML que ho invoca, escriviu dos punts (<code>..</code>). Així per exemple, si <code>index.html</code> estava dins d'una subcarpeta <code>test-site</code> i <code>my-image.png</code> estava dins de <code>test-site</code>, es pot fer referència a <code>my-image.png</code> des d'<code>index.html</code> utilitzant <code>../my-image.png</code>.</li> + <li>Es poden combinar aquests tant com vulgueu, per exemple <code>../subdirectory/another-subdirectory/my-image.png</code>.</li> +</ul> + +<p>Per ara, això és tot el que necessiteu saber.</p> + +<div class="note"> +<p><strong>Nota</strong>: El sistema d'arxius de Windows tendeix a utilitzar barres invertides, no barres diagonals, com, per exemple, <code>C:\windows</code>. Això no importa - fins i tot si esteu desenvolupant el vostre lloc web en Windows, heu d'utilitzar barres diagonals en el vostre codi.</p> +</div> + +<h2 id="Què_més_es_pot_fer"><span id="result_box" lang="ca"><span>Què</span> <span>més</span> <span>es</span> <span>pot</span> <span>fer</span><span>?</span></span></h2> + +<p>Això és tot per ara. La vostra estructura de carpetes ha de ser alguna cosa com això:</p> + +<p><img alt="A file structure in mac os x finder, showing an images folder with an image in, empty scripts and styles folders, and an index.html file" src="https://mdn.mozillademos.org/files/9231/file-structure.png" style="display: block; height: 577px; margin: 0px auto; width: 929px;"></p> + +<p>{{PreviousMenuNext("Learn/Getting_started_with_the_web/What_will_your_website_look_like", "Learn/Getting_started_with_the_web/HTML_basics", "Learn/Getting_started_with_the_web")}}</p> diff --git a/files/ca/learn/html/forms/com_estructurar_un_formulari_web/index.html b/files/ca/learn/html/forms/com_estructurar_un_formulari_web/index.html new file mode 100644 index 0000000000..c0cb1e022c --- /dev/null +++ b/files/ca/learn/html/forms/com_estructurar_un_formulari_web/index.html @@ -0,0 +1,316 @@ +--- +title: Com estructurar un formulari web +slug: Learn/HTML/Forms/Com_estructurar_un_formulari_web +translation_of: Learn/Forms/How_to_structure_a_web_form +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Forms/Your_first_form", "Learn/Forms/Basic_native_form_controls", "Learn/Forms")}}</div> + +<p class="summary">Ara que ja coneixem els conceptes bàsics, veurem amb més detall els elements que s’utilitzen per a proporcionar estructura i significat a les diferents parts d’un formulari.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica i una <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">fonaments bàsics de l’HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a estructurar els formularis HTML i donar-los semàntica perquè compleixin criteris d’usabilitat i accessibilitat.</td> + </tr> + </tbody> +</table> + +<p>La flexibilitat dels formularis els converteix en una de les estructures més complexes pel que fa al codi <a href="/ca/docs/Learn/HTML" title="/en-US/docs/HTML">HTML</a>; pots crear qualsevol tipus de formulari bàsic amb elements i atributs específics de formulari. Fer servir una estructura correcta en crear un formulari HTML et garantirà la usabilitat i l’<a href="/ca/docs/Learn/Accessibility">accessibilitat</a> del formulari.</p> + +<h2 id="Lelement_<form>">L'element <form></h2> + +<p>L’element {{HTMLElement("form")}} defineix formalment un formulari i els atributs que determinen el comportament del formulari. Cada vegada que vols crear un formulari HTML, has de començar per aquest element i imbricar-hi tot el contingut a dins. Moltes tecnologies d'assistència i complements de navegador poden descobrir elements {{HTMLElement("form")}} i implementar codis de suport (<em>hooks</em>) especials per a facilitar-ne l’ús.</p> + +<p>Ja ho hem vist en l’article anterior.</p> + +<div class="warning"><strong>Atenció</strong>: Està totalment prohibit imbricar un formulari dins d’un altre formulari. És una mala idea perquè la imbricació de formularis pot introduir comportaments del tot imprevisibles.</div> + +<p>Sempre és possible utilitzar un control de formulari fora d'un element {{HTMLElement("form")}}. Si ho fas, per defecte aquest control no tindrà res a veure amb cap formulari, tret que l’associïs a algun formulari amb l'atribut <a href="/en-US/docs/Web/HTML/Attributes/form"><code>form</code></a>. Això es va introduir per a permetre unir explícitament un control amb un formulari encara que no hi estigui imbricat.</p> + +<p>Avancem una mica i observem els elements estructurals que trobaràs en un formulari.</p> + +<h2 id="Els_elements_<fieldset>_i_<legend>">Els elements <code><fieldset></code> i <code><legend></code></h2> + +<p>L’element {{HTMLElement("fieldset")}} és una manera convenient de crear grups de controls que comparteixen el mateix propòsit, amb les mateixes finalitats d’estil i semàntiques. Pots etiquetar un element {{HTMLElement("fieldset")}} incloent un element {{HTMLElement("legend")}} just a sota de l'etiqueta d'obertura {{HTMLElement("fieldset")}}. El text contingut en l'element {{HTMLElement("legend")}} descriu formalment el propòsit de l'element {{HTMLElement("fieldset")}} que hi ha inclòs.</p> + +<p>Moltes tecnologies d'assistència utilitzaran l'element {{HTMLElement("legend")}} com si fos una part de l'etiqueta de cada control de formulari que hi ha dins de l'element {{HTMLElement("fieldset")}} corresponent. Per exemple, alguns lectors de pantalla com <a href="http://www.freedomscientific.com/products/software/jaws/" rel="external" title="http://www.freedomscientific.com/products/fs/jaws-product-page.asp">Jaws</a> i <a href="http://www.nvda-project.org/" rel="external" title="http://www.nvda-project.org/">NVDA</a> llegiran el contingut de la llegenda abans de llegir el text de l’etiqueta de cada control.</p> + +<p>Aquí hi ha un petit exemple:</p> + +<pre class="brush:html; notranslate"><form> + <fieldset> + <legend>Mida del suc de fruita</legend> + <p> + <input type="radio" name="size" id="size_1" value="small"> + <label for="size_1">Petit</label> + </p> + <p> + <input type="radio" name="size" id="size_2" value="medium"> + <label for="size_2">Mitjà</label> + </p> + <p> + <input type="radio" name="size" id="size_3" value="large"> + <label for="size_3">Gran</label> + </p> + </fieldset> +</form></pre> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/fieldset-legend.html">fieldset-legend.html</a> (o consultar-ne l’<a href="https://mdn.github.io/learning-area/html/forms/html-form-structure/fieldset-legend.html">exemple en viu</a>).</p> +</div> + +<p>En llegir el formulari anterior, un lector de pantalla dirà «Mida del suc de fruita: petit» per al primer giny, «Mida del suc de fruita: mitjà» per al segon i «Mida del suc de fruita: gran» per al tercer.</p> + +<p>El cas d’ús que mostra aquest exemple és un dels més importants. Cada vegada que tinguis un conjunt de botons d'opció, els hauries d’imbricar dins d’un element {{HTMLElement("fieldset")}}. Hi ha altres casos d'ús i, en general, l'element {{HTMLElement("fieldset")}} també es pot utilitzar per a introduir seccions en un formulari. L’ideal seria que els formularis llargs ocupin diverses pàgines, però si un formulari s’allarga i només ha d’ocupar una sola pàgina, posar les diferents seccions relacionades dins de diferents elements {{HTMLElement("fieldset")}} millora la usabilitat.</p> + +<p>L’element {{HTMLElement("fieldset")}} és un dels elements clau per crear formularis accessibles per l’efecte que té sobre la tecnologia d’assistència; tanmateix, és la teva responsabilitat no abusar-ne. Si és possible, cada cop que creïs un formulari, intenta <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Screenreaders">escoltar com l’interpreta un lector de pantalla</a>. Si sona estrany, prova de millorar l'estructura del formulari.</p> + +<h2 id="Lelement_<label>">L'element <label></h2> + +<p>Com hem vist en l’article anterior, l’element {{HTMLElement("label")}} és la manera formal de definir una etiqueta per a un control de formulari en HTML. Aquest és l’element més important si vols crear formularis accessibles: quan s’implementen correctament, els lectors de pantalla llegeixen l’etiqueta d’un element de formulari juntament amb qualsevol instrucció relacionada, i també resulta útil per als usuaris sense discapacitats. Considerem aquest exemple, que hem vist en l’article anterior:</p> + +<pre class="brush: html notranslate"><label for="name">Nom:</label> <input type="text" id="name" name="user_name"></pre> + +<p>Amb l'etiqueta <code><label></code> associada correctament amb l’element <code><input></code> per l’atribut <code>for</code> (que conté l'atribut <code>id</code> de l'element <code><input></code>), un lector de pantalla llegirà una cosa així com «Nom, editar text».</p> + +<p>Hi ha una altra manera d’associar un control de formulari amb una etiqueta: introduir el control de formulari dins de <code><label></code> i associar-l’hi implícitament.</p> + +<pre class="brush: html notranslate"><label for="name"> + Nom: <input type="text" id="name" name="user_name"> +</label></pre> + +<p>Fins i tot en aquests casos, però, es considera una bona pràctica establir-hi l’atribut <code>for</code> per garantir que totes les tecnologies d’assistència entenen la relació entre l'etiqueta i el control.</p> + +<p>Si no hi ha cap etiqueta o si el control de formulari no està associat implícitament ni explícitament amb una etiqueta, un lector de pantalla llegirà alguna cosa com ara «Editar text en blanc», la qual cosa no és gaire útil.</p> + +<h3 id="També_pots_clicar_les_etiquetes!">També pots clicar les etiquetes!</h3> + +<p>Un altre avantatge de configurar correctament les etiquetes és que pots fer-hi clic o tocar-les per a activar-ne el control corresponent. Això és útil per a controls com les entrades de text, en què pots fer clic a l’etiqueta i també a l’entrada per a donar-hi el focus, però és útil, sobretot, per als botons d'opció i les caselles de verificació; l’àrea d’aquest control pot ser molt petita, de manera que és útil per a facilitar-ne l’activació.</p> + +<p>Per exemple, si fas clic al text de l'etiqueta «M'agraden les cireres» de l'exemple següent, canviarà l'estat seleccionat de la casella <em>taste_cherry</em>:</p> + +<pre class="brush:html; notranslate"><form> + <p> + <input type="checkbox" id="taste_1" name="taste_cherry" value="cherry"> + <label for="taste_1">M'agraden les cireres</label> + </p> + <p> + <input type="checkbox" id="taste_2" name="taste_banana" value="banana"> + <label for="taste_2">M'agraden els plàtans</label> + </p> +</form></pre> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/checkbox-label.html">checkbox-label.html</a> (o consultar l’<a href="https://mdn.github.io/learning-area/html/forms/html-form-structure/checkbox-label.html">exemple en viu</a>).</p> +</div> + +<h3 id="Etiquetes_múltiples">Etiquetes múltiples</h3> + +<p>Estrictament parlant, pots posar diverses etiquetes en un sol control, però no és una bona idea perquè algunes tecnologies d'assistència poden tenir problemes a l'hora de manejar-los. En el cas de tenir etiquetes múltiples, hauràs d’incloure el control i les seves múltiples etiquetes dins d’un únic element {{htmlelement("label")}}.</p> + +<p>Considerem l'exemple següent:</p> + +<pre class="brush: html notranslate"><p>Els camps obligatoris van seguits de <abbr title="required">*</abbr>.</p> + +<!-- Doncs, això: ---> +<div> + <label for="username">Nom:</label> + <input type="text" name="username"> + <label for="username"><abbr title="obligatori" aria-label="required">*</abbr></label> +</div> + +<!-- seria millor fer-ho d'aquesta manera: --> +<div> + <label for="username"> + <span>Nom:</span> + <input id="username" type="text" name="username"> + <abbr title="obligatori" aria-label="required">*</abbr> + </label> +</div> + +<!-- Però això és probablement el millor: --> +<div> + <label for="username">Nom: <abbr title="obligatori" aria-label="required">*</abbr></label> + <input id="username" type="text" name="username"> +</div></pre> + +<p>{{EmbedLiveSample("Etiquetes_múltiples", 120, 120)}}</p> + +<p>El paràgraf de la part superior estableix una regla per als elements obligatoris. La regla s'ha d'incloure <em>abans</em> que s’hagi d'utilitzar perquè els usuaris generals i els usuaris amb tecnologies d’assistència, com ara lectors de pantalla, puguin saber què vol dir abans de trobar un element obligatori. Tot i que això ajuda a informar els usuaris què significa un asterisc, no ens en podem refiar. Un lector de pantalla llegirà un asterisc així: «<em>estrella</em>». Si s'hi passa el ratolí per sobre, hauria d'aparèixer «<em>obligatori</em>», que s'aconsegueix amb l'atribut <code>title</code>. Els títols que es llegeixen en veu alta depenen de la configuració del lector de pantalla, de manera que és més fiable incloure també l’atribut <code><a href="/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute">aria-label</a></code>, que els lectors de pantalla llegeixen sempre.</p> + +<p>Les variants anteriors augmenten l’efectivitat a mesura que hi avances:</p> + +<ul> + <li>En el primer exemple, l’etiqueta no es llegeix del tot amb l’entrada: només es llegeix «editar text en blanc»; a més, les etiquetes es llegeixen en realitat per separat. Els múltiples elements <code><label></code> confonen el lector de pantalla.</li> + <li>En el segon exemple, les coses són una mica més clares: l’etiqueta, llegida juntament amb l’entrada, és «Editar text nom estrella nom obligatori» i les etiquetes encara es llegeixen per separat. Tot és encara una mica confús, però aquesta vegada està una mica més bé, perquè <code><input></code> té una etiqueta associada.</li> + <li>El tercer exemple és el millor: l’etiqueta es llegeix realment en conjunt i l’etiqueta que es llegeix amb l’entrada és «Editar text nom requerit».</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Pots obtenir resultats una mica diferents, segons quin sigui el teu lector de pantalla. Aquest ha estat provat amb VoiceOver (i NVDA es comporta de manera similar). Ens agradaria conèixer també les teves experiències.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple a GitHub en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/required-labels.html">required-labels.html</a> (o consulta l’<a href="https://mdn.github.io/learning-area/html/forms/html-form-structure/required-labels.html">exemple en viu</a>). No provis l'exemple amb les dues o tres versions sense comentaris: els lectors de pantalla definitivament es confondran si tens diverses etiquetes i múltiples entrades amb el mateix ID.</p> +</div> + +<h2 id="Estructures_HTML_habituals_que_es_fan_servir_als_formularis">Estructures HTML habituals que es fan servir als formularis</h2> + +<p>Més enllà de les estructures específiques dels formularis web, és bo recordar que l'etiquetatge del formulari només és HTML. Això significa que pots utilitzar tot el poder de l'HTML per a estructurar un formulari web.</p> + +<p>Com es pot veure en els exemples, és una pràctica habitual delimitar una etiqueta i el control associat amb un element {{HTMLElement("li")}} dins d'un element de llista {{HTMLElement("ul")}} o {{HTMLElement("ol")}}. Els elements {{HTMLElement("p")}} i {{HTMLElement("div")}} també s'utilitzen de forma habitual. Per a estructurar diverses caselles de verificació o botons d'opció es recomana crear una llista.</p> + +<p>A més de l’element {{HTMLElement("fieldset")}}, també és una pràctica habitual utilitzar títols HTML (per exemple, {{htmlelement("h1")}}, {{htmlelement("h2")}}) i seccionar (per exemple, {{htmlelement("section")}}), per a estructurar formularis complexos.</p> + +<p>Per sobre de tot, et correspon a tu trobar un estil de codificació còmode que doni lloc a formularis que compleixin criteris d’accessibilitat i usabilitat. Les seccions independents amb funcions diferents haurien d’estar contingudes en un element {{htmlelement("section")}} separat, amb elements {{htmlelement("fieldset")}} per a contenir botons d'opció.</p> + +<h3 id="Aprenentatge_actiu_construir_l’estructura_d’un_formulari">Aprenentatge actiu: construir l’estructura d’un formulari</h3> + +<p>Posem en pràctica aquestes idees i construïm un formulari una mica més complicat: un formulari de pagament. Aquest formulari contindrà diversos tipus de controls que encara no coneixes. No et preocupis; en veuràs el funcionament en l’article següent (<a href="/ca/docs/Learn/HTML/Forms/Controls_de_formulari_originals">Els controls de formulari bàsics originals</a>). Per ara, llegeix amb detall les descripcions mentre segueixes les instruccions següents i comences a entendre quins elements utilitzem per a estructurar un formulari, i per què.</p> + +<ol> + <li>Per començar, fes una còpia local del <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">fitxer de plantilla en blanc</a> i del <a href="https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/payment-form.css">CSS del nostre formulari de pagament</a> en un directori nou del teu ordinador.</li> + <li>Aplica el CSS a l’HTML afegint la línia següent a l’element {{htmlelement("head")}} de l’HTML: + <pre class="brush: html notranslate"><link href="payment-form.css" rel="stylesheet"></pre> + </li> + <li>A continuació, afegeix l’element extern {{htmlelement("form")}} per a crear el teu formulari: + <pre class="brush: html notranslate"><form> + +</form></pre> + </li> + <li>Afegeix un títol d’encapçalament encapçalament i un paràgraf a les etiquetes <code><form></code> per a informar els usuaris com es marquen els camps obligatoris: + <pre class="brush: html notranslate"><h1>Forma de pagament</h1> +<p>Els camps obligatoris van seguits de <strong><abbr title = "obligatori">*</abbr></strong>.</p></pre> + </li> + <li>A continuació, afegirem una secció més gran de codi al formulari, a sota de l’entrada anterior. Aquí veuràs que delimitem amb un element {{htmlelement("section")}} independent els camps amb la informació de contacte. A més, hi ha un conjunt de dos botons d'opció, cadascun dels quals col·loquem dins d’un element de llista ({{htmlelement("li")}}) propi. També hi ha dos textos estàndard {{htmlelement("input")}} i els seus elements {{htmlelement("label")}} associats, cadascun imbricat dins d'un element {{htmlelement("p")}} i un camp per a introduir una contrasenya. Afegeix aquest codi al teu formulari: + <pre class="brush: html notranslate"><section> + <h2>Informació de contacte</h2> + <fieldset> + <legend>Títol </legend> + <ul> + <li> + <label for="title_1"> + <input type="radio" id="title_1" name="title" value="K" > + Rei + </label> + </li> + <li> + <label for="title_2"> + <input type="radio" id="title_2" name="title" value="Q"> + Reina + </label> + </li> + <li> + <label for="title_3"> + <input type="radio" id="title_3" name="title" value="J"> + Bufó + </label> + </li> + </ul> + </fieldset> + <p> + <label for="name"> + <span>Nom: </span> + <strong><abbr title="required">*</abbr></strong> + </label> + <input type="text" id="name" name="username"> + </p> + <p> + <label for="mail"> + <span>Correu electrònic: </span> + <strong><abbr title="required">*</abbr></strong> + </label> + <input type="email" id="mail" name="usermail"> + </p> + <p> + <label for="pwd"> + <span>Contrasenya:</span> + <strong><abbr title="required">*</abbr></strong> + </label> + <input type="password" id="pwd" name="password"> + </p> +</section></pre> + </li> + <li>La segona secció (<code><section></code>) del nostre formulari és la informació de pagament. Hi ha tres controls diferents, juntament amb les seves etiquetes, cadascun inclòs en un element <code><p></code>. El primer és un menú desplegable ({{htmlelement("select")}}) que selecciona el tipus de targeta de crèdit. El segon és un element <code><input></code> del tipus <code>tel</code>, que introdueix un número de targeta de crèdit; tot i que podríem haver utilitzat el tipus <code>number</code>, no volem la interfície d'usuari que s'hi aplica per defecte. L'últim és un element <code><input></code> del tipus <code>date</code>, per a introduir la data de caducitat de la targeta; aquest apareixerà amb un control de selecció de dates en els navegadors compatibles, i es converteix en una entrada de text normal en els navegadors no compatibles. Aquests tipus d’entrada més nous es reintrodueixen en l’article <a href="/en-US/docs/Learn/Forms/HTML5_input_types">tipus d’entrades en HTML5</a>.<br> + <br> + Introdueix el següent en la secció anterior: + <pre class="brush: html notranslate"><section> + <h2>Informació de pagament</h2> + <p> + <label for="card"> + <span>Tipus de targeta: </span> + </label> + <select id="card" name="usercard"> + <option value="visa">Visa</option> + <option value="mc">Mastercard</option> + <option value="amex">American Express</option> + </select> + </p> + <p> + <label for="number"> + <span>Número de targeta:</span> + <strong><abbr title="required">*</abbr></strong> + </label> + <input type="tel" id="number" name="cardnumber"> + </p> + <p> + <label for="date"> + <span> Data de caducitat: </span> + <strong><abbr title="required">*</abbr></strong> + <em>en format mm/aa</em> + </label> + <input type="date" id="date" name="expiration"> + </p> +</section></pre> + </li> + <li>L’última secció que afegim és molt més senzilla, perquè només conté un element {{htmlelement("button")}} de tipus <code>submit</code>, que envia les dades del formulari. Afegeix això al final del formulari: + <pre class="brush: html notranslate"><p> <button type="submit">Validar el pagament</button> </p></pre> + </li> +</ol> + +<p>A sota pots veure en acció el formulari acabat (també el pots trobar a GitHub; consulta el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/html-form-structure/payment-form.html">codi d’origen</a> a payment-form.html i <a href="https://mdn.github.io/learning-area/html/forms/html-form-structure/payment-form.html">executa’l en viu</a>):</p> + +<p>{{EmbedLiveSample("A_payment_form","100%",620, "", "en-US/Learn/Forms/How_to_structure_a_web_form/Example")}}</p> + +<h2 id="Resum">Resum</h2> + +<p>Ara tens tot el coneixement que necessites per a estructurar adequadament els teus formularis web. En els pròxims articles tractarem moltes de les funcions que s’introdueixen aquí; l’article següent explica amb més detall l’ús de tots els diferents tipus de controls de formulari que voldràs utilitzar per a recopilar informació dels teus usuaris.</p> + +<h2 id="Consulta_també">Consulta també</h2> + +<ul> + <li><a href="http://www.alistapart.com/articles/sensibleforms/" rel="external noopener" title="http://www.alistapart.com/articles/sensibleforms/">A List Apart: <em>Sensible Forms: A Form Usability Checklist</em></a></li> +</ul> + +<p>{{PreviousMenuNext("Learn/Forms/Your_first_form", "Learn/Forms/Basic_native_form_controls", "Learn/Forms")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/HTML/Forms/Your_first_HTML_form">El teu primer formulari HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form">Com estructurar un formulari HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/The_native_form_widgets">Controls de formulari bàsics originals</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/HTML5_input_types">Tipus d'entrades en HTML5</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Additional_form_controls">Els controls de formulari addicionals</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/UI_pseudo-classes">Pseudoclasses d’interfícies d’usuari UI</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Styling_HTML_forms">Aplicació d’estil als formularis HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de les dades d’un formulari</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari</a></li> +</ul> + +<h3 id="Temes_avançats">Temes avançats</h3> + +<ul> + <li><a href="/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript">Enviar formularis mitjançant JavaScript</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/How_to_build_custom_form_widgets">Com crear controls de formulari personalitzats</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/HTML_forms_in_legacy_browsers">Formularis HTML en els navegadors antics</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Advanced_styling_for_HTML_forms">Estil avançat per als formularis HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Property_compatibility_table_for_form_widgets">Taula de compatibilitat dels controls de formulari segons el seu codi propietari</a></li> +</ul> diff --git a/files/ca/learn/html/forms/controls_de_formulari_originals/index.html b/files/ca/learn/html/forms/controls_de_formulari_originals/index.html new file mode 100644 index 0000000000..73ee2a9249 --- /dev/null +++ b/files/ca/learn/html/forms/controls_de_formulari_originals/index.html @@ -0,0 +1,325 @@ +--- +title: Controls de formulari originals +slug: Learn/HTML/Forms/Controls_de_formulari_originals +translation_of: Learn/Forms/Basic_native_form_controls +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Forms/How_to_structure_an_HTML_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}</div> + +<p class="summary">En <a href="/ca/docs/Learn/HTML/Forms/Com_estructurar_un_formulari_web">l’article anterior</a> hem etiquetat un exemple de formulari web funcional, hem introduït alguns controls de formulari i elements estructurals comuns, però sobretot, ens hem centrat en l'accessibilitat. A continuació analitzarem amb detall la funcionalitat dels diferents controls de formulari, també anomenats <em>ginys</em> o <em>widgets</em>, i estudiarem totes les opcions que hi ha disponibles per a recollir diferents tipus de dades. En aquest article, veurem el conjunt original de controls de formulari que hi ha disponibles en tots els navegadors des dels primers dies.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica i una <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">comprensió bàsica d’HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Comprendre amb detall el conjunt de controls de formulari originals que hi ha disponibles als navegadors per a la recollida de dades, i com implementar-los amb HTML.</td> + </tr> + </tbody> +</table> + +<p>Ja coneixes alguns elements de formulari, com ara {{HTMLelement('form')}}, {{HTMLelement('fieldset')}}, {{HTMLelement('legend')}}, {{HTMLelement('textarea')}}, {{HTMLelement('label')}}, {{HTMLelement('button')}} i {{HTMLelement('input')}}. Aquest article exposa:</p> + +<ul> + <li>Els tipus d’entrada habituals {{HTMLelement('input/button', 'button')}}, {{HTMLelement('input/checkbox', 'checkbox')}}, {{HTMLelement('input/file', 'file')}}, {{HTMLelement('input/hidden', 'hidden')}}, {{HTMLelement('input/image', 'image')}}, {{HTMLelement('input/password', 'password')}}, {{HTMLelement('input/radio', 'radio')}}, {{HTMLelement('input/reset', 'reset')}}, {{HTMLelement('input/submit', 'submit')}} i {{HTMLelement('input/text', 'text')}}.</li> + <li>Alguns dels atributs que són comuns a tots els controls de formulari.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Les característiques que comentem en aquest article són compatibles amb tots els navegadors, però no amb tots els controls de formulari. En els dos articles següents expliquem els controls de formulari que s’han afegit a l’HTML5 més recentment. Si vols una referència més avançada, has de consultar la nostra <a href="https://wiki.developer.mozilla.org/ca/docs/Web/HTML/Element#Formularis">referència d’elements de formulari HTML</a> i, en particular, la nostra extensa referència de <a href="/ca/docs/Web/HTML/Element/input">tipus <input></a>.</p> +</div> + +<h2 id="Camps_dentrada_de_text">Camps d'entrada de text</h2> + +<p>Els camps d’entrada de text {{htmlelement("input")}} són els controls del formulari més bàsics. Són una manera molt còmoda de permetre a l’usuari introduir qualsevol tipus de dades, i ja n’hem vist alguns exemples senzills.</p> + +<div class="note"> +<p><strong>Nota</strong>: Els camps de text en format HTML són controls d’entrada de text pla. Això vol dir que no pots aplicar-hi <a href="/ca/docs/Web/HTML/Element/input" title="/en-US/docs/Rich-Text_Editing_in_Mozilla"> una edició enriquida</a> (negreta, cursiva, etc.). Tots els controls de formulari que trobis amb text enriquit són controls de formulari personalitzats creats amb HTML, CSS i JavaScript.</p> +</div> + +<p>Tots els controls bàsics de text comparteixen alguns comportaments comuns:</p> + +<ul> + <li>Es poden etiquetar amb {{htmlattrxref("readonly","input")}} (l'usuari no pot modificar el valor d'entrada, però aquest s’envia igualment amb la resta de dades del formulari) o {{htmlattrxref("disabled","input")}} (el valor d'entrada no es pot modificar i no s'envia mai amb la resta de dades del formulari).</li> + <li>Poden tenir un element {{htmlattrxref("placeholder","input")}}; és el text que apareix dins la caixa d’entrada de text que s’ha d’utilitzar i que en descriu breument l’objectiu.</li> + <li>Se’n poden restringir les propietats <a href="/en-US/docs/Web/HTML/Attributes/size"><code>size</code></a> (la mida física de la caixa) i <a href="/en-US/docs/Web/HTML/Attributes/maxlength" title="/en-US/docs/HTML/Element/input#attr-maxlength"><code>maxlength</code></a> (el nombre màxim de caràcters que es poden introduir a la caixa).</li> + <li>Són compatibles amb la funció de <a href="/en-US/docs/HTML/Element/input#attr-spellcheck" title="/en-US/docs/HTML/Element/input#attr-spellcheck">revisió ortogràfica</a> (utilitzant l'atribut <a href="/en-US/docs/Web/HTML/Attributes/spellcheck"><code>spellcheck</code></a>), si el navegador hi és compatible.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: L’element {{htmlelement("input")}} és únic entre els elements d’HTML perquè pot adoptar moltes formes diferents segons el valor del seu atribut <code><a href="/en-US/docs/Web/HTML/Attributes/type">type</a></code>. S'utilitza per a crear la majoria de tipus de controls de formulari, que inclouen camps de text d'una sola línia, controls d'hora i data, controls sense entrada de text com ara caixes de selecció, botons d'opció i selectors de colors, i botons.</p> +</div> + +<h3 id="Camps_de_text_duna_sola_línia">Camps de text d'una sola línia</h3> + +<p>Un camp de text d'una sola línia es crea en assignar a l'atribut {{htmlattrxref("type","input")}} d’un element {{HTMLElement("input")}} el valor <code>text</code>, o si l’atribut {{htmlattrxref("type","input")}} s’omet (perquè el valor per defecte d’aquest atribut és <code>text</code>). El valor <code>text</code> d’aquest atribut és també el valor alternatiu que el navegador utilitza si el valor que especifiques per a l’atribut {{htmlattrxref("type","input")}} li és desconegut (per exemple, si especifiques <code>type="color"</code> i el navegador no és compatible amb els selectors de color).</p> + +<div class="note"> +<p><strong>Nota</strong>: Consulta exemples de tots els tipus de camp de text d’una sola línia a GitHub, en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/single-line-text-fields.html">single-line-text-fields.html</a> (també pots consultar l’<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/single-line-text-fields.html">exemple en viu</a>).</p> +</div> + +<p>A continuació es mostra un exemple bàsic de camp de text d'una sola línia:</p> + +<pre class="brush: html notranslate"><input type="text" id="comment" name="comment" value="I'm a text field"></pre> + +<p>Els camps de text d'una sola línia només tenen una restricció: si escrius text amb salts de línia, el navegador elimina els salts de línia abans d'enviar les dades al servidor.</p> + +<p><em>La captura de pantalla següent mostra els tipus de controls d’entrada de text predeterminat, amb el focus i desactivat en Firefox 71 i Safari amb macOS i en Chrome 79 i Edge 18 amb Windows 10.</em></p> + +<p><img alt="Captura de pantalla que mostra els estils de l’atribut en els estats predeterminat, amb el focus i desactivat per a un control d’entrada de text en Firefox, Safari, Chrome i Edge." src="https://mdn.mozillademos.org/files/17021/disabled.png" style="height: 113px; width: 442px;"></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: L'HTML5 va millorar el camp de text d'una sola línea bàsic original afegint valors especials per a l’atribut {{htmlattrxref("type","input")}} que aplica restriccions de validació específiques i altres funcions, per exemple a l'hora d'introduir adreces URL o números. Les tractarem en l’article següent: <a href="/en-US/docs/Learn/Forms/HTML5_input_types">tipus d’entrada HTML5</a>.</p> +</div> + +<h4 id="Camps_de_contrasenya">Camps de contrasenya</h4> + +<p>Un dels tipus d’entrada de text originals era el tipus de camp de text per a introduir una contrasenya (<code>password</code>):</p> + +<pre class="brush: html notranslate"><input type="password" id="pwd" name="pwd"></pre> + +<p>El valor de contrasenya (<code>password</code>) no afegeix cap restricció especial al text que s’introdueix al camp, però n’amaga el valor (per exemple, amb punts o asteriscs) i impedeix que altres usuaris el puguin llegir.</p> + +<p>Tingues en compte que es tracta només d’una funció d’interfície d’usuari; si no és que envies el formulari d’una manera segura, s’enviarà un text pla, i això no és aconsellable per a la seguretat. Una persona maliciosa podria interceptar les teves dades i robar-te contrasenyes, dades de la targeta de crèdit o qualsevol cosa que hagis enviat. La millor manera de protegir els usuaris d’això és allotjar les pàgines que incloguin formularis en una connexió segura (és a dir, una adreça <code>https://</code>...), perquè les dades se xifrin abans d’enviar-se.</p> + +<p>Els navegadors reconeixen les implicacions de seguretat de l'enviament de dades del formulari per una connexió no segura i disposen de missatges d’advertiments per a dissuadir els usuaris d'utilitzar formularis no segurs. Per a obtenir més informació sobre el que implementa Firefox, consulta l’article <a href="/ca/docs/Security/InsecurePasswords">Contrasenyes insegures</a>.</p> + +<h3 id="Contingut_ocult">Contingut ocult</h3> + +<p>Un altre control de text original és el tipus d’entrada <code>hidden</code>. S'utilitza per a crear un control de formulari que és invisible per a l'usuari, però que s'envia al servidor juntament amb la resta de dades del formulari. Per exemple, pot ser que vulguis enviar una marca de temps al servidor que indiqui quan s’ha fet una comanda. Com que és un control ocult, l’usuari no el pot veure ni editar-ne el valor de manera intencionada, mai no rep el focus i un lector de pantalla tampoc no el detecta.</p> + +<pre class="brush: html notranslate"><input type="hidden" id="timestamp" name="timestamp" value="1286705410"> +</pre> + +<p>Quan crees aquest element, cal que hi configuris els atributs <code>name</code> i <code>value</code>. El valor es pot configurar dinàmicament amb JavaScript. El tipus d’entrada <code>hidden</code> no hauria de tenir cap etiqueta associada.</p> + +<p>Amb HTML5 es van afegir altres tipus d'entrada de text, com {{HTMLElement("input/search", "search")}}, {{HTMLElement("input/url", "url")}} i {{HTMLElement("input/tel", "tel")}}. Es tracten en el tutorial següent: tipus d’entrada HTML5.</p> + +<h2 id="Elements_de_selecció_caselles_de_selecció_i_botons_dopció">Elements de selecció: caselles de selecció i botons d'opció</h2> + +<p>Els elements de selecció (o <em>checkable items</em>, en anglès) són controls dels quals pots canviar l’estat fent-hi clic a sobre o en les etiquetes que hi estan associades. Hi ha dos tipus d’elements de selecció: la casella de selecció, o <em>check box</em>, i el botó d'opció, o <em>radio button</em>. Tots dos utilitzen l’atribut <a href="/en-US/docs/Web/HTML/Attributes//checked"><code>checked</code></a> per indicar si el control està en estat seleccionat per defecte o no.</p> + +<p>Val la pena assenyalar que aquests controls no es comporten exactament igual que altres controls de formulari. Per a la majoria de controls de formulari, un cop validat el formulari s’envien tots els controls que tenen un atribut <a href="/en-US/docs/Web/HTML/Attributes/name"><code>name</code></a>, fins i tot si no se n’ha omplert el valor. En el cas dels elements de selecció, els valors s’envien només si estan seleccionats. Si no ho estan, no s'envia res, ni tan sols el nom. Si estan seleccionats però no tenen cap valor, el nom s'envia amb el valor <em>on</em>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar els exemples d'aquesta secció a GitHub, en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/checkable-items.html">checkable-items.html</a> (o també consultar-ne l’<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/checkable-items.html">exemple en viu</a>).</p> +</div> + +<p>Per a assolir una usabilitat/accessibilitat màxima, es recomana delimitar cada llista d’elements que estan relacionats entre si dins d'un element {{htmlelement("fieldset")}} amb un element {{htmlelement("legend")}} que ofereixi una descripció general de la llista. Cada parella d'elements {{htmlelement("label")}}/{{htmlelement("input")}} hauria d’estar continguda en un element de llista (o similar) propi. L'element associat {{htmlelement('label')}} se situa en general immediatament a continuació del botó d'opció o de la caixa de verificació, i les instruccions del grup de botons d'opció o caselles de selecció solen ser el contingut de l'element {{htmlelement("legend")}}. Observa els exemples estructurals que et presentem en l’enllaç anterior.</p> + +<h3 id="Caselles_de_verificació">Caselles de verificació</h3> + +<p>Una casella de verificació es crea amb l’element {{HTMLElement("input")}} i un atribut <a href="/en-US/docs/Web/HTML/Attributes/type"><code>type</code></a> amb el valor {{HTMLElement("input/checkbox", "checkbox")}}.</p> + +<pre class="brush: html notranslate"><input type="checkbox" id="carrots" name="carrots" value="carrots" checked> +</pre> + +<p>Si s’hi inclou l’atribut <code><a href="/en-US/docs/Web/HTML/Attributes/checked">checked</a></code>, la casella de verificació es marca automàticament en carregar-se la pàgina. Si s’hi fa clic, en la casella de verificació o en l’etiqueta associada, la casella de verificació canvia entre els estats activat o desactivat.</p> + +<p>Les captures de pantalla següents mostren les caselles de verificació en els estats per defecte, amb el focus i desactivat en Firefox 71 i Safari 13 amb macOS i Chrome 79 i en Edge 18 amb Windows 10:</p> + +<p><img alt="Caselles de verificació en els estats per defecte, amb el focus i desactivat en Firefox 71 i Safari 13 amb macOS i Chrome 79 i en Edge 18 amb Windows 10" src="https://mdn.mozillademos.org/files/17024/checkboxes.png" style="height: 203px; width: 293px;"></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: La pseudoclasse {{cssxref('<code>:default')}}</code> selecciona les caselles de verificació i els botons d'opció que presenten l'atribut <code><a href="/en-US/docs/Web/HTML/Attributes/checked">checked</a></code> en el moment de carregar-se la pàgina, encara que ja no estiguin en l’estat <code>checked</code>. La pseudoclasse <code>{{cssxref(':checked')}}</code> selecciona només els elements que estan en estat <code>checked</code>.</p> +</div> + +<p id="Radio_button">A causa de la característica activada-desactivada que presenten les caselles de verificació, es consideren botons de commutació i molts desenvolupadors i dissenyadors han estès l’estil per defecte de la casella de selecció per a crear botons que semblen interruptors. Pots consultar-ne un <a href="https://mdn.github.io/learning-area/html/forms/toggle-switch-example/">exemple en acció aquí</a> (o també pots consultar-ne el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/toggle-switch-example/index.html">codi d’origen</a>).</p> + +<h3 id="Botons_dopció">Botons d'opció</h3> + +<p>Un botó d'opció es crea amb l’element {{HTMLElement("input")}} i l’atribut {{htmlattrxref("type","input")}} establert en el valor <code>radio</code>:</p> + +<pre class="brush: html notranslate"><input type="radio" id="soup" name="meal" checked></pre> + +<p>És possible associar diversos botons de ràdio. Si comparteixen el mateix valor de l’atribut {{htmlattrxref("name","input")}}, es considera que estan en el mateix grup de botons. Només és possible marcar un botó d’un grup determinat cada vegada; això vol dir que quan se’n clica un, tots els altres es desmarquen automàticament. Quan el formulari s’envia, només s’envia el valor del botó d'opció seleccionat. Si no se'n selecciona cap, es considera que el conjunt de botons d'opció està en un estat desconegut i no s’envia cap valor amb el formulari. Quan s’ha clicat un dels botons d'opció d’un mateix grup de botons, no és possible desmarcar tots els botons sense reiniciar el formulari.</p> + +<pre class="brush: html notranslate"><fieldset> + <legend>Quin és el teu menjar preferit?</legend> + <ul> + <li> + <label for="soup">Sopa </label> + <input type="radio" id="soup" name="meal" value="soup" checked> + </li> + <li> + <label for="curry">Curry </label> + <input type="radio" id="curry" name="meal" value="curry"> + </li> + <li> + <label for="pizza">Pizza </label> + <input type="radio" id="pizza" name="meal" value="pizza"> + </li> + </ul> +</fieldset></pre> + +<p>Les captures de pantalla següents mostren els botons d'opció en els estats no marcat i marcat, amb el focus i desactivats: en Firefox 71 i Safari 13 amb MacOs i Chrome 79 i en Edge 18 amb Windows 10.</p> + +<p><img alt="Botons d'opció en Firefox 71 i Safari 13 amb Mac i Chrome 79 i en Edge 18 amb Windows 10" src="https://mdn.mozillademos.org/files/17022/radios.png" style="height: 142px; width: 196px;"></p> + +<h2 id="Botons_reals">Botons reals</h2> + +<p>En realitat, els botons d'opció no són botons, malgrat el nom. Ara anirem una mica més enllà i veurem botons autèntics! Hi ha tres tipus d’entrada que proporcionen botons:</p> + +<dl> + <dt><code>submit</code></dt> + <dd>Envien les dades del formulari al servidor. Per als elements {{HTMLElement("button")}}, si s’omet l'atribut <code>type</code> (o es posa un valor de <code>type</code> no vàlid), s’obté un botó d'enviament.</dd> + <dt><code>reset</code></dt> + <dd>Restableixen tots els controls de formulari als valors predeterminats.</dd> + <dt><code>button</code></dt> + <dd>No presenten cap efecte automàtic, però es poden personalitzar amb codi JavaScript.</dd> +</dl> + +<p>A més, l’element {{htmlelement("button")}} pot prendre un atribut <code>type</code> i imitar aquests tres tipus d'entrada. La diferència principal entre els dos elements és que els elements <code><button></code> autèntics admeten moltes més opcions d’estil.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: També es pot representar com un botó el tipus d’entrada <code>image</code>. El tractarem més endavant també.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar els exemples d'aquesta secció a GitHub, en els fitxers <a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/button-examples.html">button-examples.html</a> (o també pots consultar l’<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/button-examples.html">exemple en viu</a>).</p> +</div> + +<p>A continuació pots trobar exemples de cada tipus d’entrada <code><input></code> de tipus botó, juntament amb el tipus de botó equivalent.</p> + +<h3 id="submit">submit</h3> + +<pre class="brush: html notranslate"><button type="submit"> + Aquest és un <strong>botó Enviar</strong> +</button> + +<input type="submit" value="Aquest és un botó Enviar"></pre> + +<h3 id="reset">reset</h3> + +<pre class="brush: html notranslate"><button type="reset"> + Aquest és un <strong>botó Reiniciar</strong> +</button> + +<Input type = "reset" value = "Aquest és un botó Reiniciar"></pre> + +<h3 id="anonymous">anonymous</h3> + +<pre class="brush: html notranslate"><button type="button"> + Aquest és un <strong>botó anònim</strong> +</button> + +<input type="button" value="Aquest és un botó anònim"></pre> + +<p>Els botons sempre es comporten igual, tant si fas servir un element {{HTMLElement("button")}} com un element {{HTMLElement("input")}}. Però, com pots veure en els exemples, els elements {{HTMLElement("button")}} et permeten aplicar HTML al contingut inclòs entre les etiquetes <code><button></code> d'obertura i de tancament. En canvi, els elements {{HTMLElement("input")}} són elements buits; el contingut que s’hi mostra s’insereix dins de l’atribut <code>value</code>, i per tant només accepten contingut textual.</p> + +<p>Els exemples següents mostren els tipus d’entrada per defecte dels botons en els estats predeterminat, amb el focus i desactivat: en Firefox 71 i Safari 13 amb macOS i Chrome 79 i en Edge 18 amb Windows 10.</p> + +<p><img alt="Tipus d’entrada per defecte dels botons en els estats predeterminat, amb el focus i desactivat: en Firefox 71 i Safari 13 amb macOS i Chrome 79 i en Edge 18 amb Windows 10" src="https://mdn.mozillademos.org/files/17023/buttons.png" style="height: 182px; width: 286px;"></p> + +<h3 id="Botons_imatge">Botons imatge</h3> + +<p>El control <strong>botó imatge</strong> es comporta exactament com un element {{HTMLElement("img")}}, però passa a comportar-se com un botó de validació quan un usuari hi fa clic.</p> + +<p>Un botó imatge es crea amb un element {{HTMLElement("input")}} i l’atribut {{htmlattrxref("type","input")}} establert en el valor <code>image</code>. Aquest element admet exactament el mateix conjunt d’atributs que l’element {{HTMLElement("img")}}, i a més, tots els atributs que són compatibles amb els altres botons de formulari.</p> + +<pre class="brush: html notranslate"><input type="image" alt="Fes-me clic!" src="my-img.png" width="80" height="30"></pre> + +<p>Si per a validar el formulari s’utilitza un botó imatge, aquest control no envia el seu valor, sinó que s’envien les coordenades X i Y del clic que s’ha fet en la imatge (les coordenades són relatives a la imatge, és a dir, que la part superior esquerra de la imatge representa les coordenades (0, 0)). Les coordenades s’envien com dos parells clau/valor:</p> + +<ul> + <li>La clau del valor X és el valor de l’atribut {{htmlattrxref("name","input")}} seguit de la cadena «<em>.x</em>».</li> + <li>La clau del valor Y és el valor de l’atribut {{htmlattrxref("name","input")}} seguit de la cadena «<em>.y</em>»</li> +</ul> + +<p>Així, per exemple, observa que en fer clic a les coordenades (123, 456) de la imatge i enviar pel mètode <code>get</code>, aquests valors s’annexen a l’URL de la manera següent:</p> + +<pre class="notranslate">http://foo.com?pos.x=123&pos.y=456</pre> + +<p>Aquesta és una manera molt còmoda de construir un «mapa interactiu». La manera d’enviar i recuperar aquests valors es detalla en l’article <a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari</a>.</p> + +<h2 id="Selector_de_fitxers">Selector de fitxers</h2> + +<p>Un últim tipus <code><input></code> que ens va arribar amb l'HTML inicial és el tipus entrada de fitxer. Els formularis poden enviar fitxers a un servidor (aquesta acció específica també es detalla en l’article <a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari</a>). El control de selecció de fitxers es pot utilitzar per triar un o més fitxers que es volen enviar.</p> + +<p>Pots crear un <a href="/en-US/docs/Web/HTML/Element/input/file">control de selecció de fitxers</a> amb l’element {{HTMLElement("input")}} i l’atribut {{htmlattrxref("type","input")}} establert en el valor <code>file</code>. Pots restringir els tipus de fitxers que se seleccionen amb l’atribut {{htmlattrxref("accept","input")}}. A més, pots deixar que l’usuari triï més d’un fitxer si hi afegeixes l’atribut {{htmlattrxref("multiple","input")}}.</p> + +<h4 id="Exemple">Exemple</h4> + +<p>En aquest exemple es crea un selector de fitxers que sol·licita fitxers gràfics d’imatge. En aquest cas, l'usuari té la possibilitat de seleccionar diversos fitxers.</p> + +<pre class="brush: html notranslate"><input type="file" name="file" id="file" accept="image/*" multiple></pre> + +<p>En alguns dispositius mòbils, el selector de fitxers pot accedir a fotos, vídeos i àudio capturats directament per la càmera i el micròfon del dispositiu i afegir a l’atribut <code>accept</code> informació sobre la captura com ara:</p> + +<pre class="notranslate"><input type="file" accept="image/*;capture=camera"> +<input type="file" accept="video/*;capture=camcorder"> +<input type="file" accept="audio/*;capture=microphone"></pre> + +<h2 id="Atributs_comuns">Atributs comuns</h2> + +<p>Molts dels elements utilitzats per a definir controls de formulari tenen atributs específics propis. Això no obstant, hi ha un conjunt d’atributs comuns a tots els elements de formulari. Ja n'has conegut uns quants, però a continuació et presentem una llista d’aquests atributs comuns, perquè els tinguis com a referència:</p> + +<table> + <thead> + <tr> + <th scope="col">Nom de l'atribut</th> + <th scope="col">Valor per defecte</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><a href="/en-US/docs/Web/HTML/Attributes/autofocus">autofocus</a></code></td> + <td>false</td> + <td>Aquest atribut booleà permet especificar que un element adquireix el focus d'entrada automàticament quan es carrega la pàgina. En un document només hi pot haver un element associat a un formulari que tingui especificat aquest atribut.</td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/HTML/Attributes/disabled">disabled</a></code></td> + <td>false</td> + <td>Aquest atribut booleà indica que l'usuari no pot interactuar amb l'element. Si aquest atribut no s'especifica, l'element hereta la configuració de l'element que el conté, per exemple, {{HTMLElement("fieldset")}}; si no hi ha cap element contenidor que tingui establert l'atribut <code>disabled</code>, l'element està habilitat.</td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/HTML/Attributes/form">form</a></code></td> + <td></td> + <td>L’element <code><form></code> s’utilitza per a associar el control al formulari, quan aquest no hi està imbricat. El valor de l’atribut ha de ser l’atribut <code>id</code> d’un element {{HTMLElement("form")}} del mateix document. D’aquesta manera pots associar un formulari un control de formulari que n’estigui fora, encara que sigui dins d’un formulari diferent.</td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/HTML/Attributes/name">name</a></code></td> + <td></td> + <td>El nom de l'element; s'envia amb les dades del formulari.</td> + </tr> + <tr> + <td><code><a href="/en-US/docs/Web/HTML/Attributes/value">value</a></code></td> + <td></td> + <td>El valor inicial de l'element.</td> + </tr> + </tbody> +</table> + +<h2 id="Resum">Resum</h2> + +<p>Aquest article ha exposat els tipus d’entrada més antics: el conjunt original introduït els primers dies de l’HTML, que és compatible amb tots els navegadors. En l'article següent analitzarem els valors més recents de l’atribut <code>type</code>, que s’han afegit en HTML5.</p> + +<p>{{PreviousMenuNext("Learn/Forms/How_to_structure_an_HTML_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/HTML/Forms/Your_first_HTML_form">El teu primer formulari HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form">Com estructurar un formulari HTML</a></li> + <li><a href="/en-US/docs/Learn/Forms/Basic_native_form_controls">Els controls de formulari bàsics originaris</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/HTML5_input_types">Els tipus d'entrada de l’HTML5</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Additional_form_controls">Altres controls de formulari </a></li> + <li><a href="/en-US/docs/Learn/Forms/Styling_web_forms">Aplicar estils a formularis web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Advanced_form_styling">Aplicació avançada d’estil a formularis </a></li> + <li><a href="/en-US/docs/Learn/Forms/UI_pseudo-classes">Pseudoclasses d’interfície d’usuari (UI)</a></li> + <li><a href="/en-US/docs/Learn/Forms/Form_validation">Validació del formulari de la banda del client</a></li> + <li><a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari</a></li> +</ul> + +<h3 id="Temes_avançats">Temes avançats</h3> + +<ul> + <li><a href="/en-US/docs/Learn/HTML/Forms/How_to_build_custom_form_widgets">Com crear controls de formulari adaptats a client</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript">Enviar formularis amb JavaScript</a></li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Property_compatibility_table_for_form_widgets">Taula de compatibilitat de controls de formulari de codi propietari</a></li> +</ul> diff --git a/files/ca/learn/html/forms/el_teu_primer_formulari/index.html b/files/ca/learn/html/forms/el_teu_primer_formulari/index.html new file mode 100644 index 0000000000..3f327d4494 --- /dev/null +++ b/files/ca/learn/html/forms/el_teu_primer_formulari/index.html @@ -0,0 +1,298 @@ +--- +title: El teu primer formulari +slug: Learn/HTML/Forms/El_teu_primer_formulari +translation_of: Learn/Forms/Your_first_form +--- +<div>{{LearnSidebar}}{{NextMenu("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms")}}</div> + +<p class="summary">Aquest articles t'ofereix la primera experiència de creació d’un formulari web, que inclou dissenyar d’un formulari senzill amb els controls de formulari HTML adequats i altres elements HTML, afegir una mica d’estil molt senzill amb CSS i enviar les dades a un servidor. A mesura que avancem en el mòdul, ampliarem aquesta informació.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica i <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">fonaments bàsics d’HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Familiaritzar-se amb els formularis web, per a què serveixen, com dissenyar-los, i quins elements bàsics HTML necessitaràs per a casos senzills.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_són_els_formularis_web">Què són els formularis web?</h2> + +<p>Els <strong>formularis web</strong> són un dels principals punts d’interacció entre un usuari i un lloc web o aplicació. Els formularis permeten als usuaris introduir dades, que en general s’envien a un servidor web per a processar-les i emmagatzemar-les (consulta l’article <a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari web</a> més endavant d’aquest mòdul) o permeten al client actualitzar a l’instant la interfície d’alguna manera (per exemple, afegir un altre element de llista, o mostrar o amagar una funció d'interfície d'usuari).</p> + +<p>L’HTML d’un <strong>formulari web</strong> està format per un o més <strong>controls de formulari</strong> (de vegades anomenats <strong>ginys</strong> o, en anglès, <em>widgets</em>), a més d’alguns elements addicionals que ajuden a estructurar el formulari general, que sovint s’anomenen <strong>formularis HTML</strong>. Els controls poden ser camps de text d'una sola línia o de diverses línies, caixes desplegables, botons, caselles de selecció o botons d'opció, i es creen majoritàriament amb l'element {{htmlelement("input")}}, tot i que hi ha altres elements que també has de conèixer.</p> + +<p>Els controls de formulari també es poden programar per a forçar la introducció de formats o valors específics (<strong>validació del formulari</strong>) i es poden combinar amb etiquetes de text que en descriuen el propòsit tant als usuaris estàndard com als que tenen discapacitats visuals.</p> + +<h2 id="Disseny_del_formulari">Disseny del formulari</h2> + +<p>Abans de començar a codificar, sempre és millor fer un pas enrere i prendre't el temps necessari per pensar en el teu formulari. Dissenyar una maqueta ràpida t'ajudarà a definir el conjunt adequat de dades que vols que l'usuari introdueixi. Des del punt de vista de l'experiència d’usuari (UX), és important recordar que, com més gran sigui el teu formulari, més risc hi ha de frustrar les persones i perdre usuaris. Fes que sigui senzill i concís: demana només les dades que necessites.</p> + +<p>El disseny de formularis és un pas important a l’hora de crear un lloc web o una aplicació. Aquest article no tracta de l’experiència d’usuari amb els formularis, però si vos aprofundir aquest tema, pots llegir els articles següents:</p> + +<ul> + <li>Smashing Magazine conté <a href="https://www.smashingmagazine.com/2018/08/ux-html5-mobile-form-part-1/" rel="external" title="http://uxdesign.smashingmagazine.com/tag/forms/">articles molt bons sobre formularis UX</a>, que inclouen un article antic però encara rellevant anomenat <a href="https://www.smashingmagazine.com/2011/11/extensive-guide-web-form-usability/" rel="external" title="http://uxdesign.smashingmagazine.com/2011/11/08/extensive-guide-web-form-usability/">Extensive Guide To Web Form Usability</a>.</li> + <li>UXMatters també és un recurs que dona consells molt bons de <a href="http://www.uxmatters.com/mt/archives/2012/05/7-basic-best-practices-for-buttons.php" rel="external" title="http://www.uxmatters.com/mt/archives/2012/05/7-basic-best-practices-for-buttons.php">bones pràctiques bàsiques</a> per a problemes complexos, com ara <a href="http://www.uxmatters.com/mt/archives/2010/03/pagination-in-web-forms-evaluating-the-effectiveness-of-web-forms.php" title="http://www.uxmatters.com/mt/archives/2010/03/pagination-in-web-forms-evaluating-the-effectiveness-of-web-forms.php">formularis que ocupen més d’una pàgina</a>.</li> +</ul> + +<p>En aquest article crearem un formulari de contacte senzill. Fem-ne un esbós.</p> + +<p><img alt="Una manera aproximada de fer un esbós de formulari" src="/files/4579/form-sketch-low.jpg" style="border-style: solid; border-width: 1px; display: block; height: 352px; margin: 0px auto; width: 400px;"></p> + +<p>El nostre formulari inclourà tres camps de text i un botó. Demanem a l’usuari el nom, el correu electrònic i el missatge que vol enviar. En prémer el botó, les dades s’enviaran a un servidor web.</p> + +<h2 id="Aprenentatge_actiu_Creació_del_nostre_formulari_HTML">Aprenentatge actiu: Creació del nostre formulari HTML</h2> + +<p>D’acord, en primer lloc creem l’HTML per al nostre formulari. Utilitzarem els elements HTML següents: {{HTMLelement("form")}}, {{HTMLelement("label")}}, {{HTMLelement("input")}}, {{HTMLelement("textarea")}} i {{HTMLelement("button")}}.</p> + +<p>Abans d’avançar, fes una còpia local de la nostra <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">plantilla HTML senzilla</a> i hi introduiràs el formulari HTML.</p> + +<h3 id="L’element_HTMLelementform">L’element {{HTMLelement("form")}}</h3> + +<p>Tots els formularis comencen amb un element {{HTMLelement("form")}}, com ara:</p> + +<pre class="brush:html; notranslate"><form action="/my-handling-form-page" method="post"> + +</form></pre> + +<p>Aquest element defineix formalment un formulari. És un element contenidor, com un element {{HTMLelement ("section")}} o {{HTMLelement ("footer")}}, però que conté específicament formularis; també admet alguns atributs específics per a configurar el comportament del formulari. Tots els atributs són opcionals, però és una pràctica habitual establir sempre com a mínim els atributs <a href="/en-US/docs/Web/HTML/Attributes/action"><code>action</code></a> i <a href="/en-US/docs/Web/HTML/Attributes/method"><code>method</code></a>:</p> + +<ul> + <li>L’atribut <code>action</code> defineix la ubicació (URL) on s’han d’enviar les dades recollides pel formulari quan es validen.</li> + <li>L'atribut <code>method</code> defineix amb quin mètode HTTP s’envien les dades (normalment <code>get</code> o <code>post</code>).</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Observa com funcionen aquests atributs en el nostre article <a href="/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data" title="/en-US/docs/HTML/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari web</a>, que trobaràs més endavant.</p> +</div> + +<p>Per ara, afegeix l'element {{htmlelement("form")}} anterior al teu element HTML {{htmlelement("body")}}.</p> + +<h3 id="Els_elements_HTMLelementlabel_HTMLelementinput_i_HTMLelementtextarea">Els elements {{HTMLelement("label")}}, {{HTMLelement("input")}} i {{HTMLelement("textarea")}}</h3> + +<p>El nostre formulari de contacte no és complex: la part de l’entrada de les dades conté tres camps de text, cadascun amb el seu element {{HTMLelement("label")}} corresponent:</p> + +<ul> + <li>El camp d'entrada del nom és un {{HTMLelement("input/text", "camp de text d'una sola línia")}}.</li> + <li>El camp d'entrada del correu electrònic és una {{HTMLelement ("input/email", "entrada del tipus correu electrònic")}}: un camp de text d'una sola línia que accepta només adreces de correu electrònic.</li> + <li>El camp d'entrada del missatge és un {{HTMLelement("textarea", "àrea de text")}}; un camp de text de múltiples línies.</li> +</ul> + +<p>En termes de codi HTML, necessitem alguna cosa com la següent per a implementar aquests controls de formulari:</p> + +<pre class="brush:html; notranslate" dir="rtl"><form action="/my-handling-form-page" method="post"> + <ul> + <li> + <label for="name">Nom:</label> + <input type="text" id="name" name="user_name"> + </li> + <li> + <label for="mail">Correu electrònic:</label> + input type="email" id="mail" name="user_mail"> + </li> + <li> + <label for="msg">Missatge:</label> + <textarea id="msg" name="user_message"></textarea> + </li> + </ul> +</form></pre> + +<p>Actualitza el codi del teu formulari perquè s'assembli a l’anterior.</p> + +<p>Els elements {{HTMLelement("li")}} hi són per estructurar convenientment el nostre codi i facilitar el disseny (ho veuràs més endavant en aquest article). Incloem una etiqueta explícita per a cada control de formulari per motius d'usabilitat i accessibilitat. Tingues en compte l’ús de l’atribut <a href="/en-US/docs/Web/HTML/Attributes/for"><code>for</code></a> per a tots els elements {{HTMLelement ("label")}}, que pren com a valor l'identificador del control de formulari <a href="/en-US/docs/Web/HTML/Attributes/id"><code>id</code></a> al qual està associat; així és com un formulari s'associa a la seva etiqueta.</p> + +<p>Fer-ho resulta molt útil: associa l’etiqueta amb el control del formulari i permet als usuaris de ratolí, trackpad i dispositius tàctils fer clic a l’etiqueta i activar el control corresponent, i també proporciona un nom accessible per als usuaris de lectors de pantalla. Trobaràs més informació sobre les etiquetes dels formularis en l’article <a href="/ca/docs/Learn/HTML/Forms/Com_estructurar_un_formulari_web">Com estructurar un formulari web</a>.</p> + +<p>En l’element {{HTMLelement("input")}}, l’atribut més important és <code>type</code>. Aquest atribut és molt important perquè defineix la manera com apareix l’element {{HTMLelement("input")}}, i com es comporta. Trobaràs més informació més endavant, en l’article <a href="/ca/docs/Learn/HTML/Forms/Controls_de_formulari_originals">Els controls de formulari bàsics originals</a>.</p> + +<ul> + <li>En el nostre exemple senzill, utilitzem el valor {{HTMLelement ("input/text")}} per a la primera entrada: el valor per defecte d'aquest atribut. Representa un camp bàsic de text d’una sola línia que accepta qualsevol tipus d’entrada de text.</li> + <li>Per a la segona entrada, utilitzem el valor {{HTMLelement ("input/email")}}, que defineix un camp de text d'una sola línia que només accepta una adreça de correu electrònic ben formada. Això converteix un camp de text bàsic en una mena de camp «intel·ligent» que fa algunes comprovacions de validació de les dades que l'usuari introdueix per teclat. També crea un disseny de teclat més adequat per a introduir adreces de correu electrònic (per exemple, amb un símbol @ per defecte) en dispositius amb teclats dinàmics, com els telèfons intel·ligents. Trobaràs més informació sobre la validació de formularis més endavant en l'article <a href="/en-US/docs/Learn/Forms/Form_validation">Validació de formularis en la banda del client</a>.</li> +</ul> + +<p>Per últim, però no per això menys important, cal destacar la sintaxi de <code><input></code> en contraposició a <code><textarea></textarea></code>. Aquesta és una de les curiositats de l’HTML. L’etiqueta <code><input></code> és un element buit, que significa que no necessita una etiqueta de tancament. En canvi, {{HTMLElement("textarea")}} no és un element buit, és a dir, s'hauria de tancar amb l'etiqueta final adequada. Això té una conseqüència en una característica específica dels formularis: la manera de definir el valor per defecte. Per a definir el valor predeterminat d'un element {{HTMLElement("input")}} has d'utilitzar l'atribut <a href="/en-US/docs/Web/HTML/Attributes/value"><code>value</code></a> de la manera següent:</p> + +<pre class="brush:html; notranslate"><input type="text" value="per defecte aquest element s'omple amb aquest text"></pre> + +<p>D'altra banda, si vols definir un valor predeterminat per a un {{HTMLElement("textarea")}}, l'has de posar entre les etiquetes d'obertura i tancament de l'element {{HTMLElement("textarea")}}, com en el cas següent:</p> + +<pre class="brush:html; notranslate"><textarea> +per defecte aquest element s'omple amb aquest text +</textarea></pre> + +<h3 id="L’element_HTMLelementbutton">L’element {{HTMLelement("button")}}</h3> + +<p>L'etiquetatge del nostre formulari és gairebé complet; només haurem d’afegir un botó que permeti a l’usuari enviar les dades un cop emplenat el formulari. Això es fa amb l’element {{HTMLelement("button")}}; afegeix el següent just a sobre de l’etiqueta de tancament <code></form></code>:</p> + +<pre class="brush:html; notranslate"><li class="button"> + <button type="submit">Envia el teu missatge</button> +</li></pre> + +<p>L’element {{htmlelement("button")}} també accepta un atribut <code>type</code>, que a la vegada accepta un d'aquests tres valors: <code>submit</code>, <code>reset</code> o <code>button</code>.</p> + +<ul> + <li>Un clic sobre el botó <code>submit</code> (el valor predeterminat) envia les dades del formulari a la pàgina web definida en l'atribut <code>action</code> de l'element {{HTMLelement("form")}}.</li> + <li>Un clic en un botó <code>reset</code> restableix immediatament tots els controls del formulari als valors predeterminats. Des d’un punt de vista de l'experiència d'usuari, es considera una mala pràctica, per la qual cosa has d’evitar fer servir aquest tipus de botons, tret que tinguis un bon motiu per a incloure’ls.</li> + <li>Un clic sobre un botó <code>button</code>, no fa res! Això sembla una ximpleria, però és molt útil per a crear botons personalitzats; pots definir-ne la funció amb JavaScript.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: També pots utilitzar l’element {{HTMLElement("input")}} amb el <code>type</code> corresponent i crear un botó, per exemple <code><input type="submit"></code>. L’avantatge principal de l’element {{HTMLelement("button")}} és que l’element {{HTMLelement("input")}} només admet text, mentre que l’element {{HTMLelement("button")}} admet contingut HTML complet i permet dissenyar botons més complexos i creatius.</p> +</div> + +<h2 id="Nocions_bàsiques_d’aplicació_d’estil_a_formularis">Nocions bàsiques d’aplicació d’estil a formularis</h2> + +<p>Ara que has acabat d'escriure el codi HTML del teu formulari, desa’l i obre’l en un navegador. Observa que, de moment, presenta un aspecte més aviat lleig.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si creus que el teu codi HTML no és correcte, compara’l amb el nostre exemple acabat: consulta el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/your-first-HTML-form/first-form.html">first-form.html</a> (també pots consultar l’<a href="https://mdn.github.io/learning-area/html/forms/your-first-HTML-form/first-form.html">exemple en viu</a>).</p> +</div> + +<p>Aplicar estil a un formulari perquè quedi bé no és gens fàcil. En aquest article no t’ensenyarem a aplicar-hi estil de manera detallada; de moment, només afegirem una mica de CSS perquè sigui presentable.</p> + +<p>Abans de res, afegeix un element {{htmlelement("style")}} a la teva pàgina, en la capçalera de l’HTML. Hi hauria d’haver una cosa com aquesta:</p> + +<pre class="brush: html notranslate"><style> + +</style></pre> + +<p>Afegeix a l'etiqueta <code>style</code> el CSS següent:</p> + +<pre class="brush:css; notranslate">form { + /* Centra el formulari a la pàgina */ + margin: 0 auto; + width: 400px; + /* Esquema de formulari */ + padding: 1em; + border: 1px solid #CCC; + border-radius: 1em; +} + +ul { + list-style: none; + padding: 0; + margin: 0; +} + +form li + li { + margin-top: 1em; +} + +label { + /* Mida i alineació uniforme */ + display: inline-block; + width: 90px; + text-align: right; +} + +input, +textarea { + / * Per garantir que tots els camps de text tenen la mateixa configuració de tipus de lletra + de manera predeterminada, les àrees de text tenen un tipus de lletra monospai */ + font: 1em sans-serif; + + /* Mida uniforme del camp de text */ + width: 300px; + box-sizing: border-box; + + /* Vores del camp de formulari */ + border: 1px solid #999; +} + +input:focus, +textarea:focus { + /* Destacat addicional per a elements enfocats */ + border-color: #000; +} + +textarea { + /* Alinea els camps de text multilínies amb les seves etiquetes */ + vertical-align: top; + + /* Proporciona espai per a escriure algun text */ + height: 5em; +} + +.button { + /* Alinea els botons amb els camps de text */ + padding-left: 90px; /* la mateixa mida que els elements d'etiqueta */ +} + +button { + /* Aquest marge addicional representa aproximadament el mateix espai que l’espai + entre les etiquetes i els seus camps de text */ + margin-left: .5em; +}</pre> + +<p>Desa’l i torna’l a carregar i observa que el teu formulari no s’hauria de veure tan lleig com abans.</p> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar la nostra versió a GitHub, en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/your-first-HTML-form/first-form-styled.html">first-form-styled.html</a> (o consultar l’<a href="https://mdn.github.io/learning-area/html/forms/your-first-HTML-form/first-form-styled.html">exemple en viu</a>).</p> +</div> + +<h2 id="Enviar_les_dades_del_formulari_al_servidor_web">Enviar les dades del formulari al servidor web</h2> + +<p>L’última part, i potser la més complicada, és tractar les dades del formulari del costat del servidor. L’element {{HTMLelement("form")}} defineix on i com enviar les dades amb els atributs <a href="/en-US/docs/Web/HTML/Attributes/action"><code>action</code></a> i <a href="/en-US/docs/Web/HTML/Attributes/method"><code>method</code></a>.</p> + +<p>Proporcionem un nom (<a href="/en-US/docs/Web/HTML/Attributes/name"><code>name</code></a>) a cada control de formulari. Els noms són importants tant del costat del client com del costat del servidor; informen el navegador sobre quin nom ha de donar a cadascuna de les dades i, del costat del servidor, permeten tractar cada dada pel nom. Les dades del formulari s’envien al servidor com a parells de nom/valor.</p> + +<p>Per posar el nom a les dades d'un formulari, has d'utilitzar l'atribut <code>name</code> en cada control de formulari que recopilarà una informació específica. Vegem de nou una mica de codi del nostre formulari:</p> + +<pre class="brush:html; notranslate"><form action="/my-handling-form-page" method="post"> + <ul> + <li> + <label for="name">Nom:</label> + <input type="text" id="name" name="user_name" /> + </li> + <li> + <label for="mail">Correu electrònic:</label> + <input type="email" id="mail" name="user_email" /> + </li> + <li> + <label for="msg">Missatge:</label> + <textarea id="msg" name="user_message"></textarea> + </li> + + ... +</pre> + +<p>En el nostre exemple, el formulari enviarà 3 blocs de dades anomenats «<code>user_name</code>», «<code>user_email</code>» i «<code>user_message</code>». Aquestes dades s’enviaran a l’URL «<code>/my-handling-form-page</code>» pel mètode <a href="/en-US/docs/Web/HTTP/Methods/POST"><code>post</code> de HTTP </a>.</p> + +<p>De la banda del servidor, l'script a l'URL «<code>/my-handling-form-page</code>» rebrà les dades com una llista de 3 elements clau/valor continguts en la sol·licitud HTTP. La manera de gestionar aquest script depèn de les dades. Cada llenguatge de servidor (PHP, Python, Ruby, Java, C#, etc.) té el seu mecanisme propi per al tractament de les dades de formulari. Està fora de l’àmbit d’aquest article aprofundir en aquest tema, però si vols saber-ne més, et proporcionem alguns exemples en el nostre article <a href="/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data" title="/en-US/docs/HTML/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari web</a> que trobaràs més endavant.</p> + +<h2 id="Resum">Resum</h2> + +<p>Enhorabona!, has creat el teu primer formulari web. Hauria de presentar un aspecte semblant a aquest:</p> + +<p>{{ EmbedLiveSample('A_simple_form', '100%', '240', '', '/en-US/Learn/Forms/Your_first_form/Example') }}</p> + +<p>Això només és el començament; ara toca aprofundir. Els formularis tenen molt més poder que el que hem vist aquí i la resta d'articles d'aquest mòdul t'ajudaran a dominar-los.</p> + +<p>{{NextMenu("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms")}}</p> + +<h2 id="En_aquest_mòdul">En aquest mòdul</h2> + +<ul> + <li><a href="/en-US/docs/Learn/Forms/Your_first_form">El teu primer formulari</a></li> + <li><a href="/en-US/docs/Learn/Forms/How_to_structure_a_web_form">Com estructurar un formulari web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Basic_native_form_controls">Els controls de formulari bàsics originals</a></li> + <li><a href="/en-US/docs/Learn/Forms/HTML5_input_types">Els tipus d'entrada HTML5</a></li> + <li><a href="/en-US/docs/Learn/Forms/Other_form_controls">Altres controls de formulari</a></li> + <li><a href="/en-US/docs/Learn/Forms/Styling_web_forms">Aplicació d'estil a formularis web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Advanced_form_styling">Aplicació d'estil a formularis avançada</a></li> + <li><a href="/en-US/docs/Learn/Forms/UI_pseudo-classes">Les pseudoclasses UI</a></li> + <li><a href="/en-US/docs/Learn/Forms/Form_validation">Validació de formulari del costat del client</a></li> + <li><a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari web</a></li> +</ul> + +<h3 id="Temes_avançats">Temes avançats</h3> + +<ul> + <li><a href="/en-US/docs/Learn/Forms/How_to_build_custom_form_controls">Com crear controls de formulari personalitzats</a></li> + <li><a href="/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript">Enviar formularis amb JavaScript</a></li> + <li><a href="/en-US/docs/Learn/Forms/Property_compatibility_table_for_form_widgets">Taula de compatibilitat dels controls de formulari de codi propietari</a></li> +</ul> diff --git a/files/ca/learn/html/forms/index.html b/files/ca/learn/html/forms/index.html new file mode 100644 index 0000000000..bfd01dcf91 --- /dev/null +++ b/files/ca/learn/html/forms/index.html @@ -0,0 +1,356 @@ +--- +title: HTML forms guide +slug: Learn/HTML/Forms +tags: + - Featured + - Formularis + - Guía + - HTML + - Web +translation_of: Learn/Forms +--- +<p>Aquesta guia és una sèrie d'articles que l'ajudaran a dominar els formularis HTML. Els formularis HTML són una eina molt potent per interactuar amb els usuaris; No obstant això, per raons històriques i tècniques, no sempre és obvi com usar-los al seu màxim potencial. En aquesta guia, anem a cobrir tots els aspectes dels formularis HTML, des de donar estil a l'estructura, des de la manipulació de dades amb components personalitzats. Aprendràs a gaudir de la gran potència que ofereixen!</p> + +<h2 id="Articles">Articles</h2> + +<ol> + <li><a href="https://developer.mozilla.org/en-US/docs/HTML/Forms/My_first_HTML_form">El meu primer formulari HTML</a></li> + <li><a href="/en-US/docs/HTML/Forms/How_to_structure_an_HTML_form" title="/en-US/docs/HTML/Forms/How_to_structure_an_HTML_form"><span>Com estructurar un formulari HTML</span></a></li> + <li><a href="/en-US/docs/HTML/Forms/The_native_form_widgets" title="/en-US/docs/HTML/Forms/The_native_form_widgets"><span>Formularis widgets nadius</span></a></li> + <li>CSS amb formularis HTML + <ol> + <li><a href="/en-US/docs/HTML/Forms/Styling_HTML_forms" title="/en-US/docs/HTML/Forms/Styling_HTML_forms"><span>Estil en formularis HTML</span></a></li> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms/Advanced_styling_for_HTML_forms" title="/en-US/docs/Advanced_styling_for_HTML_forms">Estils avançats en formularis HTML</a></li> + <li><a href="/en-US/docs/Property_compatibility_table_for_form_widgets" title="/en-US/docs/Property_compatibility_table_for_form_widgets">Taula de propietats compatibles per formularis widgets</a></li> + </ol> + </li> + <li><a href="/en-US/docs/HTML/Forms/Sending_and_retrieving_form_data" title="/en-US/docs/HTML/Forms/Sending_and_retrieving_form_data"><span>Enviar <s>y recuperar</s> dades del formulari</span></a></li> + <li><a href="/en-US/docs/HTML/Forms/Data_form_validation" title="/en-US/docs/HTML/Forms/Data_form_validation">Validació de dades del formulari</a></li> + <li><a href="/en-US/docs/HTML/Forms/How_to_build_custom_form_widgets" title="/en-US/docs/HTML/Forms/How_to_build_custom_form_widgets">Contruir formularis <span>widgets personalitzats</span></a></li> + <li><a href="/en-US/docs/HTML/Forms/Sending_forms_through_JavaScript" title="/en-US/docs/HTML/Forms/Sending_forms_through_JavaScript">Enviament de formularis amb JavaScript</a> + <ol> + <li><a href="/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects" title="/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects">Utilitzant l'objecte FormData</a></li> + </ol> + </li> + <li><a href="/en-US/docs/HTML/Forms/HTML_forms_in_legacy_browsers" title="/en-US/docs/HTML/Forms/HTML_forms_in_legacy_browsers">Formularis HTML en navegadors antics</a></li> +</ol> + +<h2 id="Documentació_HTML">Documentació HTML</h2> + +<h3 id="Elements_HTML">Elements HTML</h3> + +<table> + <thead> + <tr> + <th scope="col">Element</th> + <th scope="col"><span class="short_text" id="result_box" lang="ca"><span>Interfície</span> <span>DOM</span> <span>relacionat</span></span></th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td style="vertical-align: top;">{{HTMLElement("button")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLButtonElement")}}</td> + <td style="vertical-align: top;"><span class="short_text" id="result_box" lang="ca"><span>L'element</span> <code><span>button</span></code> <span>representa</span> <span>un botó que</span> <span>es premi</span><span>.</span></span></td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("datalist")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLDataListElement")}}</td> + <td style="vertical-align: top;">L'element <span style="font-family: courier new;">datalist</span> conté un conjunt d'elements {{ HTMLElement("option") }} que representen les opcions possibles per al valor d'altres elements de formulari.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("fieldset")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLFieldSetElement")}}</td> + <td style="vertical-align: top;">El <span style="font-family: courier new;">fieldset</span> s'utilitza per agrupar diversos elements formulari dins d'un formulari.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("form")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLFormElement")}}</td> + <td style="vertical-align: top;">L'element <code>form</code> representa una secció del document que conté l'element interactiu que permet a un usuari enviar informació a un servidor web.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("input")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLInputElement")}}</td> + <td style="vertical-align: top;">L'element <code>input</code> s'utilitza per crear controls interactius per als formularis.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("keygen")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLKeygenElement")}}</td> + <td style="vertical-align: top;">L'element <code>keygen</code> existeix per facilitar la generació de material clau, i l'enviament de la clau pública com a part d'un formulari HTML</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("label")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLLabelElement")}}</td> + <td style="vertical-align: top;">L'element <code>label</code> representa un títol d'un article en una interfície d'usuari</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("legend")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLLegendElement")}}</td> + <td style="vertical-align: top;">L'element <code>legend </code>representa una llegenda per al contingut del seu pare {{ HTMLElement("fieldset") }}.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("meter")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLMeterElement")}}</td> + <td style="vertical-align: top;">L'element <code>metre</code> representa o bé un valor escalar dins d'un rang conegut o un valor fraccionari.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("optgroup")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLOptGroupElement")}}</td> + <td style="vertical-align: top;">l'element <code>optgroup</code> crea un grup d'opcions dins d'un element {{ HTMLElement("select") }} element.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("option")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLOptionElement")}}</td> + <td style="vertical-align: top;">l'element HTML <code>option</code> s'utilitza per crear un control que representa un element dins d'un element {{ HTMLElement("select") }}, o un {{ HTMLElement("optgroup") }} o un {{ HTMLElement("datalist") }}.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("output")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLOutputElement")}}</td> + <td style="vertical-align: top;">L'element <code>output </code>representa el resultat d'un càlcul.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("progress")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLProgressElement")}}</td> + <td style="vertical-align: top;">L'element <code>progress </code>s'utilitza per veure el progrés de la finalització d'una tasca.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("select")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLSelectElement")}}</td> + <td style="vertical-align: top;">L'element <code>select</code> representa un control que presenta un menú d'opcions.</td> + </tr> + <tr> + <td style="vertical-align: top;">{{HTMLElement("textarea")}}</td> + <td style="vertical-align: top;">{{domxref("HTMLTextAreaElement")}}</td> + <td style="vertical-align: top;">L'element <code>textarea</code> representa un control d'edició de text pla multilínia.</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota:</strong> Tots els elements formulari, com tots els elements d'HTML, suportan la interfície DOM {{domxref("HTMLElement")}}.</p> +</div> + +<h3 id="Atributs_HTML">Atributs HTML</h3> + +<table class="standard-table"> + <thead> + <tr> + <th>Nom Atribut</th> + <th>Elements</th> + <th>Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td>accept</td> + <td>{{ HTMLElement("form") }}, {{ HTMLElement("input") }}</td> + <td>Llista de tipus que accepta el servidor, normalment un tipus de fitxer.</td> + </tr> + <tr> + <td style="white-space: nowrap;">accept-charset</td> + <td>{{ HTMLElement("form") }}</td> + <td>Llista de jocs de caràcters suportats.</td> + </tr> + <tr> + <td>action</td> + <td>{{ HTMLElement("form") }}</td> + <td>L'URI d'un programa que processa la informació presentada a través del formulari.</td> + </tr> + <tr> + <td>autocomplete</td> + <td>{{ HTMLElement("form") }}, {{ HTMLElement("input") }}</td> + <td>Indica si els controls d'aquest formulari poden tenir per defecte els seus valors emplenats automàticament pel navegador.</td> + </tr> + <tr> + <td>autofocus</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}</td> + <td>L'element ha de tenir el focus automàticament després de carregar la pàgina.</td> + </tr> + </tbody> + <tbody> + <tr> + <td>challenge</td> + <td>{{ HTMLElement("keygen") }}</td> + <td>Una cadena proposada que es presenta juntament amb la clau pública.</td> + </tr> + <tr> + <td>checked</td> + <td>{{ HTMLElement("input") }}</td> + <td>Indica si l'element s'ha de comprovar en carregar la pàgina.</td> + </tr> + <tr> + <td>cols</td> + <td>{{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>el nombre</span> <span>de columnes</span> <span>en una àrea</span> <span>de text.</span></span></td> + </tr> + <tr> + <td>data</td> + <td>{{ HTMLElement("object") }}</td> + <td><span id="result_box" lang="ca"><span>Especifica</span> <span>l'adreça URL</span> <span>del recurs.</span></span></td> + </tr> + <tr> + <td>dirname</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}</td> + <td> </td> + </tr> + <tr> + <td>disabled</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("optgroup") }}, {{ HTMLElement("option") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Indica</span> <span>si l'usuari</span> <span>pot interactuar</span> <span>amb l'element</span><span>.</span></span></td> + </tr> + <tr> + <td>enctype</td> + <td>{{ HTMLElement("form") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>el tipus</span> <span>de contingut</span> <span>de les dades del</span> <span>formulari</span> <span>quan</span> <span>el mètode és</span> <span>POST</span><span>.</span></span></td> + </tr> + <tr> + <td>for</td> + <td>{{ HTMLElement("label") }}, {{ HTMLElement("output") }}</td> + <td><span id="result_box" lang="ca"><span>Descriu</span> <span>els</span> <span>elements que</span> <span>pertanyen</span> <span>a aquest.</span></span></td> + </tr> + <tr> + <td>form</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("label") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("object") }}, {{ HTMLElement("output") }}, {{ HTMLElement("progress") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}</td> + <td>Indica el formulari que és el propietari de l'element.</td> + </tr> + </tbody> + <tbody> + <tr> + <td>high</td> + <td>{{ HTMLElement("meter") }}</td> + <td>Indica el límit inferior del rang superior.</td> + </tr> + <tr> + <td>keytype</td> + <td>{{ HTMLElement("keygen") }}</td> + <td>Especifica el tipus de clau generada.</td> + </tr> + <tr> + <td>list</td> + <td>{{ HTMLElement("input") }}</td> + <td>Identifica una llista d'opcions predefinides per suggerir a l'usuari.</td> + </tr> + <tr> + <td>low</td> + <td>{{ HTMLElement("meter") }}</td> + <td>Indica el límit superior del rang inferior.</td> + </tr> + <tr> + <td>max</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("progress") }}</td> + <td>Indica el valor màxim permès.</td> + </tr> + <tr> + <td>maxlength</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>el nombre</span> <span>màxim</span> <span>de caràcters</span> <span>permesos en</span> <span>l'element</span><span>.</span></span></td> + </tr> + <tr> + <td>method</td> + <td>{{ HTMLElement("form") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>quin mètode</span> <span>HTTP</span> <span>a utilitzar al</span> <span>enviar el formulari.</span> <span>Pot ser</span> <span>GET</span> <span>(</span><span>per defecte</span><span>)</span> <span>o</span> <span>POST</span><span>.</span></span></td> + </tr> + <tr> + <td>min</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("meter") }}</td> + <td><span id="result_box" lang="ca"><span>Indica</span> <span>el valor mínim</span> <span>permès.</span></span></td> + </tr> + <tr> + <td>multiple</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("select") }}</td> + <td>Indica si diversos valors es poden introduir en una entrada del <code>correu electrònic</code> o tipus <code>arxiu</code>.</td> + </tr> + <tr> + <td>name</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("form") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("output") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}</td> + <td>Nom de l'element. Per exemple el usat en el servidor per identificar els camps de formulari enviat.</td> + </tr> + <tr> + <td>novalidate</td> + <td>{{ HTMLElement("form") }}</td> + <td>Aquest atribut indica que el formulari no ha de ser validat quan sigui enviat.</td> + </tr> + <tr> + <td>optimum</td> + <td>{{ HTMLElement("meter") }}</td> + <td>Indica el valor numèric òptim.</td> + </tr> + <tr> + <td>pattern</td> + <td>{{ HTMLElement("input") }}</td> + <td>Defineix una expressió regular que es validarà el valor de l'element en contra.</td> + </tr> + <tr> + <td>placeholder</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}</td> + <td>Proporciona un suggeriment a l'usuari de què es poden introduir en el camp.</td> + </tr> + <tr> + <td>readonly</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Indica si l'</span><span>element pot ser</span> <span>editat</span> <span>o</span> <span>no.</span></span></td> + </tr> + <tr> + <td>required</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("select") }}, {{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Indica</span> <span>si es</span> <span>requereix aquest</span> <span>element</span> <span>per omplir o</span> <span>no.</span></span></td> + </tr> + <tr> + <td>rows</td> + <td>{{ HTMLElement("textarea") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>el nombre</span> <span>de files</span> <span>en una àrea</span> <span>de text.</span></span></td> + </tr> + <tr> + <td>selected</td> + <td>{{ HTMLElement("option") }}</td> + <td><span id="result_box" lang="ca"><span>Defineix un</span> <span>valor que serà</span> <span>seleccionat</span> <span>en carregar la pàgina</span><span>.</span></span></td> + </tr> + <tr> + <td>size</td> + <td>{{ HTMLElement("input") }}, {{ HTMLElement("select") }}</td> + <td>Defineix l'amplada de l'element (en píxels). Si el atribut <code>type</code> de l'element és <code>text</code> o <code>contrasenya</code>, llavors és el nombre de caràcters.</td> + </tr> + <tr> + <td>src</td> + <td>{{ HTMLElement("img") }}</td> + <td>La URL del contingut integrable.</td> + </tr> + <tr> + <td>step</td> + <td>{{ HTMLElement("input") }}</td> + <td> </td> + </tr> + <tr> + <td>target</td> + <td>{{ HTMLElement("form") }}</td> + <td> </td> + </tr> + <tr> + <td>type</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("input") }}</td> + <td>Defineix el tipus d'element.</td> + </tr> + <tr> + <td>usemap</td> + <td>{{ HTMLElement("img") }}</td> + <td> </td> + </tr> + <tr> + <td>value</td> + <td>{{ HTMLElement("button") }}, {{ HTMLElement("option") }}, {{ HTMLElement("input") }}, {{ HTMLElement("meter") }}, {{ HTMLElement("progress") }}</td> + <td>Defineix un valor predeterminat que es mostrarà en l'element en la càrrega de la pàgina.</td> + </tr> + <tr> + <td>wrap</td> + <td>{{ HTMLElement("textarea") }}</td> + <td>Indica si el text ha de ser embolicat o no.</td> + </tr> + </tbody> +</table> + +<h3 id="Referència_normativa">Referència normativa</h3> + +<ul> + <li><a href="https://www.w3.org/TR/html51/sec-forms.html#sec-forms" lang="en" rel="external" title="https://www.w3.org/TR/html51/sec-forms.html#sec-forms">W3C HTML 5.1 Especificacions (Formularis)</a></li> + <li><a href="https://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#forms" rel="external" title="https://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#forms">WHATWG HTML Temps de vida dels (Formularis)</a></li> +</ul> diff --git a/files/ca/learn/html/forms/validacio_formularis/index.html b/files/ca/learn/html/forms/validacio_formularis/index.html new file mode 100644 index 0000000000..0b76183d7e --- /dev/null +++ b/files/ca/learn/html/forms/validacio_formularis/index.html @@ -0,0 +1,829 @@ +--- +title: Validació de formularis del costat del client +slug: Learn/HTML/Forms/Validacio_formularis +translation_of: Learn/Forms/Form_validation +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/Forms/UI_pseudo-classes", "Learn/Forms/Sending_and_retrieving_form_data", "Learn/HTML/Forms")}}</div> + +<p>Abans d’enviar dades al servidor és important assegurar-se que s’emplenen tots els controls de formulari necessaris en el format correcte. Es denomina <strong>validació de formularis del costat del client</strong>, i ajuda que les dades enviades coincideixin amb els requisits establerts en els diversos controls de formulari. Aquest article et permet conèixer els conceptes bàsics i veure exemples de validació de formularis del costat del client.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Coneixements bàsics d'informàtica i nocions d'<a href="/ca/docs/Learn/HTML">HTML</a>, <a href="/ca/docs/Learn/CSS">CSS</a> i <a href="/ca/docs/Learn/JavaScript">JavaScript</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Entendre què és la validació de formularis de costat del client, per què és important i conèixer-ne diverses tècniques d’implementació.</td> + </tr> + </tbody> +</table> + +<p>La validació del costat del client és una comprovació inicial i una característica important que garanteix una bona experiència d’usuari; si es detecten dades no vàlides del costat del client, l'usuari pot corregir-les immediatament. Si van al servidor i aquest les rebutja, es genera un retard perquè les dades s’envien de tornada a la banda del client perquè l'usuari les corregeixi.</p> + +<p>Tanmateix, la validació del costat del client <em>no s'ha de considerar</em> una mesura de seguretat exhaustiva. Les aplicacions sempre han de dur a terme comprovacions de seguretat de qualsevol informació que s’envia en un formulari <em>tant del costat del servidor</em> com <strong>també</strong> <em>del costat del client</em>, perquè la validació del client és molt fàcil de desactivar i qualsevol usuari maliciós pot enviar fàcilment dades incorrectes al teu servidor. Llegeix <a href="/en-US/docs/Learn/Server-side/First_steps/Website_security">La seguretat dels llocs web</a> per a fer-te una idea de què <em>podria</em> passar; implementar la validació del costat del servidor és fora de l’àmbit d’aquest mòdul, però l’has de tenir en compte.</p> + +<h2 id="Què_és_la_validació_de_formularis">Què és la validació de formularis?</h2> + +<p>Ves a qualsevol lloc web popular que tingui un formulari d’inscripció i observa que et fan comentaris quan no introdueixes les dades en el format que s’espera. Rebràs missatges com ara:</p> + +<ul> + <li>«Aquest camp és obligatori» (no es pot deixar en blanc).</li> + <li>«Si et plau, introdueix el número de telèfon en el format xxx-xxxx» (cal un format de dades específic que es consideri vàlid).</li> + <li>«Si et plau, introdueix una adreça de correu electrònic vàlida» (les dades que has introduït no tenen el format adequat).</li> + <li>«La contrasenya ha de tenir entre 8 i 30 caràcters i ha de contenir una lletra majúscula, un símbol i un número» (cal un format de dades molt específic).</li> +</ul> + +<p>Això es coneix com <strong>validació de formulari</strong>. Quan introdueixes dades, el navegador i/o el servidor web comproven que les dades estan en el format correcte i són dins de les restriccions que l’aplicació estableix. La validació que es fa en el navegador s’anomena <strong>validació del costat del client</strong>, mentre que la validació que es fa en el servidor s’anomena <strong>validació del costat del servidor</strong>. En aquest article ens centrem en la validació del costat del client.</p> + +<p>Si la informació està en el format correcte, l'aplicació permet que les dades que les dades s’enviïn al servidor i (normalment) es guarden en una base de dades; si la informació no té el format correcte, es proporciona a l'usuari un missatge d'error en què li explica què ha de corregir, i s'ha de tornar a provar.</p> + +<p>Volem fer que l’emplenament dels formularis web sigui tan fàcil com sigui possible. Aleshores, per què insistim que cal validar els nostres formularis? Hi ha tres raons principals:</p> + +<ul> + <li><strong>Volem recollir les dades correctes en el format adequat.</strong> Les aplicacions no funcionen correctament si les dades dels usuaris s’emmagatzemen en un format equivocat, si són incorrectes, o senzillament si no n’hi ha.</li> + <li><strong>Volem protegir les dades dels nostres usuaris</strong>. Obligar els usuaris a introduir contrasenyes segures facilita la protecció de la informació del seu compte.</li> + <li><strong>Volem protegir-nos</strong>. Un usuari maliciós té moltes maneres de fer un mal ús dels formularis que no disposen de protecció, i pot danyar l’aplicació (consulta <a href="/en-US/docs/Learn/Server-side/First_steps/Website_security">La seguretat dels llocs web</a>). + <div class="warning"><strong>Atenció:</strong> No et refiïs mai de les dades que passen del client al servidor. Fins i tot quan el teu formulari es valida correctament i s’evita l’entrada de dades en format incorrecte del costat del client, un usuari maliciós encara pot modificar la sol·licitud de xarxa.</div> + </li> +</ul> + +<h2 id="Els_diferents_tipus_de_validació_del_costat_del_client"><strong>Els diferents tipus de validació del costat del client</strong></h2> + +<p>Els llocs web poden presentar dos tipus diferents de validació del costat del client</p> + +<ul> + <li>La <strong>validació de formulari integrada</strong> utilitza les funcions de validació dels formularis HTML5, que ja hem comentat en altres articles d'aquest mòdul. En general, aquesta validació no requereix JavaScript. La validació de formulari integrada té un rendiment més bo que el JavaScript, però no és tan personalitzable com la validació amb JavaScript.</li> + <li>La <strong>validació amb JavaScript</strong> es codifica en llenguatge JavaScript. Aquesta validació és totalment personalitzable, però cal crear-la tota (o bé fer servir una biblioteca de fitxers).</li> +</ul> + +<h2 id="Ús_de_la_validació_de_formulari_integrada">Ús de la validació de formulari integrada</h2> + +<p>Una de les característiques més significatives dels <a href="/en-US/docs/Learn/Forms/HTML5_input_types">controls de formulari HTML5</a> és la capacitat de validar la majoria de les dades de l'usuari sense dependre de JavaScript. Això es fa gràcies als atributs de validació dels elements del formulari. Ja n'hem vist uns quants, però en fem una recapitulació:</p> + +<ul> + <li><code><a href="/en-US/docs/Web/HTML/Attributes/required">required</a></code>: Especifica si cal emplenar un camp de formulari abans de poder enviar el formulari.</li> + <li><code><a href="/en-US/docs/Web/HTML/Attributes/minlength">minlength</a></code> i <code><a href="/en-US/docs/Web/HTML/Attributes/maxlength">maxlength</a></code>: Especifica la longitud mínima i màxima de les dades textuals (cadenes)</li> + <li><code><a href="/en-US/docs/Web/HTML/Attributes/min">min</a></code> i <code><a href="/en-US/docs/Web/HTML/Attributes/max">max</a></code>: Especifica els valors mínims i màxims dels tipus d'entrada numèrics.</li> + <li><code>type</code>: Especifica si les dades han de ser un número, una adreça de correu electrònic o algun altre tipus específic preestablert.</li> + <li><code><a href="/en-US/docs/Web/HTML/Attributes/pattern">pattern</a></code>: Especifica una <a href="/ca/docs/Web/JavaScript/Guide/Regular_Expressions">expressió regular</a> que defineix un patró que han de seguir les dades introduïdes.</li> +</ul> + +<p>Si les dades que s’introdueixen en un camp de formulari segueixen les regles especificades pels atributs anteriors, es consideren vàlides. Si no és així, es consideren no vàlides.</p> + +<p>Quan un element és vàlid, es compleixen els aspectes següents:</p> + +<ul> + <li>L’element coincideix amb la pseudoclasse {{cssxref(":valid")}} de CSS, que et permet aplicar un estil específic als elements vàlids.</li> + <li>Quan l’usuari valida les dades, el navegador envia el formulari, sempre que no hi hagi res més que ho impedeixi (per exemple, JavaScript).</li> +</ul> + +<p>Quan un element no és vàlid, es verifica el següent:</p> + +<ul> + <li>L'element coincideix amb la pseudoclasse {{cssxref(":invalid")}} de CSS, i de vegades amb altres pseudoclasses de la interfície d'usuari (per exemple, {{cssxref(":out-of-range")}}), segons el tipus d'error, i això et permet aplicar un estil específic als elements no vàlids.</li> + <li>Quan l’usuari valida les dades, el navegador bloca l’enviament del formulari i mostra un missatge d’error.</li> +</ul> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Els diversos errors que impedeixen enviar el formulari inclouen {{domxref('validityState.badInput', 'badInput')}}, {{domxref('validityState.patternMismatch','patternMismatch')}}, {{domxref('validityState.rangeOverflow','rangeOverflow')}} o {{domxref('validityState.rangeUnderflow','rangeUnderflow')}}, {{domxref('validityState.stepMismatch','stepMismatch')}}, {{domxref('validityState.tooLong','tooLong')}} o {{domxref('validityState.tooShort','tooShort')}}, {{domxref('validityState.typeMismatch','typeMismatch')}}, {{domxref('validityState.valueMissing','valueMissing')}}, o {{domxref('validityState.customError','customError')}}.</p> +</div> + +<h2 id="Exemples_de_validació_de_formularis_integrada"><strong>Exemples de validació de formularis integrada</strong></h2> + +<p>En aquesta secció provarem alguns dels atributs que hem esmentat abans.</p> + +<h3 id="Un_fitxer_d’inici_senzill">Un fitxer d’inici senzill</h3> + +<p>Comencem amb un exemple senzill: una entrada que permet triar si prefereixes un plàtan o una cirera. Aquest exemple inclou una entrada de text {{HTMLElement("input")}} senzilla amb una etiqueta {{htmlelement("label")}} associada i un {{htmlelement("button")}} de validació. En pots trobar el codi d’origen a GitHub, en el fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-start.html">fruit-start.html</a>, i l’exemple en viu a continuació.</p> + +<pre class="brush: html notranslate"><form> + <label for="choose">Would you prefer a banana or a cherry?</label> + <input id="choose" name="i_like"> + <button>Submit</button> +</form></pre> + +<pre class="brush: css notranslate">input:invalid { + border: 2px dashed red; +} + +input:valid { + border: 2px solid black; +}</pre> + +<p>{{EmbedLiveSample("Un_fitxer_d’inici_senzill", "100%", 80)}}</p> + +<p>Per començar, fes una còpia del fitxer <code>fruit-start.html</code> en un directori nou del teu disc dur.</p> + +<h3 id="L’atribut_required">L’atribut required</h3> + +<p>La característica de validació HTML5 més simple és l’atribut <code><a href="/en-US/docs/Web/HTML/Attributes/required">required</a></code> (obligatori). Afegeix aquest atribut a l'element si vols que una entrada sigui obligatòria. Quan es defineix aquest atribut, l'element coincideix amb la pseudoclasse {{cssxref(':required')}} de la interfície d'usuari i el formulari no s’envia; si l'entrada és buida, en el moment de validar mostra un missatge d'error. L’entrada, tot i que és buida, es considera no vàlida i coincideix amb la pseudoclasse de la interfície d'usuari {{cssxref(':invalid')}}.</p> + +<p>Afegeix un atribut <code>required</code> a la teva entrada, com es mostra a continuació.</p> + +<pre class="brush: html notranslate"><form> + <label for="choose">Would you prefer a banana or a cherry? (requested)</label> + <input id="choose" name="i_like" required> + <button>Submit</button> +</form></pre> + +<p>Tingues en compte el CSS que s'ha inclòs en el fitxer d'exemples:</p> + +<pre class="brush: css notranslate">input:invalid { + border: 2px dashed red; +} + +input:invalid:required { + background-image: linear-gradient(to right, pink, lightgreen); +} + +input:valid { + border: 2px solid black; +}</pre> + +<p>Aquest CSS afegeix una vora vermella quan l’entrada no és vàlida i una vora negra més subtil quan és vàlida. També hi afegeix un degradat de fons quan l’entrada és necessària <em>i</em> no vàlida. Prova’n el comportament nou en l'exemple següent:</p> + +<p>{{EmbedLiveSample("L’atribut_required", "100%", 80)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en directe a GitHub en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/fruit-required.html">fruit-validation.html</a> (consulta’n també el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-required.html">codi d’origen</a>.)</p> +</div> + +<p>Prova de validar el formulari sense cap valor. Observa que l’entrada no vàlida pren el focus, apareix un missatge d’error per defecte («Emplena aquest camp») i el formulari no s’envia.</p> + +<p>La presència de l'atribut <code>required</code> en qualsevol element que admet aquest atribut significa que l'element coincideix amb la pseudoclasse {{cssxref(':required')}}, tant si té un valor com si no. Si {{HTMLElement("input")}} no té cap valor, l’element <code>input</code> coincideix amb la pseudoclasse {{cssxref(':invalid')}}.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Si vols oferir una bona experiència d'usuari, indica quan són obligatoris els camps de formulari. No és només una bona experiència d’usuari, sinó que ho demanen les directrius d’<a href="/ca/docs/Learn/Accessibility">accessibilitat</a> de WCAG. A més, demana només les dades que necessites realment. Per què necessites saber, per exemple, el gènere o el títol d’algú?</p> +</div> + +<h3 id="Validar_una_expressió_regular">Validar una expressió regular</h3> + +<p>Una altra característica útil de la validació és l’atribut <a href="/en-US/docs/Web/HTML/Attributes/pattern"><code>pattern</code></a>, que espera una <a href="/ca/docs/Web/JavaScript/Guide/Regular_Expressions">expressió regular</a> com a valor. Una expressió regular (<em>regex</em>) és un patró que es pot utilitzar per a establir combinacions de caràcters en cadenes de text, de manera que resulten ideals per a la validació de formularis i serveixen per a molts altres usos en JavaScript.</p> + +<p>Els <em>regex</em> són força complexos i no pretenem ensenyar-los exhaustivament en aquest article. A continuació te’n mostrem alguns exemples perquè et puguis fer una idea bàsica de com funcionen.</p> + +<ul> + <li><code>a</code>: Coincideix amb un caràcter que és <code>a</code> (ni <code>b</code>, ni <code>aa</code>, etc.).</li> + <li><code>abc</code>: Coincideix amb <code>a</code>, seguit de <code>b</code> i de <code>c</code>.</li> + <li><code>ab?c</code>: Coincideix amb <code>a</code>, seguit opcionalment d’un sol <code>b</code>, seguit de <code>c</code> ( <code>ac</code> o <code>abc</code>)</li> + <li><code>ab*c</code>: Coincideix amb <code>a</code>, opcionalment seguit de qualsevol nombre de caràcters <code>b</code>, seguit de <code>c</code>. (<code>ac</code>, <code>abc</code>, <code>abbbbbc</code>, etc.).</li> + <li><code>a|b</code>: Coincideix amb un caràcter que és <code>a</code> o <code>b</code>.</li> + <li><code>abc|xyz</code>: Coincideix exactament amb <code>abc</code> o exactament amb <code>xyz</code> (però no amb <code>abcxyz</code> o <code>a</code> o <code>y</code>, etc.).</li> +</ul> + +<p>Hi ha moltes més possibilitats, que no presentem aquí. Per a obtenir-ne una llista completa i molts exemples, consulta la nostra documentació sobre expressions regulars.</p> + +<p>Posem-ho en pràctica amb un exemple. Afegeix al teu codi HTML un atribut <a href="/ca/docs/Web/JavaScript/Guide/Regular_Expressions"><code>pattern</code></a>, d'aquesta manera:</p> + +<pre class="brush: html notranslate"><form> + <label for="choose">Would you prefer a banana or a cherry?</label> + <input id="choose" name="i_like" required pattern="[Bb]anana|[Cc]herry"> + <button>Submit</button> +</form> +</pre> + +<div class="hidden"> +<pre class="brush: css notranslate">input:invalid { + border: 2px dashed red; +} + +input:valid {<strong> + </strong>border: 2px solid black; +}</pre> +</div> + +<p>Això ens proporciona l’actualització següent. Prova-ho:</p> + +<p>{{EmbedLiveSample("Validar_una_expressió_regular", "100%", 80)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en directe a GitHub en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/fruit-pattern.html">fruit-pattern.html</a> (consulta’n també el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-pattern.html">codi d’origen</a>).</p> +</div> + +<p>En aquest exemple, l’element {{HTMLElement("input")}} accepta un dels quatre valors possibles: les cadenes «banana», «Banana», «cherry» o «Cherry». Les expressions regulars distingeixen entre majúscules i minúscules, però hem eliminat aquesta característica utilitzant un patró «Aa» extra situat entre claudàtors.</p> + +<p>En aquest punt, intenta canviar el valor de l’atribut <a href="/en-US/docs/Web/HTML/Attributes/pattern"><code>pattern</code></a> per a igualar alguns dels exemples que has vist abans, i observa com això afecta els valors que pots introduir perquè que el valor d’entrada sigui vàlid. Prova d'escriure-hi alguna cosa i observa què passa. Intenta tant com sigui possible que estiguin relacionats amb la fruita perquè els teus exemples siguin coherents.</p> + +<p>Si un valor {{HTMLElement("input")}} no buit no coincideix amb el patró de l'expressió regular, <code>input</code> coincideix amb la pseudoclasse {{cssxref(':invalid')}}.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Alguns tipus d'elements {{HTMLElement("input")}} no necessiten validar una expressió regular amb l’atribut <a href="/en-US/docs/Web/HTML/Attributes/pattern"><code>pattern</code></a>. Si especifiques el tipus <code>email</code>, per exemple, el valor d’entrada es valida amb un patró d’adreça de correu electrònic ben formada, o amb un patró que coincideix amb una llista d’adreces de correu electrònic separades per comes si té l’atribut <a href="/en-US/docs/Web/HTML/Attributes/multiple"><code>multiple</code></a>.</p> +</div> + +<div class="blockIndicator note"> +<p><strong><strong>Nota</strong>: </strong>L'element {{HTMLElement("textarea")}} no admet l'atribut <a href="/en-US/docs/Web/HTML/Attributes/pattern"><code>pattern</code></a>.</p> +</div> + +<h3 id="Restringir_la_longitud_de_les_entrades">Restringir la longitud de les entrades</h3> + +<p>Pots restringir la longitud de caràcters de tots els camps de text creats amb {{HTMLElement("input")}} o {{HTMLElement("textarea")}} amb els atributs <a href="/en-US/docs/Web/HTML/Attributes/minlength"><code>minlength</code></a> i <code><a href="/en-US/docs/Web/HTML/Attributes/maxlength">maxlength</a></code>. Un camp no és vàlid si té un valor que té menys caràcters que el valor assignat a <a href="/en-US/docs/Web/HTML/Attributes/minlength"><code>minlength</code></a>, o més que el valor assignat a <code><a href="/en-US/docs/Web/HTML/Attributes/maxlength">maxlength</a></code>.</p> + +<p>Els navegadors sovint no permeten que l'usuari escrigui un valor més llarg del que s'espera en els camps de text. Una experiència d’usuari encara més bona que utilitzar només <code>maxlength</code> és proporcionar també comentaris de recompte de caràcters d’una manera accessible, i deixar editar el contingut fins que sigui d’una mida més reduïda. Un exemple d'això és el límit de caràcters de Twitter. Per a això pots utilitzar JavaScript, incloses les <a href="https://github.com/mimo84/bootstrap-maxlength">solucions que fan servir <code>maxlength</code></a>.</p> + +<h3 id="Restringir_els_valors_de_les_entrades">Restringir els valors de les entrades</h3> + +<p>Per als camps d’entrada de números (és a dir, <code><a href="/en-US/docs/Web/HTML/Element/input/number"><input type="number"></a></code>), es poden utilitzar els atributs <code><a href="/en-US/docs/Web/HTML/Attributes/min">min</a></code> i <code><a href="/en-US/docs/Web/HTML/Attributes/max">max</a></code>, que proporcionen un rang de valors vàlids. Un camp que conté un valor que cau fora d'aquest interval no és vàlid.</p> + +<p>Observem-ne un altre exemple. Crea una còpia nova del fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-start.html">fruit-start.html</a>.</p> + +<p>A continuació suprimeix el contingut de l'element <code><body></code> i substitueix-lo pel següent:</p> + +<pre class="brush: html notranslate"><form> + <div> + <label for="choose">Would you prefer a banana or a cherry?</label> + <input type="text" id="choose" name="i_like" required minlength="6" maxlength="6"> + </div> + <div> + <label for="number">How many would you like?</label> + <input type="number" id="number" name="amount" value="1" min="1" max="10"> + </div> + <div> + <button>Submit</button> + </div> +</form></pre> + +<ul> + <li>Observa que aquí hem donat al camp de <code>text</code> una longitud mínima (<code>minlength</code>) i una longitud màxima (<code>maxlength</code>) de sis, la mateixa longitud que tenen <em>banana</em> i <em>cherry</em>.</li> + <li>També hem donat al camp <code>number</code> un valor <code>min</code> d’1 i un valor <code>max</code> de 10. Els números introduïts fora d'aquest interval es presenten com no vàlids; els usuaris no poden utilitzar les fletxes d’increment/decrement per a desplaçar el valor fora d’aquest interval. Si l’usuari introdueix manualment un número que està fora d’aquest interval, les dades no són vàlides. El número no és obligatori, de manera que eliminar el valor encara dona un valor vàlid.</li> +</ul> + +<div class="hidden"> +<pre class="brush: css notranslate">input:invalid { + border: 2px dashed red; +} + +input:valid { + border: 2px solid black; +} + +div { + margin-bottom: 10px; +}</pre> +</div> + +<p>Aquí tens l’execució en viu de l’exemple:</p> + +<p>{{EmbedLiveSample("Restringir_els_valors_de_les_entrades", "100%", 100)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en viu a GitHub en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/fruit-length.html">fruit-length.html</a> (o també consultar-ne el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-length.html">codi d’origen</a>.)</p> +</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: <code><input type="number"></code> (i altres tipus, com ara <code>range</code> i <code>date</code>) també poden tenir un atribut <a href="/en-US/docs/Web/HTML/Attributes/step"><code>step</code></a>, que especifica quin increment augmenta o disminueix el valor quan s'utilitzen els controls d'entrada (com ara els botons numèrics d’increment i decrement). En l'exemple anterior no hem inclòs un atribut <code>step</code>, de manera que el valor per defecte és <code>1</code>. Això vol dir que els números de coma flotant (com ara el 3,2) també es mostren com a no vàlids.</p> +</div> + +<h3 id="Exemple_complet">Exemple complet</h3> + +<p>A continuació hi ha un exemple complet que mostra l'ús de les funcions de validació integrades en HTML. En primer lloc, una mica d'HTML:</p> + +<pre class="brush: html line-numbers language-html notranslate"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>form</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>fieldset</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>legend</span><span class="punctuation token">></span></span>Do you have a driver's license?<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>abbr</span> <span class="attr-name token">title</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>This field is mandatory<span class="punctuation token">"</span></span> <span class="attr-name token">aria-label</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>required<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>*<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>abbr</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>legend</span><span class="punctuation token">></span></span> + <span class="comment token"><!-- While only one radio button in a same-named group can be selected at a time, + and therefore only one radio button in a same-named group having the "required" + attribute suffices in making a selection a requirement --></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>input</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>radio<span class="punctuation token">"</span></span> <span class="attr-name token">required</span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>driver<span class="punctuation token">"</span></span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>r1<span class="punctuation token">"</span></span> <span class="attr-name token">value</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>yes<span class="punctuation token">"</span></span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>r1<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>Yes<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>input</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>radio<span class="punctuation token">"</span></span> <span class="attr-name token">required</span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>driver<span class="punctuation token">"</span></span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>r2<span class="punctuation token">"</span></span> <span class="attr-name token">value</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>no<span class="punctuation token">"</span></span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>r2<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>No<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>fieldset</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>n1<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>How old are you?<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="comment token"><!-- The pattern attribute can act as a fallback for browsers which + don't implement the number input type but support the pattern attribute. + Please note that browsers that support the pattern attribute will make it + fail silently when used with a number field. + Its usage here acts only as a fallback --></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>input</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>number<span class="punctuation token">"</span></span> <span class="attr-name token">min</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>12<span class="punctuation token">"</span></span> <span class="attr-name token">max</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>120<span class="punctuation token">"</span></span> <span class="attr-name token">step</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>1<span class="punctuation token">"</span></span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>n1<span class="punctuation token">"</span></span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>age<span class="punctuation token">"</span></span> + <span class="attr-name token">pattern</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>\d+<span class="punctuation token">"</span></span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t1<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>What's your favorite fruit?<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>abbr</span> <span class="attr-name token">title</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>This field is mandatory<span class="punctuation token">"</span></span> <span class="attr-name token">aria-label</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>required<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>*<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>abbr</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>input</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>text<span class="punctuation token">"</span></span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t1<span class="punctuation token">"</span></span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>fruit<span class="punctuation token">"</span></span> <span class="attr-name token">list</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>l1<span class="punctuation token">"</span></span> <span class="attr-name token">required</span> + <span class="attr-name token">pattern</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>[Bb]anana|[Cc]herry|[Aa]pple|[Ss]trawberry|[Ll]emon|[Oo]range<span class="punctuation token">"</span></span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>datalist</span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>l1<span class="punctuation token">"</span></span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Banana<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Cherry<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Apple<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Strawberry<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Lemon<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>option</span><span class="punctuation token">></span></span>Orange<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>option</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>datalist</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t2<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>What's your e-mail address?<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>input</span> <span class="attr-name token">type</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>email<span class="punctuation token">"</span></span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t2<span class="punctuation token">"</span></span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>email<span class="punctuation token">"</span></span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>label</span> <span class="attr-name token">for</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t3<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>Leave a short message<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>label</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>textarea</span> <span class="attr-name token">id</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>t3<span class="punctuation token">"</span></span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>msg<span class="punctuation token">"</span></span> <span class="attr-name token">maxlength</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>140<span class="punctuation token">"</span></span> <span class="attr-name token">rows</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>5<span class="punctuation token">"</span></span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>textarea</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>button</span><span class="punctuation token">></span></span>Submit<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>button</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>form</span><span class="punctuation token">></span></span></code></pre> + +<p>I ara, una mica de CSS per a aplicar estil al codi HTML:</p> + +<pre class="brush: css notranslate">form { + font: 1em sans-serif; + max-width: 320px; +} + +p > label { + display: block; +} + +input[type="text"], +input[type="email"], +input[type="number"], +textarea, +fieldset { + width: 100%; + border: 1px solid #333; + box-sizing: border-box; +} + +input:invalid { + box-shadow: 0 0 5px 1px red; +} + +input:focus:invalid { + box-shadow: none; +}</pre> + +<p>Això dona la sortida següent:</p> + +<p>{{EmbedLiveSample("Exemple_complet", "100%", 420)}}</p> + +<p>Consulta una llista completa d’atributs que es poden utilitzar per a restringir els valors d’entrada i els tipus d’entrada que els admeten en els <a href="/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation#Validation-related_attributes">atributs relacionats amb la validació</a>.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en viu a GitHub, en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/full-example.html">full-example.html</a> (o consultar-ne també el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/full-example.html">codi d’origen</a>).</p> +</div> + +<h2 id="Validació_de_formularis_amb_JavaScript"><strong>Validació de formularis amb JavaScript</strong></h2> + +<p>Has d’utilitzar JavaScript si vols controlar l’aspecte dels missatges d’error originals o fer-los compatibles amb els navegadors antics que no admeten la validació de formularis integrada en HTML. En aquesta secció veurem les diferents maneres de fer això.</p> + +<h3 id="L’API_de_validació_de_restriccions">L’API de validació de restriccions</h3> + +<p>La majoria dels navegadors admeten l'<a href="/en-US/docs/Web/API/Constraint_validation">API de validació de restriccions</a>, que consta d'un conjunt de mètodes i propietats disponibles en les interfícies DOM per als elements de formulari següents:</p> + +<ul> + <li><code><a href="/en-US/docs/Web/API/HTMLButtonElement">HTMLButtonElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/button"><button></a></code>)</li> + <li><code><a href="/en-US/docs/Web/API/HTMLFieldSetElement">HTMLFieldSetElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/fieldset"><fieldset></a></code>)</li> + <li><code><a href="/en-US/docs/Web/API/HTMLInputElement">HTMLInputElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/input"><input></a></code>)</li> + <li><code><a href="/en-US/docs/Web/API/HTMLOutputElement">HTMLOutputElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/output"><output></a></code>)</li> + <li><code><a href="/en-US/docs/Web/API/HTMLSelectElement">HTMLSelectElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/select"><select></a></code>)</li> + <li><code><a href="/en-US/docs/Web/API/HTMLTextAreaElement">HTMLTextAreaElement</a></code> (representa un element <code><a href="/en-US/docs/Web/HTML/Element/textarea"><textarea></a></code>)</li> +</ul> + +<p id="Constraint_validation_API_properties">L’API de validació de restriccions posa a la disposició dels elements anteriors les propietats següents.</p> + +<ul> + <li><code>validationMessage</code>: Retorna un missatge localitzat que descriu les restriccions de validació que el control no satisfà (si n'hi ha). Si el control de formulari no és candidat a validació de restriccions (<code>willValidate</code> és <code>false</code>) o si el valor de l’element satisfà les restriccions (és vàlid), retorna una cadena buida.</li> + <li><code>validity</code>: Retorna un objecte <code>ValidityState</code> que conté diverses propietats que descriuen l'estat de validesa de l'element. Pots trobar tots els detalls de les propietats disponibles a la pàgina de referència {{domxref("ValidityState")}}; a continuació se n'enumeren uns quants dels més comuns: + <ul> + <li>{{domxref("ValidityState.patternMismatch", "patternMismatch")}}: Retorna <code>true</code> si el valor no coincideix amb el {{htmlattrxref("pattern", "input")}} especificat, i <code>false</code> si hi coincideix. Si és <code>true</code>, l'element coincideix amb la pseudoclasse {{cssxref(":invalid")}} de CSS.</li> + <li>{{domxref("ValidityState.rangeOverflow", "rangeOverflow")}}: Retorna <code>true</code> si el valor és superior al màxim especificat per l’atribut {{htmlattrxref("max", "input")}}, o <code>false</code> si és inferior o igual al màxim. Si és <code>true</code>, l'element coincideix amb les pseudoclasses {{cssxref(":invalid")}} i {{cssxref(":out-of-range")}} de CSS.</li> + <li>{{domxref("ValidityState.rangeUnderflow", "rangeUnderflow")}}: Retorna <code>true</code> si el valor és inferior al mínim especificat per l’atribut {{htmlattrxref("min", "input")}}, o <code>false</code> si és superior o igual al mínim. Si és <code>true</code>, l'element coincideix amb les pseudoclasses {{cssxref(":invalid")}} i {{cssxref(":out-of-range")}} de CSS.</li> + <li>{{domxref("ValidityState.typeMismatch", "typeMismatch")}}: Retorna <code>true</code> si el valor no està en la sintaxi requerida (quan {{htmlattrxref("type", "input")}} és un correu electrònic o una url), o <code>false</code> si la sintaxi és correcta. Si és <code>true</code>, l'element coincideix amb la pseudoclasse {{cssxref(":invalid")}} de CSS.</li> + <li><code>valid</code>: Retorna <code>true</code> si l'element compleix totes les limitacions de validació i es considera que és vàlid, o <code>false</code> si falla alguna restricció. Si és <code>true</code>, l'element coincideix amb la pseudoclasse {{cssxref(":valid")}} de CSS; o amb la pseudo-classe {{cssxref(":invalid")}} de CSS en cas contrari.</li> + <li><code>valueMissing</code>: Retorna <code>true</code> si l'element té un atribut {{htmlattrxref("required", "input")}} sense cap valor, o <code>false</code> en cas contrari. Si és <code>true</code>, l'element coincideix amb la pseudoclasse {{cssxref(":invalid")}} de CSS.</li> + </ul> + </li> + <li><code>willValidate</code>: Retorna <code>true</code> si l'element es valida en enviar-se el formulari; <code>false</code> en cas contrari.</li> +</ul> + +<p id="Constraint_validation_API_methods">L'API de validació de restriccions també ofereix als elements anteriors els mètodes següents:</p> + +<ul> + <li><code>checkValidity()</code>: Retorna <code>true</code> si el valor de l'element no té problemes de validesa; <code>false</code> en cas contrari. Si l'element no és vàlid, aquest mètode també activa un esdeveniment no vàlid (<a href="/en-US/docs/Web/API/HTMLInputElement/invalid_event"><code>invalid</code> event</a>) sobre l'element.</li> + <li><code>setCustomValidity(<em>message</em>)</code>: Afegeix un missatge d'error personalitzat a l'element; si configures un missatge d’error personalitzat, es considera que l’element no és vàlid i es mostra l’error especificat. Això et permet utilitzar el codi JavaScript per a establir un error de validació diferent dels que ofereixen les restriccions de validació estàndard en HTML5. El missatge es mostra a l'usuari en informar del problema.</li> +</ul> + +<h4 id="Missatges_d’error_personalitzats"><strong>Missatges d’error personalitzats</strong></h4> + +<p>Com has vist en els exemples de restricció de validació HTML5 anteriors, cada vegada que un usuari intenta enviar un formulari no vàlid, el navegador mostra un missatge d'error. La manera com es mostra aquest missatge depèn del navegador.</p> + +<p>Aquests missatges automatitzats tenen dos inconvenients:</p> + +<ul> + <li>No hi ha una manera estàndard de canviar-ne l’aparença amb CSS.</li> + <li>Depenen de la configuració regional del navegador, que significa que pots tenir una pàgina en un idioma, però que un missatge d'error es mostri en un altre idioma, com es pot veure a la captura de pantalla de Firefox següent.</li> +</ul> + +<p><img alt="Exemple d’un missatge d’error a Firefox en francès en una pàgina en anglès" src="/files/4329/error-firefox-win7.png" style="height: 97px; width: 228px;"></p> + +<p>La personalització d’aquests missatges d’error és un dels casos d’ús més comuns de l’<a href="/en-US/docs/Web/API/Constraint_validation" rel="external">API de validació de restriccions</a>. Vegem la manera de fer-ho amb un exemple senzill.</p> + +<p>Començarem amb alguns elements senzills d’HTML (no dubtis a posar-ho en un fitxer HTML en blanc; utilitza una còpia nova del fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/fruit-start.html">fruit-start.html</a> com a base, si vols):</p> + +<pre class="brush: html notranslate"><form> + <label for="mail">I would like you to provide me with an e-mail address: </label> + <input type="email" id="mail" name="mail"> + <button>Submit</button> +</form></pre> + +<p>I afegeix a la pàgina el JavaScript següent:</p> + +<pre class="brush: js notranslate">const email = document.getElementById("mail"); + +email.addEventListener("input", function (event) { + if (email.validity.typeMismatch) { + email.setCustomValidity(«I am expecting an e-mail address!»); + } else { + email.setCustomValidity(""); + } +});</pre> + +<p>Aquí emmagatzemem una referència a l’entrada de correu electrònic, i a continuació afegim un detector d’esdeveniments que executa el codi de <code>content</code> cada vegada que es modifica el valor dins de l’entrada.</p> + +<p>Dins del codi de <code>content</code>, comprovem si la propietat <code>validity.typeMismatch</code> de l’entrada de correu electrònic retorna <code>true</code>, que significa que el valor que conté no coincideix amb el patró d’una adreça de correu electrònic ben formada. Si és així, cridem el mètode <a href="/en-US/docs/HTML/HTML5/Constraint_validation#Constraint_API's_element.setCustomValidity()"><code>setCustomValidity()</code></a> amb un missatge personalitzat. Això fa que l’entrada no sigui vàlida, de manera que quan intentes enviar el formulari, l’enviament falla i es mostra el missatge d’error personalitzat.</p> + +<p>Si la propietat <code>validity.typeMismatch</code> retorna <code>false</code>, cridem el mètode <code>setCustomValidity()</code> amb una cadena buida. Això fa que l’entrada sigui vàlida, i el formulari s’envia.</p> + +<p>Pots provar-ho a continuació:</p> + +<p>{{EmbedGHLiveSample("learning-area/html/forms/form-validation/custom-error-message.html", '100%', 80)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en viu a GitHub en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/custom-error-message.html">custom-error-message.html</a> (consulta’n també el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/custom-error-message.html">codi d’origen</a>).</p> +</div> + +<h4 id="Un_exemple_més_detallat"><strong>Un exemple més detallat</strong></h4> + +<p>Ara que hem vist un exemple molt senzill; observem com podem utilitzar aquesta API per a crear una validació personalitzada una mica més complexa.</p> + +<p>En primer lloc, el codi HTML. Un cop més, no dubtis a construir-lo amb nosaltres:</p> + +<pre class="brush: html notranslate"><form novalidate> + <p> + <label for="mail"> + <span>Please enter an email address:</span> + <input type="email" id="mail" name="mail" required minlength="8"> + <span class="error" aria-live="polite"></span> + </label> + </p> + <button>Submit</button> +</form></pre> + +<p>Aquest formulari senzill utilitza l’atribut <code><a href="/en-US/docs/Web/HTML/Attributes/novalidate">novalidate</a></code>, que desactiva la validació automàtica del navegador; això permet que el nostre codi prengui el control de la validació. Però això no desactiva la compatibilitat per a l’API de validació de restriccions ni l’aplicació de pseudoclasses CSS com {{cssxref(":valid")}}, etc. Això vol dir que, tot i que el navegador no comprova automàticament la validesa del formulari abans d’enviar les dades, encara pots fer-ho tu mateix i dissenyar el formulari en conseqüència.</p> + +<p>La nostra entrada per validar és <code><a href="/en-US/docs/Web/HTML/Element/input/email"><input type="email"></a></code>, que està marcada com a <code>required</code> i té una longitud mínima (<code>minlength</code>) de 8 caràcters. Comprovem-ho amb el nostre codi i mostrem un missatge d'error personalitzat per a cada element.</p> + +<p>El nostre objectiu és mostrar els missatges d'error dins d'un element <code><span></code>. L'atribut <a href="/en-US/docs/Accessibility/ARIA/ARIA_Live_Regions"><code>aria-live</code></a> està establert a <code><span></code> per a assegurar-nos que el missatge d'error personalitzat serà visible per a tothom, inclosos els usuaris que empren lectors de pantalla.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Un element clau aquí és el fet que establir l’atribut <code>novalidate</code> en el formulari impedeix el formulari de mostrar els quadres de diàleg de missatge d’error propis, i permet de mostrar els missatges d’error personalitzats en el DOM de la manera que escollim.</p> +</div> + +<p>Ara una mica de CSS bàsic per a millorar una mica l’aspecte del formulari i proporcionar informació visual quan les dades d’entrada no són vàlides:</p> + +<pre class="brush: css notranslate">body { + font: 1em sans-serif; + width: 200px; + padding: 0; + margin : 0 auto; +} + +p * { + display: block; +} + +input[type=email]{ + -webkit-appearance: none; + appearance: none; + + width: 100%; + border: 1px solid #333; + margin: 0; + + font-family: inherit; + font-size: 90%; + + box-sizing: border-box; +} + +/* Aquest és el nostre estil per als camps no vàlids */ +input:invalid{ + border-color: #900; + background-color: #FDD; +} + +input:focus:invalid { + outline: none; +} + +/* Aquest és l'estil per als nostres missatges d'error */ +.error { + width : 100%; + padding: 0; + + font-size: 80%; + color: white; + background-color: #900; + border-radius: 0 0 5px 5px; + + box-sizing: border-box; +} + +.error.active { + padding: 0.3em; +}</pre> + +<p>A continuació veurem el JavaScript que implementa la validació d'errors personalitzada.</p> + +<pre class="brush: js notranslate">// Hi ha moltes maneres de triar un node DOM; amb aquest obtenim el formulari en si i el control de formulari de tipus caixa d’entrada +// de correu electrònic, i també l’element span en què col·locarem el missatge d’error. +const form = document.getElementsByTagName('form')[0]; + +const email = document.getElementById('mail'); +const emailError = document.querySelector('#mail + span.error'); + +email.addEventListener('input', function (event) { + // Cada vegada que l’usuari escriu alguna cosa, comprovem si els + // camps del formulari són vàlids. + + if (email.validity.valid) { + // En cas que hi hagi un missatge d’error visible, si el camp + // és vàlid, n’eliminem el missatge d'error. + emailError.innerHTML = ''; // Restablim el contingut del missatge + emailError.className = 'error'; // Restablim l'estat visual del missatge + } else { + // Si encara hi ha un error, mostrem l'error correcte + ShowError(); + } +}); + +form.addEventListener('submit', function (event) { + // si el camp de correu electrònic és vàlid, enviem el formulari + + if(!email.validity.valid) { + // Si no és així, mostrem el missatge d'error corresponent + showError(); + // Aleshores, cancel·lem l’esdeveniment i evitem que s’enviï el formulari + event.preventDefault(); + } +}); + +function showError() { + if(email.validity.valueMissing) { + // Si el camp està buit + // mostra el missatge d'error següent. + emailError.textContent = 'You need to enter an e-mail address.'; + } else if(email.validity.typeMismatch) { + // Si el camp no conté una adreça de correu electrònic + // mostra el missatge d'error següent. + emailError.textContent = 'Entered value needs to be an e-mail address.'; + } else if(email.validity.tooShort) { + // Si les dades són massa curtes + // mostra el missatge d'error següent. + emailError.textContent = `el correu electrònic ha de tenir com a mínim $ {email.minLength} caràcters; n'heu introduït $ {email.value.length}. '; + } + + // Configura l’estil de manera adequada + emailError.className = 'error active'; +}</pre> + +<p>Els comentaris expliquen les coses força bé, però de manera breu:</p> + +<ul> + <li>Cada vegada que canviem el valor de l’entrada, comprovem si conté dades vàlides. Si n’hi ha, eliminem qualsevol missatge d'error que es mostri. Si les dades no són vàlides, executem <code>showError()</code> perquè es mostri l'error adequat.</li> + <li>Cada vegada que intentem enviar el formulari, tornem a comprovar si les dades són vàlides. En cas afirmatiu, enviem el formulari. Si no, executem <code>showError()</code> perquè es mostri l’error adequat i aturem l’enviament del formulari amb <code><a href="/en-US/docs/Web/API/Event/preventDefault">preventDefault()</a></code>.</li> + <li>La funció <code>showError()</code> utilitza diverses propietats de l'objecte <code>validity</code> de l'entrada de text per a determinar de quin error es tracta, i a continuació mostra el missatge d'error que hi correspon.</li> +</ul> + +<p>Aquest és el resultat en viu:</p> + +<p>{{EmbedGHLiveSample("learning-area/html/forms/form-validation/detailed-custom-validation.html", '100%', 150)}}</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Pots trobar aquest exemple en viu a GitHub en el fitxer <a href="https://mdn.github.io/learning-area/html/forms/form-validation/detailed-custom-validation.html">detailed-custom-validation.html</a> (consulta’n també el <a href="https://github.com/mdn/learning-area/blob/master/html/forms/form-validation/detailed-custom-validation.html">codi d’origen</a>).</p> +</div> + +<p>L'API de validació de restriccions t’ofereix una eina poderosa per a gestionar la validació de formularis i et proporciona un gran control sobre la interfície d'usuari, més enllà del que hi pots fer només amb l’HTML i el CSS.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Per obtenir més informació, consulta la nostra <a href="/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation">guia de validació de restriccions</a> i la referència de l'<a href="/en-US/docs/Web/API/Constraint_validation">API de validació de restriccions</a>.</p> +</div> + +<h3 id="Validació_dels_formularis_sense_una_API_integrada">Validació dels formularis sense una API integrada</h3> + +<p>En alguns casos, com ara la compatibilitat amb navegadors antics o els <a href="/en-US/docs/Learn/Forms/How_to_build_custom_form_controls">controls personalitzats</a>, no podràs o no voldràs utilitzar l'API de validació de restriccions. Aleshores pots utilitzar JavaScript per a validar el teu formulari, només que l'hauràs d’escriure.</p> + +<p>Per a validar un formulari, planteja’t unes quantes preguntes:</p> + +<dl> + <dt><strong>Quin tipus de validació he de fer?</strong></dt> + <dd>Has de determinar com validar les dades: operacions amb variables de cadena, conversió de tipus, expressions regulars, etc. Tot depèn de tu.</dd> + <dt><strong>Què he de fer si el formulari no es valida?</strong></dt> + <dd>Això és clarament una qüestió de la interfície d'usuari. Has de decidir com es comporta el formulari. El formulari ha d’enviar les dades igualment? Has de destacar els camps que tenen un error? Has de mostrar missatges d’error?</dd> + <dt><strong>Com puc ajudar l’usuari a corregir dades no vàlides?</strong></dt> + <dd>Per a reduir la frustració de l’usuari és molt important proporcionar la informació més útil possible i orientar-lo en la correcció de les entrades. Has d’oferir suggeriments anticipats perquè sàpiguen què se n’espera, i missatges d’error clars. Si vols aprofitar els requisits de la interfície d'usuari de validació de formularis, aquí tens alguns articles útils: + <ul> + <li>SmashingMagazine: <a href="http://uxdesign.smashingmagazine.com/2012/06/27/form-field-validation-errors-only-approach/" rel="external">Form-Field Validation: The Errors-Only Approach</a> [Validació dels camps d’un formulari: L’enfocament de només errors]</li> + <li>SmashingMagazine: <a href="http://www.smashingmagazine.com/2009/07/07/web-form-validation-best-practices-and-tutorials/" rel="external">Web Form Validation: Best Practices and Tutorials</a> [Validació de formularis web: Bones pràctiques i tutorials]</li> + <li>Six Revision: <a href="http://sixrevisions.com/user-interface/best-practices-for-hints-and-validation-in-web-forms/" rel="external">Best Practices for Hints and Validation in Web Forms</a> [Bones pràctiques per a suggeriments i validació de formularis web]</li> + <li>A List Apart: <a href="http://www.alistapart.com/articles/inline-validation-in-web-forms/" rel="external">Inline Validation in Web Forms</a>[Validació en línia de formularis web]</li> + </ul> + <strong> </strong></dd> +</dl> + +<h4 id="Un_exemple_que_no_utilitza_lAPI_de_validació_de_restriccions"><strong>Un exemple que no utilitza l'API de validació de restriccions</strong></h4> + +<p>A continuació es mostra una versió simplificada de l'exemple anterior que funciona amb navegadors antics.</p> + +<p>L’HTML és gairebé el mateix; només n’hem tret les funcions de validació HTML.</p> + +<pre class="brush: html notranslate"><form> + <p> + <label for="mail"> + <span>Please enter an email address::</span> + <input type="text" class="mail" id="mail" name="mail"> + <span class="error" aria-live="polite"></span> + </label> + </p> + <!-- Alguns navegadors antics han de tenir l’atribut «type» + definit explícitament com «submit» en l'element «button» + <button type="submit">Submit</button> +</form></pre> + +<p>De la mateixa manera, el CSS no ha de canviar gaire; acabem de convertir la pseudoclasse {{cssxref(":invalid")}} de CSS en una classe real i hem evitat utilitzar el selector d'atributs que no funciona en Internet Explorer 6.</p> + +<pre class="brush: css notranslate">body { + font: 1em sans-serif; + width: 200px; + padding: 0; + margin : 0 auto; +} + +form { + max-width: 200px; +} + +p * { + display: block; +} + +input.mail { + -webkit-appearance: none; + + width: 100%; + border: 1px solid #333; + margin: 0; + + font-family: inherit; + font-size: 90%; + + box-sizing: border-box; +} + +/* Aquest és el nostre estil per als camps no vàlids */ +input.invalid{ + border-color: #900; + background-color: #FDD; +} + +input:focus.invalid { + outline: none; +} + +/* Aquest és l'estil dels nostres missatges d'error */ +.error { + width : 100%; + padding: 0; + + font-size: 80%; + color: white; + background-color: #900; + border-radius: 0 0 5px 5px; + box-sizing: border-box; +} + +.error.active { + padding: 0.3em; +}</pre> + +<p>Els grans canvis es produeixen en el codi JavaScript, que ha de fer molta més feina feixuga.</p> + +<pre class="brush: js notranslate">// Hi ha menys maneres de seleccionar un node DOM amb navegadors antics +const form = document.getElementsByTagName('form')[0]; +const email = document.getElementById('mail'); + +// A continuació es mostra un truc per a arribar al node següent d’elements germans en el DOM. +// Això és perillós perquè pots crear fàcilment un bucle infinit. +// En els navegadors moderns és preferible utilitzar element.nextElementSibling +let error = email; +while ((error = error.nextSibling).nodeType != 1); + +// segons l'especificació HTML5 +const emailRegExp = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + +// Molts navegadors antics no són compatibles amb el mètode addEventListener. +// Aquesta és una manera senzilla de tractar això; però no n’és l’única. +function addEvent(element, event, callback) { + let previousEventCallBack = element["on"+event]; + element["on"+event] = function (e) { + const output = callback(e); + + // Una crida que retorna «false» atura la cadena de devolució + // i interromp l'execució de l'esdeveniment de retorn de la crida + if (output === false) return false; + + if (typeof previousEventCallBack === 'function') { + output = previousEventCallBack(e); + if(output === false) return false; + } + } +}; + +// Ara podem reconstruir la nostra restricció de validació +// Com que no ens basem en cap pseudoclasse de CSS, hem +// d'establir explícitament la classe vàlida/invàlida en el nostre camp de correu electrònic +addEvent(window, "load", function () { + // Aquí comprovem si el camp està buit (recorda que no és un camp obligatori) + // Si no ho està, comprovem si el contingut és una adreça de correu electrònic ben formada. + const test = email.value.length === 0 || emailRegExp.test(email.value); + + email.className = test ? "valid" : "invalid"; +}); + +// Això defineix què passa quan l'usuari escriu en el camp +addEvent(email, "input", function () { + const test = email.value.length === 0 || emailRegExp.test(email.value); + if (test) { + email.className = "valid"; + error.innerHTML = ""; + error.className = "error"; + } else { + email.className = "invalid"; + } +}); + +// Això defineix què passa quan l’usuari intenta enviar les dades +addEvent(form, "submit", function () { + const test = email.value.length === 0 || emailRegExp.test(email.value); + + if (!test) { + email.className = "invalid"; + error.innerHTML = "I expect an e-mail, darling!"; + error.className = "error active"; + + // Alguns navegadors antics no admeten el mètode event.preventDefault () + return false; + } else { + email.className = "valid"; + error.innerHTML = ""; + error.className = "error"; + } +});</pre> + +<p>El resultat és el següent:</p> + +<p>{{EmbedLiveSample("Un_exemple_que_no_utilitza_lAPI_de_validació_de_restriccions", "100%", 130)}}</p> + +<p>Com pots veure, no és tan difícil construir un sistema de validació pel teu compte. La part difícil és que sigui prou genèric perquè es pugui utilitzar tant en múltiples plataformes com en qualsevol formulari que puguis crear. Disposes de moltes biblioteques de fitxers que et permeten executar una validació de formulari, com ara <a href="http://rickharrison.github.com/validate.js/" rel="external">Validate.js</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>De vegades, la validació de formulari del costat del client necessita JavaScript si vols personalitzar els missatges d’estil i d’error, però <em>sempre</em> requereix que pensis detingudament en l’usuari. Recorda d’ajudar sempre els usuaris a corregir les dades que et proporcionen. Per a això, assegura’t de:</p> + +<ul> + <li>Mostrar missatges d’error explícits.</li> + <li>Ser permissiu amb els formats d’entrada.</li> + <li>Assenyalar exactament on es produeix l’error, sobretot en els formularis grans.</li> +</ul> + +<p>Un cop comprovat que el formulari s'ha emplenat correctament, pots procedir a enviar-lo. A continuació exposarem l’<a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">enviament de les dades d’un formulari</a>.</p> + +<p>{{PreviousMenuNext("Learn/Forms/UI_pseudo-classes", "Learn/Forms/Sending_and_retrieving_form_data", "Learn/HTML/Forms")}}</p> + +<h2 id="En_aquest_mòdul"><strong>En aquest mòdul</strong></h2> + +<ul> + <li><a href="/en-US/docs/Learn/Forms/Your_first_form">Els teu primer formulari</a></li> + <li><a href="/en-US/docs/Learn/Forms/How_to_structure_a_web_form">Com estructurar un formulari web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Basic_native_form_controls">Els controls de formulari bàsics originaris</a></li> + <li><a href="/en-US/docs/Learn/Forms/HTML5_input_types">Els tipus d'entrada de l’HTML5</a></li> + <li><a href="/en-US/docs/Learn/Forms/Other_form_controls">Altres controls de formulari</a></li> + <li><a href="/en-US/docs/Learn/Forms/Styling_web_forms">Aplicar estil a formularis web</a></li> + <li><a href="/en-US/docs/Learn/Forms/Advanced_form_styling">Aplicació avançada d’estil a formularis</a></li> + <li><a href="/en-US/docs/Learn/Forms/UI_pseudo-classes">Pseudoclasses d’interfície d’usuari (UI)</a></li> + <li><a href="/en-US/docs/Learn/Forms/Form_validation">Validació del formulari de la banda del client</a></li> + <li><a href="/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data">Enviar les dades d’un formulari</a></li> +</ul> + +<h3 id="Temes_avançats">Temes avançats</h3> + +<ul> + <li><a href="/en-US/docs/Learn/Forms/How_to_build_custom_form_controls">Com crear controls de formulari adaptats a client</a></li> + <li><a href="/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript">Enviar formularis amb JavaScript</a></li> + <li><a href="/en-US/docs/Learn/Forms/Property_compatibility_table_for_form_widgets">Taula de compatibilitat de controls de formulari de codi propietari</a></li> +</ul> diff --git a/files/ca/learn/html/index.html b/files/ca/learn/html/index.html new file mode 100644 index 0000000000..b490d7ec06 --- /dev/null +++ b/files/ca/learn/html/index.html @@ -0,0 +1,57 @@ +--- +title: HTML +slug: Learn/HTML +tags: + - Beginner + - Guide + - HTML + - Intro + - Learn + - Topic +translation_of: Learn/HTML +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Per construir llocs web, heu de saber sobre {{Glossary('HTML')}} - la tecnologia fonamental utilitzada per definir l'estructura d'una pàgina web. HTML s'utilitza per especificar si el contingut de la web ha de ser reconegut com un paràgraf, llista, títol, enllaç, imatge, reproductor multimèdia, un formulari o un de molts altres elements disponibles o fins i tot un nou element que es defineixi.</p> + +<h2 id="Itinerari_d'aprenentatge"><span class="short_text" id="result_box" lang="ca"><span>Itinerari</span> <span>d'aprenentatge</span></span></h2> + +<p>L'ideal seria que comencéssiu el vostre viatge d'aprenentatge per l'aprenentatge d'HTML ( <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Introduction">Introduction to HTML</a>). Comenceu llegint la Introducció a HTML. A continuació, podeu passar a aprendre sobre temes més avançats, com ara:</p> + +<ul> + <li><a href="/en-US/docs/Web/API">HTML5 APIs</a></li> + <li><a href="/en-US/docs/Learn/CSS">CSS</a>, i la forma de donar estil a HTML (per exemple, alterar la mida del text i fonts utilitzats, afegir vores i ombres, el disseny de la vostre pàgina amb diverses columnes, afegir animacions i altres efectes visuals.)</li> + <li><a href="/en-US/docs/Learn/JavaScript">JavaScript</a>, i com utilitzar-lo per afegir funcionalitat dinàmica a les pàgines web (per exemple, trobar la seva ubicació i traçar en un mapa, fer aparèixer/desapareixer els elements d'UI quan s'activa un botó, guardar les dades dels usuaris a nivell local en els seus equips, i molt més .)</li> +</ul> + +<p>Abans d'iniciar aquest tema, heu d'estar almenys familiaritzats basicamente amb l'ús d'ordinadors, i l'ús de la web de forma passiva (és a dir, amb només mirant, consumint el contingut). Heu de tenir un entorn base de treball establert, com es detalla en <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software">Instal·lació de programari bàsic (Installing basic software)</a>, i entendre com crear i administrar arxius, com es detalla en <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files">Tractament d'arxius (Dealing with files)</a> - tots dos són parts del nostre mòdul d'<a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web">Introducció a la web (Getting started with the web)</a> del principiant.</p> + +<p>Es recomana que es treballi a través de <a href="/en-US/docs/Learn/Getting_started_with_the_web">Introducció a la Web (G</a><a href="/en-US/docs/Learn/Getting_started_with_the_web">etting started with the web) </a>abans de tractar aquest tema, però, no és absolutament necessari; molt del que es tracta en l'article de conceptes <a href="/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics">Bàsics d'HTML (HTML basics</a>) també està cobert en la nostra <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció al mòdul d'HTML (Introduction to HTML)</a> encara que en molt més detall..</p> + +<h2 id="Mòduls">Mòduls</h2> + +<p>Aquest tema conté els següents mòduls, en un ordre suggerit per treballar a través d'ells. Definitivament, heu de començar pel primer.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a></dt> + <dd>Aquest mòdul prepara l'escenari, per aconseguir utilitzar conceptes importants i sintaxis, buscant aplicar HTML a un text, com crear hipervincles, i com utilitzar HTML per estructurar una pàgina web.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding">Multimedia i incrustació</a></dt> + <dd>Aquest mòdul explora com utilitzar HTML per incloure multimèdia en les seves pàgines web, incloent-hi les diferents formes en què les imatges poden ser incloses, i com integrar vídeo, àudio i fins i tot altres pàgines web senceres.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Forms_and_buttons">Formularis i botons</a></dt> + <dd>Els formularis i els botons són una part molt important de la web - aquests permeten als visitants del lloc entrar dades i enviar-les (per exemple formularis de registre, d'inici de sessió i de comentaris), i per implementar controls per controlar funcionalitats complexes (per exemple, enviar un formulari al servidor, o pausar la reproducció d'un vídeo.) Aquest mòdul us ajudarà a començar.</dd> + <dt>Taules (TBD)</dt> + <dd>Representar dades tabulars en una pàgina web d'una manera comprensible, {{glossary("Accessibility", "accessible")}} pot ser un desafiament. Aquest mòdul cobreix el marcat bàsic de la taula , juntament amb característiques més complexes, com la implementació dels títols i resums.</dd> +</dl> + +<h2 id="Solució_de_problemes_comuns_d'HTML"><span class="short_text" id="result_box" lang="ca"><span>Solució de</span> <span>problemes</span> <span>comuns</span> <span>d'HTML</span></span></h2> + +<p>Utilitza HTML per resoldre problemes comuns<a href="/en-US/docs/Learn/HTML/Howto"> (Use HTML to solve common problems)</a> proporciona enllaços a seccions de contingut que expliquen com utilitzar HTML per resoldre problemes molt comuns en crear una pàgina web: es tracta de títols, afegir imatges o vídeos, emfatitzar continguts, creació d'un formulari bàsic, etc.</p> + +<h2 id="Veure">Veure</h2> + +<div class="document-head" id="wiki-document-head"> +<dl> + <dt><a href="/en-US/docs/Web/HTML">HTML (HyperText Markup Language)</a> en MDN.</dt> + <dd>El punt d'entrada principal per a la documentació HTML en MDN, incloent referències detallades dels elements i atributs - Si voleu saber quins atributs té un element o quins valors té un atribut, per exemple, aquest és un gran lloc per començar.</dd> +</dl> +</div> diff --git a/files/ca/learn/html/introducció_al_html/crear_hipervincles/index.html b/files/ca/learn/html/introducció_al_html/crear_hipervincles/index.html new file mode 100644 index 0000000000..c2bc2d0b0c --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/crear_hipervincles/index.html @@ -0,0 +1,320 @@ +--- +title: Crear hipervincles +slug: Learn/HTML/Introducció_al_HTML/Crear_hipervincles +tags: + - Beginner + - CodingScripting + - Guide + - HTML + - Learn + - Links + - Title + - absolute + - hyperlinks + - relative + - urls +translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Els hipervincles són realment importants; són els que fan de la xarxa web una xarxa. En aquest article es mostra la sintaxi necessària per a fer un enllaç, i es tracten les bones pràctiques en els enllaços.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Familiaritzar-se amb els conceptes bàsics de l’HTML, que es tracten en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Iniciació a l’HTML</a>. Format del text en HTML, que es tracta en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">Fonaments del text HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com implementar un hipervincle amb eficàcia, i enllaçar diversos fitxers.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_un_hipervincle"><span id="result_box" lang="ca"><span>Què</span> <span>és</span> <span>un hipervincle</span><span>?</span></span></h2> + +<p>Els hipervincles són una de les innovacions més interessants que la web té per oferir. Bé, ha estat una característica de la web des del principi, i són els que fan de la xarxa web una <em>xarxa</em>; ens permeten vincular els nostres documents a un altre document (o un altre recurs) qualsevol, també ens permeten vincular parts específiques dels documents entre elles, i permeten que les aplicacions estiguin disponibles en una adreça web (això contrasta amb les aplicacions natives, que requerien instal·lació i altres obligacions d’aquesta mena). Gairebé qualsevol contingut del web es pot convertir en un enllaç, de manera que en fer-hi clic (o activar-ho d’alguna altra manera) el navegador anirà cap a una altra adreça web ({{glossary("URL")}}).</p> + +<div class="note"> +<p><strong>Nota</strong>: Una URL pot apuntar a fitxers HTML, fitxers de text, imatges, documents de text, vídeo i fitxers d’àudio, i qualsevol cosa que pugui existir en la web. Si el navegador no sap com mostrar o gestionar el fitxer, se’t demana si vols obrir el fitxer (en aquest cas el deure d’obrir o manipular el fitxer passa per una aplicació nativa adequada en el dispositiu) o descarregar el fitxer (i en aquest cas pots fer-te’n càrrec més endavant).</p> +</div> + +<p>La pàgina web de la BBC, per exemple, conté un gran nombre d’enllaços que apunten no només a múltiples històries de notícies, sinó també a diferents àmbits del lloc web (funcions de navegació), pàgines d’accés/registre (eines d’usuari), i molt més.</p> + +<p><img alt="Portal de bbc.co.uk, que mostra moltes notícies i també elements de navegació i funcions de menú " src="https://mdn.mozillademos.org/files/12405/bbc-homepage.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Anatomia_d’un_enllaç"><span id="result_box" lang="ca"><span>Anatomia</span> <span>d’un</span> <span>enllaç</span></span></h2> + +<p>Un enllaç bàsic es crea delimitant el text (o d’altres continguts, consulta {{anch("Enllaços de nivell de bloc")}}) que vols convertir en un enllaç dintre d’un element {{htmlelement("a")}}, i hi assigna un atribut {{htmlattrxref ("href", "a")}} (també conegut com a <strong>destinació</strong> o <em><strong>target</strong></em>) que conté l’adreça web on vols que apunti l’enllaç.</p> + +<pre class="brush: html notranslate"><p>I’m creating a link to +<a href="https://www.mozilla.org/en-US/">the Mozilla homepage</a>. +</p></pre> + +<p>Això ens dóna el següent resultat:</p> + +<p>I’m creating a link to <a class="ignore-external" href="https://www.mozilla.org/en-US/">the Mozilla homepage</a>.</p> + +<h3 id="Afegir_informació_de_suport_amb_<title>">Afegir informació de suport amb <title></h3> + +<p>Un altre atribut que és possible que vulguis afegir als teus enllaços és <code>title</code>; aquest atribut està destinat a contenir informació complementària útil sobre l’enllaç, com ara quin tipus d’informació conté la pàgina, o coses que cal tenir en compte. Per exemple:</p> + +<pre class="brush: html notranslate"><p>I’m creating a link to +<a href="https://www.mozilla.org/en-US/" + title="The best place to find more information about Mozilla’s + mission and how to contribute">the Mozilla homepage</a>. +</p></pre> + +<p>Això ens dona el resultat següent (el títol apareix com un indicador de funció (<em>tooltip</em>) quan passem el cursor per sobre l’enllaç):</p> + +<p>I’m creating a link to <a class="ignore-external" href="https://www.mozilla.org/en-US/" title="The best place to find more information about Mozilla’s mission and how to contribute">the Mozilla homepage</a>.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> El títol d'un enllaç només es mostra quan el punter del ratolí planeja per sobre, i això significa que les persones que fan servir el teclat per navegar, o pantalles tàctils, tindran dificultats per a accedir a aquesta informació. Si la informació d'un títol és realment important per la usabilitat d'una pàgina, s'hauria de presentar d'una forma accessible per a tothom, per exemple incloent-la com a text normal.</p> +</div> + +<h3 id="Aprenentatge_actiu_Crear_un_exemple_d’enllaç_propi">Aprenentatge actiu: Crear un exemple d’enllaç propi</h3> + +<p>És l’hora de l’aprenentatge actiu: volem que creïs un document HTML al teu editor de codi (faràs bé d’aconseguir la nostra <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">plantilla inicial</a>).</p> + +<ul> + <li>Dintre del cos de l’HTML, afegeix un o més paràgrafs o altres tipus de contingut que ja coneguis.</li> + <li>Converteix alguns dels continguts en enllaços.</li> + <li>Inclou l’atribut <code>title</code>.</li> +</ul> + +<h3 id="Enllaços_de_nivell_de_bloc">Enllaços de nivell de bloc</h3> + +<p>Com ja s’ha esmentat, pots convertir gairebé qualsevol contingut en un enllaç, fins i tot <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Getting_started#Elements_de_bloc_i_elements_de_l%C3%ADnia">elements de nivell de bloc</a>. Si vols convertir una imatge en un enllaç, només cal que posis la imatge entre les etiquetes <code><a></a></code>.</p> + +<pre class="brush: html notranslate"><a href="https://www.mozilla.org/en-US/"> + <img src="mozilla-image.png" alt="mozilla logo that links to the mozilla homepage"> +</a></pre> + +<div class="note"> +<p><strong>Nota</strong>: En un proper article t’assabentaràs de molts més aspectes sobre l’ús d’imatges al web.</p> +</div> + +<h2 id="Una_introducció_ràpida_a_les_adreces_URL_i_les_rutes">Una introducció ràpida a les adreces URL i les rutes</h2> + +<p>Per entendre bé les destinacions dels enllaços, cal comprendre les adreces URL i les rutes dels fitxers. En aquesta secció es proporciona la informació que necessites per a aconseguir això.</p> + +<p>Un URL, o Uniform Resource Locator (localitzador de recursos uniforme), és simplement una cadena de text que defineix on es pot localitzar alguna cosa a la web. Per exemple, la pàgina d’inici de Mozilla en versió anglesa es troba a <code>https://www.mozilla.org/en-US/</code>.</p> + +<p>Els URL utilitzen rutes per a trobar fitxers. Les rutes especifiquen en quina part del sistema de fitxers es troba el fitxer en el qual estàs interessat. Vegem un exemple senzill d’una estructura de directoris (observa el directori de <a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/creating-hyperlinks">creating-hyperlinks</a>).</p> + +<p><img alt="Una estructura de directoris senzilla. El directori pare s’anomena creating-hyperlinks i conté dos fitxers anomenats index.html i contacts.html i dos directoris anomenats projects i pdfs, que contenen un fitxer index.html i un fitxer project-brief.pdf, respectivament." src="https://mdn.mozillademos.org/files/12409/simple-directory.png" style="display: block; margin: 0 auto;"></p> + +<p>L’<strong>arrel</strong> d’aquesta estructura de directoris s’anomena <code>creating-hyperlinks</code>. Quan treballes amb un lloc web en local, hi ha un directori que conté dins tot el lloc web. A l’arrel hi ha un fitxer <code>index.html</code> i un fitxer <code>contacts.html</code>. En un lloc web real, <code>index.html</code> seria la nostra pàgina d’inici o pàgina de destinació.</p> + +<p>També hi ha dos directoris dins del nostre directori arrel: <code>pdfs</code> i <code>projects</code>. Cadascun té a dins un sol fitxer: un fitxer PDF (<code>projecte-brief.pdf</code>) i un fitxer <code>index.html</code>, respectivament. Observa que hi pot haver sense problemes dos fitxers index.html en un projecte, sempre que es trobin en ubicacions diferents del sistema de fitxers. Molts llocs web ho fan. El segon <code>index.html</code> seria potser la pàgina de destinació principal per a obtenir informació relacionada amb el projecte.</p> + +<ul> + <li> + <p><strong>Mateix directori</strong>: Si dins d’<code>index.html</code> (el nivell superior <code>index.html</code>) vols incloure un hipervincle que apunti a <code>contacts.html</code>, només has d’especificar el nom del fitxer per a establir l’enllaç, perquè és en el mateix directori que el fitxer d’origen. Aleshores, l’URL que utilitzaries seria <code>contacts.html</code>:</p> + + <pre class="brush: html notranslate"><p>Want to contact a specific staff member? +Find details on our <a href="contacts.html">contacts page</a>.</p></pre> + </li> + <li> + <p><strong>Baixar a subdirectoris</strong>: Si vols incloure un hipervincle dins d’<code>index.html</code> (el nivell superior <code>index.html</code>) que apunti a <code>projects/index.html</code>, hauries de desplaçar-te cap avall en el directori <code>projects</code> abans d’indicar el nom del fitxer que vols enllaçar. Això es fa especificant el nom del directori, a continuació, una barra inclinada, i a continuació, el nom del fitxer. De manera que utilitzaries l’URL <code>projects/index.html</code>:</p> + + <pre class="brush: html notranslate"><p>Visit my <a href="projects/index.html">project homepage</a>.</p></pre> + </li> + <li> + <p><strong>Pujar cap als directoris pare</strong>: Si vols incloure un hipervincle dins de <code>projects/index.html</code> que apunti a <code>pdfs/project-brief.pdf</code>, hauries de pujar un nivell en el directori, i després anar avall cap al directori <code>pdf</code>. «Pujar un directori» s’indica amb l’ús de dos punts, <code>..</code>. Per tant, l’URL que utilitzaries seria <code>../pdfs/project-brief.pdf</code>:</p> + + <pre class="brush: html notranslate"><p>A link to my <a href="../pdfs/project-brief.pdf">project brief</a>.</p></pre> + </li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Si cal, pots combinar diverses instàncies d’aquestes característiques en adreces URL complexes; per exemple, <code>../../../complex/path/to/my/file.html</code>.</p> +</div> + +<h3 id="Fragments_de_document">Fragments de document</h3> + +<p>És possible enllaçar una part específica d’un document HTML (conegut com un <strong>fragment de document</strong>), i no només a l'inici del document. Per a això, primer cal assignar un atribut {{htmlattrxref ("id")}} a l’element en què vols establir l’enllaç. Normalment té sentit enllaçar en una línia de títol específica, de manera que es veuria alguna cosa com la següent:</p> + +<pre class="brush: html notranslate"><h2 id="Mailing_address">Mailing address</h2></pre> + +<p>A continuació, per a enllaçar aquest <code>id</code> específic, cal incloure'l al final de l'URL, precedit per un símbol de número o coixinet (#). Per exemple:</p> + +<pre class="brush: html notranslate"><p>Want to write us a letter? Use our <a href="contacts.html#Mailing_address">mailing address</a>.</p></pre> + +<p>Fins i tot pots utilitzar la referència mateixa del fragment del document per a fer un enllaç cap a <em>una altra part del mateix document</em>:</p> + +<pre class="brush: html notranslate"><p>The <a href="#Mailing_address">company mailing address</a> can be found at the bottom of this page.</p></pre> + +<h3 id="URL_absoluts_i_relatius">URL absoluts i relatius</h3> + +<p>Dos termes que et trobaràs a la web són l’<strong>URL absolut</strong> i l’<strong>URL relatiu:</strong></p> + +<p><strong>URL absolut</strong>: Apunta cap a una ubicació definida per la seva ubicació absoluta al web, que inclou el {{glossary("protocol")}} i el {{glossary("nom de domini")}}. Així, per exemple, si una pàgina <code>index.html</code> es carrega en un directori anomenat <code>projects</code> que hi ha dins de l’arrel d’un servidor web, i el domini del lloc web és <code>http://www.example.com</code>, la pàgina estaria disponible en <code>http://www.example.com/projects/index.html</code> (o fins i tot només <code>http://www.example.com/projects/</code>, perquè la majoria dels servidors web cerquen una pàgina de destinació com <code>index.html</code> per carregar-la si no s’especifica a l'URL).</p> + +<p>Un URL absolut sempre apuntarà a la mateixa ubicació, no importa des d’on s’utilitzi.</p> + +<p><strong>URL relatiu</strong>: Apunta a una ubicació que és relativa al fitxer que s’enllaça, una mica com el que hem vist en la secció anterior. Per exemple, si volem tenir un enllaç des del nostre fitxer d’exemple en <code>http://www.example.com/projects/index.html</code> a un fitxer PDF del mateix directori, l’URL només seria el nom del fitxer; per exemple: <code>project-brief.pdf</code>; no cal informació addicional. Si el PDF estigués disponible en un subdirectori dins de <code>projects</code> anomenat <code>pdfs</code>, l’enllaç relatiu seria <code>pdfs/project-brief.pdf</code> (l’URL absolut equivalent seria <code>http://www.example.com/projects/pdfs/project-brief.pdf</code>).</p> + +<p>Un URL relatiu assenyala diferents llocs segons on estigui el fitxer que s’utilitza; per exemple, si movem el nostre fitxer <code>index.html</code> del directori <code>projects</code> a l’arrel del lloc web (el nivell superior, no en altres directoris), l’URL relativa <code>pdfs/project-brief.pdf</code> ara apunta a <code>http://www.example.com/pdfs/project-brief.pdf</code>, no a <code>http://www.example.com/projects/pdfs/project-brief.pdf</code>.</p> + +<p>Naturalment, la ubicació de l'arxiu <code>project-brief.pdf</code> i el directori <code>pdfs</code> no canviaran de sobte perquè moguis l'arxiu <code>index.html</code>; això faria que el teu enllaç apunti al lloc equivocat, així que no funcionaria si s'hi fes clic. Cal anar amb compte.</p> + +<h2 id="Les_bones_pràctiques_en_els_enllaços">Les bones pràctiques en els enllaços</h2> + +<p>Hi ha algunes bones pràctiques que és bo de seguir quan es posen enllaços. Vegem quines són.</p> + +<ul> +</ul> + +<h3 id="Fes_servir_un_redactat_clar">Fes servir un redactat clar</h3> + +<p>És molt fàcil afegir enllaços. Però amb això, no n’hi ha prou. Hem de fer que els nostres enllaços siguin accessibles a tots els lectors, independentment de quin sigui el seu context i quines eines prefereixen. Per exemple:</p> + +<ul> + <li>Als usuaris de lectors de pantalla els agrada saltar d’enllaç en enllaç per la pàgina, i llegir els enllaços fora del context.</li> + <li>Els motors de cerca utilitzen el text de l’enllaç per a indexar els fitxers de destinació, de manera que és una bona idea incloure paraules clau en el text de l’enllaç per a descriure de manera efectiva què s’enllaça.</li> + <li>Els usuaris que fan una lectura visual de la pàgina, fan un cop d’ull a la pàgina en lloc de llegir-la paraula per paraula, i els ulls se senten atrets per les característiques que es destaquen en la pàgina, com ara els enllaços. Trobaran útil que el text dels enllaços sigui descriptiu.</li> +</ul> + +<p>Vegem-ne un exemple concret:</p> + +<p><span class="short_text" id="result_box" lang="ca">Text d’enllaç <strong>ben</strong> redactat</span>: <a href="https://firefox.com">Download Firefox</a></p> + +<pre class="brush: html notranslate"><p><a href="https://firefox.com/"> + Download Firefox +</a></p></pre> + +<p><span class="short_text" id="result_box" lang="ca"><strong>Text d’enllaç mal</strong> redactat</span>: <a href="https://firefox.com/">Click here</a> to download Firefox</p> + +<pre class="brush: html notranslate"><p><a href="https://firefox.com/"> + Click here +</a> +to download Firefox</p> +</pre> + +<p>Altres consells:</p> + +<ul> + <li>No repeteixis l’URL com a part del text de l’enllaç; els URL es veuen lletjos i el so que generen encara és més lleig quan un lector de pantalla els llegeix lletra per lletra.</li> + <li>No diguis «enllaç» o «enllaços a» en el text de l’enllaç; és només soroll. Els lectors de pantalla avisen que hi ha un enllaç. Els usuaris que fan una lectura visual de la pàgina també saben que hi ha un enllaç perquè els enllaços en general es decoren amb un color diferent i es mostren subratllats (aquesta convenció general no s’ha de trencar, perquè els usuaris hi estan acostumats).</li> + <li>Mantingues l’etiqueta de l’enllaç tan curta com sigui possible, sobretot en enllaços llargs que molesten els usuaris de lectors de pantalla, que han d’escoltar la lectura de tot el text.</li> + <li>Minimitza les instàncies en què múltiples còpies del mateix text enllacen a llocs diferents. Això pot causar problemes pels usuaris de lectors de pantalla, si hi ha una llista d'enllaços sense context etiquetats tots "fes clic aquí", "fes clic aquí", "fes clic aquí".</li> +</ul> + +<h3 id="Utilitza_enllaços_relatius_sempre_que_puguis">Utilitza enllaços relatius sempre que puguis</h3> + +<p>A partir de la descripció anterior, es podria pensar que és una bona idea utilitzar enllaços absoluts en tot moment; al cap i a la fi, no es trenquen com els enllaços relatius quan una pàgina es mou. Tanmateix, és bo emprar enllaços relatius sempre que puguis quan enllaces a altres llocs dins del <em>mateix lloc web</em> (i fes servir enllaços absoluts quan enllacis a un <em>altre lloc web</em>):</p> + +<ul> + <li>Per començar, resulta molt més fàcil d’analitzar el codi si les URL són relatives perquè en general són molt més curtes que les URL absolutes, i la lectura del codi resulta força més lleugera.</li> + <li>En segon lloc, és més eficient utilitzar URL relatives sempre que sigui possible. Quan utilitzes una URL absoluta, el navegador comença per cercar la ubicació real del servidor en el sistema de noms de domini ({{glossary( "DNS")}}), aleshores va a aquest servidor i cerca el fitxer que s’ha demanat. En canvi, amb una adreça URL relativa el navegador cerca el fitxer que se sol·licita en el mateix servidor. De manera que si utilitzes adreces URL absolutes en lloc d’URL relatives, el teu navegador ha de fer feina extra constantment, i això significa que funciona amb menys eficiència.</li> +</ul> + +<h3 id="Indica_amb_claredat_quan_s’enllacen_recursos_no_HTML">Indica amb claredat quan s’enllacen recursos no HTML</h3> + +<p>Quan enllaces a un recurs que es pot descarregar (com un document PDF o Word) o reproduir en continu (<em>streaming</em>), com ara un vídeo o un àudio, o que pot tenir un altre efecte potencialment inesperat (s’obre una finestra emergent), hauries d’afegir un redactat clar per a reduir qualsevol confusió. Pot resultar força molest, per exemple:</p> + +<ul> + <li>Si tens una connexió de poc ample de banda, fas clic en un enllaç i s’inicia una descàrrega de diversos megabytes de manera inesperada.</li> + <li>Si no has aconseguit instal·lar el reproductor de Flash, fas clic en un enllaç i et trobes de cop i volta en una pàgina que requereix Flash.</li> +</ul> + +<p>Observa amb alguns exemples quin tipus de text pots utilitzar aquí:</p> + +<pre class="brush: html notranslate"><p><a href="http://www.example.com/large-report.pdf"> + Download the sales report (PDF, 10MB) +</a></p> + +<p><a href="http://www.example.com/video-stream/"> + Watch the video (stream opens in separate tab, HD quality) +</a></p> + +<p><a href="http://www.example.com/car-game"> + Play the car game (requires Flash) +</a></p></pre> + +<h3 id="Utilitza_l‘atribut_download_quan_enllacis_a_una_descàrrega">Utilitza l‘atribut <code>download</code> quan enllacis a una descàrrega</h3> + +<p>Quan enllaces a un recurs que s’ha de descarregar en lloc d’obrir-se en el navegador, pots utilitzar l’atribut <code>download</code>, que proporciona l’opció de desar amb el nom de fitxer per defecte. Heus aquí un exemple amb un enllaç de descàrrega de Firefox 39 per a la versió de Windows:</p> + +<pre class="brush: html notranslate"><a href="https://download.mozilla.org/?product=firefox-39.0-SSL&os=win&lang=en-US" + download="firefox-39-installer.exe"> + Download Firefox 39 for Windows +</a></pre> + +<h2 id="Aprenentatge_actiu_crear_un_menú_de_navegació">Aprenentatge actiu: crear un menú de navegació</h2> + +<p>Per a aquest exercici, et volem proposar que enllacis algunes pàgines amb un menú de navegació per a crear un lloc web de diverses pàgines. Aquesta és una manera comuna per a crear un lloc web: en cada pàgina s’utilitza la mateixa estructura de pàgina, que inclou el mateix menú de navegació, de manera que quan fas clic als enllaços fa la impressió que ets en el mateix lloc, però apareix un contingut diferent.</p> + +<p>Fes còpies locals de les quatre pàgines següents, totes en el mateix directori (consulta també el directori de <a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/navigation-menu-start">navegació del menú d’inici</a> per a la llista completa de fitxers):</p> + +<ul> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/index.html">index.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/projects.html">projects.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/pictures.html">pictures.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/social.html">social.html</a></li> +</ul> + +<p>Hauries de:</p> + +<ol> + <li>Afegir una llista no ordenada en el lloc indicat en una pàgina, que contingui els noms de les pàgines que s’enllacen. Un menú de navegació és justament una llista d’enllaços, de manera que això és semànticament correcte.</li> + <li>Convertir cada nom de la pàgina en un enllaç a aquesta pàgina.</li> + <li>Copiar el menú de navegació en cada pàgina.</li> + <li>Eliminar de cada pàgina només l’enllaç a ella mateixa; és confús incloure un enllaç a la mateixa pàgina, i no té sentit, i el fet que no hi hagi enllaç resulta un bon recordatori visual de la pàgina en què et trobes.</li> +</ol> + +<p>L’exemple acabat hauria de veure’s més o menys així:</p> + +<p><img alt="Un exemple senzill de menú de navegació HTML, amb els elements inici, imatges, projectes i xarxes socials" src="https://mdn.mozillademos.org/files/12411/navigation-example.png" style="display: block; margin: 0 auto;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Si t’encalles o no saps si ho has fet bé, pots comprovar la solució en el directori de l’<a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/navigation-menu-marked-up">etiquetatge del menú de navegació</a>.</p> +</div> + +<h2 id="Enllaços_a_correu_electrònic">Enllaços a correu electrònic</h2> + +<p>És possible crear enllaços o botons que, quan els prems, en lloc d’enllaçar amb un recurs o pàgina, obren un missatge de correu electrònic nou de sortida. Això es fa amb l’element {{HTMLElement("a")}} i l’esquema d’URL <code>mailto:</code>.</p> + +<p>En la forma més bàsica i d’ús més comú, un enllaç <code>mailto:</code> simplement indica l’adreça de correu electrònic del destinatari. Per exemple:</p> + +<pre class="brush: html notranslate"><a href="mailto:ningu@mozilla.org">Envia un missatge a ningú</a> +</pre> + +<p>Això genera un enllaç que té aquest aspecte: <a href="mailto:ningu@mozilla.org">Envia un missatge a ningú</a>.</p> + +<p>De fet, fins i tot l’adreça de correu electrònic és opcional. Si la deixes fora (és a dir, {{htmlattrxref ("href", "a")}} és simplement "mailto:"), el client de correu de l’usuari obrirà una finestra de correu electrònic sortint nova que encara no té cap adreça de destinació especificada. Això sovint és útil com a enllaços per «compartir» en què els usuaris poden fer clic i enviar un correu electrònic a una adreça que triïn.</p> + +<h3 id="Especificar_detalls">Especificar detalls</h3> + +<p>A més de l’adreça de correu electrònic, pots proporcionar més informació. De fet, pots afegir qualsevol camp de capçalera d’un missatge de correu electrònic estàndard a l’adreça URL <code>mailto:</code> que proporcionis. El més habituals són «subject», «cc» i «body» (respectivament, «tema», «amb còpia» i «cos», que no és un veritable camp de capçalera, però permet especificar el contingut d’un missatge curt per al nou correu electrònic). Cada camp i el seu valor s’especifiquen com un terme de la consulta.</p> + +<p>Aquí hi ha un exemple que inclou un cc, bcc, assumpte i cos:</p> + +<pre class="brush: html notranslate"><a href="mailto:nowhere@mozilla.org?cc=name2@rapidtables.com&bcc=name3@rapidtables.com&amp;subject=The%20subject%20of%20the%20email &amp;body=The%20body%20of%20the%20email"> + Send mail with cc, bcc, subject and body +</a></pre> + +<div class="note"> +<p><strong>Nota:</strong> Els valors de cada camp han de tenir una codificació URL (és a dir, amb caràcters no imprimibles i espais <a href="http://en.wikipedia.org/wiki/Percent-encoding">percentatge-escapats</a>). També has de tenir en compte l’ús del signe (&), que separa cada camp en la URL <code>mailto:</code>. Aquesta és la notació estàndard d’una consulta URL.</p> +</div> + +<p>Aquí hi ha algunes altres mostres d’URL de <code><code>mailto:</code></code>:</p> + +<ul> + <li><a href="mailto:">mailto:</a></li> + <li><a href="mailto:nowhere@mozilla.org">mailto:nowhere@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org,nobody@mozilla.org">mailto:nowhere@mozilla.org,nobody@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org?cc=nobody@mozilla.org">mailto:nowhere@mozilla.org?cc=nobody@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject">mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject</a></li> +</ul> + +<h2 id="Sumari">Sumari</h2> + +<p>Això, de tota manera, és tot sobre els enllaços, per ara! Tornarem als enllaços més endavant en el curs, quan comencem a aplicar-los estils. El pas següent pel que fa a l’HTML és tornar a la semàntica de text i conèixer algunes de les característiques més avançades/inusuals que podeu trobar útils; la formatació avançada del text és la vostra pròxima parada.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/depurar_html/index.html b/files/ca/learn/html/introducció_al_html/depurar_html/index.html new file mode 100644 index 0000000000..5d8feaea62 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/depurar_html/index.html @@ -0,0 +1,171 @@ +--- +title: Depurar HTML +slug: Learn/HTML/Introducció_al_HTML/Depurar_HTML +tags: + - Beginner + - CodingScripting + - Debugging + - Error + - Guide + - HTML + - Validation + - validator +translation_of: Learn/HTML/Introduction_to_HTML/Debugging_HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Escriure HTML està molt bé; però, i si hi ha alguna cosa que va malament i no se sap on està l'error en el codi? Aquest article dona a conèixer algunes eines que poden ajudar.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Familiaritzar-se amb els fonaments bàsics de l’HTML, que s’expliquen, per exemple, en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Iniciació a l’HTML</a>, <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">Fonaments de text en HTML</a> i <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">Creació d’hipervincles</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td><span id="result_box" lang="ca">Aprendre els conceptes bàsics de la utilització d'eines de depuració per a trobar problemes en HTML. </span></td> + </tr> + </tbody> +</table> + +<h2 id="Depurar_no_fa_por">Depurar no fa por</h2> + +<p>En escriure qualsevol mena de codi, tot està molt bé en general, fins que arriba aquest moment temut, que és quan es produeix un error; s'ha fet alguna cosa malament i el codi no funciona en absolut, o no ben bé com es voldria. Per exemple, a continuació es mostra la informació d'un error en intentar {{glossary("compilar")}} un programa senzill escrit en el llenguatge <a href="https://www.rust-lang.org/">Rust</a>.</p> + +<p><img alt="Una finestra d’ordinador portàtil que mostra el resultat d'intentar compilar un programa en codi Rust amb una cometa que manca en algun lloc d'una instrucció 'print'. El missatge d'error indica: 'error: unterminated double quote string'." src="https://mdn.mozillademos.org/files/12435/error-message.png" style="display: block; height: 520px; margin: 0px auto; width: 711px;">En aquest cas, el missatge d'error és relativament fàcil d'entendre: «cadena de text amb cometes dobles sense tancar». Si et fixes en la programació, és probable que puguis veure que en la instrucció <code>println!(Hello, world!”);</code> podria faltar-hi, per lògica, una cometa doble. Però els missatges d'error poden esdevenir ràpidament més complicats i menys fàcils d'interpretar a mesura que els programes es fan més extensos, i fins i tot el cas senzill anterior pot intimidar una mica a algú que no sap gens de programació amb Rust.</p> + +<p>Això no obstant, la depuració no té per què fer por; la clau per estar còmodes amb l’escriptura i depuració de qualsevol llenguatge de programació o codi és la familiaritat, tant amb el llenguatge com amb les eines.</p> + +<h2 id="Depuració_amb_HTML">Depuració amb HTML</h2> + +<p>HTML no és tan complicat d'entendre com Rust; HTML no es compila en una forma diferent abans que el navegador n’analitzi el resultat i el presenti (s’interpreta, no es compila). I la sintaxi d’un {{glossary("element")}} HTML és possiblement molt més fàcil d'entendre que la d’un «autèntic llenguatge de programació» com Rust, {{glossary("JavaScript")}} o {{glossary("Python")}}. Però la manera amb què els navegadors executen l’HTML és molt més <strong>permissiva</strong> que la manera com s'executen els llenguatges de programació, i això és alhora bo i dolent.</p> + +<h3 id="Codi_permissiu">Codi permissiu</h3> + +<p>Què entenem per permissiu? Bé, en general, quan comets algun error de codi, et pots topar amb dos tipus d'error principals:</p> + +<ul> + <li><strong>Errors de sintaxi:</strong> són errors d'ortografia en el codi, que impedeixen que el programa s'executi, igual que l'error en el codi Rust que es mostra a dalt. En general, aquests errors es poden resoldre bé, sempre que estiguem familiaritzats amb les eines adequades i sapiguem què signifiquen els missatges d'error.</li> + <li><strong>Errors lògics</strong>: aquests són errors en què la sintaxi és correcta, però el codi no fa el que vols que faci, sinó que el programa s'executa de manera incorrecta. Sovint, aquests errors són més difícils de corregir que els de sintaxi, perquè no hi ha cap missatge d'error que t’adreci cap a la font de l'error.</li> +</ul> + +<p>L’HTML en si no té tendència a presentar errors de sintaxi perquè els navegadors en què s'executa són permissius, i això significa que el codi funciona fins i tot encara que hi hagi errors de sintaxi. Els navegadors incorporen regles que els indiquen com interpretar l’etiquetatge escrit erròniament, de manera que s'obtingui alguna cosa que rutlli, encara que potser no sigui exactament el que esperaves. Això, per descomptat, també pot ser un problema!</p> + +<div class="note"> +<p><strong>Nota</strong>: L’HTML s'executa amb permissivitat perquè quan es va crear la web, es va decidir que permetre a la gent la publicació dels seus continguts fos més important que garantir que la sintaxi fos totalment correcta. La xarxa web probablement no seria tan popular com ho és avui, si hagués estat més estricta des dels inicis.</p> +</div> + +<h3 id="Aprenentatge_actiu_estudiar_la_permissivitat_del_codi">Aprenentatge actiu: estudiar la permissivitat del codi</h3> + +<p>És hora d'estudiar la naturalesa permissiva del codi HTML per tu mateix.</p> + +<ol> + <li>En primer lloc, fes-te amb una còpia de la nostra <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/debugging-html/debug-example.html">demostració de depuració</a> i desa-te-la en local. Hem escrit aquest exemple de demostració deliberadament amb alguns errors perquè els analitzis (es diu que l’etiquetatge HTML està <strong>mal format</strong>, en oposició a <strong>ben format</strong>).</li> + <li>A continuació, obre’l en un navegador; veuràs alguna cosa com aquesta: <img alt="Un document HTML senzill amb el títol Exemples de depuració HTML i una mica d'informació sobre errors comuns amb HTML, com elements que no es tanquen, elements mal imbricats o atributs que no es tanquen." src="https://mdn.mozillademos.org/files/12437/badly-formed-html.png" style="display: block; margin: 0 auto;"></li> + <li>Això, d’entrada, no fa bona pinta; analitzem el codi per veure si podem esbrinar-ne el perquè (només es mostren els continguts de <code>body</code>): + <pre class="brush: html notranslate"><h1>HTML debugging examples</h1> + +<p>What causes errors in HTML? + +<ul> + <li>Unclosed elements: If an element is <strong>not closed properly, + then its effect can spread to areas you didn't intend + + <li>Badly nested elements: Nesting elements properly is also very important + for code behaving correctly. <strong>strong <em>strong emphasised?</strong> + what is this?</em> + + <li>Unclosed attributes: Another common source of HTML problems. Let's + look at an example: <a href="https://www.mozilla.org/>link to Mozilla + homepage</a> +</ul></pre> + </li> + <li>Fem un repàs dels problemes que hi podem veure: + <ul> + <li>Els elements {{htmlelement("p")}} i {{htmlelement("li")}} no tenen etiquetes de tancament. A partir de la imatge de dalt, no sembla que això hagi afectat malament la representació del codi d’etiquetatge, perquè és fàcil deduir on acaba un dels elements i on en comença un altre.</li> + <li>El primer element {{htmlelement("strong")}} no té etiqueta de tancament. Això és una mica més problemàtic, perquè no és fàcil saber on se suposa que acaba l'element. De fet, sembla que s’ha destacat en negreta tota la resta del text.</li> + <li>En aquesta secció les etiquetes estan mal imbricades: <code><strong>strong <em>strong emphasised?</strong> what is this?</em></code>. No és fàcil saber com s'ha d'interpretar això, a causa del problema anterior.</li> + <li>El valor de l'atribut {{htmlattrxref ("href", "a")}} no té cometes dobles tancament. Això sembla que ha causat el problema més greu: l'enllaç no apareix en absolut.</li> + </ul> + </li> + <li>Ara observem quina presentació fa el navegador a partir d’aquest d’etiquetatge, en oposició a l’etiquetatge que observem en el codi. Per a això, pots utilitzar les eines de desenvolupador del navegador. Si no estàs familiaritzat amb l'ús de les eines de desenvolupador del navegador, dedica uns minuts a revisar <a href="/en-US/docs/Learn/Discover_browser_developer_tools">Descobreix les eines de desenvolupador del navegador</a>, i després torna.</li> + <li>En l'inspector de DOM pots veure quin aspecte presenta la representació d’aquest etiquetatge: <img alt="L'inspector d'HTML de Firefox, amb el nostre paràgraf d'exemple destacat, mostra el text "Què genera errors en l'HTML". Hi pots veure que el navegador s'ha encarregat de tancar l'element paràgraf." src="https://mdn.mozillademos.org/files/12439/html-inspector.png" style="display: block; margin: 0 auto;"></li> + <li>Amb l'inspector DOM, explorarem el codi amb detall per veure com el navegador ha intentat de corregir els errors HTML (hem fet la revisió amb Firefox; altres navegadors moderns <em>haurien de donar</em> el mateix resultat): + <ul> + <li>S’han donat etiquetes de tancament als paràgrafs i elements de llista.</li> + <li>No està clar on s’ha de tancar el primer element <code><strong></code>, de manera que el navegador ha etiquetat cada bloc de text per separat que hi ha fins al final del document amb una etiqueta <code>strong</code>.</li> + <li>El navegador ha resolt la imbricació d’etiquetes incorrecta de la següent manera: + <pre class="brush: html notranslate"><strong>strong + <em>strong emphasised?</em> +</strong> +<em> what is this?</em></pre> + </li> + <li>L'enllaç amb la cometa doble que falta s’ha eliminat del tot. L'últim element de la llista ara presenta aquest aspecte: + <pre class="brush: html notranslate"><li> + <strong>Unclosed attributes: Another common source of HTML problems. + Let's look at an example: </strong> +</li></pre> + </li> + </ul> + </li> +</ol> + +<h3 id="Validació_HTML">Validació HTML</h3> + +<p>A partir de l'exemple anterior pots veure que és important que t’asseguris que el codi HTML està prou ben format. Però, com? En un exemple petit com el que has vist abans, resulta prou fàcil buscar per les línies de codi i trobar els errors; però, què passa amb un document HTML extens i complex?</p> + +<p>La millor estratègia és començar per executar la pàgina HTML amb el servei de validació d’etiquetatge (<a href="https://validator.w3.org/">Markup Validation Service</a>), creat i mantingut per l'organització W3C, que s'ocupa de les especificacions que defineixen l’HTML, el CSS i altres tecnologies web. Aquesta pàgina web pren un document HTML com una entrada, l’analitza i et retorna un informe que exposa tot el que està malament en l’HTML.</p> + +<p><img alt="La pàgina d’inici del validador d’HTML" src="https://mdn.mozillademos.org/files/12441/validator.png" style="display: block; margin: 0 auto;"></p> + +<p>Per a especificar el codi HTML que vols validar, pots donar-ne l’adreça web, pujar-hi l’arxiu HTML o introduir-hi el codi HTML directament.</p> + +<h3 id="Aprenentatge_actiu_validació_d’un_document_HTML">Aprenentatge actiu: validació d’un document HTML</h3> + +<p>Provem-ho amb el nostre <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/debugging-html/debug-example.html">document de mostra</a>.</p> + +<ol> + <li>En primer lloc, carrega el <a href="https://validator.w3.org/">Markup Validation Service</a> en una de les pestanyes del navegador, si encara no ho has fet.</li> + <li>Ves a la pestanya <a href="https://validator.w3.org/#validate_by_input">Validate by Direct Input</a>.</li> + <li>Copia tot el codi del document de mostra (no només el body) i enganxa’l en l'àrea gran de text que hi ha en el Markup Validation Service.</li> + <li>Prem el botó <em>Check</em>.</li> +</ol> + +<p>Això t’ha de donar una llista d'errors i altres dades.</p> + +<p><img alt="Llista dels resultats de la validació HTML del servei de validació d'etiquetatge de W3C " src="https://mdn.mozillademos.org/files/12443/validation-results.png" style="display: block; margin: 0 auto;"></p> + +<h4 id="Interpretació_dels_missatges_derror"><span class="short_text" id="result_box" lang="ca">Interpretació dels missatges d'error</span></h4> + +<p>La llista de missatges d'error que el validador presenta sovint són útils, però de vegades no tant; amb una mica de pràctica trobaràs la manera d'interpretar-los per resoldre el codi. Fem una passada pels missatges d'error i vegem què signifiquen. Observem que cada missatge ve amb un número de línia i columna, que t’ajuda a localitzar l'error més fàcilment.</p> + +<ul> + <li>"<span>Consider adding a </span><code>lang</code><span> attribute to the </span><code>html</code><span> start tag to declare the language of this document." [Considera afegir un atribug <code>lang</code> a l'etiqueta d'inici <code>html</code> per declarar l'idioma del document]: No es tracta d'un error, sinó d'una advertència (warning). La <a class="external external-icon" href="https://www.w3.org/International/questions/qa-html-language-declarations" rel="noopener">recomanació</a> és definir sempre l'idioma, i aquest "warning" explica com fer-ho.</span></li> + <li>"End tag <code>li</code> implied, but there were open elements" [Etiqueta final <code>li</code> implícita, però hi havia elements oberts] (2 instàncies): Aquest missatge indica que un element està obert i que s’ha de tancar. L'etiqueta final hi és implícita, però de fet no hi és. La informació de línia/columna apunta a la primera línia després de la línia en què hi hauria d’haver l'etiqueta de tancament, però això ja aquest és un bon indici per veure què falla.</li> + <li>"Unclosed element <code>strong</code>" [“Element <code>strong</code> sense tancar”]: Aquest és molt fàcil d'entendre, un element {{htmlelement("strong")}} està sense tancar i la informació de línia/columna hi apunta directament.</li> + <li>"End tag <code>strong</code> violates nesting rules" [L'etiqueta de tancament <code>strong</code> infringeix les regles d’imbricació]: Aquest missatge assenyala els elements que estan mal imbricats, i la informació de línia/columna assenyala on són.</li> + <li>"End of file reached when inside an attribute value. Ignoring tag" [S'ha arribat al final de l'arxiu sense sortir d'un valor d’atribut. L’etiqueta s’ignora]: Aquest missatge és força críptic; es refereix al fet que hi ha un valor d'atribut que no està correctament format en algun lloc, possiblement prop del final de l'arxiu, perquè en el valor de l'atribut apareix el final de l'arxiu. El fet que el navegador no mostri l'enllaç ens dona una pista de quin element falla.</li> + <li>"End of file seen and there were open elements" [S’ha arribat al final de l'arxiu i hi ha elements oberts]: Aquest missatge és una mica ambigu, però bàsicament es refereix al fet que hi ha elements oberts que s’han de tancar correctament. Els números de línia apunten a les últimes línies de l'arxiu i aquest missatge d'error ve amb una línia de codi que assenyala un exemple d'element obert: + <pre class="notranslate">example: <a href="https://www.mozilla.org/>link to Mozilla homepage</a> ↩ </ul>↩ </body>↩</html></pre> + + <div class="note"> + <p><strong>Nota</strong>: Un atribut que no té cometes de tancament pot entendre’s com un element obert perquè la resta del document s’interpreta com el valor de l'atribut.</p> + </div> + </li> + <li>"Unclosed element <code>ul</code>" [Element <code>ul</code> sense tancar]: Aquest missatge no resulta de gaire utilitat perquè l'element {{htmlelement("ul")}} està tancat correctament. L’error es produeix perquè l'element {{htmlelement("a")}} no està tancat perquè no té cometes de tancament.</li> +</ul> + +<p>Si no arribes a esbrinar què significa cada missatge d'error, no t’hi amoïnis; una bona idea és tractar de resoldre uns quants errors cada la vegada, i a continuació tornar a validar el codi HTML per veure els errors que queden. De vegades, la resolució d'un error pot eliminar més d’un missatges d'error diferents, perquè sovint un sol problema pot causar diversos errors, en un efecte dòmino.</p> + +<p>Sabràs que has resolt tots els errors quan en la sortida t’aparegui una banda amb el missatge següent:</p> + +<p><img alt="Banda amb el text: "El document valida d'acord amb els esquemes i les restriccions addiconals especificats que verifica el validador"" src="https://mdn.mozillademos.org/files/12445/valid-html-banner.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Resum">Resum</h2> + +<p>Aquí tenim una introducció a la depuració de codi HTML, que t’hauria de proporcionar alguns coneixements útils per quan comencis a depurar CSS, JavaScript i altres tipus de codi, més endavant durant la carrera. Això també marca el final dels articles d’aprenentatge del mòdul Introducció a l’HTML; ara ja pots examinar-te tu mateix amb les nostres activitats d’avaluació: a sota trobaràs un enllaç a la primera d'elles.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/document_i_estructura_del_lloc_web/index.html b/files/ca/learn/html/introducció_al_html/document_i_estructura_del_lloc_web/index.html new file mode 100644 index 0000000000..1088731eea --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/document_i_estructura_del_lloc_web/index.html @@ -0,0 +1,267 @@ +--- +title: Document i estructura del lloc web +slug: Learn/HTML/Introducció_al_HTML/Document_i_estructura_del_lloc_web +translation_of: Learn/HTML/Introduction_to_HTML/Document_and_website_structure +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Així com definim les parts individuals de la pàgina (per exemple, «un paràgraf» o «una imatge»), {{glossary("HTML")}} també compta amb una sèrie d'elements de nivell de bloc que s'utilitzen per a definir les àrees del teu lloc web (com ara «la capçalera», «el menú de navegació» o «la columna principal de contingut»). En aquest article es reflexiona sobre com planificar una estructura bàsica d'un lloc web, i com escriure el codi HTML per a representar aquesta estructura.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Prerequisits:</th> + <td>Familiaritat amb els conceptes bàsics de l’HTML que s'expliquen en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Iniciació a l’HTML</a>. <span id="result_box" lang="ca"><span>Aplicació de format</span> <span>al text amb HTML</span></span>, que s'explica en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">Fonaments de text amb HTML</a>. Funcionament dels hipervincles, que s'expliquen en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">Crear hipervincles</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a estructurar un document amb etiquetes semàntiques, i elaborar l'estructura d'un lloc web senzill.</td> + </tr> + </tbody> +</table> + +<h2 id="Seccions_bàsiques_dun_document">S<span id="result_box" lang="ca"><span title="Basic sections of a document">eccions bàsiques d'un document</span></span></h2> + +<p>Les pàgines web poden i tenen un aparença molt diferent les unes de les altres, però totes tendeixen a compartir components estàndard similars, llevat que a la pàgina es mostri un vídeo o un joc en pantalla completa, formi part d'alguna mena de projecte artístic, o simplement estigui mal estructurada:</p> + +<dl> + <dt>capçalera (header)</dt> + <dd>Sol ser una gran franja a la part superior amb un títol gran i/o un logotip. És on en general es manté la informació principal comuna sobre un lloc web respecte d'una altra pàgina web.</dd> + <dt>barra de navegació (navigation bar)</dt> + <dd>Són els enllaços a les seccions principals del lloc; en general es representen com botons de menú, enllaços o pestanyes. Igual que la capçalera, aquest contingut en general roman característic d'una pàgina web respecte d’una altra; un sistema de navegació incoherent en el lloc web només portarà frustració i confusió als usuaris. Molts dissenyadors web consideren que la barra de navegació ha de ser part de la capçalera en lloc d'un component individual, però això no és un requisit; de fet, alguns sostenen també que el fet de tenir aquests dos elements separats és millor per motius d’<a href="/ca/docs/Learn/Accessibility">accesibilitat</a>, perquè els lectors de pantalla poden llegir més bé totes dues característiques si estan separades.</dd> + <dt>contingut principal (main content)</dt> + <dd>Una àrea gran al centre que conté la part principal del contingut particular d'una pàgina web determinada, per exemple, el vídeo que vols veure o la història principal que llegeixes, o el mapa que vols examinar, o els titulars de les notícies, etc. Aquesta és la part singular de la pàgina web que sens dubte variarà d'una pàgina web a una altra!</dd> + <dt>barra lateral (sidebar)</dt> + <dd>Informació secundària, enllaços, citacions, anuncis, etc. En general es tracta d’informació de context respecte de la que inclou el contingut principal (per exemple, en un article d’una pàgina de notícies, la barra lateral podria contenir la biografia de l'autor o enllaços a articles relacionats), però també hi ha casos en què trobaràs elements recurrents, com ara un sistema secundari de navegació.</dd> + <dt>peu de pàgina (footer)</dt> + <dd>Una franja a la part inferior de la pàgina que generalment conté la lletra petita, els avisos de copyright o informació de contacte. És un lloc per a posar-hi informació que és comuna (com la capçalera) per a tot el lloc web, però aquesta informació no és en general ni crítica ni secundària respecte de la pàgina web mateixa. El peu de pàgina també s'utilitza de vegades amb finalitats de posicionament {{Glossary("SEO")}}, en proporcionar enllaços per a un accés ràpid al contingut popular.</dd> +</dl> + +<p>Un «lloc web típic» podria presentar una estructura semblant a això:</p> + +<p><img alt="Un exemple senzill d’estructura de lloc web que inclou una capçalera principal, un menú de navegació, una àrea de contingut principal, una barra lateral i un peu de pàgina." src="https://mdn.mozillademos.org/files/12417/sample-website.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="HTML_per_a_estructurar_el_contingut">HTML per a estructurar el contingut</h2> + +<p>L'exemple senzill que es mostra a dalt no és bonic, però és perfectament acceptable per a il·lustrar un exemple típic de disseny d'una pàgina web. Alguns llocs web tenen més columnes, alguns són molt més complexos, però ja es copsa la idea. Amb el CSS correcte, pots usar gairebé qualsevol element per a delimitar les diferents seccions i assignar-los l’aspecte que vulguis però, com ja hem dit, cal respectar la semàntica i <strong>utilitzar l'element correcte per a la funció correcta</strong>.</p> + +<p>Això és perquè els elements visuals no expliquen tota la història. Utilitzem el color i la mida de la lletra per a cridar l'atenció dels usuaris en les parts del contingut més rellevants, com ara el menú de navegació i els enllaços relacionats; però, què passa amb les persones que tenen una discapacitat visual, per exemple, que potser no troben gaire útils conceptes com «rosa» o «mida de lletra gran»?</p> + +<div class="note"> +<p><strong>Nota</strong>: Les persones daltòniques representen al voltant del <a href="http://www.color-blindness.com/2006/04/28/colorblind-population/">8% de la població mundial</a>. Les persones cegues o amb discapacitats visuals representen aproximadament el 4-5% de la població mundial (el 2012 hi havia <a href="https://ca.wikipedia.org/wiki/Defici%C3%A8ncia_visual">285 milions d'aquest tipus de persones al món</a>, mentre que la població total era de <a href="https://en.wikipedia.org/wiki/World_human_population#/media/File:World_population_history.svg">prop de 7.000 milions</a>.)</p> +</div> + +<p>En el teu codi HTML pots etiquetar seccions de contingut segons la funció que compleixen; pots fer servir elements que representin de manera inequívoca les seccions de contingut que hem descrit abans, i les tecnologies de suport com els lectors de pantalla poden reconèixer aquells elements i ajudar amb tasques com «trobar la navegació principal» o «trobar el contingut principal». Com ja hem esmentat abans en el curs, són moltes les <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Fonaments_de_text_HTML#Per_qu%C3%A8_cal_una_estructura">conseqüències de no utilitzar una estructura i una semàntica correctes perquè un element compleixi la funció correcta</a>.</p> + +<p>Per a dur a terme aquest etiquetatge semàntic, l’HTML proporciona etiquetes específiques que es poden utilitzar per a representar aquestes seccions, per exemple:</p> + +<ul> + <li><strong>capçalera: </strong>{{htmlelement("header")}}.</li> + <li><strong>barra de navegació: </strong>{{htmlelement("nav")}}.</li> + <li><strong>contingut principal: </strong>{{htmlelement("main")}}, <span id="result_box" lang="ca"><span>amb</span> <span>diverses</span> <span>subseccions</span> <span>de contingut</span> <span>representades</span> <span>pels elements</span></span> {{HTMLElement("article")}}, {{htmlelement("section")}} i {{htmlelement("div")}}.</li> + <li><strong>barra lateral: </strong>{{htmlelement("aside")}}; <span class="short_text" id="result_box" lang="ca"><span>sovint</span> <span>col·locat dins de l’element</span></span> {{htmlelement("main")}}.</li> + <li><strong>peu de pàgina: </strong>{{htmlelement("footer")}}.</li> +</ul> + +<h3 id="Aprenentatge_actiu_Analitzar_el_codi_del_nostre_exemple">Aprenentatge actiu: Analitzar el codi del nostre exemple</h3> + +<p>L’exemple que hem vist abans està representat pel codi següent (també pots trobar <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/document_and_website_structure/index.html">l’exemple en el repositori de GitHub</a>). Observa’l a dalt i fes un cop d’ull a la llista següent per veure quines parts componen quines seccions visibles.</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + + <title>My page title</title> + <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Sonsie+One" rel="stylesheet" type="text/css"> + <link rel="stylesheet" href="style.css"> + + <!-- the below three lines are a fix to get HTML5 semantic elements working in old versions of Internet Explorer--> + <!--[if lt IE 9]> + <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + </head> + + <body> + <!-- Here is our main header that is used accross all the pages of our website --> + + <header> + <h1>Header</h1> + </header> + + <nav> + <ul> + <li><a href="#">Home</a></li> + <li><a href="#">Our team</a></li> + <li><a href="#">Projects</a></li> + <li><a href="#">Contact</a></li> + </ul> + + <!-- A Search form is another commmon non-linear way to navigate through a website. --> + + <form> + <input type="search" name="q" placeholder="Search query"> + <input type="submit" value="Go!"> + </form> + </nav> + + <!-- Here is our page's main content --> + <main> + + <!-- It contains an article --> + <article> + <h2>Article heading</h2> + + <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Donec a diam lectus. Set sit amet ipsum mauris. Maecenas congue ligula as quam viverra nec consectetur ant hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur.</p> + + <h3>subsection</h3> + + <p>Donec ut librero sed accu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor.</p> + + <p>Pelientesque auctor nisi id magna consequat sagittis. Curabitur dapibus, enim sit amet elit pharetra tincidunt feugiat nist imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros.</p> + + <h3>Another subsection</h3> + + <p>Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum soclis natoque penatibus et manis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</p> + + <p>Vivamus fermentum semper porta. Nunc diam velit, adipscing ut tristique vitae sagittis vel odio. Maecenas convallis ullamcorper ultricied. Curabitur ornare, ligula semper consectetur sagittis, nisi diam iaculis velit, is fringille sem nunc vet mi.</p> + </article> + + <!-- the aside content can also be nested within the main content --> + <aside> + <h2>Related</h2> + + <ul> + <li><a href="#">Oh I do like to be beside the seaside</a></li> + <li><a href="#">Oh I do like to be beside the sea</a></li> + <li><a href="#">Although in the North of England</a></li> + <li><a href="#">It never stops raining</a></li> + <li><a href="#">Oh well...</a></li> + </ul> + </aside> + + </main> + + <!-- And here is our main footer that is used across all the pages of our website --> + + <footer> + <p>©Copyright 2050 by nobody. All rights reversed.</p> + </footer> + + </body> +</html></pre> + +<p>Pren-te un temps per observar el codi i intentar entendre’l; els comentaris que hi ha dins del codi també t’haurien d'ajudar a entendre’l. No et demanem de fer gaire més en aquest article perquè la clau per a entendre el disseny del document és escriure una estructura HTML semblant a aquesta i a continuació posar-hi CSS. Però ens esperarem per a això fins que comencis a estudiar com dissenyar amb CSS en l’article dedicat al CSS que tracta aquest tema.</p> + +<h2 id="Els_elements_HTML_de_disseny_amb_més_detall"><span class="short_text" id="result_box" lang="ca"><span>Els elements</span> <span>HTML de disseny</span> <span>amb</span> <span>més</span> <span>detall</span></span></h2> + +<p>És bo entendre amb detall el significat general de tots els elements HTML de seccionament; treballarem aquesta qüestió de manera gradual a mesura que anem assolint més experiència en el desenvolupament web. Pots entrar en molt de detall amb la lectura de la nostra <a href="/ca/docs/Web/HTML/Element">referència d’elements HTML</a>. De moment, aquestes són les definicions principals que ens cal comprendre:</p> + +<ul> + <li>{{HTMLElement('main')}} és el contingut <em>particular d'aquesta pàgina</em>. <code><main></code> només es fa servir una vegada per pàgina i es posa directament a dins de l’element {{HTMLElement('body')}}. Per anar bé, no hauria d'estar imbricat dins d'altres elements.</li> + <li>{{HTMLElement('article')}} tanca un bloc de contingut que té sentit per si sol, sense la resta de la pàgina (per exemple, una sola entrada al bloc).</li> + <li>{{HTMLElement('section')}} és similar a <code><article></code>, però és més aviat per mantenir agrupada una sola part de la pàgina, que constitueix una peça amb una funció única (per exemple, un mini mapa, o un conjunt de titulars d'articles i resums). Es considera una bona pràctica començar cada secció amb un <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">títol d’encapçalament</a>; observa també que pots fragmentar cada article (<code><article></code>) en diferents seccions (<code><section></code>), o cada secció (<code><section></code>) en diferents articles (<code><article></code>), segons el context.</li> + <li>{{HTMLElement('aside')}} inclou contingut que no està directament relacionat amb el contingut principal, però pot proporcionar informació addicional que hi estigui relacionada indirectament (entrades del glossari, biografia de l'autor, enllaços relacionats, etc.)</li> + <li>{{HTMLElement('header')}} representa un grup de contingut introductori. Si es tracta d'un element fill de l’element {{HTMLElement('body')}}, defineix la capçalera global d'una pàgina web, però si es tracta d'un element fill d'un element {{HTMLElement('article')}} o d’un element {{HTMLElement('section')}}, defineix una capçalera específica per a aquesta secció (no confonguis això amb els <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Qu%C3%A8_hi_ha_en_el_head_Metadades_en_HTML#Afegir_un_t%C3%ADtol">títols d’encapçalament</a>.)</li> + <li>{{HTMLElement('nav')}} inclou les funcions de navegació principal de la pàgina. A la navegació no anirien enllaços secundaris i d’altres elements.</li> + <li>{{HTMLElement('footer')}} representa un grup de continguts al final d'una pàgina.</li> +</ul> + +<h3 id="Delimitadors_no_semàntics"><span id="result_box" lang="ca"><span>Delimitadors no semàntics</span></span></h3> + +<p>A vegades et trobes amb una situació en què no hi ha un element semàntic adequat per a agrupar junts un seguit d’elements o delimitar uns continguts concrets. A vegades pot ser que simplement vulguis agrupar un conjunt d'elements per a tractar-los tots com una sola entitat amb una mica de {{glossary("CSS")}} o {{glossary("JavaScript")}}. Per a casos com aquests, l’HTML proporciona els elements {{HTMLElement("div")}} i {{HTMLElement("span")}}. S'han d'utilitzar preferiblement amb un atribut {{htmlattrxref('class')}} adequat, que els proporcioni algun tipus d'etiqueta perquè se’ls pugui identificar fàcilment.</p> + +<p>{{HTMLElement("span")}} és un element de línia no semàntic que només hauries d'utilitzar si no trobes cap altre element de text semàntic que vagi més bé per a delimitar aquell contingut, o no vols afegir-hi cap significat específic. Per exemple:</p> + +<pre class="brush: html notranslate"><p>The King walked drunkenly back to his room at 01:00, the beer doing nothing to aid +him as he staggered through the door <span class="editor-note">[Editor's note: At this point in the +play, the lights should be down low]</span>.</p></pre> + +<p>En aquest cas, la nota de l'editor només pretén proporciona una indicació addicional per al director de l'obra; no es pretén que tingui un significat semàntic addicional. Podries aplicar-hi CSS per a distanciar aquesta nota del text principal als ulls d’un usuari vident.</p> + +<p>{{HTMLElement("div")}} és un element de bloc no semàntic que només hauries d'utilitzar si no trobes cap altre element de bloc semàntic que vagi més bé per a delimitar aquell contingut, o no vols afegir-hi cap significat específic. Per exemple, imagina’t un giny de tipus carretó de la compra que pots optar per seleccionar en qualsevol moment durant el temps que navegues per un lloc web de comerç electrònic:</p> + +<pre class="brush: html notranslate"><div class="shopping-cart"> + <h2>Shopping cart</h2> + <ul> + <li> + <p><a href=""><strong>Silver earrings</strong></a>: $99.95.</p> + <img src="../products/3333-0985/" alt="Silver earrings"> + </li> + <li> + ... + </li> + </ul> + <p>Total cost: $237.89</p> +</div></pre> + +<p>No és realment un element <code><aside></code>, perquè no s'identifica necessàriament amb el contingut principal de la pàgina (vols que estigui accessible des de qualsevol lloc). Tampoc és particularment necessari utilitzar un element <code><section></code>, perquè no és part del contingut principal de la pàgina. En aquest cas està molt bé utilitzar un element <code><div></code>. Hi hem inclòs un títol d’encapçalament com un indicador per a ajudar els usuaris amb lectors de pantalla a trobar-ho.</p> + +<div class="warning"> +<p><strong>Atenció</strong>: Els elements <code>div</code> són tan còmodes d'usar que és fàcil d'utilitzar-los en excés. Però com que no aporten cap valor semàntic, només introdueixen soroll en el teu codi HTML. Assegura’t d’utilitzar-los només quan no hi hagi cap altra solució semàntica més adequada i tracta de reduir-ne l’ús al mínim. En cas contrari et trobaràs amb moltes dificultats a l’hora d’actualitzar i mantenir els teus documents.</p> +</div> + +<h3 id="Salts_de_línia_i_separadors_horitzontals">Salts de línia i separadors horitzontals</h3> + +<p>Dos elements que utilitzaràs de tant en tant i que voldràs conèixer són {{htmlelement("br")}} i {{htmlelement("hr")}}:</p> + +<p><code><br></code> crea un salt de línia en un paràgraf; és l'única manera de forçar una estructura rígida, en una situació en què vols un seguit de línies curtes fixes, com en una adreça postal o un poema. Per exemple:</p> + +<pre class="brush: html notranslate"><p>There once was a girl called Nell<br> +Who loved to write HTML<br> +But her structure was bad, her semantics were sad<br> +and her markup didn't read very well.</p></pre> + +<p>Sense els elements <code><br></code>, el paràgraf es mostraria en una línia llarga (com hem dit abans en el curs, <a href="/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Getting_started#Els_espais_en_blanc_en_HTML">l’HTML ignora la major part dels espais en blanc</a>); amb aquests elements en el codi, el marcatge es mostra així:</p> + +<p>There once was a girl called Nell<br> + Who loved to write HTML<br> + But her structure was bad, her semantics were sad<br> + and her markup didn't read very well.</p> + +<p>Els elements <code><hr></code> creen un separador horitzontal en el document que indica un canvi de temàtica en el text (com ara un canvi de tema o escena). Visualment es veu com una línia horitzontal. A tall d'exemple:</p> + +<pre class="notranslate"><p>Ron was backed into a corner by the marauding netherbeasts. Scared, but determined to protect his friends, he raised his wand and prepared to do battle, hoping that his distress call had made it through.</p> +<hr> +<p>Meanwhile, Harry was sitting at home, staring at his royalty statement and pondering when the next spin off series would come out, when an enchanted distress letter flew through his window and landed in his lap. He read it hasily, and lept to his feet; "better get back to work then", he mused.</p></pre> + +<p>Seria com això:</p> + +<p>Ron was backed into a corner by the marauding netherbeasts. Scared, but determined to protect his friends, he raised his wand and prepared to do battle, hoping that his distress call had made it through.</p> + +<hr> +<p>Meanwhile, Harry was sitting at home, staring at his royalty statement and pondering when the next spin off series would come out, when an enchanted distress letter flew through his window and landed in his lap. He read it hasily and sighed; "better get back to work then", he mused.</p> + +<h2 id="Planificar_un_lloc_web_senzill">Planificar un lloc web senzill</h2> + +<p>Una vegada planificat el contingut d'una pàgina web simple, el pas lògic següent és tractar d'esbrinar quin contingut volem posar en tota la pàgina web, quines pàgines es necessitaran i de quina manera s'han d'arranjar i enllaçar l’una amb l'altra per a oferir la millor experiència d'usuari possible. Això s’anomena {{glossary("Arquitectura de la informació")}}. En un lloc web gran i complex, aquest procés pot requerir una gran planificació, però per a un lloc web senzill d'unes poques pàgines això pot ser força senzill, i fins i tot divertit!</p> + +<ol> + <li>Has de tenir en compte que hi ha d’haver uns quants elements comuns en la majoria de pàgines (si no totes), com ara el menú de navegació i els continguts del peu de pàgina. Si el lloc és per una empresa, per exemple, és una bona idea que tingui la informació de contacte disponible al peu de pàgina de cada pàgina. Apunta quins continguts vols que siguin comuns a totes les pàgines.<img alt="Els elements comuns que hi ha d'haver a cada pàgina d'una pàgina web de viatges: el títol i el logotip, la informació de contacte, el copyright, la declaració de termes i condicions, el selector d'idioma, la política d'accessibilitat" src="https://mdn.mozillademos.org/files/12423/common-features.png" style="border-style: solid; border-width: 1px; display: block; height: 375px; margin: 0px auto; width: 600px;"></li> + <li>A continuació, dibuixa un esbós de quina estructura vols que presenti cada pàgina (pot ser semblant a la nostra pàgina web senzilla d’abans). Pren nota de què hi haurà a cada bloc. <img alt=" Un diagrama senzill d'una mostra de l'estructura d'un lloc web, amb una capçalera, l'àrea de contingut principal , dues barres laterals i un peu de pàgina." src="https://mdn.mozillademos.org/files/12429/site-structure.png" style="border-style: solid; border-width: 1px; display: block; height: 232px; margin: 0px auto; width: 600px;"></li> + <li>Ara, fes una previsió (una pluja d'idees) de la resta de continguts (que no seran comuns a totes les pàgines) que vols que hi hagi al lloc web; escriu-ne tota la llista, tan llarga com vulguis. <img alt="Una llarga llista de tots els elements que podríem posar en el nostre lloc web de viatges, des d'un cercador fins a ofertes especials o informació específica per a cada país" src="https://mdn.mozillademos.org/files/12425/feature-list.png" style="border-style: solid; border-width: 1px; display: block; height: 1066px; margin: 0px auto; width: 600px;"></li> + <li>A continuació, ordena tots aquests elements de contingut per grups, perquè et puguis fer una idea de quines parts poden anar juntes en les diferents pàgines. Això és molt similar a una tècnica anomenada classificació de targetes, o {{glossary("card sorting")}}. <img alt="Els elements que haurien d'aoparpèixer en un lloc web de vacances, repartits en 5 categories: Cercar, Ofertes especials, Informació específica de país, Resultats de cerca i Compres." src="https://mdn.mozillademos.org/files/12421/card-sorting.png" style="border-style: solid; border-width: 1px; display: block; height: 579px; margin: 0px auto; width: 600px;"></li> + <li>Ara, dibuixa un mapa del lloc web en brut; dibuixa un globus per a cada pàgina del lloc web, i línies que mostrin el flux de treball esperat entre les pàgines. La pàgina d'inici probablement estarà al centre, i s’enllaçarà amb la majoria de les altres, si no amb totes; la major part de les pàgines d'un lloc web petit han d'estar disponibles en la navegació principal, encara que hi ha excepcions. També hi pots voler incloure observacions sobre com podrien presentar-se les coses.<img alt="Un mapa del lloc web que mostra les pàgines d'inici, informació específica del país, resultats de cerca, pagament i compres" src="https://mdn.mozillademos.org/files/12427/site-map.png" style="border-style: solid; border-width: 1px; display: block; height: 872px; margin: 0px auto; width: 600px;"></li> +</ol> + +<h3 id="Aprenentatge_actiu_crea_el_teu_mapa_de_lloc_web_propi">Aprenentatge actiu: crea el teu mapa de lloc web propi</h3> + +<p>Fes l'exercici anterior per a un lloc web de creació pròpia. De què t’agradaria fer un lloc web?</p> + +<div class="note"> +<p><strong>Nota</strong>: Desa el teu treball en algun lloc; pot ser que el necessitis més endavant.</p> +</div> + +<h2 id="Resum">Resum</h2> + +<p>En aquest punt hauries de tenir idea més clara sobre com estructurar una pàgina/lloc web. En l'últim article d'aquest mòdul, estudiarem com depurar l’HTML.</p> + +<h2 id="Mira_també">Mira també</h2> + +<ul> + <li><a href="/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines">Ús de seccions i esquemes</a>: Guia avançada d'elements semàntics HTML5 i algoritme de disseny d'estructures HTML5.</li> +</ul> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/estructurar_una_pàgina_de_contingut/index.html b/files/ca/learn/html/introducció_al_html/estructurar_una_pàgina_de_contingut/index.html new file mode 100644 index 0000000000..e3481bdc15 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/estructurar_una_pàgina_de_contingut/index.html @@ -0,0 +1,93 @@ +--- +title: Estructurar una pàgina de contingut +slug: Learn/HTML/Introducció_al_HTML/Estructurar_una_pàgina_de_contingut +tags: + - Assessment + - Beginner + - CodingScripting + - Design + - HTML + - Layout + - Learn + - Structure + - semantics +translation_of: Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">L'estructuració d'una pàgina de contingut llest per dissenyar, utilitzant CSS, és una habilitat molt important per dominar, pel que en aquesta avaluació es provarà la vostra capacitat de pensar sobre com una pàgina podria acabar veient-se, i triar la semàntica estructural apropiada per construir un disseny damunt.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Abans de procedir a aquesta avaluació heu hagut de treballar la resta del curs, amb un èmfasi particular en <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure">Documents i estructura del lloc web</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Posar a prova el coneixement de les estructures de pàgines web, i com representar un esquema de diseny possible en el marcat.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida"><span id="result_box" lang="ca"><span>Punt de partida</span></span></h2> + +<p>Per obtenir aquesta avaluació inicial, cal anar i agafar l'<a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/structuring-a-page-of-content-start/assets.zip?raw=true">arxiu zip que conté tots els recursos per començar</a>. L'arxiu zip conté:</p> + +<ul> + <li>L'HTML que es necessita per afegir el marcat estructural</li> + <li>CSS per l'estil del marcat.</li> + <li>Les imatges que s'utilitzen en la pàgina.</li> +</ul> + +<p>Crear l'exemple en el vostre equip local, o bé, utilitzar un lloc com <a class="external external-icon" href="http://jsbin.com/">JSBin</a> or <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer la vostra avaluació.</p> + +<h2 id="Resum_del_projecte">R<span class="short_text" id="result_box" lang="ca"><span>esum</span> <span>del projecte</span></span></h2> + +<p>Per a aquest projecte, la tasca és prendre el contingut de la pàgina principal d'un lloc web d'observació d'aus i afegir elements estructurals a la mateixa, pel que pot tenir un disseny de pàgina que se li aplica. S'ha de tenir:</p> + +<ul> + <li>Una capçalera que abasta l'ample complet del lloc que conté el títol principal de la pàgina, el logotip del lloc, i el menú de navegació. El títol i el logotip apareixen un al costat de l'altre una vegada que s'aplica l'estil, i la navegació apareix sota d'aquests dos elements.</li> + <li>Una àrea de contingut principal que conté dues columnes - un bloc principal per contenir el text de benvinguda, i una barra lateral que conté imatges en miniatura.</li> + <li>Un peu de pàgina que conté informació dels drets d'autor i crèdits.</li> +</ul> + +<p>Cal afegir un embolcall adequat per a:</p> + +<ul> + <li>La capçalera</li> + <li>El menú de navegació</li> + <li>El contingut principal</li> + <li>El text de benvinguda</li> + <li>La barra lateral de la imatge</li> + <li>El peu de pàgina</li> +</ul> + +<p>També s'ha de:</p> + +<ul> + <li>Aplicar el CSS, proporcionat,a la pàgina mitjançant l'addició d'una altra element {{htmlelement("link")}} just a sota de l'existent proporcionada a l'inici.</li> +</ul> + +<h2 id="Consells_i_suggeriments"><span id="result_box" lang="ca"><span>Consells</span> <span>i</span> <span>suggeriments</span></span></h2> + +<ul> + <li>Utilitzar el <a href="https://validator.w3.org/">validador HTML de W3C</a> per validar el codi HTML; s'obtenen punts de bonificació si es valida tant com sigui possible (la línia "googleapis" és una línia que s'utilitza per importar fonts personalitzades en la pàgina de Google Fonts service; no valida, pel que no ens hem de preocupar per això.)</li> + <li>No es necessita saber res de CSS per fer aquesta avaluació; només s'ha de posar el CSS proporcionat a l'interior d'un element HTML.</li> + <li>El CSS proporcionat està dissenyat de manera que quan s'afegeixen els elements estructurals correctes per al marcatge, apareixeran en verd a la pàgina representada.</li> + <li>Si us quedeu encallats i no es pot preveure a on posar els elements, sovint, ajuda dibuixar un diagrama de blocs simples del disseny de pàgina, i escriure sobre els elements que cregueu que haurien d'embolicar cada bloc.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p>La següent captura de pantalla mostra un exemple del que la pàgina podria ser després del seu marcatge.</p> + +<p><img alt='The finished example for the assessment; a simple webpage about birdwatching, including a heading of "Birdwatching", bird photos, and a welcome message' src="https://mdn.mozillademos.org/files/12449/example-page.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Si esteu seguint aquesta avaluació com a part d'un curs organitzat, heu de ser capaços de donar al vostre treball al vostre professor/tutor per qualificar-ho. Si sou d'auto-aprenentatge, llavors podeu obtenir la guia de qualificació amb molta facilitat preguntan <a href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">fil del discurs de l'àrea d'aprenentatge</a> o al canal d'IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Prova el primer exercici - no hi ha res a guanyar amb trampa!</p> + +<p>{{PreviousMenu("Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/fonaments_de_text_html/index.html b/files/ca/learn/html/introducció_al_html/fonaments_de_text_html/index.html new file mode 100644 index 0000000000..fafc49effe --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/fonaments_de_text_html/index.html @@ -0,0 +1,950 @@ +--- +title: Fonaments de text HTML +slug: Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML +tags: + - Beginner + - CodingScripting + - Guide + - HTML + - Introduction to HTML + - Learn + - Text + - headings + - paragraphs + - semantics +translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Una de les funcions principals de l'HTML és donar estructura i significat al text (també conegut com {{glossary("semàntica")}}), perquè el navegador el pugui mostrar correctament. En aquest article s'explica la forma com es pot utilitzar {{glossary("HTML")}} per estructurar una pàgina de text afegint títols i paràgrafs, destacant paraules, amb la creació de llistes, i més.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Familiaritzar-se amb els elements bàsics de l’HTML, com es tracta en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Inici en HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td><span id="result_box" lang="ca"><span>Aprendre com</span> <span>marcar una</span> <span>pàgina</span> <span>bàsica</span> <span>de text</span> <span>per donar-hi</span> <span>estructura</span> <span>i</span> <span>significat</span> <span>- incloent</span> <span>paràgrafs,</span> <span>capçaleres,</span> <span>llistes</span><span>, destacats</span> <span>i</span> <span>cites.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Conceptes_bàsics_capçaleres_i_paràgrafs">Conceptes bàsics: capçaleres i paràgrafs</h2> + +<p>La majoria del text estructurat es compon de títols i paràgrafs, independentment de si llegeixes una història, un diari, un llibre de text universitari, una revista, etc.</p> + +<p><img alt="An example of a newspaper front cover, showing use of a top level heading, subheadings and paragraphs." src="https://mdn.mozillademos.org/files/12371/newspaper_small.jpg" style="display: block; margin: 0 auto;"></p> + +<p>El contingut estructurat fa que l'experiència de llegir sigui més fàcil i agradable.</p> + +<p>En HTML, cada paràgraf s’ha de delimitar amb un element {{htmlelement("p")}}, així:</p> + +<pre class="brush: html notranslate"><p>I am a paragraph, oh yes I am.</p></pre> + +<p>Cada títol s’ha de delimitar amb un element de títol:</p> + +<pre class="brush: html notranslate"><h1>I am the title of the story.</h1></pre> + +<p>Hi ha sis elements de títol: {{htmlelement("h1")}}, {{htmlelement("h2")}}, {{htmlelement("h3")}}, {{htmlelement("h4")}}, {{htmlelement("h5")}} i {{htmlelement("h6")}}. Cada element representa un nivell de contingut diferent del document; <code><h1></code> representa el títol principal, <code><h2></code> representa un subtítol, <code><h3></code> representa un subsubtítol, i així successivament.</p> + +<h3 id="Implementar_una_estructura_jeràrquica">Implementar una estructura jeràrquica</h3> + +<p>A tall d'exemple, en una història, <code><h1></code> representaria el títol de la història, <code><h2></code> representaria el títol de cada capítol i <code><h3></code> representaria subseccions de cada capítol, i així successivament.</p> + +<pre class="brush: html notranslate"><h1>The Crushing Bore</h1> + +<p>By Chris Mills</p> + +<h2>Chapter 1: The Dark Night</h2> + +<p>It was a dark night. Somewhere, an owl hooted. The rain lashed down on the ...</p> + +<h2>Chapter 2: The eternal silence</h2> + +<p>Our protagonist could not so much as a whisper out of the shadowy figure ...</p> + +<h3>The specter speaks</h3> + +<p>Several more hours had passed, when all of a sudden the specter sat bolt upright and exclaimed, "Please have mercy on my soul!"</p></pre> + +<p>Què representen exactament els elements que intervenen depèn en realitat de tu, sempre que la jerarquia tingui sentit. Només has de tenir en compte un seguit de bones pràctiques a mesura que crees aquest tipus d'estructures:</p> + +<ul> + <li>Preferiblement, només has d'utilitzar un únic <code><h1></code> per pàgina; aquest és el títol de nivell superior, i tots els altres se situen per sota d'aquest en la jerarquia.</li> + <li>Assegura’t que utilitzes els títols en l'ordre correcte de la jerarquia. No utilitzis <code><h3></code> per representar subtítols, seguit per <code><h2></code> per representar subsubtítols; no té cap sentit i condueix a resultats estranys.</li> + <li>Dels sis nivells de títols disponibles, no hauries d’utilitzar-ne més de tres per pàgina, llevat que ho creguis de debò necessari. Els documents amb molts nivells (és a dir, una jerarquia profunda en títols) es tornen difícils de manejar i és difícil de navegar-hi. En aquestes ocasions, és recomanable desplegar el contingut en múltiples pàgines, si és possible.</li> +</ul> + +<h3 id="Per_què_cal_una_estructura">Per què cal una estructura?</h3> + +<p>Per respondre a aquesta pregunta, fem una ullada a <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-start.html">text-start.html</a>; el punt de partida del nostre exemple d'aquest article (una bona recepta d’humus). Desa una còpia d'aquest arxiu a l'ordinador, el necessitaràs per als exercicis més endavant. El cos d'aquest document actualment conté diversos elements de contingut, que no estan marcats de cap manera, però estan separats per salts de línia (Intro/Retorn picat per a passar a la línia següent).</p> + +<p>No obstant això, quan obres el document en el navegador, observa que el text apareix com gran garbuix!</p> + +<p><img alt="A webpage that shows a wall of unformatted text, because there are no elements on the page to structure it." src="https://mdn.mozillademos.org/files/12972/text-no-formatting.png" style="display: block; height: 420px; margin: 0px auto; width: 594px;"></p> + +<p>Això és perquè no hi ha elements que donin estructura als continguts, de manera que el navegador no sap què és un títol i què és un paràgraf. A més:</p> + +<ul> + <li>Els usuaris que busquen en una pàgina web tendeixen a fer-hi una ullada ràpida per a trobar contingut rellevant, sovint només llegint les capçaleres, per començar (<a class="external external-icon" href="http://www.nngroup.com/articles/how-long-do-users-stay-on-web-pages/">solen passar molt poc temps en una pàgina web</a>). Si no poden veure res útil en uns pocs segons, és probable que se sentin frustrats i vagin a un altre lloc.</li> + <li>Els motors de cerca que indexen les pàgines consideren el contingut dels títols paraules clau importants, que influeixen en la posició de cerca de les pàgines. Sense títols, la vostra pàgina funcionarà malament en termes d’optimització dels motors de cerca (<em>search engine optimization</em>, o {{glossary( "SEO")}}).</li> + <li>Les persones amb discapacitats visuals greus sovint no llegeixen les pàgines web; en lloc d’això, les escolten. Això es fa amb una aplicació de programari anomenada <a class="external external-icon" href="https://ca.wikipedia.org/wiki/Lector_de_pantalla" title="screen readers">lector de pantalla</a>. Aquesta aplicació proporciona maneres d'obtenir un accés ràpid al contingut del text. Entre les diferents tècniques que s’utilitzen, proporcionen un esquema del document a partir de la lectura dels títols, que permet als usuaris trobar la informació que necessiten ràpidament. Si els títols no estan disponibles, es veuen obligats a escoltar tot el document llegit en veu alta.</li> + <li>Per a aplicar estil al contingut amb {{glossary( "CSS")}} o per a fer-li fer coses interessants amb {{glossary("JavaScript")}}, cal tenir elements que delimitin el contingut rellevant, de manera que CSS/JavaScript els puguin localitzar.</li> +</ul> + +<p>Per tant, hem de donar al nostre contingut un etiquetatge estructural.</p> + +<h3 id="Aprenentatge_actiu_donar_estructura_als_continguts">Aprenentatge actiu: donar estructura als continguts</h3> + +<p>Passem directament a un exemple en viu. En l'exemple següent, afegim elements al text sense format en el requadre d’entrada perquè en el requadre de sortida aparegui com un títol i dos paràgrafs.</p> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó de reinici. Si t’encalles, fes clic al botó <em>Mostra la solució</em> per veure la resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 100px; width: 95%">My short story I am a statistician and my name is Trish. + +My legs are made of cardboard and I am married to a fish.</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<h1>My short story</h1>\n<p>I am a statistician and my name is Trish.</p>\n<p>My legs are made of cardboard and I am married to a fish.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 500) }}</p> + +<h3 id="Per_què_cal_semàntica">Per què cal semàntica?</h3> + +<p>Tot al nostre entorn compta amb la semàntica; comptem amb l'experiència prèvia per a conèixer la funció dels objectes quotidians; quan veiem una cosa, sabem quina és la seva funció. Així, per exemple, esperem que un semàfor en vermell tingui el sentit de «parar», i un semàfor en verd signifiqui «continuar». Si apliquem malament la semàntica, les coses poden complicar-se ràpidament (hi ha cap país en què el vermell signifiqui «continuar»? Esperem que no!).</p> + +<p>En una línia similar, ens hem d’assegurar que utilitzem els elements correctes per a donar al nostre contingut el significat, la funció o l’aspecte correctes. En aquest context, l'element {{htmlelement("h1")}} és també un element semàntic, que dona al text al qual delimita la funció (o el sentit) d'un «nivell superior en la capçalera de la teva pàgina».</p> + +<pre class="brush: html notranslate"><h1>This is a top level heading</h1></pre> + +<p>Per defecte, el navegador hi donarà una mida de cos de lletra gran perquè es vegi com un títol d’encapçalament (encara que amb CSS podries aplicar-hi estil perquè tingui l’aspecte que vulguis). I encara és més important el fet que el seu valor semàntic s’utilitzarà de diverses maneres, per exemple, l’empraran els motors de cerca i els lectors de pantalla (com hem esmentat abans).</p> + +<p>D'altra banda, tu pots fer que qualsevol element sembli un títol de nivell superior. Considera el codi següent:</p> + +<pre class="brush: html notranslate"><span style="font-size: 32px; margin: 21px 0;">Is this a top level heading?</span></pre> + +<p>Aquest és un element {{htmlelement("span")}}. No té semàntica. Es fa servir per a delimitar el contingut quan vols aplicar-hi CSS (o fer alguna cosa amb JavaScript) sense donar-hi cap significat addicional (en trobaràs més informació més endavant en el curs). Hi hem aplicat una mica de CSS perquè es vegi com un títol de nivell superior, però ja que no té valor semàntic, no aconseguirà cap dels beneficis addicionals que hem esmentat abans. És bo emprar l'element HTML que correspon a cada funció.</p> + +<h2 id="Llistes">Llistes</h2> + +<p>Ara centrarem la nostra atenció en les llistes. Les llistes estan per tot arreu en la vida, de la llista de la compra a la llista de carrers que seguim subconscientment per a arribar a casa cada dia, a les llistes d'instruccions que segueixes en aquests tutorials! Les llistes també estan pertot arreu al web, i n’hi ha tres tipus diferents dels quals ens volem ocupar.</p> + +<h3 id="No_ordenades">No ordenades</h3> + +<p>Les llistes no ordenades s'utilitzen per a marcar les llistes d'elements en què l'ordre dels elements no és important; com a exemple, farem una llista de la compra.</p> + +<pre class="notranslate">milk +eggs +bread +hummus</pre> + +<p>Totes les llistes no ordenades comencen amb un element {{htmlelement("ul")}} que delimita tots els elements de la llista:</p> + +<pre class="brush: html notranslate"><ul> +milk +eggs +bread +hummus +</ul></pre> + +<p>L'últim pas consisteix a delimitar cada element de la llista amb un element {{htmlelement("li")}} (element de llista):</p> + +<pre class="brush: html notranslate"><ul> + <li>milk</li> + <li>eggs</li> + <li>bread</li> + <li>hummus</li> +</ul></pre> + +<h4 id="Aprenentatge_actiu_etiquetatge_duna_llista_no_ordenada">Aprenentatge actiu: etiquetatge d'una llista no ordenada</h4> + +<p>Modifica l'exemple en viu a continuació per a crear la teva llista HTML no ordenada pròpia.</p> + +<div class="hidden"> +<h6 id="Playable_code_2">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 100px; width: 95%">milk +eggs +bread +hummus</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<ul>\n<li>milk</li>\n<li>eggs</li>\n<li>bread</li>\n<li>hummus</li>\n</ul>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_2', 700, 400) }}</p> + +<h3 id="Ordenades">Ordenades</h3> + +<p>Les llistes ordenades són llistes en què l'ordre dels elements és important. Com a exemple, prendrem un seguit d’instruccions per a arribar a una adreça:</p> + +<pre class="notranslate">Drive to the end of the road +Turn right +Go straight across the first two roundabouts +Turn left at the third roundabout +The school is on your right, 300 meters up the road</pre> + +<p>L'estructura de l’etiquetatge és la mateixa que per a les llistes no ordenades, excepte que cal delimitar els elements de la llista amb un element {{htmlelement("ol")}}, en lloc d’amb un element <code><ul></code>:</p> + +<pre class="brush: html notranslate"><ol> + <li>Drive to the end of the road</li> + <li>Turn right</li> + <li>Go straight across the first two roundabouts</li> + <li>Turn left at the third roundabout</li> + <li>The school is on your right, 300 meters up the road</li> +</ol></pre> + +<h4 id="Aprenentatge_actiu_etiquetatge_duna_llista_ordenada">Aprenentatge actiu: etiquetatge d'una llista ordenada</h4> + +<p>Modifica l'exemple en viu a continuació per a crear la teva llista HTML ordenada pròpia.</p> + +<div class="hidden"> +<h6 id="Playable_code_3">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%">Drive to the end of the road +Turn right +Go straight across the first two roundabouts +Turn left at the third roundabout +The school is on your right, 300 meters up the road</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<ol>\n<li>Drive to the end of the road</li>\n<li>Turn right</li>\n<li>Go straight across the first two roundabouts</li>\n<li>Turn left at the third roundabout</li>\n<li>The school is on your right, 300 meters up the road</li>\n</ol>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_3', 700, 500) }}</p> + +<h3 id="Aprenentatge_actiu_etiquetatge_de_la_teva_pàgina_de_receptes">Aprenentatge actiu: etiquetatge de la teva pàgina de receptes</h3> + +<p>En aquest punt de l'article ja tens tota la informació que necessites per a marcar el teu exemple d’una pàgina de receptes. Pots optar per desar una còpia local del nostre arxiu d'inici <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-start.html">text-start.html</a> i fer la feina allà, o fer-ho en l'exemple editable a continuació. Fer-ho de manera local probablement serà millor, perquè aleshores podràs desar la feina que hi facis, mentre que si treballes en l'exemple editable, la perdràs la vegada següent que obris la pàgina. Totes dues coses tenen pros i contres.</p> + +<div class="hidden"> +<h6 id="Playable_code_4">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%">Quick hummus recipe + + This recipe makes quick, tasty hummus, with no messing. It has been adapted from a number of different recipes that I have read over the years. + + Hummus is a delicious thick paste used heavily in Greek and Middle Eastern dishes. It is very tasty with salad, grilled meats and pitta breads. + + Ingredients + + 1 can (400g) of chick peas (garbanzo beans) + 175g of tahini + 6 sundried tomatoes + Half a red pepper + A pinch of cayenne pepper + 1 clove of garlic + A dash of olive oil + + Instructions + + Remove the skin from the garlic, and chop coarsely + Remove all the seeds and stalk from the pepper, and chop coarsely + Add all the ingredients into a food processor + Process all the ingredients into a paste + If you want a coarse "chunky" hummus, process it for a short time + If you want a smooth hummus, process it for a longer time + + For a different flavour, you could try blending in a small measure of lemon and coriander, chili pepper, lime and chipotle, harissa and mint, or spinach and feta cheese. Experiment and see what works for you. + + Storage + + Refrigerate the finished hummus in a sealed container. You should be able to use it for about a week after you've made it. If it starts to become fizzy, you should definitely discard it. + + Hummus is suitable for freezing; you should thaw it and use it within a couple of months.</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Quick hummus recipe</h1>\n\n<p>This recipe makes quick, tasty hummus, with no messing. It has been adapted from a number of different recipes that I have read over the years.</p>\n\n<p>Hummus is a delicious thick paste used heavily in Greek and Middle Eastern dishes. It is very tasty with salad, grilled meats and pitta breads.</p>\n\n<h2>Ingredients</h2>\n\n<ul>\n<li>1 can (400g) of chick peas (garbanzo beans)</li>\n<li>175g of tahini</li>\n<li>6 sundried tomatoes</li>\n<li>Half a red pepper</li>\n<li>A pinch of cayenne pepper</li>\n<li>1 clove of garlic</li>\n<li>A dash of olive oil</li>\n</ul>\n\n<h2>Instructions</h2>\n\n<ol>\n<li>Remove the skin from the garlic, and chop coarsely.</li>\n<li>Remove all the seeds and stalk from the pepper, and chop coarsely.</li>\n<li>Add all the ingredients into a food processor.</li>\n<li>Process all the ingredients into a paste.</li>\n<li>If you want a coarse "chunky" hummus, process it for a short time.</li>\n<li>If you want a smooth hummus, process it for a longer time.</li>\n</ol>\n\n<p>For a different flavour, you could try blending in a small measure of lemon and coriander, chili pepper, lime and chipotle, harissa and mint, or spinach and feta cheese. Experiment and see what works for you.</p>\n\n<h2>Storage</h2>\n\n<p>Refrigerate the finished hummus in a sealed container. You should be able to use it for about a week after you\'ve made it. If it starts to become fizzy, you should definitely discard it.</p>\n\n<p>Hummus is suitable for freezing; you should thaw it and use it within a couple of months.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_4', 700, 500) }}</p> + +<p>Si t’encalles, sempre es pot prémer el botó <em>Mostra la solució</em> o fer un cop d'ull al nostre exemple <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-complete.html">text-complete.html</a> que trobaràs en el nostre repositori de GitHub.</p> + +<h3 id="Llistes_imbricades">Llistes imbricades</h3> + +<p>És perfectament correcte imbricar una llista dins d'una altra. És possible que vulguis tenir subvinyetes sota d’una vinyeta de nivell superior. Considera la segona llista del nostre exemple recepta:</p> + +<pre class="brush: html notranslate"><ol> + <li>Remove the skin from the garlic, and chop coarsely.</li> + <li>Remove all the seeds and stalk from the pepper, and chop coarsely.</li> + <li>Add all the ingredients into a food processor.</li> + <li>Process all the ingredients into a paste.</li> + <li>If you want a coarse "chunky" humous, process it for a short time.</li> + <li>If you want a smooth humous, process it for a longer time.</li> +</ol> </pre> + +<p>Atès que les dues últimes vinyetes estan molt estretament relacionades amb l'anterior (es llegeixen com a subinstruccions o opcions que s'ajusten per sota d'aquesta vinyeta), podria tenir sentit imbricar-les en una llista desordenada pròpia i posar aquesta llista dins de la quarta vinyeta. Es veuria així:</p> + +<pre class="brush: html notranslate"><ol> + <li>Remove the skin from the garlic, and chop coarsely.</li> + <li>Remove all the seeds and stalk from the pepper, and chop coarsely.</li> + <li>Add all the ingredients into a food processor.</li> + <li>Process all the ingredients into a paste. + <ul> + <li>If you want a coarse "chunky" humous, process it for a short time.</li> + <li>If you want a smooth humous, process it for a longer time.</li> + </ul> + </li> +</ol></pre> + +<p>Torna a l'exemple de l'aprenentatge actiu anterior i modifica la segona llista de la mateixa manera.</p> + +<h2 id="Èmfasi_i_importància">Èmfasi i importància</h2> + +<p>En el llenguatge humà, sovint destaquem certes paraules per a alterar el significat d'una oració, i moltes vegades volem ressaltar certes paraules perquè són importants o perquè són diferents d'alguna manera. HTML proporciona diversos elements semàntics que permeten destacar el contingut textual amb aquesta finalitat, i en aquest apartat en veurem alguns dels més comuns.</p> + +<h3 id="Èmfasi">Èmfasi</h3> + +<p>Quan en el llenguatge parlat volem donar èmfasi, accentuem certes paraules de manera que n’alterem subtilment el significat. De la mateixa manera, en el llenguatge escrit tendim a posar en cursiva les paraules que volem emfatitzar. Per exemple, les dues frases següents tenen significats diferents.</p> + +<p>I am glad you weren't late.</p> + +<p>I am <em>glad</em> you weren't <em>late</em>.</p> + +<p>La primera frase expressa alleujament autèntic perquè la persona no arriba tard. Per contra, la segona sona amb sarcasme o agressivitat passiva, que expressa enuig perquè la persona arriba una mica tard.</p> + +<p>En HTML s'utilitza l'element {{htmlelement("em")}} (èmfasi) per marcar aquests casos. Alhora que fa que el document sigui més interessant de llegir, els lectors de pantalla reconeixen aquests elements i hi incorporen un to de veu parlat diferent. Els navegadors hi apliquen per defecte l’estil de lletra cursiva, però aquesta etiqueta no és l’única que podem usar per a donar un estil de lletra cursiva. Per a això també podem utilitzar un element {{htmlelement("span")}} i una mica de CSS, o potser un element {{htmlelement("i")}} (veure més endavant).</p> + +<pre class="brush: html notranslate"><p>I am <em>glad</em> you weren't <em>late</em>.</p></pre> + +<h3 id="Importància_forta">Importància forta</h3> + +<p>Per a destacar la importància de les paraules, en el llenguatge parlat tendim a accentuar-les, i en el llenguatge escrit les posem en lletra negreta. Per exemple:</p> + +<p>This liquid is <strong>highly toxic</strong>.</p> + +<p>I am counting on you. <strong>Do not</strong> be late!</p> + +<p>En HTML s'utilitza l'element {{htmlelement("strong")}} (importància forta) per a destacar aquests casos. A mes de fer el document més útil, de nou els lectors de pantalla reconeixen aquests elements i hi apliquen un to de veu diferent. L'estil per defecte que els navegadors apliquen a aquest text és la lletra negreta, però aquesta etiqueta no és l’única que podem usar per a aplicar l’estil de lletra negreta. Per a això també podem utilitzar un element {{htmlelement("span")}} i una mica de CSS, o potser un element {{htmlelement("b")}} (veure més endavant).</p> + +<pre class="brush: html notranslate"><p>This liquid is <strong>highly toxic</strong>.</p> + +<p>I am counting on you. <strong>Do not</strong> be late!</p></pre> + +<p>Pots imbricar etiquetes d’importància i èmfasi les unes dins de les altres, si ho vols:</p> + +<pre class="brush: html notranslate"><p>This liquid is <strong>highly toxic</strong> — +if you drink it, <strong>you may <em>die</em></strong>.</p></pre> + +<h3 id="Aprenentatge_actiu_ser_important!">Aprenentatge actiu: ser important!</h3> + +<p>En aquesta secció d'aprenentatge actiu, et proporcionem un exemple editable. Per a adquirir una mica de pràctica, afegeix èmfasi i importància a les paraules que penses que ho necessiten.</p> + +<div class="hidden"> +<h6 id="Playable_code_5">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%"><h1>Important notice</h1> +<p>On Sunday January 9th 2010, a gang of goths were + spotted stealing several garden gnomes from a + shopping center in downtown Milwaukee. They were + all wearing green jumpsuits and silly hats, and + seemed to be having a whale of a time. If anyone + has any information about this incident, please + contact the police now.</p></textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Important notice</h1>\n<p>On <strong>Sunday January 9th 2010</strong>, a gang of <em>goths</em> were spotted stealing <strong><em>several</em> garden gnomes</strong> from a shopping center in downtown <strong>Milwaukee</strong>. They were all wearing <em>green jumpsuits</em> and <em>silly hats</em>, and seemed to be having a whale of a time. If anyone has <strong>any</strong> information about this incident, please contact the police <strong>now</strong>.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_5', 700, 500) }}</p> + +<h3 id="Cursiva_negreta_subratllat..."><span class="short_text" id="result_box" lang="ca"><span>Cursiva,</span> <span>negreta</span><span>, subratllat</span><span>...</span></span></h3> + +<p>Els elements que hem tractat fins ara tenen una semàntica associada clara. La situació amb {{htmlelement("b")}}, {{htmlelement("i")}} i {{htmlelement("u")}} és una mica més complicada. Van arribar perquè la gent pogués escriure text en negreta, cursiva o subratllat en una època en què el CSS encara era poc compatible, o gens en absolut. Elements com aquests només afecten la presentació, però no la semàntica; es coneixen com <strong>elements de presentació</strong> i ja no s'haurien d'utilitzar perquè, com hem vist, la semàntica és molt important per a l'accessibilitat, el posicionament SEO, etc.</p> + +<p>HTML5 va redefinir les etiquetes <code><b></code>, <code><i></code> i <code><u></code> amb funcions semàntiques noves, que tanmateix resulten un xic confuses.</p> + +<p>Aquesta és la millor regla d'or: només és apropiat utilitzar <code><b></code>, <code><i></code> o <code><u></code> quan es vol transmetre un significat que tradicionalment s’ha expressat amb lletra negreta, cursiva o subratllat, si no hi ha cap element més adequat. No obstant això, sempre continua sent crític mantenir una mentalitat d'accessibilitat. El concepte de cursiva no és gaire útil per a les persones que utilitzen lectors de pantalla, ni per a les persones que utilitzen un sistema d'escriptura que no sigui l'alfabet llatí.</p> + +<ul> + <li>{{HTMLElement('i')}} s'utilitza per a transmetre un significat que tradicionalment s’ha transmès en lletra cursiva: paraules estrangeres, denominacions taxonòmiques, termes tècnics, un pensament...</li> + <li>{{HTMLElement('b')}} s'utilitza per a transmetre un significat que tradicionalment s’ha transmès en lletra negreta: paraules clau, noms de productes, frases importants...</li> + <li>{{HTMLElement('u')}} s'utilitza per a transmetre un significat que tradicionalment s’ha transmès en lletra subratllat: noms propis, faltes d'ortografia...</li> +</ul> + +<div class="note"> +<p>Una advertència amable sobre el subratllat: <strong>la gent associa en gran mesura el subratllat amb els hipervincles</strong>. Per tant, a la web, és millor posar en subratllat només els enllaços. Utilitza l'element <code><u></code> quan sigui semànticament apropiat, però considera l'ús de CSS per a canviar el valor per omissió del subratllat per alguna cosa més apropiada en la web. L’exemple següent il·lustra com es pot fer:</p> +</div> + +<pre class="brush: html notranslate"><!-- scientific names --> +<p> + The Ruby-throated Hummingbird (<i>Archilocus colubris</i>) + is the most common hummingbird in Eastern North America. +</p> + +<!-- foreign words --> +<p> + The menu was a sea of exotic words like <i lang="uk-latn">vatrushka</i>, + <i lang="id">nasi goreng</i> and <i lang="fr">soupe à l'oignon</i>. +</p> + +<!-- a known misspelling --> +<p> + Someday I'll learn how to <u>spel</u> better. +</p> + +<!-- Highlight keywords in a set of instructions --> +<ol> + <li> + <b>Slice</b> two pieces of bread off the loaf. + </li> + <li> + <b>Insert</b> a tomato slice and a leaf of + lettuce between the slices of bread. + </li> +</ol></pre> + +<h2 id="Resum">Resum</h2> + +<p>Això és tot per ara! Aquest article t’hauria d’haver donat una idea prou bona de com començar a marcar text en HTML i presentat alguns dels elements més importants en aquest àmbit. Hi ha molts més elements semàntics per a exposar en aquest àmbit, i en veurem molts més en el nostre article «Format de text avançat», més endavant en el curs. En el proper article, veurem amb detall com crear hipervincles, possiblement l'element més important en la web.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/format_de_text_avançat/index.html b/files/ca/learn/html/introducció_al_html/format_de_text_avançat/index.html new file mode 100644 index 0000000000..8163f0b4c3 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/format_de_text_avançat/index.html @@ -0,0 +1,677 @@ +--- +title: Format de text avançat +slug: Learn/HTML/Introducció_al_HTML/Format_de_text_avançat +tags: + - Beginner + - CodingScripting + - Guide + - HTML + - Learn + - Text + - abbreviation + - description list + - quote + - semantic +translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Hi ha molts altres elements en HTML per a la formatació del text, que no hem vist en l'article sobre els <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">elements bàsics de text HTML</a>. Els elements que es descriuen en aquest article són menys coneguts, però són útils de conèixer (i això no és encara en absolut una llista completa). Aquí aprendreu sobre l’etiquetatge de les citacions, de les llistes de descripció, del codi d'ordinador i altres textos relacionats, dels subíndexs i superíndexs, de la informació de contacte, i de molt més.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Familiarització amb els elements bàsics de l’HTML, com es tracten en <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">iniciació a l’HTML</a>. Aplicació de format a textos amb HTML, com s'explica en els <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Fonaments_de_text_HTML">Elements bàsics de text en HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td><span id="result_box" lang="ca"><span class="alt-edited">Aprendre a utilitzar elements HTML menys coneguts per a etiquetar característiques semàntiques avançades.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Llistes_de_descripció">Llistes de descripció</h2> + +<p>En els elements bàsics de text en HTML, hem fet camí pels <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Fonaments_de_text_HTML#Llistes">elements d’etiquetatge bàsics de les llistes</a> en HTML, però no hem esmentat un tercer tipus de llistes amb que et pots topar de tant en tant, les llistes de descripció. El propòsit d'aquestes llistes és etiquetar un conjunt d'elements i les descripcions associades a aquests, com ara termes i definicions, o preguntes i respostes. Vegem un exemple d'un conjunt de termes i definicions:</p> + +<pre class="notranslate">soliloquy +In drama, where a character speaks to themselves, representing their inner thoughts or feelings and in the process relaying them to the audience (but not to other characters.) +monologue +In drama, where a character speaks their thoughts out loud to share them with the audience and any other characters present. +aside +In drama, where a character shares a comment only with the audience for humorous or dramatic effect. This is usually a feeling, thought or piece of addtional background information</pre> + +<p>Les llistes de descripció utilitzen un etiquetatge diferent dels altres tipus de llistes, l’element {{htmlelement("dl")}}; a més, cada terme es delimita amb un element {{htmlelement("dt")}} (descripció del terme), i cada descripció es delimita amb un element {{htmlelement("dd")}} (definició de la descripció). Acabem d’etiquetar el nostre exemple:</p> + +<pre class="brush: html notranslate"><dl> + <dt>soliloquy</dt> + <dd>In drama, where a character speaks to themselves, representing their inner thoughts or feelings and in the process relaying them to the audience (but not to other characters.)</dd> + <dt>monologue</dt> + <dd>In drama, where a character speaks their thoughts out loud to share them with the audience and any other characters present.</dd> + <dt>aside</dt> + <dd>In drama, where a character shares a comment only with the audience for humorous or dramatic effect. This is usually a feeling, thought or piece of addtional background information.</dd> +</dl></pre> + +<p>Els estils per defecte del navegador mostren els termes de les llistes de descripció sagnats en certa mesura respecte de les descripcions. Els estils de MDN segueixen aquesta convenció de bastant a prop, però a més, destaquen els termes amb lletra negreta.</p> + +<dl> + <dt>soliloquy</dt> + <dd>In drama, where a character speaks to themselves, representing their inner thoughts or feelings and in the process relaying them to the audience (but not to other characters.)</dd> + <dt>monologue</dt> + <dd>In drama, where a character speaks their thoughts out loud to share them with the audience and any other characters present.</dd> + <dt>aside</dt> + <dd>In drama, where a character shares a comment only with the audience for humorous or dramatic effect. This is usually a feeling, thought or piece of addtional background information.</dd> +</dl> + +<p>Observa que pots tenir múltiples descripcions per a un mateix terme; per exemple:</p> + +<pre class="brush: html notranslate"><dl> + <dt>aside</dt> + <dd>In drama, where a character shares a comment only with the audience for humorous or dramatic effect. This is usually a feeling, thought, or piece of additional background information.</dd> + <dd>In writing, a section of content that is related to the current topic, but doesn't fit directly into the main flow of content so is presented nearby (often in a box off to the side.)</dd> +</dl></pre> + +<dl> + <dt>aside</dt> + <dd>In drama, where a character shares a comment only with the audience for humorous or dramatic effect. This is usually a feeling, thought or piece of addtional background information.</dd> + <dd>In writing, a section of content that is related to the current topic, but doesn't fit directly into the main flow of content so is presented nearby (often in a box off to the side.)</dd> +</dl> + +<h3 id="Aprenentatge_actiu_etiquetatge_dun_conjunt_de_definicions">Aprenentatge actiu: etiquetatge d'un conjunt de definicions</h3> + +<p>És l’hora de posar a prova la teva destresa amb les llistes de descripció; afegeix elements al text sense format en el camp d'entrada perquè aparegui com una llista de descripció en el camp de sortida. Si vols, pots fer servir termes i descripcions propis..</p> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó de <em>Reinicia</em>. Si t’encalles, fes clic al botó, <em>Mostra la solució</em> per veure la resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 100px; width: 95%"> +Bacon +The glue that binds the world together. +Eggs +The glue that binds the cake together. +Coffee +The drink that gets the world running in the morning. +A light brown color.</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">const textarea = document.getElementById('code'); +const reset = document.getElementById('reset'); +const solution = document.getElementById('solution'); +const output = document.querySelector('.output'); +const code = textarea.value; +const userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +const htmlSolution = '<dl>\n <dt>Bacon</dt>\n <dd>The glue that binds the world together.</dd>\n <dt>Eggs</dt>\n <dd>The glue that binds the cake together.</dd>\n <dt>Coffee</dt>\n <dd>The drink that gets the world running in the morning.</dd>\n <dd>A light brown color.</dd>\n</dl>'; +const solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + const scrollPos = textarea.scrollTop; + const caretPos = textarea.selectionStart; + + const front = (textarea.value).substring(0, caretPos); + const back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 350, "", "", "hide-codepen-jsfiddle") }}</p> + +<h2 id="Citacions">Citacions</h2> + +<p>L'HTML també disposa de característiques per a l’etiquetatge de cites; quin element s'utilitza depèn de si s’etiqueta en el nivell de bloc o es fa en el nivell de línia.</p> + +<h3 id="Elements_de_bloc_de_citació_blockquotes">Elements de bloc de citació (<em>blockquotes</em>)</h3> + +<p>Per a indicar que una secció de continguts de nivell de bloc (un paràgraf, diversos paràgrafs, una llista, etc.) se cita des d'un altre lloc l’has d’etiquetar amb un element {{HTMLElement("blockquote")}}, i has d’incloure en un atribut {{htmlattrxref("cite","blockquote")}} una URL que apunti cap a la font de la citació. Per exemple, la línia de codi següent es pren de la pàgina MDN: «L'element <code><blockquote></code>»:</p> + +<pre class="brush: html notranslate"><p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block +Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p></pre> + +<p>Per convertir això en una citació de bloc, has de fer això:</p> + +<pre class="brush: html notranslate"><blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote"> + <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block + Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p> +</blockquote></pre> + +<p>L’estil per defecte del navegador mostra això com un paràgraf sagnat per indicar que es tracta d'una citació; MDN fa això, però també hi afegeix una mica més d'estil:</p> + +<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote"> +<p>L'<strong>element HTML <code><blockquote></code></strong> (<em>o element de bloc de citació HTML</em>) indica que el text associat és una citació extensa.</p> +</blockquote> + +<h3 id="Elements_de_línia_de_citació">Elements de línia de citació</h3> + +<p>Els elements de línia de citació funcionen exactament de la mateixa manera, només que utilitzen l'element {{htmlelement("q")}}. Per exemple, l’etiquetatge que tens a continuació inclou una citació de la pàgina de MDN sobre <code><q></code>:</p> + +<pre class="brush: html notranslate"><p>The quote element — <code>&lt;q&gt;</code> — is <q cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended +for short quotations that don't require paragraph breaks.</q></p></pre> + +<p>L'estil per defecte del navegador mostra aquest text com un element normal posat entre cometes per a indicar que és una citació, com això:</p> + +<p>The quote element — <code><q></code> — is <q cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended for short quotations that don't require paragraph breaks.</q></p> + +<h3 id="Citacions_2">Citacions</h3> + +<p>El contingut de l'atribut {{htmlattrxref("cite","blockquote")}} sembla útil, però per desgràcia als navegadors, als lectors de pantalla, etc., no hi fan gaire. No hi ha manera d'aconseguir que el navegador mostri el contingut de <code>cite</code> sense necessitat d'escriure una solució pròpia amb JavaScript o CSS. Si vols que la font de la citació estigui disponible a la pàgina, la millor manera és etiquetar-la amb l'element {{HTMLElement("cite")}} al costat de l'element <code>quote</code>. Això serveix en realitat per a incloure el nom de la font de la citació, és a dir, el nom del llibre o el de la persona de qui és el text que se cita; però no hi ha cap raó per la qual el text no es pugui associar d'alguna manera la font de la cita dins de <code><cite></code>:</p> + +<pre class="brush: html notranslate"><p>According to the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote"> +<cite>MDN blockquote page</cite></a>: +</p> + +<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote"> + <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block + Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p> +</blockquote> + +<p>The quote element — <code>&lt;q&gt;</code> — is <q cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended +for short quotations that don't require paragraph breaks.</q> -- <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q"> +<cite>MDN q page</cite></a>.</p></pre> + +<p>Les citacions tenen l'estil en cursiva per defecte.</p> + +<p>{{EmbedLiveSample('Citations', '100%', '179px', '', '', 'hide-codepen-jsfiddle')}}</p> + +<h3 id="Aprenentatge_actiu_Qui_ha_dit_això">Aprenentatge actiu: Qui ha dit això?</h3> + +<p>Temps per a un altre exemple d'aprenentatge actiu! En aquest exemple ens agradaria:</p> + +<ol> + <li>Convertir el paràgraf del mig en un bloc de citació que inclogui un atribut <code>cite</code>.</li> + <li>Convertir una part del tercer paràgraf en una citació de línea que inclogui un atribut <code>cite</code>.</li> + <li>Incloure un element <code><cite></code> per a cada citació</li> +</ol> + +<p>Cerca a Internet per trobar fonts de citacions apropiades.</p> + +<p>Si t’equivoques, sempre pots tornar a l’inici amb el botó de <em>Reinicia</em>. Si t’encalles, fes clic al botó <em>Mostra la solució</em> per veure la resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code_2">Playable code 2</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 150px; width: 95%"> +<p>Hello and welcome to my motivation page. As Confucius' quotes site says:</p> +<p>It does not matter how slowly you go as long as you do not stop.</p> +<p>I also love the concept of positive thinking, and The Need To Eliminate Negative Self Talk (as mentioned in Affirmations for Positive Thinking.)</p> +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">const textarea = document.getElementById('code'); +const reset = document.getElementById('reset'); +const solution = document.getElementById('solution'); +const output = document.querySelector('.output'); +const code = textarea.value; +const userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +const htmlSolution = '<p>Hello and welcome to my motivation page. As <a href="http://www.brainyquote.com/quotes/authors/c/confucius.html"><cite>Confucius\' quotes site</cite></a> says:</p>\n\n<blockquote cite="http://www.brainyquote.com/quotes/authors/c/confucius.html">\n <p>It does not matter how slowly you go as long as you do not stop.</p>\n</blockquote>\n\n<p>I also love the concept of positive thinking, and <q cite="http://www.affirmationsforpositivethinking.com">The Need To Eliminate Negative Self Talk</q> (as mentioned in <a href="http://www.affirmationsforpositivethinking.com"><cite>Affirmations for Positive Thinking</cite></a>.)</p>'; +const solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + const scrollPos = textarea.scrollTop; + const caretPos = textarea.selectionStart; + + const front = (textarea.value).substring(0, caretPos); + const back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_2', 700, 500) }}</p> + +<h2 id="Abreviatures">Abreviatures</h2> + +<p>Un altre element força comú que et trobes quan et passeges per la web és {{HTMLElement ("abbr")}}. Aquesta etiqueta serveix per a delimitar una abreviatura o un acrònim i proporcionar el desenvolupament complet del terme (que s’inclou dins d'un atribut {{htmlattrxref("title")}}). Vegem-ne un parell d'exemples:</p> + +<pre class="notranslate"><p>We use <abbr title="Hypertext Markup Language">HTML</abbr> to structure our web documents.</p> + +<p>I think <abbr title="Reverend">Rev.</abbr> Green did it in the kitchen with the chainsaw.</p></pre> + +<p>Ve a ser una cosa com això (el desenvolupament apareix en un indicador de funció quan passes el cursor per sobre del terme):</p> + +<p>We use <abbr title="Hypertext Markup Language">HTML</abbr> to structure our web documents.</p> + +<p>I think <abbr title="Reverend">Rev.</abbr> Green did it in the kitchen with the chainsaw.</p> + +<div class="note"> +<p><strong>Nota</strong>: Hi ha un altre element, {{HTMLElement ("acronym")}}, que bàsicament fa el mateix que <code><abbr></code> i que estava destinat específicament als acrònims, en lloc de les abreviatures, però que ha caigut en desús; tampoc era compatible amb tots els navegadors, com ho és <code><abbr></code>, i com que les dues etiquetes tenen una funció tan similar, es va considerar inútil tenir-les totes dues. Per tant, fes servir només <code><abbr></code>.</p> +</div> + +<h3 id="Aprenentatge_actiu_etiquetatge_duna_abreviatura">Aprenentatge actiu: etiquetatge d'una abreviatura</h3> + +<p>Per a aquesta senzilla tasca d'aprenentatge actiu, només et proposem de fer l’etiquetatge d'una abreviatura. Pots utilitzar el nostre exemple a continuació, o substituir-lo per un de la teva elecció. </p> + +<div class="hidden"> +<h6 id="Playable_code_3">Playable code 3</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 50px; width: 95%"> +<p>NASA sure does some exciting work.</p> +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">const textarea = document.getElementById('code'); +const reset = document.getElementById('reset'); +const solution = document.getElementById('solution'); +const output = document.querySelector('.output'); +const code = textarea.value; +const userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +const htmlSolution = '<p><abbr title="National Aeronautics and Space Administration">NASA</abbr> sure does some exciting work.</p>'; +const solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + const scrollPos = textarea.scrollTop; + const caretPos = textarea.selectionStart; + + const front = (textarea.value).substring(0, caretPos); + const back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_3', 700, 350) }}</p> + +<h2 id="Etiquetatge_de_les_dades_de_contacte">Etiquetatge de les dades de contacte</h2> + +<p>HTML té un element per a etiquetar les teves dades de contacte: {{htmlelement("address")}}. Aquesta etiqueta senzillament delimita de les dades de contacte; per exemple:</p> + +<pre class="brush: html notranslate"><address> + <p>Chris Mills, Manchester, The Grim North, UK</p> +</address></pre> + +<p>També s'hi pot incloure marcatge més comples, i d'altres formes d'informació de contacte, com ara:</p> + +<pre class="brush: html notranslate line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>address</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span> + Chris Mills<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> + Manchester<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> + The Grim North<span class="tag token"><span class="tag token"><span class="punctuation token"><</span>br</span><span class="punctuation token">></span></span> + UK + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> + + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>ul</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>li</span><span class="punctuation token">></span></span>Tel: 01234 567 890<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>li</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>li</span><span class="punctuation token">></span></span>Email: me@grim-north.co.uk<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>li</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"></</span>ul</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>address</span><span class="punctuation token">></span></span></code></pre> + +<p><span class="tag token"><span class="punctuation token">Fixeu-vos que una cosa com la següent també seria vàlida, si la pàgina enllaçada contingués informació de contacte:</span></span></p> + +<pre class="brush: html notranslate line-numbers language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>address</span><span class="punctuation token">></span></span> + <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span>Page written by <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>../authors/chris-mills/<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>Chris Mills<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span>.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span> +<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>address</span><span class="punctuation token">></span></span></code></pre> + +<h2 id="Superíndex_i_subíndex">Superíndex i subíndex</h2> + +<p>De tant en tant hauràs d’utilitzar superíndex i subíndex per a etiquetar correctament elements com ara dates, fórmules químiques o equacions matemàtiques. Els elements {{htmlelement("sup")}} i {{htmlelement("sub")}} gestionen aquesta feina. Per exemple:</p> + +<pre class="brush: html notranslate"><p>My birthday is on the 25<sup>th</sup> of May 2001.</p> +<p>Caffiene's chemical formula is C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>.</p> +<p>If x<sup>2</sup> is 9, x must equal 3 or -3.</p></pre> + +<p>La sortida d'aquest codi és com això:</p> + +<p>My birthday is on the 25<sup>th</sup> of May 2001.</p> + +<p>Caffeine's chemical formula is C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>.</p> + +<p>If x<sup>2</sup> is 9, x must equal 3 or -3.</p> + +<h2 id="Representar_codi_informàtic">Representar codi informàtic</h2> + +<p>Hi ha una sèrie d'elements disponibles per a l’etiquetatge de codi informàtic:</p> + +<ul> + <li>{{htmlelement("code")}}: per a etiquetar peces genèriques de codi informàtic.</li> + <li>{{htmlelement("pre")}}: per a etiquetar blocs de text d'amplada fixa, en què es conserven els espais en blanc (en general, blocs de codi)</li> + <li>{{htmlelement("var")}}: per a etiquetar específicament els noms de variables.</li> + <li>{{htmlelement("kbd")}}: per a etiquetar entrades de teclat (i altres tipus d’entrades) a l'ordinador.</li> + <li>{{htmlelement("samp")}}: per a etiquetar la sortida d'un programa d'ordinador.</li> +</ul> + +<p>Vegem-ne uns exemples. Juga amb aquests exemples (fes una còpia del nostre arxiu d'exemple <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/advanced-text-formatting/other-semantics.html">other-semantics.html</a>):</p> + +<pre class="brush: html notranslate"><pre><code>var para = document.querySelector('p'); + +para.onclick = function() { + alert('Owww, stop poking me!'); +}</code></pre> + +<p>You shouldn't use presentational elements like <code>&lt;font&gt;</code> and <code>&lt;center&gt;</code>.</p> + +<p>In the above JavaScript example, <var>para</var> represents a paragraph element.</p> + + +<p>Select all the text with <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>A</kbd>.</p> + +<pre>$ <kbd>ping mozilla.org</kbd> +<samp>PING mozilla.org (63.245.215.20): 56 data bytes +64 bytes from 63.245.215.20: icmp_seq=0 ttl=40 time=158.233 ms</samp></pre></pre> + +<p>El codi anterior es veuria així:</p> + +<p>{{ EmbedLiveSample('Representar_codi_informàtic','100%',300) }}</p> + +<h2 id="Etiquetatge_dhores_i_dates">Etiquetatge d'hores i dates</h2> + +<p>HTML també proporciona l'element {{htmlelement("time")}} per a etiquetar les hores i les dates en un format llegible per la màquina. Per exemple:</p> + +<pre class="brush: html notranslate"><<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-01-20<span class="pl-pds">"</span></span>>20 January 2016</<span class="pl-ent">time</span>></pre> + +<p>Per què és això útil? Bé, hi ha moltes maneres diferents d’escriure les dates. La data anterior es podria escriure de totes aquestes maneres:</p> + +<ul> + <li>20 January 2016</li> + <li>20th January 2016</li> + <li>Jan 20 2016</li> + <li>20/06/16</li> + <li>06/20/16</li> + <li>The 20th of next month</li> + <li><span lang="fr">20e Janvier 2016</span></li> + <li><span lang="ja">2016年1月20日</span></li> + <li><span lang="ja">And so on</span></li> +</ul> + +<p>Però els ordinadors no reconeixen fàcilment aquesta diversitat de formes. Si vols agafar automàticament les dates de tots els esdeveniments en una pàgina i inserir-los en un calendari, l'element {{htmlelement("time")}} et permet adjuntar una hora/data que una màquina podrà llegir inequívocament .</p> + +<p>L'exemple bàsic anterior proporciona una simple data llegible per una màquina, però hi ha moltes altres opcions que són possibles, per exemple:</p> + +<pre class="brush: html notranslate"><!-- Standard simple date --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-01-20<span class="pl-pds">"</span></span>>20 January 2016</<span class="pl-ent">time</span>> +<!-- Just year and month --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-01<span class="pl-pds">"</span></span>>January 2016</<span class="pl-ent">time</span>> +<!-- Just month and day --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>01-20<span class="pl-pds">"</span></span>>20 January</<span class="pl-ent">time</span>> +<!-- Just time, hours and minutes --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>19:30<span class="pl-pds">"</span></span>>19:30</<span class="pl-ent">time</span>> +<!-- You can do seconds and milliseconds too! --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span></span>19:30:01.856<span class="pl-s"><span class="pl-pds">"</span></span>>19:30:01.856</<span class="pl-ent">time</span>> +<!-- Date and time --> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-01-20T19:30<span class="pl-pds">"</span></span>>7.30pm, 20 January 2016</<span class="pl-ent">time</span>> +<!-- Date and time with timezone offset--> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-01-20T19:30<span class="pl-pds">+01:00"</span></span>>7.30pm, 20 January 2016 is 8.30pm in France</<span class="pl-ent">time</span>> +<!-- Calling out a specific week number--> +<<span class="pl-ent">time</span> <span class="pl-e">datetime</span>=<span class="pl-s"><span class="pl-pds">"</span>2016-W04<span class="pl-pds">"</span></span>>The fourth week of 2016</<span class="pl-ent">time</span>></pre> + +<h2 id="Resum">Resum</h2> + +<p>Això marca el final del nostre estudi de la semàntica de text HTML. Tingues present que el que has vist durant aquest curs no és una llista exhaustiva dels elements de text HTML; només hem volgut exposar els elements essencials i alguns dels més comuns que et pots trobar, o si més no, que puguis trobar prou interessants. Per trobar més elements HTML pel camí, pots fer una ullada a la nostra <a href="/ca/docs/Web/HTML/Element">referència d'elements HTML</a> (la secció de la <a href="https://wiki.developer.mozilla.org/ca/docs/Web/HTML/Element#Sem%C3%A0ntica_de_text_en_l%C3%ADnia">semàntica de text en línia</a> seria un bon lloc per on començar). En l’article següent veurem els diversos elements HTML que s'usen per a estructurar les diferents parts d'un document HTML.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/getting_started/index.html b/files/ca/learn/html/introducció_al_html/getting_started/index.html new file mode 100644 index 0000000000..03b70effc6 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/getting_started/index.html @@ -0,0 +1,735 @@ +--- +title: Inici en HTML +slug: Learn/HTML/Introducció_al_HTML/Getting_started +tags: + - Attribute + - Beginner + - CodingScripting + - Comment + - Element + - Guide + - HTML + - entity reference + - whitespace +translation_of: Learn/HTML/Introduction_to_HTML/Getting_started +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">En aquest article exposarem els fonaments bàsics de l'HTML, perquè pugueu començar. Definirem els elements, els atributs i tots els altres termes importants que podeu haver sentit, i quina funció compleixen en el llenguatge. També us mostrarem com s'estructura un element HTML, com s'estructura una pàgina HTML típica, i explicarem altres característiques bàsiques importants del llenguatge. Pel camí, jugarem una mica amb l'HTML perquè mantinguis l'interès!</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">programari bàsic instal·lat</a> i coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb arxius</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Familiaritzar-se amb el llenguatge HTML i obtenir una mica de pràctica escrivint elements HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_HTML">Què és HTML?</h2> + +<p>{{glossary("HTML")}} (HyperText Markup Language) no és un llenguatge de programació; és un <em>llenguatge de marcat</em>, que serveix per dir al teu navegador la manera d'estructurar les pàgines web que visites. Pot ser tan complicat o tan simple com el desenvolupador web desitgi que sigui. HTML consisteix en un seguit d'{{glossary("Element", "elements")}}, que s'utilitzen per tancar, delimitar o marcar diferents parts del contingut per fer que aparegui o actuï d'una manera determinada . Les {{glossary("Tag", "etiquetes")}} que el delimiten poden convertir un petit fragment de contingut en un enllaç que connecti amb una altra pàgina en la web, per a posar paraules en cursiva, i així successivament. Per exemple, prenguem la següent línia de contingut:</p> + +<pre class="notranslate">My cat is very grumpy</pre> + +<p>Si volem que la línia es mantingui independent, podem especificar que és un paràgraf delimitant-la amb un element d'etiqueta de paràgraf ({{htmlelement ("p")}}):</p> + +<pre class="brush: html notranslate"><p>My cat is very grumpy</p></pre> + +<h2 id="Anatomia_dun_element_HTML"><span id="result_box" lang="ca"><span>Anatomia</span> <span>d'un</span> <span>element</span> <span>HTML</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Explorem una mica el nostre element paràgraf fins una mica més enllà</span>:</span></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9347/grumpy-cat-small.png" style="display: block; height: 255px; margin: 0px auto; width: 821px;"></p> + +<p>Les parts principals del nostre element són:</p> + +<ol> + <li><strong>L'etiqueta d'obertura</strong>: Consisteix en el nom de l'element (en aquest cas, p), delimitat amb <strong>claus angulars</strong> d'obertura i tancament. Això indica on comença l'element, o comença a tenir efecte; en aquest cas és al començament del paràgraf.</li> + <li><strong>L'etiqueta de tancament</strong>: És la mateixa que l'etiqueta d'obertura, excepte que inclou una barra inclinada abans del nom de l'element. Això indica on acaba l'element; en aquest cas és al final del paràgraf. El fet de no incloure una etiqueta de tancament és un error de principiant comú, i pot conduir a resultats estranys.</li> + <li><strong>El contingut</strong>: És el contingut de l'element, que en aquest cas és només text.</li> +</ol> + +<p>L'element és l'etiqueta d'obertura, seguida del contingut, seguida de l'etiqueta de tancament.</p> + +<h3 id="Aprenentatge_actiu_crea_el_teu_primer_element_HTML">Aprenentatge actiu: crea el teu primer element HTML</h3> + +<p>Edita la línia següent en l'àrea d'<em>entrada</em> delimitant-la amb les etiquetes <code><em></code> i <code></em></code> (posa <code><em></code> abans d'<em>obrir l'element</em>, i <code></em></code> després, per <em>tancar l'element</em>); això hauria de donar una línia en cursiva! Pots veure els canvis actualitzats en viu en l'<em>àrea de sortida</em>.</p> + +<p>Si t’equivoques sempre pots tornar al codi anterior amb el botó de <em>Reinicia</em>. Si et quedes realment encallat, fes clic al botó <em>Mostra la solució</em> per veure la resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="playable-code" style="min-height: 100px;width: 95%"> + This is my text. +</textarea> + +<div class="controls"> + <input id="reset" type="button" value="Reset" /> + <input id="solution" type="button" value="Show solution" /> +</div> +</pre> + +<pre class="brush: css notranslate">html { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<em>This is my text.</em>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 300) }}</p> + +<h3 id="Niar_elements">Niar elements</h3> + +<p>També pots posar elements dins d'altres elements; això s’anomena <strong>imbricar</strong>. Si volem afirmar que el nostre gat està de <strong>molt</strong> mal humor, podem delimitar la paraula «molt» amb un element {{htmlelement("strong")}}, que significa que la paraula es destaca amb força:</p> + +<pre class="brush: html notranslate"><p>El meu gast està de <strong>molt</strong> mal humor.</p></pre> + +<p>No obstant això, us heu d’assegurar que els elements estan correctament imbricats: en l'exemple anterior en primer lloc hem obert l'element <code>p</code> i a continuació l'element <code>strong</code>; per tant, hem de tancar l'element <code>strong</code> en primer lloc i l’element <code>p</code> a continuació. Fer el següent és incorrecte:</p> + +<pre class="example-bad brush: html notranslate"><p>El meu gat està <strong>de molt mal humor.</p></strong></pre> + +<p><strong>Els elements s’han d’obrir obrir i tancar correctament de manera que estiguin clarament dins o fora l’un de l'altre</strong>. Si se superposen, com a dalt, llavors el teu navegador web tractarà de fer l’estimació que li sembli més correcta del que vols dir, i així es poden obtenir resultats inesperats.</p> + +<h3 id="Elements_de_bloc_i_elements_de_línia">Elements de bloc i elements de línia</h3> + +<p>Hi ha dues categories importants d'elements en HTML, que has de conèixer: els elements de bloc i els elements de línia.</p> + +<ul> + <li>Els elements de bloc formen un bloc visible en una pàgina; apareixen en una línia nova després de qualsevol contingut que en vagi davant, i qualsevol contingut que hi vagi després també apareixerà en una línia nova. Els elements de bloc tendeixen a ser elements estructurals de la pàgina. Representen, per exemple, paràgrafs, llistes, menús de navegació, peus de pàgina, etc. Un element de bloc no es pot imbricar dins d'un element de línia, però pot estar imbricat dintre d'un altre element de bloc.</li> + <li>Els elements de línia estan continguts dins d’elements de nivell de bloc i només delimiten petites parts del contingut del document, no paràgrafs sencers ni agrupacions de contingut. Un element de línia no fa aparèixer una línia nova en el document: normalment apareix dins d'un paràgraf de text, per exemple, un element {{htmlelement("a")}} (hipervincle), o elements d'èmfasi com {{htmlelement("em")}} o {{htmlelement("strong")}}.</li> +</ul> + +<p>Prenguem <span>l'exemple següent:</span></p> + +<pre class="brush: html notranslate"><em>first</em><em>second</em><em>third</em> + +<p>fourth</p><p>fifth</p><p>sixth</p> +</pre> + +<p>{{htmlelement("em")}} és un element de línia. Així, com es pot veure a continuació, els tres primers elements són a la mateixa línia l'un i l'altre, sense cap espai entre ells. D'altra banda, {{htmlelement("p")}} és un element de bloc, de manera que cada element apareix en una línia nova, amb un espai per sobre i per sota de cada un (L'espaiat es deu a l'<a href="/ca/docs/Learn/CSS/First_steps">aplicació d’estil CSS</a> que el navegador aplica als paràgrafs per defecte).</p> + +<p>{{ EmbedLiveSample('Elements_de_bloc_i_elements_de_línia', 700, 200) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: HTML5 va redefinir les categories d'elements en HTML5: vegeu <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/section-index.html#element-content-categories">Categories d'elements de contingut</a>. Si bé aquestes definicions són més precises i menys ambigües que les anteriors, són molt més complicades d'entendre que «de bloc» i «de línia», per la qual cosa ens quedarem amb aquestes al llarg d'aquest article.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Podeu trobar pàgines de referència útils que inclouen llistes d'elements de bloc i elements de línia; vegeu els <a href="/ca/docs/Web/HTML/Block-level_elements">elements de nivell de bloc</a> i els <a href="/ca/docs/Web/HTML/Elements_en_línia">elements de línia</a>.</p> +</div> + +<h3 id="Elements_buits">Elements buits</h3> + +<p>No tots els elements segueixen el patró anterior d'etiqueta d'obertura, contingut i etiqueta de tancament. Alguns elements consisteixen en una sola etiqueta, que normalment s'utilitza per inserir/incrustar alguna cosa en el document en el lloc on s'inclou. Per exemple, l'element {{htmlelement("img")}} insereix una imatge en una pàgina en la posició en què està inclosa:</p> + +<pre class="brush: html notranslate"><img src="https://raw.githubusercontent.com/mdn/beginner-html-site/gh-pages/images/firefox-icon.png"></pre> + +<p>Aquesta sortida mostraria el següent a la vostra pàgina:</p> + +<p>{{ EmbedLiveSample('Elements_buits', 700, 300) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span>Els</span> <span>elements</span> <span>buits</span> </span> també se'ls anomena de vegades <span lang="ca"> <em> (void elements</em>).</span></p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Els elements també poden tenir atributs, que tenen presenten l’aspecte següent:</p> + +<p><img alt='&lt;p class="editor-note">My cat is very grumpy&lt;/p>' src="https://mdn.mozillademos.org/files/9345/grumpy-cat-attribute-small.png" style="display: block; height: 156px; margin: 0px auto; width: 1287px;"></p> + +<p>Els atributs contenen informació addicional sobre l'element que no vols que aparegui com a contingut. En aquest cas, l'atribut <code>class</code> permet donar a l'element un nom d'identificació que pot ser posteriorment utilitzat per l'element destí amb informació d'estil i altres coses.</p> + +<p>Un atribut ha de tenir:</p> + +<ol> + <li>Un espai entre ell i el nom de l'element (o l'atribut anterior, si l'element ja té un o més atributs.)</li> + <li>El nom de l'atribut, seguit d'un signe igual.</li> + <li>Un valor d'atribut, amb signes d'obertura i de tancament de cometes que el delimiten</li> +</ol> + +<h3 id="Aprenentatge_actiu_Afegir_atributs_a_un_element">Aprenentatge actiu: Afegir atributs a un element</h3> + +<p>Un altre exemple d'un element és {{HTMLElement ("a")}}; ve d’<em>anchor</em> i delimita la part del text que és un enllaç. Pot prendre un seguit d'atributs, però dos són els següents:</p> + +<ul> + <li><code>href</code>: Aquest atribut especifica, com a valor, l'adreça web que desitgeu que l'enllaç apunti; on el navegador es desplaçarà quan es fa clic a l'enllaç. Per exemple, <code>href="https://www.mozilla.org/"</code>.</li> + <li><code>title</code>: L'atribut <code>title</code> especifica informació addicional sobre l'enllaç, com quina és la pàgina que estem vinculant. Per exemple, <code>title="La pàgina web de Mozilla"</code>. Això apareixerà com un "tooltip" quan planegem per damunt.</li> + <li><code>target</code>: L'atribut <code>target</code> especifica el context de navegació que es farà servir per mostrar l'enllaç. Per exemple, <code>target="_blank"</code> mostrarà l'enllaç en una pestanya nova. Si vols que l'enllaç es mostri a la pestanya actual, omet l'atribut.</li> +</ul> + +<p>Edita la línia següent en l'àrea <em>Input</em> per convertir-la en un enllaç al teu lloc web favorit.</p> + +<ol> + <li>Afegeix l'element <code><a></code>.</li> + <li>Afegeix l'atribut <code>href</code>, i seguidament l'atribut <code>title</code>.</li> + <li>Especifica l'atribut <code>target</code> per obrir l'enllaç en una nova pestanya.</li> +</ol> + +<p>Observa els canvis actualitzats en directe a l'àrea <em>Output</em>. Hauries de veure un enllaç, que en passar-hi per sobre mostrarà el contingut de l'atribut <code>title</code>, i en clicar-hi, va a l'adreça web de l'element <code>href</code>. Recorda que has d’incloure un espai entre el nom de l'element i cada atribut.</p> + +<p>Si t’equivoques, sempre pots restablir el codi anterior amb el botó de reinici. Si et quedes realment encallat, fes clic al botó <em>Mostra la solució</em> per veure la solució.</p> + +<div class="hidden"> +<h6 id="Codi_executable_2">Codi executable 2</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 100px;width: 95%"> + &lt;p&gt;A link to my favorite website.&lt;/p&gt; +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<p>A link to my <a href="https://www.mozilla.org/" title="The Mozilla homepage" target="_blank">favorite website</a>.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Codi_executable_2', 700, 300) }}</p> + +<h3 id="Atributs_booleans">Atributs booleans</h3> + +<p>De vegades veuràs atributs que estan escrits sense valors; això està perfectament permès. S’anomenen atributs booleans, i només poden tenir un valor, que és generalment el mateix que el nom de l'atribut. A tall d'exemple, preneu l'atribut {{htmlattrxref("disabled", "input")}}, que es pot assignar als elements d’entrada de dades d'un formulari, si voleu que estiguin desactivats (en gris) perquè l'usuari no hi pugui entrar cap dada. Per exemple,</p> + +<pre class="notranslate"><input type="text" disabled="disabled"></pre> + +<p>Com a forma abreujada, és perfectament admissible escriure-ho de la manera següent (també hem inclòs un element d’entrada de dades de formulari no desactivat com a referència, perquè tinguis una idea de què passa):</p> + +<pre class="brush: html notranslate"><input type="text" disabled> + +<input type="text"> +</pre> + +<p>Tots dos donaran una sortida com la següent:</p> + +<p>{{ EmbedLiveSample('Atributs_booleans', 700, 100) }}</p> + +<h3 id="Ometre_les_cometes_que_delimiten_els_valors_dels_atributs">Ometre les cometes que delimiten els valors dels atributs</h3> + +<p>Quan navegues per la web, et trobes amb tot tipus d'estils de marcat estranys, inclosos valors d'atributs sense cometes. Això és permissible en algunes circumstàncies, però en d'altres trencarà el codi de marcatge. Per exemple, si reprenem el nostre exemple d'enllaç d'abans, podem escriure una versió bàsica amb només l'atribut <code>href</code>, així:</p> + +<pre class="notranslate"><a href=https://www.mozilla.org/>favourite website</a> +</pre> + +<p>No obstant això, quan afegim a aquest estil l'atribut <code>title</code>, les coses no funcionen:</p> + +<pre class="brush: html notranslate"><a href=https://www.mozilla.org/ title=The Mozilla homepage>favourite website</a> +</pre> + +<p>En aquest punt, el navegador ha interpretat malament el marcatge perquè pensa que l'atribut <code>title</code> té en realitat tres atributs: un atribut <code>title</code> amb el valor «The», i dos atributs booleans, <code>Mozilla</code> i <code>homepage</code>. Això, òbviament, no és el que es pretenia, i causarà errors o un comportament inesperat en el codi, com es veu en l'exemple a continuació. Intenta passar sobre l'enllaç per veure quin és el títol del text!</p> + +<p>{{ EmbedLiveSample('Ometre_les_cometes_que_delimiten_els_valors_dels_atributs', 700, 100) }}</p> + +<p>Inclou sempre les cometes de l'atribut. Evita aquest tipus de problemes, i el codi resulta més llegible.</p> + +<h3 id="Cometes_simples_o_dobles">Cometes simples o dobles?</h3> + +<p>En aquest article t’adonaràs que els atributs estan delimitats per cometes dobles. No obstant això, és possible que vegis cometes simples en algun codi HTML. Això és purament una qüestió d'estil, i ets lliure d'escollir . Les dues línies següents són equivalents:</p> + +<pre class="brush: html notranslate"><a href="http://www.example.com">A link to my example.</a> + +<a href='http://www.example.com'>A link to my example.</a></pre> + +<p>Però t’has d’assegurar que no es barregen. El codi següent no et funcionarà!</p> + +<pre class="brush: html notranslate"><a href="http://www.example.com'>A link to my example.</a></pre> + +<p>Si has utilitzat un tipus de cometes en el codi HTML, pots fer servir l’altre tipus de cometes per als teus valors d’atribut sense tenir problemes:</p> + +<pre class="brush: html notranslate"><a href="http://www.example.com" title="Isn't this fun?">A link to my example.</a></pre> + +<p>Ara bé, si vols imbricar cometes dins de cometes, i són iguals, has d’utilitzar {{anch ("Entitats de referències: incloent caràcters especials en HTML")}}. Per exemple, aquest marcatge trencarà el codi:</p> + +<pre class="example-bad brush: html line-numbers language-html notranslate"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">'</span>http://www.example.com<span class="punctuation token">'</span></span> <span class="attr-name token">title</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">'</span>Isn<span class="punctuation token">'</span></span><span class="attr-name token">t</span> <span class="attr-name token">this</span> <span class="attr-name token">fun?'</span><span class="punctuation token">></span></span>A link to my example.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></pre> + +<p>Així, necessites fer el següent:</p> + +<pre class="brush: html line-numbers language-html notranslate"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">'</span>http://www.example.com<span class="punctuation token">'</span></span> <span class="attr-name token">title</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">'</span>Isn<span class="entity token" title="'">&#39;</span>t this fun?<span class="punctuation token">'</span></span><span class="punctuation token">></span></span>A link to my example.<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>a</span><span class="punctuation token">></span></span></code></pre> + +<h2 id="Anatomia_dun_document_HTML">Anatomia d'un document HTML</h2> + +<p>Els elements HTML no són gaire útils per si mateixos. Ara veurem com els elements individuals es combinen per formar una pàgina HTML completa:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My test page</title> + </head> + <body> + <p>This is my page</p> + </body> +</html></pre> + +<p>Aquí tenim:</p> + +<ol> + <li><code><!DOCTYPE html></code>: El tipus de document. Als inicis, quan HTML era jove (al voltant de 1991/1992), els <code>doctype</code> estaven destinats a actuar com enllaços cap a un conjunt de regles que la pàgina HTML havia de seguir per ser considerat un bon HTML, que podia significar la comprovació automàtica d'errors i altres coses útils. Solien ser alguna cosa com ara això: + + <pre class="notranslate"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre> + Avui dia són un llegat històric que cal incloure perquè tot funcioni. <code><!DOCTYPE html></code> és la cadena més curta de caràcters que es considera com un tipus de document vàlid. Això és tot el que realment et cal saber.</li> + <li><code><html></html></code>: L'element <code><html></code> delimita tot el contingut de la pàgina, i de vegades es coneix com l'element arrel.</li> + <li><code><head></head></code>: L'element <code><head></code> actua com un contenidor de totes les coses que vols incloure a la pàgina HTML, però que <strong>no són el contingut</strong> que vols mostrar als visitants de la teva pàgina. Això inclou coses com ara paraules clau i una descripció de la pàgina que vols que aparegui en els resultats de cerca, estil CSS per al teu contingut, declaracions de conjunts de caràcters, i més. N’aprendràs més en el proper article de la sèrie.</li> + <li><code><meta charset="utf-8"></code>: Aquest element especifica que el teu document utilitzarà el conjunt de caràcters <code>UTF-8</code>, que inclou la majoria dels caràcters de tots els idiomes humans escrits coneguts. Si ho poses, en essència pots gestionar qualsevol contingut textual possible. No hi ha cap raó per no establir-lo, i us pot ajudar a evitar alguns problemes més endavant.</li> + <li><code><title></title></code>: Estableix el títol de la pàgina, que és el títol que apareix a la pestanya del navegador quan carrega la pàgina, i s'utilitza per descriure la pàgina quan l’afegeixes als teus marcadors/favorits.</li> + <li><code><body></body></code>: Inclou <em>tot</em> el contingut que es mostra a la teva pàgina, ja sigui text, imatges, vídeos, jocs, reproducció de pistes d'àudio o qualsevol altra cosa.</li> +</ol> + +<h3 id="Aprenentatge_actiu_Afegir_característiques_a_un_document_HTML">Aprenentatge actiu: Afegir característiques a un document HTML</h3> + +<p>Si vols escriure una mica d'HTML en el teu ordinador local per a experimentar, pots:</p> + +<ol> + <li>Copiar l'exemple de la pàgina HTML que apareix a dalt.</li> + <li>Crear un arxiu nou a l'editor de text.</li> + <li>Enganxar el codi en l’arxiu nou de text.</li> + <li>Desar el fitxer com <code>index.html</code>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: també pots trobar aquesta plantilla bàsica HTML en el <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">repositori Github de l’Àrea d’aprenentatge d’MDN</a>.</p> +</div> + +<p>Ara pots obrir aquest arxiu en un navegador web per veure quina aparença té el codi reproduït, i després editar el codi i actualitzar el navegador per veure quin n’és el resultat. Inicialment es veurà així:</p> + +<p><img alt="A simple HTML page that says This is my page" src="https://mdn.mozillademos.org/files/12279/template-screenshot.png" style="display: block; height: 365px; margin: 0px auto; width: 595px;">En aquest exercici pots editar el codi localment en el teu ordinador, com s’ha indicat abans, o pots editar-lo en la finestra de mostra editable a continuació (la finestra de mostra editable representa només el contingut de l'element <code><body></code>, en aquest cas). Intenta reproduir els passos següents:</p> + +<ul> + <li>Just a sota de l'etiqueta d'obertura <code><body></code>, afegeix un títol principal per al document. Haurà d’estar delimitat per una etiqueta <code><h1></code> d'obertura i una etiqueta <code></h1></code> de tancament.</li> + <li>Edita el contingut del paràgraf per a incloure-hi un text sobre alguna cosa que t’interessi.</li> + <li>Fes que qualsevol paraula important destaqui en negreta delimitant-la amb d'una etiqueta <code><strong></code> d'obertura i una etiqueta <code></strong</code>> de tancament</li> + <li>Afegeix un enllaç al paràgraf, <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Getting_started#Aprenentatge_actiu_crea_el_teu_primer_element_HTML">com s'ha explicat abans en aquest mateix article</a>.</li> + <li>Afegeix una imatge al document, sota el paràgraf, com <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Getting_started#Elements_buits">s'ha explicat abans en aquest mateix article</a>. Guanyaràs més punts si aconsegueixes enllaçar-lo a una imatge diferent (ja sigui de manera local a l'ordinador, o d’un altre lloc web.)</li> +</ul> + +<p>Si t’equivoques, sempre pots restablir el codi anterior amb el botó Reinicia. Si realment et quedes encallat, fes clic al botó <em>Mostra la solució</em> per veure la solució.</p> + +<div class="hidden"> +<h6 id="Codi_executable_3">Codi executable 3</h6> + +<pre class="brush: html notranslate"><h2>Live output</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Editable code</h2> +<p class="a11y-label">Press Esc to move focus away from the code area (Tab inserts a tab character).</p> + +<textarea id="code" class="input" style="min-height: 100px;width: 95%"> + &lt;p&gt;This is my page&lt;/p&gt; +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Reset"> + <input id="solution" type="button" value="Show solution"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h1 { + color: blue; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +img { + max-width: 100%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Show solution'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Show solution') { + textarea.value = solutionEntry; + solution.value = 'Hide solution'; + } else { + textarea.value = userEntry; + solution.value = 'Show solution'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Some music</h1><p>I really enjoy <strong>playing the drums</strong>. One of my favorite drummers is Neal Peart, who\ plays in the band <a href="https://en.wikipedia.org/wiki/Rush_%28band%29" title="Rush Wikipedia article">Rush</a>.\ My favourite Rush album is currently <a href="http://www.deezer.com/album/942295">Moving Pictures</a>.</p>\ <img src="http://www.cygnus-x1.net/links/rush/images/albums/sectors/sector2-movingpictures-cover-s.jpg">'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Show solution') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Codi_executable_3', 700, 600) }}</p> + +<h3 id="Els_espais_en_blanc_en_HTML">Els espais en blanc en HTML</h3> + +<p>Et deus haver adonat que en els exemples anteriors hi ha una gran quantitat d'espais en blanc i salts de línia en el codi; això no és necessari en absolut; els dos fragments de codi següents són equivalents:</p> + +<pre class="brush: html notranslate"><p>Dogs are silly.</p> + +<p>Dogs are + silly.</p></pre> + +<p>No importa la quantitat d'espais en blanc que utilitzis (pots incloure caràcters d'espai, però també salts de línia), l'intépret HTML ho redueix tot a un sol espai quan el codi es representa. Així, per què utilitzem tant els espais en blanc? La resposta és la llegibilitat.</p> + +<p>És molt més fàcil d'entendre què passa al teu codi si té un format endreçat, que no si està desordenat. En el nostre HTML, cada element imbricat té una sagnia de dos espais més respecte del que el conté. De tu depèn l'estil de format que utilitzis (el nombre d'espais per a cada nivell de sagnat, per exemple), però t’has de plantejar l'ús d'algun tipus de format.</p> + +<h2 id="Referències_a_entitats_inclusió_de_caràcters_especials_en_HTML">Referències a entitats: inclusió de caràcters especials en HTML</h2> + +<p>En HTML, els caràcters <code><</code>, <code>></code>,<code>"</code>,<code>'</code> i <code>&</code> són caràcters especials. Són parts de la sintaxi HTML en si; ara bé, com hem d’incloure un d'aquests caràcters en el text, per exemple, si realment volem emprar un <em>ampersand</em> (&) o el signe <em>menys que</em> (<), i que els navegadors no l'interpretin com codi?</p> + +<p>Hem d'utilitzar referències de caràcters, codis especials que representen caràcters i que es poden utilitzar en aquestes circumstàncies exactes. Tots els caràcters de referència s'inicien amb un signe (&) i acaben amb un punt i coma (;).</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Caràcter literal</th> + <th scope="col">Referència de caràcter equivalent</th> + </tr> + </thead> + <tbody> + <tr> + <td><</td> + <td>&lt;</td> + </tr> + <tr> + <td>></td> + <td>&gt;</td> + </tr> + <tr> + <td>"</td> + <td>&quot;</td> + </tr> + <tr> + <td>'</td> + <td>&apos;</td> + </tr> + <tr> + <td>&</td> + <td>&amp;</td> + </tr> + </tbody> +</table> + +<p>En el següent exemple, pots veure dos paràgrafs, que parlen sobre tecnologies web:</p> + +<pre class="brush: html notranslate"><p>In HTML, you define a paragraph using the <p> element.</p> + +<p>In HTML, you define a paragraph using the &lt;p&gt; element.</p></pre> + +<p>A la sortida en directe que veus a continuació pots observar que el primer paràgraf ha anat malament perquè el navegador pensa que la segona instància de <p> inicia un paràgraf nou! El segon paràgraf es veu bé perquè hem reemplaçat els parèntesis angulars amb referències de caràcters.</p> + +<p>{{ EmbedLiveSample('Referències_a_entitats_inclusió_de_caràcters_especials_en_HTML', 700, 200) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span>Un gràfic</span> <span>de totes</span> <span>les</span> <span>referències</span> <span>a entitats</span> <span>de caràcters</span> <span>HTML</span> <span>disponibles, es pot</span> <span>trobar</span> <span>en la Viquipèdia</span></span>: <a class="external text" href="http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references" rel="nofollow">Llista de XML i HTML de les referències a entitats de caràcters</a>.</p> +</div> + +<h2 id="Comentaris_HTML">Comentaris HTML</h2> + +<p>En HTML hi ha un mecanisme disponible per escriure comentaris en el codi. El navegador ignora els comentaris, i així també són invisibles per a l'usuari. E·l seu propòsit és permetre que puguis incloure comentaris en el codi per a aclarir-ne el funcionament, explicar què fan les diferents parts, etc. Això pot ser molt útil com a recordatori del treball que has fet si tornes a treballar en un codi amb què no has treballat durant 6 mesos; o si el lliures a una altra persona perquè hi treballi.</p> + +<p>Per a convertir en un comentari una secció de contingut del teu arxiu HTML, l’has de delimitar amb els marcadors especials <code><!--</code> i <code>--></code>. Per exemple:</p> + +<pre class="brush: html notranslate"><p>I'm not inside a comment</p> + +<!-- <p>I am!</p> --></pre> + +<p>Com pots veure a continuació, el primer paràgraf apareix a la sortida en directa, però el segon no ho fa.</p> + +<p>{{ EmbedLiveSample('Comentaris_HTML', 700, 100) }}</p> + +<h2 id="Resum">Resum</h2> + +<p>Has arribat al final de l'article! Esperem que hagis gaudit de la visita als conceptes bàsics d'HTML. En aquest punt, hauries de ser capaç d'entendre el llenguatge i com funciona en un nivell bàsic, i hauries de ser capaç d'escriure alguns elements i atributs. En els articles següents del mòdul ens introduirem amb més detall en algunes de les coses que ja has examinat, i introduirem algunes característiques noves del llenguatge.</p> + +<div class="note"> +<p><strong>Nota</strong>: En aquest punt, a mesura que comences a aprendre més sobre HTML, és possible que també vulguis començar a explorar els fonaments dels fulls d’estil e cascada (cascading style sheets o <a href="/ca/docs/Learn/CSS">CSS</a>). CSS és el llenguatge que s’utilitza per a aplicar estil a les teves pàgines web (per exemple, pots canviar el tipus de lletra o els colors, o alterar el disseny de pàgina). HTML i CSS van alhora, com descobriràs de seguida.</p> +</div> + +<div>{{NextMenu("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> diff --git a/files/ca/learn/html/introducció_al_html/index.html b/files/ca/learn/html/introducció_al_html/index.html new file mode 100644 index 0000000000..721a2795f5 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/index.html @@ -0,0 +1,65 @@ +--- +title: Introducció a l'HTML +slug: Learn/HTML/Introducció_al_HTML +tags: + - CodingScripting + - HTML + - Introduction to HTML + - Landing + - Links + - Structure + - Text + - head + - semantics +translation_of: Learn/HTML/Introduction_to_HTML +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">En el fons, {{glossary("HTML")}} és un llenguatge bastant simple compost d'<a href="/en-US/docs/Glossary/Element">elements</a>, que es poden aplicar a peces de text per donar-los significats diferents en un document (és un paràgraf? És una llista de vinyetes? és part d'una taula?), l'estructura d'un document en seccions lògiques (té una capçalera? tres columnes de contingut? un menú de navegació?) i inserir contingut com imatges i vídeos en una pàgina. Aquest mòdul us presentarà els dos primers d'aquests, i us introduirà en els conceptes fonamentals i la sintaxi que necessiteu saber per entendre HTML.</p> + +<h2 id="Requisits_previs">R<span id="result_box" lang="ca"><span>equisits</span> <span>previs</span></span></h2> + +<p>Abans d'iniciar aquest mòdul, no cal cap coneixement previ d'HTML, però heu de tenir almenys coneixements bàsics en l'ús d'ordinadors, i l'ús de la web de forma passiva (és a dir, simplement mirant, consumint el contingut.) Heu de tenir un entorn de treball bàsic configurat com es descriu en <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Installing_basic_software">Instal.lació de programari bàsic</a>, i entendre com crear i administrar arxius, com es detalla en <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/Dealing_with_files">Tractar amb arxius</a> — tots dos són parts del nostre mòdul <a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web">Introducció a la web</a> per a principiants.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si esteu treballant en un ordinador/tauleta/altre dispositiu en el qual no teniu la capacitat de crear els vostres propis arxius, podeu provar (la majoria) els exemples de codi en un programa de codificació en línia, com ara JSBin o Thimble.</p> +</div> + +<h2 id="Guies">Guies</h2> + +<p>Aquest mòdul conté els següents articles, que us portaran a través de tota la teoria bàsica d'HTML, i oferint-vos una gran oportunitat per posar a prova algunes habilitats.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started">Introducció a HTML</a></dt> + <dd>Cobreix els fonaments absoluts d'HTML, perquè pugueu començar — definirem els elements, atributs i tots els altres termes importants que podeu haver sentit, i mostrarem on encaixen en el llenguatge. També us mostrarem com s'estructura un element HTML, com s'estructura una pàgina HTML típica, i explicarem altres importants característiques bàsiques del llenguatge. En el camí, jugarem amb una mica d'HTML, perquè t'interessi!</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">Què hi ha en la capçalera? Metadades en HTML</a></dt> + <dd>La capçalera (head) d'un document HTML és la part que no es mostra en el navegador web quan es carrega la pàgina. Conté informació tal com el {{htmlelement("title")}} de la pàgina, enllaços a {{glossary("CSS")}} (si voleu donar estil el vostre contingut HTML amb CSS), enllaços a favicones personalitzats, i les metadades (que són dades sobre l'HTML, com qui el va escriure, i les paraules clau importants que descriuen el document.)</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals">Fonaments de text HTML</a></dt> + <dd>Un dels treballs principals de l'HTML és donar significat al text (també conegut com la <strong>semàntica</strong>), de manera que el navegador sàpiga com mostrar-lo correctament. En aquest article s'analitza com usar HTML per dividir un bloc de text en una estructura d'encapçalats i paràgrafs, afegir èmfasis/importància a les paraules, crear llistes i molt més.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">Creació d'hipervincles</a></dt> + <dd>Els hipervincles són realment importants — són el que fan de la web un web. En aquest article es mostra la sintaxi necessària per fer un enllaç, i discuteix les millors pràctiques per als enllaços.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">Format de text avançat</a></dt> + <dd>Hi ha molts altres elements en HTML per donar format al text, que no vam veure en l'article de <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals">fonaments de text HTML</a>. Els elements que veurem aquí són menys coneguts, però encara així és útil conèixer-los. Aquí aprendreu sobre el marcatge de cites, llistes de descripció, codi de computadora i altre text relacionat, subíndexs i superíndexs, informació de contacte, i més.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure">Document i estructura del lloc web</a></dt> + <dd>Així com es defineixen les parts individuals de la pàgina (per exemple, "un paràgraf" o "una imatge"), HTML també s'utilitza per definir les àrees del vostre lloc web (per exemple, "la capçalera", "el menú de navegació", "la columna de contingut principal"). En aquest article es reflexiona sobre com planificar una estructura bàsica del lloc web, i escriure el codi HTML per representar aquesta estructura.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML">Depuració HTML</a></dt> + <dd>Escriure HTML està molt bé, però què passa si alguna cosa va malament i no trobes on està l'error en el codi? Aquest article us donarà a conèixer algunes eines que poden ajudar-vos.</dd> +</dl> + +<h2 id="Avaluacions">Avaluacions</h2> + +<p>Les següents avaluacions posaran a prova la vostra comprensió dels conceptes bàsics d'HTML coberts en les guies anteriors.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">Marcatge d'una carta</a></dt> + <dd>Tots aprenem a escriure una carta, tard o d'hora; també és un exemple útil per posar a prova les vostres habilitats de format de text! Així que en aquesta avaluació se us donarà una carta per marcar.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">Estructuració d'una pàgina de contingut</a></dt> + <dd>Aquesta avaluació posa a prova la vsotra capacitat d'utilitzar HTML per estructurar una simple pàgina de contingut, que conté una capçalera, peu de pàgina, el menú de navegació, contingut principal, i la barra lateral.</dd> +</dl> + +<h2 id="Veure_també">Veure també</h2> + +<dl> + <dt><a href="https://teach.mozilla.org/activities/web-lit-basics/">Conceptes bàsics d'alfabetització Web 1</a></dt> + <dd>Un excel·lent curs de la fundació Mozilla que explora i posa a prova moltes de les habilitats parlades al mòdul <em>Introducció a HTML</em>. Els estudiants es familiaritzaran amb la lectura, l'escriptura i participació en la web en aquest mòdul de sis parts. Descobriran els fonaments del web a través de la producció i col·laboració.</dd> +</dl> diff --git a/files/ca/learn/html/introducció_al_html/marcatge_una_carta/index.html b/files/ca/learn/html/introducció_al_html/marcatge_una_carta/index.html new file mode 100644 index 0000000000..34647eb294 --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/marcatge_una_carta/index.html @@ -0,0 +1,90 @@ +--- +title: Marcatge d'una carta +slug: Learn/HTML/Introducció_al_HTML/Marcatge_una_carta +tags: + - Assessment + - Beginner + - CodingScripting + - HTML + - Links + - Text + - head +translation_of: Learn/HTML/Introduction_to_HTML/Marking_up_a_letter +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Tots aprenem a escriure una carta, tard o d'hora; també és un exemple útil per posar a prova les vostres habilitats de format de text! En aquesta avaluació, se us donarà una carta per al seu marcatge per posar a prova les habilitats bàsiques i avançades de format de text HTML, incloent hipervincles; a més, posareu a prova la vostra familiaritat amb alguns continguts HTML <head>.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits Previs:</th> + <td>Abans de procedir amb aquesta avaluació, ja hauríeu d'haver treballat <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started">Inici en HTML</a>, <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">Què hi ha en el head? Metadades in HTML</a>, <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals">fonaments de text HTML</a>, <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">Crear hipervincles</a>, i <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">format de text avançat</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Provar el format bàsic i avançat de text HTML i habilitats en hipervincles, i el coneixement del que succeeix en el codi HTML <head>.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida"><span class="short_text" id="result_box" lang="ca"><span>Punt de partida</span></span></h2> + +<p>Per obtenir aquesta avaluació inicial, cal anar i agafar el <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/marking-up-a-letter-start/letter-text.txt">text sense format que necessiteu per marcar</a>, i el <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/marking-up-a-letter-start/css.txt">CSS que cal incloure</a> en el codi HTML. Crear un nou arxiu <code>.html</code> amb el vostre editor de text per treballar-ho (o, alternativament, utilitzar un lloc com <a class="external external-icon" href="http://jsbin.com/">JSBin</a> o <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer la avaluació.)</p> + +<h2 id="Resum_del_projecte">R<span id="result_box" lang="ca"><span>esum</span> <span>del projecte</span></span></h2> + +<p>Per a aquest projecte, la tasca consisteix a marcar una carta que ha de ser allotjada en una intranet de la universitat. La carta és una resposta d'un investigador a un futur estudiant doctorat sobre la seva sol·licitud per treballar a la universitat.</p> + +<p>Bloc/semàntica estructural:</p> + +<ul> + <li>S'ha d'estructurar el document general amb una estructura adequada que inclogui doctype, i els elements {{htmlelement("html")}}, {{htmlelement("head")}} i {{htmlelement("body")}}.</li> + <li>La carta, en general, s'ha de marcar amb una estructura de paràgrafs i encapçalats, amb l'excepció dels següents punts. Hi ha un encapçalat de nivell superior (el "Re:" línia) i tres encapçalats de segon nivell.</li> + <li>Les dates d'inici del semetre, els temes d'estudi i balls exòtics han de ser marcats utilitzant un tipus de llista apropiat.</li> + <li>Les dues direccions només es poden posar dins dels paràgrafs, o es pot utilitzar l'element {{htmlelement("address")}} de manera apropiada; cada línia de la direcció ha de seure en una nova línia, però no ha d'estar en un nou paràgraf.</li> +</ul> + +<p>Semàntica en línia:</p> + +<ul> + <li>S'ha de marcar el contingut del cos amb elements apropiats:</li> + <li>Els noms del remitent i receptor (i "Tel" i "Email") han de ser marcats amb una forta (strong) importància.</li> + <li>Les quatre dates en el document han de tenir els elements adequats que continguin dates llegibles per la màquina.</li> + <li>La primera direcció i la primera data en la carta se li ha de donar un valor d'atribut class de "receiver-column"; la CSS s'afegirà més tard, fent que aquests siguin alineats a la dreta, com hauria de ser en el cas d'un disseny de lletres clàssiques.</li> + <li>Els cinc acrònims/abreviatures en el text principal de la carta s'han de marcar per proporcionar expansió de cada acrònim/abreviatura.</li> + <li>Els sis sub/superíndexs han d'estar marcats de forma apropiada.</li> + <li>Els símbols de grau, major que i multiplicació han de ser marcats usant les referències a entitats apropiades.</li> + <li>Intentar marcar almenys dues paraules apropiades en el text amb una forta (strong) importància/èmfasi.</li> + <li>Hi ha dos llocs en què s'ha d'afegir un hipervincle; afegir enllaços adequats amb els títols. Per la ubicació que els enllaços apunten, només s'ha d'utilitzar http://example.com.</li> + <li>La cita del lema de la universitat i la citació s'han de marcar amb elements apropiats.</li> +</ul> + +<p>La capçalera del document:</p> + +<ul> + <li>El conjunt de caràcters del document s'ha d'especificar com UTF-8 utilitzant la etiqueta meta apropiada.</li> + <li>L'autor de la carta ha de ser especificat en una etiqueta meta apropiada.</li> + <li>El CSS proporcionat ha de ser inclòs dins d'una etiqueta propiada.</li> +</ul> + +<h2 id="Consells_i_suggeriments">Consells i suggeriments</h2> + +<ul> + <li>Utilitzar el <a href="https://validator.w3.org/">validador de W3C HTML</a> per validar el codi HTML; obtindreu punts de bonificació si es valida.</li> + <li>No es necessita saber res de CSS per fer aquesta avaluació; només s'ha de posar el CSS, proporcionat, a l'interior d'un element HTML.</li> +</ul> + +<h2 id="Exemple">Exemple</h2> + +<p>La següent captura de pantalla mostra un exemple del que la carta podria ser després del seu marcat.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12291/letter-screengrab.png" style="border: 1px solid black; display: block; margin: 0px auto;"></p> + +<h2 id="Evaluació">Evaluació</h2> + +<p>Si esteu seguint aquesta avaluació com a part d'un curs organitzat, heu de ser capaços de donar al vostre treball al vostre professor/tutor per qualificar-vos. Si sou d'auto-aprenentatge, llavors podeu obtenir la guia de qualificació, amb molta facilitat, preguntan a la llista de correu <a href="https://lists.mozilla.org/listinfo/dev-mdc">dev-mdc</a> o al canal IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Proveu el primer exercici - no hi ha res a guanyar amb trampa!</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/introducció_al_html/què_hi_ha_en_el_head_metadades_en_html/index.html b/files/ca/learn/html/introducció_al_html/què_hi_ha_en_el_head_metadades_en_html/index.html new file mode 100644 index 0000000000..934377c4ca --- /dev/null +++ b/files/ca/learn/html/introducció_al_html/què_hi_ha_en_el_head_metadades_en_html/index.html @@ -0,0 +1,271 @@ +--- +title: Què hi ha en el head? Metadades en HTML +slug: Learn/HTML/Introducció_al_HTML/Què_hi_ha_en_el_head_Metadades_en_HTML +tags: + - Beginner + - CodingScripting + - Guide + - HTML + - Meta + - favicon + - head + - lang + - metadata +translation_of: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Getting_started", "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">El {{glossary("Head", "head")}} és la part d'un document HTML que no es mostra en el navegador web quan es carrega la pàgina. Conté informació com el {{htmlelement("title")}} de la pàgina, els enllaços a {{glossary("CSS")}} (si voleu aplicar estil al vostre contingut HTML amb CSS), enllaços a favicones personalitzades, i altres metadades (dades sobre l'HTML, com qui l’ha escrit, i les paraules clau importants que descriuen el document). En aquest article exposarem tot això i molt més, per a donar-vos una bona base per a treballar amb el marcatge.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Familiaritat amb HTML, respecte dels continguts a <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Inici en HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre sobre la capçalera HTML, quin propòsit té, quins elements importants pot contenir, i quin efecte que poden tenir en el document HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_la_capçalera_dHTML">Què és la capçalera d'HTML?</h2> + +<p>Fem un cop d’ull a aquest document HTML senzill <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Getting_started#Anatomia_dun_document_HTML">que ja hem vist en l’article anterior</a>:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My test page</title> + </head> + <body> + <p>This is my page</p> + </body> +</html></pre> + +<p>La capçalera d'un document HTML és el contingut de l'element {{htmlelement("head")}}. A diferència dels continguts de l'element {{htmlelement("body")}}, que es mostren a la pàgina quan es carrega en un navegador, el contingut de la capçalera no es mostra a la pàgina. La funció de la capçalera, en canvi, és contenir {{glossary("Metadata", "metadades")}} sobre el document. En l'exemple anterior, la capçalera és més aviat curta:</p> + +<pre class="brush: html notranslate"><head> + <meta charset="utf-8"> + <title>My test page</title> +</head></pre> + +<p>En pàgines més extenses, però, la capçalera pot arribar a estar força plena d'elements. Ves a alguns dels teus llocs web favorits i utilitza les <a href="/en-US/docs/Learn/Discover_browser_developer_tools">eines del desenvolupador</a> per revisar-ne el contingut de les capçaleres. El nostre objectiu aquí no és mostrar com utilitzar tot el que possiblement es pot posar a la capçalera, sinó ensenyar-te com fer servir els elements principals que hi inclouràs, i que t’hi familiaritzis. Comencem.</p> + +<h2 id="Afegir_un_títol">Afegir un títol</h2> + +<p>Ja hem vist l'element {{htmlelement("title")}} en acció: es pot emprar per a afegir un títol al document. Però aquest element es podria confondre amb {{htmlelement ("h1")}}, que s'utilitza per a afegir un títol d’encapçalament de nivell superior en el contingut del cos (<code>body</code>) del teu document. Això també es coneix de vegades com el títol de la pàgina. Però són coses diferents!</p> + +<ul> + <li>L'element {{htmlelement("h1")}} apareix a la pàgina quan el navegador la carrega. En general, n’hi ha d’haver un per pàgina, per a marcar el títol del contingut de la pàgina (el títol de la història, o el titular de la notícia, o el que escaigui).</li> + <li>L'element {{htmlelement("title")}} és una metadada que representa el títol del document HTML en general (no del contingut del document).</li> +</ul> + +<h3 id="Aprenentatge_actiu_Anàlisi_d’un_exemple_senzill">Aprenentatge actiu: Anàlisi d’un exemple senzill</h3> + +<ol> + <li>Per començar aquest aprenentatge actiu, et proposem d’anar al nostre repositori de GitHub i que et descarreguis una còpia de la nostra pàgina <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/title-example.html"> title-example.html</a>. Pots fer-ho de diverses maneres: + + <ol> + <li>Copia i enganxa el codi de la pàgina en un arxiu de text nou de l'editor de codi, i a continuació, guarda’l en un lloc adequat.<strong> </strong></li> + <li>Prem el botó «Raw» de la pàgina, selecciona <em>File > Save Page As...</em> del menú del teu navegador, i a continuació escull un lloc per a guardar l'arxiu.</li> + </ol> + </li> + <li>Ara obre l'arxiu al teu navegador. Hauries de veure alguna cosa com això: + <p><img alt="Una pàgina web senzilla amb el títol del document HTML en l’element <title> i el títol d’encapçalament de la pàgina <h1> en l’element <h1>." src="https://mdn.mozillademos.org/files/12323/title-example.png" style="display: block; margin: 0 auto;">Ara, hauries de tenir clar on apareix el contingut de l’element <code><h1></code> i on apareix el contingut de <code><title></code>!</p> + </li> + <li>També pots provar d’obrir el codi en el teu editor de codi, editar-ne els continguts, i a continuació actualitzar la pàgina en el teu navegador. Juga-hi una mica.</li> +</ol> + +<p>El contingut de l'element <code><title></code> també s'utilitza per a altres coses. Per exemple, quan poses a la pàgina un marcador de pàgina (<em>Bookmarks > Bookmark This Page</em>, en Firefox), observa que el nom que se suggereix com a nom del marcador és el contingut de l’element <code><title></code>.</p> + +<p><img alt="Una pàgina web amb un marcador de pagina en Firefox; el nom del marcadode pàgina s’omple automàticament amb el contingut de l’element <title> " src="https://mdn.mozillademos.org/files/12337/bookmark-example.png" style="display: block; margin: 0 auto;"></p> + +<p>El contingut de <code><title></code> també s'utilitza en els resultats de cerca, com es veu a continuació.</p> + +<h2 id="Metadades_lelement_<meta>">Metadades: l'element <code><meta> </code></h2> + +<p>Les metadades són dades que descriuen dades i HTML té una manera «oficial» d'afegir metadades a un document: l'element {{htmlelement("meta")}}. Per descomptat, que altres coses sobre les quals parlem en aquest article també podrien considerar-se metadades. Hi ha una gran quantitat de tipus d'elements <code><meta></code> diferents que es poden incloure en la capçalera (<code><head></code>) de la teva pàgina, però no provarem d'explicar-los tots en aquesta etapa, ja que podria acabaria sent massa confús. En lloc d’això, explicarem algunes coses amb què et pots trobar habitualment, només per a donar-te’n una idea.</p> + +<h3 id="Especificar_la_codificació_de_caràcters_del_document">Especificar la codificació de caràcters del document</h3> + +<p>En l'exemple que hem vist més amunt, s’hi ha inclòs aquesta línia:</p> + +<pre class="brush: html notranslate"><meta charset="utf-8"></pre> + +<p>Aquest element simplement especifica la codificació de caràcters del document: el conjunt de caràcters que el document pot utilitzar. <code>UTF-8</code> és un conjunt de caràcters universal que inclou gairebé qualsevol caràcter de qualsevol idioma humà. Això vol dir que la vostra pàgina web serà capaç de gestionar la visualització de qualsevol idioma. Per tant, és una bona idea establir això a cada pàgina web que creïs! Per exemple, la pàgina podria gestionar anglès i japonès sense problema:</p> + +<p><img alt="Una pàgina web que conté caràcters en anglès i en japonès, amb el conjunt universal de codificació de caràcters, o utf-8. Tots dos idiomes es veuen igual de bé," src="https://mdn.mozillademos.org/files/12343/correct-encoding.png" style="display: block; margin: 0 auto;">En canvi, si configures la teva codificació de caràcters segons <code>ISO-8859-1</code>, per exemple (el conjunt de caràcters de l'alfabet llatí), la representació de la teva pàgina s’esgavellaria del tot:</p> + +<p><img alt="Una pàgina web que conté caràcters en anglès i en japonès, amb el conjunt de caràcters per a l’alfabet llatí. Els caràcters japonesos no es veuen correctament." src="https://mdn.mozillademos.org/files/12341/bad-encoding.png" style="display: block; height: 365px; margin: 0px auto; width: 604px;"></p> + +<h3 id="Aprenentatge_actiu_Experimentar_amb_la_codificació_de_caràcters">Aprenentatge actiu: Experimentar amb la codificació de caràcters</h3> + +<p>Per provar això, torneu a la plantilla HTML que heu obtingut en l'apartat anterior amb el <code><title></code> (la pàgina <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/title-example.html"> title-example.html</a>), canvieu el valor <code>charset</code> de <code>meta</code> per la norma <code>ISO-8859-1</code>, i afegiu el japonès a la vostra pàgina. Aquest és el codi que fem servir:</p> + +<pre class="brush: html notranslate"><p>Japanese example: ご飯が熱い。</p></pre> + +<h3 id="Afegir_un_autor_i_una_descripció">Afegir un autor i una descripció</h3> + +<p>Molts elements <code><meta></code> inclouen els atributs <code>name</code> i <code>content</code>:</p> + +<ul> + <li><code>name</code> especifica el tipus d'element <code>meta</code> que és; quin tipus d'informació conté.</li> + <li><code>content</code> especifica el contingut concret de l’element <code>meta</code>.</li> +</ul> + +<p>Aquests dos elements <code>meta</code> són útils d’incloure a la teva pàgina perquè defineixen l'autor de la pàgina i proporcionen una descripció concisa de la pàgina. Vegem-ne un exemple:</p> + +<pre class="brush: html notranslate"><meta name="author" content="Chris Mills"> +<meta name="description" content="The MDN Learning Area aims to provide +complete beginners to the Web with all they need to know to get +started with developing web sites and applications."></pre> + +<p>Especificar l’autor de la pàgina és bo en molts sentits: és útil per a esbrinar qui ha escrit la pàgina, per si us hi voleu posar en contacte i fer-li preguntes sobre el contingut. Alguns sistemes de gestió de continguts disposen de funcions que extreuen automàticament la informació de l'autor de la pàgina i la poden a disposició amb aquesta finalitat.</p> + +<p>Especificar una descripció que inclou paraules clau relacionades amb el contingut de la pàgina és útil perquè té el potencial de fer que la pàgina aparegui més amunt en les cerques rellevants que els motors de cerca executen (aquestes activitats es denominen <a href="/en-US/docs/Glossary/SEO">Search Engine Optimization</a>, o {{glossary("SEO")}}.)</p> + +<h3 id="Aprenentatge_actiu_La_utilitat_de_la_descripció_per_als_motors_de_cerca">Aprenentatge actiu: La utilitat de la descripció per als motors de cerca</h3> + +<p>Les pàgines de resultats dels motors de cerca també fan servir aquestes descripcions. Vegem-ho amb un exemple.</p> + +<ol> + <li>Ves a la <a href="https://developer.mozilla.org/ca/">pàgina d’inici de The Mozilla Developer Network</a>.</li> + <li>Ves al codi font de la pàgina (botó dret/<kbd>Ctrl</kbd> + clic sobre la pàgina, selecciona l’opció <em>Veure l’origen de la pàgina</em> del menú contextual).</li> + <li>Busca la descripció en l'etiqueta <code>meta</code>. S'assembla a això: + <pre class="brush: html notranslate"><meta name="description" content="The Mozilla Developer Network (MDN) provides +information about Open Web technologies including HTML, CSS, and APIs for both +Web sites and HTML5 Apps. It also documents Mozilla products, like Firefox OS."></pre> + </li> + <li>Ara busca «Mozilla Developer Network» amb el teu motor de cerca favorit (nosaltres hem fet servir Yahoo). Observa, a partir del contingut dels elements <code><meta></code> i <code><title></code> utilitzats en el resultat de la cerca que, definitivament, paga la pena tenir aquests elements de descripció! + <p><img alt='A Yahoo search result for "Mozilla Developer Network"' src="https://mdn.mozillademos.org/files/12347/search-result.png" style="display: block; margin: 0 auto;"></p> + </li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: A Google veuràs que a continuació de l'enllaç principal de la pàgina d'inici s'enumeren algunes pàgines secundàries rellevants del projecte MDN; són els anomenats enllaços de llocs web, i es configuren en les <a href="http://www.google.com/webmasters/tools/">Google's webmaster tools</a>; és una manera de millorar els resultats de cerca del teu lloc web en el motor de cerca de Google.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Moltes característiques de <code><meta></code> senzillament ja no s'utilitzen. Per exemple, l'element <code><meta></code> de paraules clau (<code><meta name="keywords" content="posa, les, teves, paraules, clau"></code>) , que se suposa que proporciona als motors de cerca paraules clau per a determinar la rellevància d’aquella pàgina respecte dels termes de cerca, els motors de cerca l’ignoren perquè els <em>spammers</em> omplien la llista de paraules clau amb centenars de paraules clau que esbiaixaven els resultats.</p> +</div> + +<h3 id="Altres_tipus_de_metadades"><span id="result_box" lang="ca"><span>Altres tipus de</span> <span>metadades</span></span></h3> + +<p>Trobareu altres tipus de metadades a mesura que volteu per la web. Una gran quantitat de les funcions que apareixen en els llocs web són creacions propietàries, dissenyades per a proporcionar a certs llocs web (com els llocs web de les xarxes socials) parts específiques d'informació que poden utilitzar.</p> + +<p>Per exemple, <a href="http://ogp.me/">Open Graph Data</a> és un protocol de metadades que Facebook va inventar per proporcionar als llocs web metadades enriquides. En el codi font de MDN Web Docs trobaràs això:</p> + +<pre class="brush: html notranslate"><meta property="og:image" content="https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png"> +<meta property="og:description" content="The Mozilla Developer Network (MDN) provides +information about Open Web technologies including HTML, CSS, and APIs for both Web sites +and HTML5 Apps. It also documents Mozilla products, like Firefox OS."> +<meta property="og:title" content="Mozilla Developer Network"></pre> + +<p>Un efecte d'això és que quan a Facebook es fa un enllaç a MDN Web Docs, l'enllaç apareix amb una imatge i una descripció: una experiència més rica per als usuaris.</p> + +<p><img alt="Open graph protocol data from the MDN homepage as displayed on facebook, showing an image, title, and description." src="https://mdn.mozillademos.org/files/12349/facebook-output.png" style="display: block; margin: 0 auto;"></p> + +<p>Twitter també té metadades propietàries pròpies, les <a href="https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards">Twitter Cards</a>, que tenen un efecte similar quan a twitter.com es mostra l’URL del lloc web. Per exemple:</p> + +<pre class="brush: html notranslate"><meta name="twitter:title" content="Mozilla Developer Network"></pre> + +<h2 id="Afegir_icones_personalitzades_al_teu_lloc_web">Afegir icones personalitzades al teu lloc web</h2> + +<p>Per enriquir encara més el disseny del teu lloc web, en les metadades pots afegir referències a icones personalitzades, que es mostraran en certs contextos.</p> + +<p>La humil icona de web (favicon), que existeix de fa molts, molts anys, va ser la primera icona d'aquest tipus, una icona de 16 x 16 píxels utilitzada en múltiples llocs.</p> + +<p>Pots afegir una icona de web a la teva pàgina així:</p> + +<ol> + <li>La deses en el mateix directori que la pàgina índex del lloc web, en format <code>.ico</code> (la majoria dels navegadors admetem les icones de web en els formats més comuns, com <code>.gif</code> o <code>.png</code>, però si utilitzes el format ICO t’assegures que funciona en navegadors antics com Internet Explorer 6).</li> + <li>Afegeixes al bloc de codi <code><head></code> de l’HTML la línia següent per a fer-hi referència: + <pre class="brush: html notranslate"><link rel="shortcut icon" href="favicon.ico" type="image/x-icon"></pre> + </li> +</ol> + +<p>Els navegadors moderns utilitzen les icones de web en diversos llocs, com en la pestanya de la pàgina activa, i en el panell de marcadors, quan hi ha un marcador de pàgina:</p> + +<p><img alt="The Firefox bookmarks panel, showing a bookmarked example with a favicon displayed next to it." src="https://mdn.mozillademos.org/files/12351/bookmark-favicon.png" style="display: block; margin: 0 auto;"></p> + +<p>Avui dia hi ha un munt d'altres tipus d'icones que també pots tenir en compte. Per exemple, en el codi font de la pàgina MDN trobaràs això:</p> + +<pre class="brush: html notranslate"><!-- third-generation iPad with high-resolution Retina display: --> +<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png"> +<!-- iPhone with high-resolution Retina display: --> +<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png"> +<!-- first- and second-generation iPad: --> +<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png"> +<!-- non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --> +<link rel="apple-touch-icon-precomposed" href="https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png"> +<!-- basic favicon --> +<link rel="shortcut icon" href="https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png"></pre> + +<p>Els comentaris expliquen per a què s'utilitza cada icona; aquests elements cobreixen coses com ara proporcionar una agradable icona en alta resolució quan deses el lloc web a la pantalla principal d'un iPad.</p> + +<p>No et preocupis gaire pel que fa a l'aplicació de tots aquests tipus d'icona en aquest moment; aquesta característica és bastant avançada i no s'espera que en tingueu un coneixement per a poder progressar en el curs. L'objectiu principal aquí és fer-te saber què són aquests tipus de coses, per si te les trobes quan navegues pel codi font d'altres llocs web.</p> + +<h2 id="Aplicar_CSS_i_JavaScript_a_HTML">Aplicar CSS i JavaScript a HTML</h2> + +<p>Gairebé tots els llocs web que utilitzes actualment fan servir {{glossary("CSS")}} perquè presentin un bon aspecte, i {{glossary("JavaScript")}} per a potenciar-hi les funcions interactives, com ara reproductors de vídeo, mapes, jocs, i molt més. Aquests s'apliquen amb més freqüència a una pàgina web amb l'ús dels elements {{htmlelement("link")}} i {{htmlelement("script")}}, respectivament.</p> + +<ul> + <li> + <p>L'element {{htmlelement("link")}} sempre va dins de la capçalera (<code>head</code>) del document. Pot prendre dos atributs, <code>rel="stylesheet"</code>, que indica que es tracta del full d'estil del document, i <code>href</code>, que conté la ruta d'accés al fitxer del full d'estil:</p> + + <pre class="brush: html notranslate"><link rel="stylesheet" href="my-css-file.css"></pre> + </li> + <li> + <p>L'element {{htmlelement("script")}} també hauria d'anar a la capçalera, i hauria d'incloure un atribut <code>src</code> amb la ruta al JavaScript que vols carregar, i <code>defer</code>, que bàsicament li diu al nevegador que carregui el JavaScrpt alhora que l'HTML de la pàgina. Això és útil perquè assegura que l'HTML es carrega abans que s'executi el JavaScript, i així no hi ha errors perquè el JavaScript ha provat d'accedir a un element HTML que encara no existeix. En realitat, hi ha unes quantes maneres de gestionar com es carrega el JavaScript a les vostres pàgines, però aquesta és la més «a prova de bombes» amb els navegadors moderns (per la resta, llegiu <a href="https://wiki.developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript#Script_loading_strategies">Script loading strategies</a>).</p> + + <pre class="brush: html notranslate"><script src="my-js-file.js"></script></pre> + + <p><strong>Nota</strong>: L'element <code><script></code> pot semblar un element buit, però no ho és, i per tant necessita una etiqueta de tancament. En lloc d'apuntar a un arxiu script extern, també es pot optar per posar el script dins de l'element <code><script></code>.</p> + </li> +</ul> + +<h3 id="Aprenentatge_actiu_Aplicar_CSS_i_JavaScript_a_una_pàgina">Aprenentatge actiu: Aplicar CSS i JavaScript a una pàgina</h3> + +<ol> + <li>Per iniciar aquest aprenentatge actiu, pren una còpia dels arxius <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/meta-example.html">meta-example.html</a>, <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/script.js">script.js</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/style.css">style.css</a>, i desa’ls tots tres en el mateix directori del teu ordinador. Assegura’t que es desen amb els noms i les extensions d'arxiu correctes.</li> + <li>Obre el fitxer HTML en el teu navegador i en l’editor de text.</li> + <li>Seguint la informació que et proporcionem aquí, afegeix els elements {{htmlelement("link")}} i {{htmlelement("script")}} al teu HTML perquè els teus CSS i JavaScript s'apliquin a l’HTML.</li> +</ol> + +<p>Si ho fas correctament, quan deses el codi HTML i actualitzes el navegador observaràs que les coses han canviat:</p> + +<p><img alt="Example showing a page with CSS and JavaScript applied to it. The CSS has made the page go green, whereas the JavaScript has added a dynamic list to the page." src="https://mdn.mozillademos.org/files/12359/js-and-css.png" style="display: block; margin: 0 auto;"></p> + +<ul> + <li>El JavaScript ha afegit una llista buida a la pàgina. Ara, quan fas clic a qualsevol lloc de la llista, un quadre de diàleg et demana que introdueixis un text per a un element nou a la llista. Quan prems el botó Acceptar, a la llista s'afegeix un element de llista nou que conté aquest text. En fer clic en un element de la llista, un quadre de diàleg et permet canviar el text de l'element.</li> + <li>El CSS ha pintat de verd el fons i ha augmentat la mida del text. També ha aplicat estil a alguns dels continguts que JavaScript ha afegit a la pàgina (la barra vermella amb la vora negra és l'estil del codi CSS que s'ha afegit a la llista que ha generat el JS).</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Si t’encalles amb aquest exercici i no se t’hi apliquen el CSS/JS, revisa la nostra pàgina d'exemple <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/css-and-js.html">css-and-js.html</a>.</p> +</div> + +<h2 id="Establir_lidioma_principal_del_document">Establir l'idioma principal del document</h2> + +<p>Per acabar, paga la pena esmentar que es pot establir (i realment s'hauria d'establir) l'idioma de la teva pàgina. Això es pot fer afegint l'<a href="/ca/docs/Web/HTML/Global_attributes/lang">atribut lang</a> en l'etiqueta d'obertura HTML (com es veu en el <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/meta-example.html">meta-example.html</a>).</p> + +<pre class="brush: html notranslate"><html lang="en-US"></pre> + +<p>Això és útil en molts sentits. Els motors de cerca indexen més eficaçment el document si s'hi estableix el llenguatge (permeten que aparegui correctament en els resultats específics de l'idioma, per exemple), i és útil per a les persones amb discapacitat visual que utilitzen lectors de pantalla (per exemple, la paraula «six» hi és tant en francès com en anglès, però es pronuncia diferent).</p> + +<p>També post fer que diverses subseccions del teu document reconeguin idiomes diferents. Per exemple, podem establir que es reconegui una secció de japonès per a la part del nostre document que està escrita en japonès, així:</p> + +<pre class="brush: html notranslate"><p>Japanese example: <span lang="jp">ご飯が熱い。</span>.</p></pre> + +<p>Aquests codis els defineix la norma <a href="https://en.wikipedia.org/wiki/ISO_639-1">ISO 639-1</a>. Pots trobar més informació sobre aquests codis en les <a href="https://www.w3.org/International/articles/language-tags/">Language tags in HTML and XML</a>.</p> + +<h2 id="Resum">Resum</h2> + +<p>Arribem al final del nostre recorregut per la capçalera d’un document HTML; s’hi poden fer moltes més coses, però un recorregut exhaustiu seria avorrit i en aquesta etapa podria embolicar, i per ara només volem donar-te una idea de les coses més comunes que s’hi poden trobar! En l’article següent veurem els elements bàsics d’un text HTML.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Getting_started", "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/afegir_gràfics_vectorials_a_la_web/index.html b/files/ca/learn/html/multimèdia_i_incrustar/afegir_gràfics_vectorials_a_la_web/index.html new file mode 100644 index 0000000000..feaf09c048 --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/afegir_gràfics_vectorials_a_la_web/index.html @@ -0,0 +1,287 @@ +--- +title: Afegir gràfics vectorials a la Web +slug: Learn/HTML/Multimèdia_i_incrustar/Afegir_gràfics_vectorials_a_la_Web +tags: + - Beginner + - Graphics + - Guide + - HTML + - Images + - Learn + - Raster + - SVG + - Vector + - iframe + - img +translation_of: Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies", "Learn/HTML/Multimedia_and_embedding/Responsive_images", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<div class="summary"> +<p>Els gràfics vectorials són molt útils en moltes circumstàncies - tenen una grandària d'arxiu reduït i són altament escalables, de manera que no pixelen en acostar-ho o ampliar-se a una grandària gran. En aquest article et mostrarem com incloure un en la vostra pàgina web.</p> +</div> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Conèixer els conceptes <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">bàsics d'HTML</a> i com <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">inserir una imatge en el document</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com incrustar una imatge SVG (vector) en una pàgina web.</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: Aquest article no té la intenció d'ensenyar SVG; just el que és, i com afegir-lo a pàgines web.</p> +</div> + +<h2 id="Què_són_els_gràfics_vectorials">Què són els gràfics vectorials?</h2> + +<p>A la web, treballarem amb dos tipus d'imatges - imatges de trama (raster) i imatges vectorials:</p> + +<ul> + <li>Les imatges de trama es defineixen utilitzant una quadrícula de píxels - un arxiu d'imatge de trama conté informació que mostra exactament on cada píxel es col·locat, i exactament de quin color ha de ser. Els formats populars de trama en la web inclouen mapa de bits (.bmp), PNG (.png), JPEG (.jpg) i GIF (.gif).</li> + <li>Les imatges vectorials es defineixen utilitzant algoritmes - un arxiu d'imatge vectorial que conté definicions de forma i el camí que l'ordinador pot utilitzar per esbrina quin aspecte ha de tenir la imatge quan es representi a la pantalla. El format {{glossary("SVG")}} ens permet crear potents gràfics vectorials per a ús a la web.</li> +</ul> + +<p>Per donar-vos una idea de la diferència entre els dos, veurem un exemple. Podeu trobar aquest exemple en el nostre repositori Github com a <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/adding-vector-graphics-to-the-web/vector-versus-raster.html">vector-versus-raster.html</a> - mostra dues imatges costat a costat aparentment idèntiques, una estrella vermella amb una ombra negre. La diferència és que el de l'esquerra és un PNG, i la dreta és una imatge SVG.</p> + +<p><img alt="Two star images, one raster and one vector. At their default size they look identical" src="https://mdn.mozillademos.org/files/12866/raster-vector-default-size.png" style="display: block; height: 112px; margin: 0px auto; width: 223px;"></p> + +<p>La diferència es fa evident quan s'amplia la pàgina: la imatge PNG es pixela a mesura que s'amplia, ja que conté informació sobre on ha d'estar cada píxel (i quin color); quan s'amplia, cada píxel augmenta de grandària per emplenar múltiples píxels en la pantalla, per la qual cosa la imatge comença a veure's bloquejada.La imatge vectorial, no obstant això, segueix lluint agradable i nítida, ja que no importa la grandària que sigui, els algorismes s'utilitzen per elaborar les formes en la imatge, amb els valors simplement s'escalen a mesura que es fa més gran</p> + +<p><img alt="Two star images zoomed in. The raster one on the left starts to look pixellated, whereas the vector one still looks crisp." src="https://mdn.mozillademos.org/files/12868/raster-vector-zoomed.png" style="display: block; height: 328px; margin: 0px auto; width: 677px;"></p> + +<p>D'altra banda, els arxius d'imatge vectorial són molt més lleugers que els seus equivalents trama, ja que només necessiten tenir un grapat d'algorismes, en lloc d'informació sobre cada píxel de la imatge individualment.</p> + +<h2 id="Què_és_SVG">Què és SVG?</h2> + +<p>SVG és un llenguatge basat en {{glossary("XML")}} per descriure imatges vectorials. Es bàsicament de marcat, com HTML, excepte que té molts elements diferents per a la definició de les formes que volem que apareguin a la imatge, i els efectes que volem aplicar a aquestes formes. SVG és per marcar els gràfics, no el contingut. Al final de l'espectre més simple, tenim elements per a la creació de formes simples, com {{svgelement("circle")}} i {{svgelement("rect")}}. Més característiques avançades de SVG inclouen {{svgelement("feColorMatrix")}} (transforma colors utilitzant una matriu de transformació,) {{svgelement("animate")}} (animar parts d'un gràfic vectorial,) i {{svgelement("mask")}} (aplicar una màscara sobre la part superior de la imatge.)</p> + +<p><span id="result_box" lang="ca"><span>Com a</span> <span>simple exemple</span><span>, el codi</span> <span>següent</span> <span>crea</span> <span>un cercle</span> <span>i un</span> <span>rectang</span></span></p> + +<pre class="brush: html"><svg version="1.1" + baseProfile="full" + width="300" height="200" + xmlns="http://www.w3.org/2000/svg"> + <rect width="100%" height="100%" fill="black" /> + <circle cx="150" cy="100" r="90" fill="blue" /> +</svg></pre> + +<p><span id="result_box" lang="ca"><span>Això</span> <span>crea el següent</span> <span>resultat</span><span>:</span></span></p> + +<p>{{ EmbedLiveSample('What_is_SVG', 300, 200) }}</p> + +<p>L'exemple anterior, donava la impressió que SVG és fàcil de codifca manualment. Sí, es pot codifca manualment un simple SVG en un editor de text, però per una imatge complexa comença ràpidament a ser molt difícil. Per a la creació d'imatges SVG, la majoria de la gent utilitza un editor de gràfics vectorials com <a href="https://inkscape.org/en/">Inkscape</a> o <a href="https://en.wikipedia.org/wiki/Adobe_Illustrator">Illustrator</a>. Aquests paquets permeten crear una varietat d'il·lustracions utilitzant diverses eines de gràfics, i crear aproximacions de fotos (per exemple, funció Traçar mapa de bits de l'Inkscape).</p> + +<p>SVG té algunes avantatges addicionals a més de les descrites fins al moment:</p> + +<ul> + <li>El text en imatges vectorials roman accessible (la qual cosa també beneficia la seva {{glossary("SEO")}}).</li> + <li>Els SVGs es presten bé a estils/scripts, ja que cada component de la imatge és un element que pot ser dissenyat via CSS o per scripts via JavaScript.</li> +</ul> + +<p>Llavors, per què algú vol utilitzar gràfics de trama sobre SVG? Bé, SVG té alguns desavantatges:</p> + +<ul> + <li>SVG es pot complicar molt ràpidament, el que significa que les mides d'arxius poden créixer; els SVGs complexos poden arribar a ralentir els temps de processament del navegador</li> + <li>EL SVG pot ser més difícil de crear que les imatges de trama, depenent de quin tipus d'imatge estem tractant de crear.</li> + <li> + <p>SVG no és compatible amb els navegadors més antics, pel que pot no ser adequat si cal donar suport a les versions antigues d'Internet Explorer amb el vostre lloc web (SVG començar a ser suportat a partir d'IE9).</p> + </li> +</ul> + +<p>Els gràfics de trama són sens dubte millor per a les imatges de precisió complexes, com ara fotos, per les raons descrites anteriorment.</p> + +<div class="note"> +<p><strong>Nota</strong>: En Inkscape, guardar els arxius com Plain SVG per estalviar espai. També, si us plau referiu-vos a aquest <a href="http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Web-Inkscape.html">article que descriu com preparar SVGs per a la Web</a>.</p> +</div> + +<h2 id="Afegir_SVG_a_les_vostres_pàgines">Afegir SVG a les vostres pàgines</h2> + +<p>En aquesta secció veurem les diferents formes en què es poden afegir gràfics vectorials SVG a les vostres pàgines web.</p> + +<h3 id="La_forma_més_ràpida_htmlelement(img)"><span class="short_text" id="result_box" lang="ca"><span>La forma</span> <span>més</span> <span>ràpida</span></span> : {{htmlelement("img")}}</h3> + +<p>Per incrustar un SVG mitjançant un element {{htmlelement("img")}}, només s'ha de fer referència a ell en l'atribut <code>src</code>, com es podria esperar. Necessitarem un atribut <code>height</code> o <code>width</code> (o tots dos si el SVG no té cap relació d'aspecte inherent). Si no ho heu fet ja, si us plau llegiu les <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">imatges en HTML</a>.</p> + +<pre class="brush: html"><img + src="equilateral.svg" + alt="triangle with all three sides equal" + height="87px" + width="100px" /></pre> + +<h4 id="Pros">Pros</h4> + +<ul> + <li>Sintaxi de la imatge ràpida i familiar amb equivalent de text incorporat en l'atribut <code>alt</code>.</li> + <li>Es pot convertir la imatge en un hipervínculo fàcilment niant el <img> dins d'un element {{htmlelement("a")}}.</li> +</ul> + +<h4 id="Contres">Contres</h4> + +<ul> + <li>No es pot manipular la imatge amb JavaScript.</li> + <li>Si es vol controlar el contingut SVG amb CSS, s'ha d'incloure els estils CSS en línia en el codi SVG. (Les fulles d'estil externes invocades des de l'arxiu SVG no tenen cap efecte).</li> + <li>No es pot canviar l'estil de la imatge amb pseudoclasses CSS (like <code>:focus</code>).</li> +</ul> + +<h3 id="Solució_de_problemes_i_compatibilitat_entre_navegadors">Solució de problemes i compatibilitat entre navegadors</h3> + +<p>Per donar suport als navegadors SVG que no suporten SVG (IE 8 i per sota, Android 2.3 i per sota), es pot fer referència a un PNG o JPG des de l'atribut <code>src</code> i utilitzar un atribut {{htmlattrxref("srcset", "img")}} (que només reconeixen els navegadors recents) per fer referència al SVG. Sent aquest el cas, només els navegadors compatibles carregaran el SVG - els navegadors més antics carregaran el PNG en lloc d'un altre:</p> + +<pre class="brush: html"><img src="equilateral.png" alt="triangle with equal sides" srcset="equilateral.svg"></pre> + +<p>També es pot utilitzar el SVGs com imatges de fons de CSS, com es mostra a continuació. En el codi següent, els navegadors antics es pegaran amb el PNG que entenen, mentre que els nous navegadors carregaran el SVG:</p> + +<pre class="brush: css"><code>background: url("fallback.png") no-repeat center;</code> +background<code>-image: url("image.svg"); +background-size: contain;</code></pre> + +<p>Igual que el mètode <code><img></code> descrit anteriorment, la inserció d'SVGs utilitzant imatges de fons CSS vol dir que el SVG no pot ser manipulat amb JavaScript, i també està subjecta a les mateixes limitacions de CSS.</p> + +<p>Si els SVGs no es mostren en absolut, pot ser que el servidor no estigui configurat correctament. Si aquest és el problema, aquest <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Getting_Started#A_Word_on_Webservers">article us orientarà en la direcció correcta</a>.</p> + +<h3 id="Com_incloure_el_codi_SVG_dins_del_vostre_HTML"><span class="short_text" id="result_box" lang="ca"><span>Com incloure</span> <span>el codi</span> <span>SVG</span> <span>dins del vostre</span> <span>HTML</span></span></h3> + +<p>També es pot obrir el fitxer SVG en un editor de text, copiar el codi SVG, i enganxar-lo en el vostre document HTML - això de vegades es diu posar <strong>en línia SVG</strong>, o <strong>inlining SVG</strong>. Assegureu-vos que el fragment de codi SVG comença i acaba amb les etiquetes <code><a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg"><svg></svg></a></code> (no incloure res fora d'aquestes). Aquí hi ha un exemple molt simple del que es pot enganxar en el vostre document:</p> + +<pre class="brush: html"><svg width="300" height="200"> + <rect width="100%" height="100%" fill="green" /> +</svg> +</pre> + +<h4 id="Pros_2">Pros</h4> + +<ul> + <li>Posar SVG en línia estalvia una petició HTTP, i per tant pot reduir el temps de càrrega.</li> + <li>Es pot assignar classes i ids els elements SVG i l'estil d'ells amb CSS, ja sigui dins el SVG o on poseu les regles d'estil CSS per al document HTML. De fet, es pot utilitzar qualsevol <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute#Presentation_attributes">atribut de presentació SVG </a>com una propietat CSS.</li> + <li>Inlining SVG és l'únic enfocament que permet utilitzar les interaccions (com <code>:focus</code>) i animacions CSS en la imatge SVG (Fins i tot en la fulla d'estil regular)</li> + <li> + <p>Es pot convertir el marcat SVG en un hipervincle embolicant-lo en un element {{htmlelement("a")}}.</p> + </li> +</ul> + +<h4 id="Contres_2">Contres</h4> + +<ul> + <li>Aquest mètode només és adequat si s'utilitza el SVG en un sol lloc. La duplicació es fa per el manteniment intensiu de recursos.</li> + <li>El codi extra SVG augmenta la mida del arxiu HTML.</li> + <li>El navegador no pot emmagatzemar en memòria cau SVG en línia, ja que seria emmagatzemar en memòria cau els recursos d'imatges regulars.</li> + <li>Es pot incloure el respatller en un element {{svgelement ("foreignObject")}}, però els navegadors compatibles amb SVG segueixen descarregant les imatges de respatller. Cal sospesar si la sobrecàrrega addicional realment val la pena, només per donar suport als navegadors obsolets.</li> +</ul> + +<ul> +</ul> + +<h3 id="Com_incrustar_un_SVG_amb_un_htmlelement(iframe)">Com incrustar un SVG amb un {{htmlelement("iframe")}}</h3> + +<p>Es poden obrir imatges SVG en el navegador de la mateixa manera que les pàgines web. Així que la incrustació d'un document SVG amb un <code><iframe></code> es fa de la mateixa manera que l'estudiat en <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies">Des de <object> a <iframe> - altres tecnologies d'incrustació</a>.</p> + +<p>Aquí teniu una ullada ràpida:</p> + +<pre class="brush: html"><iframe src="triangle.svg" width="500" height="500" sandbox> + <img src="triangle.png" alt="Triangle with three unequal sides" /> +</iframe></pre> + +<p>Això en definitiva no és el millor mètode per triar:</p> + +<h4 id="Contres_3">Contres</h4> + +<ul> + <li>Els <code>iframes</code> tenen un mecanisme de reserva, com es pot veure, però els navegadors només mostraran la reserva si manquen de suport complet per <code>iframes</code>.</li> + <li>D'altra banda, llevat que el SVG i la pàgina web actual tenen el mateix {{glossary('origen')}}, no es pot utilitzar el Javascript a la pàgina web principal per manipular el SVG.</li> +</ul> + +<h2 id="Aprenentatge_actiu_Jugar_amb_SVG">Aprenentatge actiu: Jugar amb SVG</h2> + +<p>En aquesta secció d'aprenentatge actiu ens agradaria que simplement juguéssiu amb una mica de SVG per diversió. A la secció d'entrada de sota veureu que us hem proporcionat algunes mostres perquè pugueu començar. També podeu anar a <a href="/en-US/docs/Web/SVG/Element">SVG Element Reference</a>, per conèixer més detalls sobre altres joguines que es poden utilitzar en SVG, i provar-les també. Aquesta secció és, sobre tot, la pràctica de les vostres habilitats d'investigació, i que té una mica de diversió.</p> + +<p>Si us quedeu encallats i no podeu aconseguir que funcioni el vostre codi, sempre el podeu restablir amb el botó <em>Reset</em>.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html"><h2>Input</h2> +<textarea id="code" class="input"> +<svg width="100%" height="100%"> + <rect width="100%" height="100%" fill="red" /> + <circle cx="100%" cy="100%" r="150" fill="blue" stroke="black" /> + <polygon points="120,0 240,225 0,225" fill="green"/> + <text x="50" y="100" font-family="Verdana" font-size="55" + fill="white" stroke="black" stroke-width="2"> + Hello! + </text> +</svg></textarea> +<h2>Output</h2> +<div class="output"> +</div> +<div class="controls"> + <input id="reset" type="button" value="Reset" /> +</div> +</pre> + +<pre class="brush: css">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +.output { + height: 14em; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 600) }}</p> + +<h2 id="Sumari">Sumari</h2> + +<p>En aquest article se us ha proporcionat un viatge ràpid del que són gràfics vectorials i SVG, perquè són útils conèixer-los, i com s'inclouen els SVG dins de les pàgines web. Mai hem tingut la intenció de que fos una guia completa per a l'aprenentatge SVG, només un punter perquè conegueu que és SVG, per si us els trobeu en el vostres viatjes al voltant de la web. Així que no us preocupeu si no us sentiu, encara, com uns experts en SVG. Hem inclòs alguns enllaços, més a baix, que us podria ajudar-vos si voleu anar i esbrinar més sobre com funciona.</p> + +<p>En l'últim article d'aquest mòdul explorarem les imatges sensibles en detall, mirant les eines que té HTML, que us permetin fer que les vostres imatges funcionin millor a través de diferents dispositius.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Getting_Started">Tutorial SVG</a> en MDN</li> + <li><a href="http://thenewcode.com/744/Making-SVG-Responsive">Conells ràpids per SVGs sensibles</a></li> + <li><a href="http://tympanus.net/codrops/2014/08/19/making-svgs-responsive-with-css/">Sara Soueidan's tutorial sobre imatges SVG sensibles</a></li> + <li><a href="http://www.w3.org/TR/SVG-access/">Beneficis d'accessibilitat en SVG</a></li> + <li><a href="https://css-tricks.com/scale-svg/">Com escalar en SVGs </a>(no és tan simple com els gràfics de trama!)</li> +</ul> + +<p>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies", "Learn/HTML/Multimedia_and_embedding/Responsive_images", "Learn/HTML/Multimedia_and_embedding")}}</p> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/contingut_de_vídeo_i_àudio/index.html b/files/ca/learn/html/multimèdia_i_incrustar/contingut_de_vídeo_i_àudio/index.html new file mode 100644 index 0000000000..5a8855df2b --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/contingut_de_vídeo_i_àudio/index.html @@ -0,0 +1,294 @@ +--- +title: Contingut de vídeo i àudio +slug: Learn/HTML/Multimèdia_i_incrustar/Contingut_de_vídeo_i_àudio +tags: + - Article + - Audio + - Beginner + - Guide + - HTML + - Video + - captions + - subtitles + - track +translation_of: Learn/HTML/Multimedia_and_embedding/Video_and_audio_content +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Images_in_HTML", "Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<p class="summary">Ara que estem a gust afegint imatges senzilles a una pàgina web, el següent pas és començar a afegir els reproductors de vídeo i àudio als documents HTML! En aquest article veurem com es fa exactament això amb els elements {{htmlelement("video")}} i {{htmlelement("audio")}}; després acabarem mirant com afegir títols/subtítols als vídeos</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Installing_basic_software">instal.lació programari bàsic</a>, coneixements bàsics de <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Dealing_with_files">treballar amb arxius</a>, familiaritzar-se amb els fonaments HTML (com s'explica en <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started">Inici en HTML</a>) i <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">Imatges en HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com incrustar vídeo i àudio en una pàgina web, i afegir títols/subtítols a un vídeo.</td> + </tr> + </tbody> +</table> + +<h2 id="Àudio_i_vídeo_a_la_web"><span id="result_box" lang="ca"><span title="Audio and video on the web + +">Àudio i vídeo a la web</span></span></h2> + +<p>Els desenvolupadors web han volgut utilitzar vídeo i àudio a la web des de fa molt de temps, des de la dècada del 2000, quan vam començar a tenir un ample de banda prou ràpid com per suportar qualsevol tipus de vídeo (els arxius de vídeo són molt més grans que els de text o fins i tot les imatges). En els primers dies, les tecnologies web natives com HTML no tenien la capacitat d'integrar vídeo i àudio a la web, per la qual cosa les tecnologies propietàries (basades en el plug-in) com <a href="https://en.wikipedia.org/wiki/Adobe_Flash">Flash</a> (i més tard, <a href="https://en.wikipedia.org/wiki/Microsoft_Silverlight">Silverlight</a>) es van fer populars per al maneig d'aquests continguts. Aquest tipus de tecnologia funcionan bé, però tenen una sèrie de problemes, incloent, que no funcionan bé amb les característiques HTML/CSS, problemes de seguretat i problemes d'accessibilitat.</p> + +<p>Una solució nativa resoldria gran part d'això si es feia bé. Afortunadament, uns anys més tard, l'especificació {{glossary("HTML5")}} havia afegit aquestes característiques, amb els elements {{htmlelement("video")}} i {{htmlelement("audio")}}, i alguns nous i brillants {{Glossary("JavaScript")}} {{Glossary("API","APIs")}} per controlar-los. No estarem veient JavaScript aquí - només els fonaments bàsics que es poden aconseguir amb HTML.</p> + +<p>No estem per ensenyar com produir arxius d'àudio i vídeo - aixó requereix un conjunt d'habilitats completament diferents. Us hem proporcionat unes <a href="https://github.com/mdn/learning-area/tree/master/html/multimedia-and-embedding/video-and-audio-content">mostres d'arxiu d'àudio i vídeo i codi d'exemple</a> perquè pugueu experimentar, en cas que no pugueu aconseguir-ho vosaltres mateixos.</p> + +<div class="note"> +<p><strong>Nota</strong>: Abans de començar aquí, també s'ha de saber que hi ha un bon nombre {{glossary("OVP","OVPs")}} (proveïdors de vídeo en línia) com <a href="https://www.youtube.com/">YouTube</a>, <a href="http://www.dailymotion.com">Dailymotion</a> i <a href="https://vimeo.com/">Vimeo</a>, i proveïdors d'àudio en línia com <a href="https://soundcloud.com/">Soundcloud</a>. Aquestes empreses ofereixen una forma còmoda i fàcil d'allotjar i consumir videos, pel que no ha de preocupar l'enorme consum d'ample de banda. OVP, fins i tot, en general, ofereix codi ja preparat per incrustar vídeo/àudio a les seves pàgines web. Si anem per aquest camí, es pot evitar algunes de les dificultats que es discuteixen en aquest article. Estarem discutint aquest tipus de servei, una mica més, en el proper article.</p> +</div> + +<h3 id="L'element_<video>">L'element <video></h3> + +<p>L'element {{htmlelement("video")}} permet incrustar un vídeo molt fàcilment. Un exemple realment senzill és el següent:</p> + +<pre class="brush: html"><video src="rabbit320.webm" controls> + <p>Your browser doesn't support HTML5 video. Here is a <a href="rabbit320.webm">link to the video</a> instead.</p> +</video></pre> + +<p>Les característiques de la nota són:</p> + +<dl> + <dt>{{htmlattrxref("src","video")}}</dt> + <dd>De la mateixa manera que l'element {{htmlelement("img")}}, l'atribut src conté una ruta d'accés al vídeo que es vol incrustar. Funciona exactament de la mateixa manera.</dd> + <dt>{{htmlattrxref("controls","video")}}</dt> + <dd>Els usuaris han de poder controlar la reproducció de vídeo i d'àudio (és especialment important per a les víctimes de l'<a href="https://en.wikipedia.org/wiki/Epilepsy#Epidemiology">epilepsia</a>.) S'ha d'utilitzar l'atribut <code>controls</code> per incloure la pròpia interfície de control del navegador, o construir la interfície amb l'<a href="/en-US/docs/Web/API/HTMLMediaElement">API JavaScript</a> apropiat. Com a mínim, la interfície ha d'incloure una manera d'iniciar i aturar els medis i ajustar el volum.</dd> + <dt>El paràgraf dins de les etiquetes <code><video></code></dt> + <dd> + <p>Això es coneix com a <strong>contingut alternatiu</strong> - aquest és mostrat si el navegador per accedir a la pàgina no és compatible amb l'element <code><video></code>, ens permet oferir una alternativa per a navegadors antics. Això pot ser qualsevol cosa; en aquest cas, hem proporcionat un enllaç directe a l'arxiu de vídeo, de manera que l'usuari pogui, almenys, tenir accés a ell, d'alguna manera, independentment de quin navegador estan fent servir.</p> + </dd> +</dl> + +<p>El vídeo incrustat es veurà semblant a això:</p> + +<p><img alt="A simple video player showing a video of a small white rabbit" src="https://mdn.mozillademos.org/files/12794/simple-video.png" style="display: block; height: 592px; margin: 0px auto; width: 589px;"></p> + +<p><span id="result_box" lang="ca"><span>Podeu</span></span> <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/video-and-audio-content/simple-video.html">provar l'exemple viu</a> aquí ( <span id="result_box" lang="ca"><span>vegeu</span> <span>també el</span></span> <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/video-and-audio-content/simple-video.html">codi font</a>.)</p> + +<h3 id="Suport_de_múltiples_formats">S<span class="short_text" id="result_box" lang="ca"><span>uport</span> <span>de múltiples</span> <span>formats</span></span></h3> + +<p>Hi ha un problema amb l'exemple anterior, el qual us haureu adonat al intentar accedir a l'enllaç directe, anteriorment, amb un navegador com Safari o Internet Explorer. El vídeo no es reprodueix! Això és perquè diferents navegadors suporten diferents formats de vídeo (i àudio).</p> + +<p>Anem a través de la terminologia ràpidament. Formats com MP3, MP4 i WebM es diuen <strong>formats contenidors</strong>. Contenen diferents parts en què es compon la cançó o vídeo - com una pista d'àudio, una pista de vídeo (en el cas del vídeo), i les metadades per descriure els medis en que són presentats.</p> + +<p>Les pistes d'àudio i vídeo estan també en diferents formats, per exemple:</p> + +<ul> + <li>Un contenidor WebM generalment empaqueta àudio Ogg Vorbis amb vídeo VP8/VP9. Això és recolzat principalment en Firefox i Chrome.</li> + <li>Un contenidor MP4 sovint empaqueta àudio AAC o MP3 amb vídeo H.264. Això és recolzat principalment a Internet Explorer i Safari.</li> + <li>El contenidor Ogg més antic tendeix a anar amb àudio Ogg Vorbis i vídeo Ogg Theora . Això estava recolzat principalment en Firefox i Chrome, però bàsicament ha estat substituït pel format WebM de millor qualitat.</li> +</ul> + +<p>Un reproductor d'àudio tendeix a reproduir una pista d'àudio directament, per exemple, un arxiu MP3 o Ogg. Aquests no necessiten contenidors.</p> + +<div class="note"> +<p><strong>Nota</strong>: No és tan senzill, com es pot veure a la nostra <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats#Browser_compatibility">taula de compatibilitat de còdec d'àudio i de vídeo</a>. A més, molts navegadors de plataformes mòbils poden reproduir un format no suportat lliurant-ho al reproductor multimèdia del sistema subjacent per reproduir-ho. Però això ho farà ara com ara.</p> +</div> + +<p>Els formats anteriors existeixen per comprimir video i àudio en arxius manejables (el video i l'àudio en brut són molt grans). Els navegadors contenen diferents <strong>{{Glossary("Codec","Codecs")}}</strong>, com Vorbis o H.264, que s'utilitzen per convertir el so comprimit i el vídeo en dígits binaris i a l'inrevés. Com hem indicar anteriorment, els navegadors per desgràcia no tots suporten als mateixos còdecs, pel que s'haurà de proporcionar diversos arxius per a cada producció de medis. Si falta el còdec adequat per descodificar el medi, simplement no es reproduirà.</p> + +<div class="note"> +<p><strong>Nota:</strong> És possible que ens pregunten per què existeix aquesta situació. <strong>MP3</strong> (per a àudio) i <strong>MP4/H.264</strong> (per a vídeo) són àmpliament recolzats, i de bona qualitat. No obstant això, també són gravats per patents - patents nord-americanes que cobreixen MP3 fins almenys 2017, i H.264 fins 2027 com molt aviat, el que significa que els navegadors que no tenen la patent han de pagar grans summes de diners per recolzar aquests formats. A més, moltes persones eviten el programari restringit en principi, a favor dels formats oberts. Aquesta és la raó per la qual hem de proporcionar múltiples formats per a diferents navegadors.</p> +</div> + +<p>Llavors, com fem això? Fer una ullada a el següent <a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/video-and-audio-content/multiple-video-formats.html">exemple actualitzat</a> (<a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/video-and-audio-content/multiple-video-formats.html">prova-ho qui viu aquí</a>, també):</p> + +<pre class="brush: html"><video controls> + <source src="rabbit320.mp4" type="video/mp4"> + <source src="rabbit320.webm" type="video/webm"> + <p>Your browser doesn't support HTML5 video. Here is a <a href="rabbit320.mp4">link to the video</a> instead.</p> +</video></pre> + +<p>Aquí hem pres l'atribut <code>src</code> fora de l'etiqueta <code><video> </code>actual, i en el seu lloc hem inclòs elements {{htmlelement("source")}}, per separat, que apunten a les seves pròpies fonts. En aquest cas, el navegador va a través dels elements <code><source></code> i reprodueix el primer còdec que té que donar suport. Incloent les fonts de WebM i MP4 hauria de ser suficient per reproduir els vídeos a la majoria de plataformes i navegadors actuals.</p> + +<p>Cada element <code><source></code> també té un atribut <code>type</code>. Aquest és opcional, però s'aconsella que s'inclogui - conté el {{glossary("MIME type","MIME types")}} dels arxius de vídeo i els navegadors poden llegir aquests i saltar immediatament els vídeos que no entenen. Si no està inclòs, els navegadors carregan i tractan de reproduir cada arxiu fins a trobar un que funcioni, prenent encara més temps i recursos.</p> + +<div class="note"> +<p><strong>Nota</strong>: El nostre <a href="/en-US/docs/Web/HTML/Supported_media_formats">article sobre els formats dels medis compatibles</a> conté alguna cosa en comú {{glossary("MIME type","MIME types")}}.</p> +</div> + +<h3 id="Altres_característiques_de_<video>"><span id="result_box" lang="ca"><span>Altres característiques</span> de <span><</span><span>video</span><span>></span></span></h3> + +<p>Hi ha una sèrie d'altres característiques que es poden incloure en un vídeo HTML5. Fer una ullada al nostre tercer exemple, a continuació:</p> + +<pre class="brush: html"><video controls width="400" height="400" + autoplay loop muted + poster="poster.png"> + <source src="rabbit320.mp4" type="video/mp4"> + <source src="rabbit320.webm" type="video/webm"> + <p>Your browser doesn't support HTML5 video. Here is a <a href="rabbit320.mp4">link to the video</a> instead.</p> +</video> +</pre> + +<p>Això ens donarà una sortida semblant alguna cosa com això:</p> + +<p><img alt="A video player showing a poster image before it plays. The poster image says HTML5 video example, OMG hell yeah!" src="https://mdn.mozillademos.org/files/12796/extra-video-features.png" style="display: block; height: 731px; margin: 0px auto; width: 653px;"> <span id="result_box" lang="ca"><span>Les</span> <span>noves</span> <span>característiques</span> <span>són</span><span>:</span></span></p> + +<dl> + <dt>{{htmlattrxref("width","video")}} and {{htmlattrxref("height","video")}}</dt> + <dd>Es pot controlar la mida del vídeo, ja sigui amb aquests atributs o amb {{Glossary("CSS")}}. En ambdós casos, els vídeos mantenen la seva relació amplada-alçada nativa - coneguda com la <strong>relació d'aspecte</strong>. Si la relació d'aspecte no es manté per les mides que s'hagin definit, el vídeo creixerà per omplir l'espai horitzontal, i l'espai sense omplir acabarà tinguen un color de fons sòlid per defecte.</dd> + <dt>{{htmlattrxref("autoplay","video")}}</dt> + <dd>Aquest atribut fa que l'inici d'àudio o vídeo es reprodueixi immediatament, mentre que la resta de la pàgina s'està carregant. Es recomana no utilitzar el vídeo en reproducció automàtica (o àudio) en els vostres llocs, ja que els usuaris poden trobar que és realment molest.</dd> + <dt>{{htmlattrxref("loop","video")}}</dt> + <dd>Aquest atribut fa que el vídeo (o àudio) comenci reproduir-se, de nou, cada vegada que acabi. Això també pot ser molest, de manera que només s'utilitzi quan sigui realment necessari.</dd> + <dt>{{htmlattrxref("muted","video")}}</dt> + <dd>Aquest atribut fa que el medi es reprodueixi amb el so desactivat per defecte.</dd> + <dt>{{htmlattrxref("poster","video")}}</dt> + <dd>Aquest atribut pren com a valor l'adreça URL d'una imatge, que es podrà veure abans de reproduir-se el vídeo. Està destinat a ser utilitzat per a una pantalla de presentació o de publicitat.</dd> + <dt>{{htmlattrxref("preload","video")}}</dt> + <dd> + <p>Aquest atribut s'utilitza en l'element per emmagatzemar en búfer arxius grans. Pot prendre un dels 3 valors:</p> + + <ul> + <li><code>"none"</code> no emmagatzema l'arxiu en búfer</li> + <li><code>"auto"</code> emmagatzema l'arxiu multimèdia en búfer</li> + <li><code>"metadata"</code> només emmagatzema en búfer les metadades de l'arxiu</li> + </ul> + </dd> +</dl> + +<p>Es pot trobar l'exemple anterior disponible per <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/video-and-audio-content/extra-video-features.html">reproduir en viu en Github</a> (també <a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/video-and-audio-content/extra-video-features.html">veureu el codi font</a>.) Recordeu que no hem inclòs l'atribut de reproducció automàtica en la versió en viu - si el vídeo comença a reproduir-se tan aviat com es carrega la pàgina, no es veurà el cartell!</p> + +<h3 id="L'element_<audio>">L'element <audio></h3> + +<p>L'element {{htmlelement("audio")}} funciona exactament de la mateixa manera que l'element {{htmlelement("video")}}, amb algunes petites diferències com s'indica a continuació. Un exemple típic podria ser així:</p> + +<pre class="brush: html"><audio controls> + <source src="viper.mp3" type="audio/mp3"> + <source src="viper.ogg" type="audio/ogg"> + <p>Your browser doesn't support HTML5 audio. Here is a <a href="viper.mp3">link to the audio</a> instead.</p> +</audio></pre> + +<p>Això produeix alguna cosa, com el següent, en un navegador:</p> + +<p><img alt="A simple audio player with a play button, timer, volume control, and progress bar" src="https://mdn.mozillademos.org/files/12798/audio-player.png" style="display: block; height: 413px; margin: 0px auto; width: 626px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Es pot <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/video-and-audio-content/multiple-audio-formats.html">executar la demostració d'àudio en viu</a> en Github (també veure el <a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/video-and-audio-content/multiple-audio-formats.html">codi font reproductor d'àudio</a>.)</p> +</div> + +<p>Aquest ocupa menys espai que un reproductor de vídeo, ja que no hi ha component visual - només ha de mostrar els controls per reproduir l'àudio. Altres diferències amb el vídeo HTML5 són els següents:</p> + +<ul> + <li>L'element {{htmlelement("audio")}} no suporta els atributs <code>width/height</code> - de nou, no hi ha cap component visual, de manera que no hi ha res per assignar una amplada o l'alçada.</li> + <li>Així mateix, no és compatible amb l'atribut <code>poster</code> - de nou, cap component visual.</li> +</ul> + +<p>A part d'això, <audio> suporta les mateixes característiques que <video> - reviseu les seccions anteriors per obtenir més informació sobre ells.</p> + +<h2 id="Visualitzar_pistes_de_text_de_vídeo">Visualitzar pistes de text de vídeo</h2> + +<p>Ara parlarem d'un concepte una mica més avançat que és molt útil conèixer. Moltes persones no poden o no volen escoltar el contingut d'àudio/vídeo que troben a la web, almenys en determinats moments. Per exemple:</p> + +<ul> + <li>Moltes persones tenen problemes auditius (més comunament coneguda com problemes d'audició o sordesa) pel que no poden sentir l'àudio.</li> + <li>Altres poden no ser capaços d'escoltar l'àudio perquè es troben en ambients sorollosos (com un bar ple de gent quan s'està veient un joc d'esports) o no voldrien molestar a altres persones si estan en un lloc tranquil (com una biblioteca.)</li> + <li>Les persones que no parlen l'idioma del vídeo, pot ser que vulguin una transcripció del text traduït o fins i tot una ajuda per entendre el contingut del medi.</li> +</ul> + +<p>No seria agradable proporcionar a aquestes persones amb una transcripció de les paraules que es parla en l'àudio/vídeo? Bé, gràcies a vídeo HTML5, es pot amb el format <a href="/en-US/docs/Web/API/Web_Video_Text_Tracks_Format">WebVTT</a> i l'element {{htmlelement("track")}}.</p> + +<div class="note"> +<p><strong>Nota</strong>: "transcriure" i "transcripció" vol dir escriure les paraules parlades com a text.</p> +</div> + +<p>WebVTT és un format per escriure arxius de text que contenen diverses cadenes de text juntament amb metadades, així com a quina hora volem que en el video, es mostri cada cadena de text i fins i tot informació limitada d'estil/posicionament. Aquestes cadenes de text s'anomenen senyals, i també poden mostrar diferents tipus per a diferents propòsits, sent els més comuns:</p> + +<dl> + <dt>subtitles</dt> + <dd>Traduccions de material estranger, per a persones que no entenen les paraules pronunciades en l'àudio.</dd> + <dt>captions</dt> + <dd>Transcripcions sincronitzades de diàleg o descripcions de sons significatius, permeten a les persones que no poden sentir l'àudio entendre el que està passant.</dd> + <dt>timed descriptions</dt> + <dd>Text per a la conversió a àudio, serveix a les persones amb discapacitat visual.</dd> +</dl> + +<p>Un arxiu típic WebVTT es veurà així:</p> + +<pre class="eval line-numbers language-html"><code class="language-html">WEBVTT + +1 +00:00:22.230 --> 00:00:24.606 +This is the first subtitle. + +2 +00:00:30.739 --> 00:00:34.074 +This is the second. + + ...</code> +</pre> + +<p>Perquè es visualitzi juntament amb la reproducció de medis HTML, cal:</p> + +<ol> + <li>Guardar-ho com un arxiu <code>.vtt</code> en un lloc sensible.</li> + <li>Enllaçar al arxiu <code>.vtt</code> amb l'element {{htmlelement("track")}}. <code><track></code> ha de ser col·locat dins <code><audio></code> o <code><video></code>, però després de tots els <code><source></code>. Utilitzar l'atribut {{htmlattrxref("kind","track")}} per especificar si els senyals són <code>subtitles</code>, <code>captions</code> o <code>descriptions</code>. A més, utilitzar {{htmlattrxref("srclang","track")}} per indicar al navegador l'idioma en què s'han escrit els subtítols.</li> +</ol> + +<p>Heus aquí un exemple:</p> + +<pre class="brush: html"><video controls> + <source src="example.mp4" type="video/mp4"> + <source src="example.webm" type="video/webm"> + <track kind="subtitles" src="subtitles_en.vtt" srclang="en"> +</video></pre> + +<p>Això resultarà un vídeo que mostrarà subtítols, agradable com aixó:</p> + +<p><img alt='Video player with stand controls such as play, stop, volume, and captions on and off. The video playing shows a scene of a man holding a spear-like weapon, and a caption reads "Esta hoja tiene pasado oscuro."' src="https://mdn.mozillademos.org/files/7887/video-player-with-captions.png" style="display: block; height: 365px; margin: 0px auto; width: 593px;"></p> + +<p>Per a més detalls, si us plau llegiu <a href="/en-US/Apps/Build/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video">Afegir llegendes i subtitols a video HTML5</a>. Es pot <a href="http://iandevlin.github.io/mdn/video-player-with-captions/">trobar l'exemple</a> que acompanya aquest article a Github, escrit per Ian Devlin (veureu també el codi font .) En aquest exemple s'utilitza una mica de JavaScript per permetre als usuaris triar entre diferents subtítols. Recordeu que per activar els subtítols, cal prémer el botó "CC" i seleccionar una opció - English, Deutch o Español.</p> + +<div class="note"> +<p><strong>Nota</strong>: Les pistes de text també ajudan amb {{glossary("SEO")}}, ja que els motors de cerca prosperen especialment en el text. Les pistes de text, fins i tot, permeten que els motors de cerca enllacin directament a un lloc parcial a través del vídeo.</p> +</div> + +<h2 id="Aprenentatge_actiu_Incrustar_el_nostre_àudio_i_vídeo">Aprenentatge actiu: Incrustar el nostre àudio i vídeo</h2> + +<p>Per a aquest aprenentatge actiu, ens agradaria (idealment) que sortíssiu al món i registréssiu alguns vídeos i àudio - la majoria dels telèfons, avui dia, permeten gravar àudio i vídeo molt fàcilment, i sempre es pot transferir al ordinador, ho podeu fer servir. Podria ser necessari fer una mica de conversió acabant amb un WebM i MP4 en el cas de vídeo, i un MP3 i Ogg en el cas de l'àudio, però hi ha suficients programes que permeten fer això sense masses problemes, com <a href="http://www.mirovideoconverter.com/">Miro Video Converter</a> i <a href="https://sourceforge.net/projects/audacity/">Audacity</a>. Ens agradaria que ho provéssiu!</p> + +<p>Si no podeu tenir qualsevol font de vídeo o d'àudio, llavors sou lliures d'utilitzar els nostres <a href="https://github.com/mdn/learning-area/tree/master/html/multimedia-and-embedding/video-and-audio-content">arxius d'àudio i vídeo d'exemple</a> per dur a terme aquest exercici. També es pot utilitzar el nostre codi d'exemple com a referència.</p> + +<p>Ens agradaria que:</p> + +<ol> + <li>Guardar els arxius d'àudio i vídeo en un nou directori a l'equip.</li> + <li>Crear un nou arxiu HTML en el mateix directori, anomenat <code>index.html</code>.</li> + <li>Afegir els elements <code><audio></code> i <code><video></code> a la pàgina; fer que es mostrin els controls del navegador per defecte.</li> + <li>Proporcionar, a tots dos, elements <code><source></code> perquè els navegadors trobin el format d'àudio que millor suportin i carregar-lo. Aquests han d'incloure els atributs <code>type</code>.</li> + <li>Donar a l'element <code><vídeo></code> un cartell que es mostrarà abans que el vídeo comenci a ser reproduït. Divertir-vos creant el vostre cartell gràfic.</li> +</ol> + +<p>Per a un bo addicional, es podria intentar investigar les pistes de text, i trobar la manera d'afegir una mica de subtítols al vídeo.</p> + +<h2 id="Sumari">Sumari</h2> + +<p>I això és un embolcall; esperem que us hagi divertit jugar amb vídeo i àudio en les pàgines web! En el proper article, veurem altres formes d'inserir continguts a la web, utilitzant tecnologies com {{htmlelement("iframe")}} i {{htmlelement("object")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{htmlelement("audio")}}</li> + <li>{{htmlelement("video")}}</li> + <li>{{htmlelement("source")}}</li> + <li>{{htmlelement("track")}}</li> + <li><a href="/en-US/Apps/Build/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video">Afegir llegendes i subtitols a vídeo HTML5</a></li> + <li><a href="/en-US/docs/Web/Apps/Fundamentals/Audio_and_video_delivery">Lliurament d'Àudio i Vídeo</a>: Un MUNT de detalls sobre com posar àudio i vídeo en pàgines web utilitzant HTML i JavaScript.</li> + <li><a href="/en-US/docs/Web/Apps/Fundamentals/Audio_and_video_manipulation">Manipulació d'Àudio i Vídeo</a>: Un MUNT de detalls sobre la manipulació d'àudio i vídeo mitjançant JavaScript (per exemple, afegir filtres)</li> +</ul> + +<p>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Images_in_HTML", "Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies", "Learn/HTML/Multimedia_and_embedding")}}</p> + +<dl> +</dl> + +<ul> +</ul> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/de_objecte_a_iframe_altres_tecnologies_incrustació/index.html b/files/ca/learn/html/multimèdia_i_incrustar/de_objecte_a_iframe_altres_tecnologies_incrustació/index.html new file mode 100644 index 0000000000..0a69bc1d47 --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/de_objecte_a_iframe_altres_tecnologies_incrustació/index.html @@ -0,0 +1,318 @@ +--- +title: De objecte a iframe - altres tecnologies d'incrustació +slug: >- + Learn/HTML/Multimèdia_i_incrustar/De_objecte_a_iframe_altres_tecnologies_incrustació +tags: + - Article + - Beginner + - CodingScripting + - Embedding + - Flash + - Guide + - HTML + - Learn + - Multimedia and embedding + - Object + - embed + - iframe +translation_of: Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Video_and_audio_content", "Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<p class="summary">Per ara, realment, s'aconseguit penjar coses incrustades en les pàgines web, incloent imatges, àudio i vídeo. En aquest punt ens agradaria fer un petit pas a banda, mirant a alguns elements que ens permetin introduir una àmplia varietat de tipus de contingut en les pàgines web: els elements {{htmlelement("iframe")}}, {{htmlelement("embed")}} i {{htmlelement("object")}}. Els <iframe>s són per incrustar altres pàgines web, i els altres dos, permeten incrustar arxius PDF, SVG, i fins i tot, flash - una tecnologia que està en camí de desaparèixer, però que encara es veu semi-regular.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits Previs:</th> + <td>Coneixements bàsics d'informàtica, <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Installing_basic_software">programari bàsic instal.lat</a>, coneixement bàsic de <a href="https://developer.mozilla.org/en-US/Learn/Getting_started_with_the_web/Dealing_with_files">tractar amb arxius</a>, familiaritat-se amb els fonaments d'HTML (com s'explica en <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started">Inici amb HTML</a>) i els articles anteriors d'aquest mòdul.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre com inserir elements en pàgines web fent servir {{htmlelement("object")}}, {{htmlelement("embed")}} i {{htmlelement("iframe")}}, com pel·lícules Flash i altres pàgines web.</td> + </tr> + </tbody> +</table> + +<h2 id="Una_breu_història_de_la_incrustació">Una breu història de la incrustació</h2> + +<p>Fa molt de temps, a la web, era popular l'ús de <strong>marcs (frames)</strong> per crear llocs web - petites parts d'un lloc web que s'emmagatzemaven en pàgines HTML individuals. Aquests eran inserits en un document mestre anomenat <strong>conjunt de marcs (frameset)</strong>, el que permetia especificar l'àrea de la pantalla de cada marc ple, com una manera de dimensionar columnes i files d'una taula. Aquests van ser considerats un súmmum de frescor a mitjans i finals dels 90, però no hi havia proves, que tenir la pàgina web dividida en trossos més petits com aquest era millor per la velocitat de descàrrega - sent especialment notable que les connexions de xarxa era tan lentes en aquell temps. Però, van tenir molts problemes, que sobrepassaven els aspectes positius com la velocitat de la xarxa, ara més ràpida, pel que ja no es veu la seva utilització.</p> + +<p>Una mica més tard (finals dels 90, principis de 2000), les tecnologies de plug-in es van fer molt populars, com els <a href="/en-US/docs/Glossary/Java">Java Applets</a> i <a href="/en-US/docs/Glossary/Adobe_Flash">Flash</a> - aixó va permetre els desenvolupadors web incrustar un contingut ric en pàgines web com vídeo i animacions, que simplement no estaven disponibles a través d'HTML. La incrustació d'aquestes tecnologies es va aconseguir mitjançant elements com {{htmlelement("object")}}, i el menys usat {{htmlelement("embed")}}, van ser molt útils a l'hora. Des de llavors, han caigut en desús a causa de molts problemes, inclosa l'accessibilitat, la seguretat, mida del fitxer, i més; avui dia la majoria dels dispositius mòbils no són compatibles amb aquest tipus de plugins, i el suport d'escriptori està en el camí de ser exclòs.</p> + +<p>Finalment, l'element {{htmlelement("iframe")}} va aparèixer (juntament amb altres formes d'inserir contingut, com {{htmlelement("canvas")}}, {{htmlelement("video")}}, etc.) Això va proporcionar una manera de incrustar un document web sencer dins d'un altre, com si es tractés d'un {{htmlelement("img")}} o un altre element, i s'utilitza regularment en l'actualitat.</p> + +<p>Sortint de la lliçó de la història, anem a seguir endavant i veure com utilitzar alguns d'aquests.</p> + +<h2 id="Aprenentatge_actiu_usos_clàssics_d'incrustació">Aprenentatge actiu: usos clàssics d'incrustació</h2> + +<p>En aquest article saltarem directament a una secció d'aprenentatge actiu, per donar-vos immediatament una idea real del que les tecnologies d'incrustació són útils. El món en línia està molt familiaritzat amb <a href="https://www.youtube.com">Youtube</a>, però moltes persones no saben sobre algunes dels mecanismes d'intercanvi que té disponibles. Vegem com Youtube ens permet incrustar un vídeo en qualsevol pàgina que ens agradi, utilitzant un {{htmlelement("iframe")}}.</p> + +<ol> + <li>En primer lloc, anar a Youtube i trobar un vídeo que us agradi.</li> + <li>A continuació en el vídeo trobareu un botó <em>Compartir</em> - seleccioneu aquesta opció per mostrar les opcions d'ús compartit.</li> + <li>Seleccioneu l'opció <em>Inserir</em> i se us donarà un cert codi <code><iframe></code> - copieu aquest.</li> + <li>Inserir-lo en el <em>quadre</em> d'entrada de sota, i veureu quin és el resultat a la <em>sortida</em>.</li> +</ol> + +<p>Per als punts de bonificació, també es podria tractar d'insertar un <a href="https://www.google.com/maps/">Google Map</a> en l'exemple:</p> + +<ol> + <li>Aneu a Google Maps i trobar un mapa que us agradi.</li> + <li>Feu clic al "Hamburger Menu" (tres línies horitzontals) a la part superior esquerra de la interfície d'usuari.</li> + <li>Seleccioneu l'opció <em>Compartir o insetar un mapa</em>.</li> + <li>Seleccionar l'opció insertar un mapa, us donarà un cert codi <code><iframe></code> - copieu aquest.</li> + <li>Inserir-lo en el <em>quadre</em> d'entrada de sota, i veureu quin és el resultat a la <em>sortida</em>.</li> +</ol> + +<p>Si cometeu un error, sempre es pot restablir amb el botó de <em>Reinici</em>. Si aconseguiu realment queda encallats, feu clic al botó <em>Mostra solució</em> per veure una resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html"><h2>Input</h2> +<textarea id="code" class="input"> +</textarea> +<h2>Output</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Reset" /> + <input id="solution" type="button" value="Show solution" /> +</div> +</pre> + +<pre class="brush: css">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +.output { + height: 14em; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<iframe width="420" height="315" src="https://www.youtube.com/embed/QH2-TGUlwu4" frameborder="0" allowfullscreen>\n</iframe>'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 600) }}</p> + +<h2 id="Iframes_en_detall">Iframes en detall</h2> + +<p>Per tant, això va ser fàcil i divertit oi? Els elements {{htmlelement("iframe")}} estan dissenyats per permetre inserir altres documents web dins del document actual. Això és molt bó per incorporar continguts de tercers al lloc web en que no es pot tenir control directe sobre i no es vol haver d'implementar la seva pròpia versió - com els vídeo de proveïdors de vídeo en línia, sistemas de comentarios como <a href="https://disqus.com/">Disqus</a>, mapes de proveïdors de mapes en línia, pancartes publicitaries, etc. Els exemples editables en directe que s'han estat usant a través d'aquest curs s'implementen utilitzant <iframe>s.</p> + +<p>Hi ha alguns {{anch("Problemes de seguretat")}} greus a considerar amb els <iframe>s, com veurem més endavant, però això no vol dir que no s'hagin d'utilitzar en els llocs web - només requereix una mica de coneixement i un raonament. Explorarem el codi en una mica més de detall. Digueu que voleu incloure en el glossari MDN en una de les seves pàgines web - podreu intentar alguna cosa com això:</p> + +<pre><iframe src="https://developer.mozilla.org/en-US/docs/Glossary" + width="100%" height="500" frameborder="0" + allowfullscreen sandbox> + <p> <a href="https://developer.mozilla.org/en-US/docs/Glossary"> + Fallback link for browsers that don't support iframes + </a> </p> +</iframe></pre> + +<p>Aquest exemple inclou els elements essencials bàsics necessaris per utilitzar un <code><iframe></code>:</p> + +<dl> + <dt>{{htmlattrxref('allowfullscreen','iframe')}}</dt> + <dd>Si s'estableix, el <code><iframe></code> és capaç de ser col·locat en la manera de pantalla completa amb <a href="/en-US/docs/Web/Apps/Fundamentals/User_notifications/Full_screen_api">Full Screen API</a> (està fora de l'abast per a aquest article).</dd> + <dt>{{htmlattrxref('frameborder','iframe')}}</dt> + <dd>Si s'estableix en 1, això indica al navegador per establir una frontera entre aquest marc i altres marcs, que és el comportament per defecte. 0 elimina la frontera. L'ús d'aquest realment no es recomana més, ja que el mateix efecte es pot aconseguir, millor, mitjançant {{cssxref('border')}}: <code>none</code>; en el {{Glossary('CSS')}}.</dd> + <dt>{{htmlattrxref('src','iframe')}}</dt> + <dd>Aquest atribut, igual que amb {{htmlelement("video")}}/{{htmlelement("img")}}, conté una ruta que apunta a la URL del document per a ser incrustat.</dd> + <dt>{{htmlattrxref('width','iframe')}} i {{htmlattrxref('height','iframe')}}</dt> + <dd>Aquests atributs especifiquen l'amplada i l'alçada que es vol que tingui el iframe.</dd> + <dt>Contingut alternatiu</dt> + <dd>De la mateixa manera que altres elements similars com {{htmlelement("video")}}, pot incloure el contingut alternatiu entre les etiquetes d'obertura i tancament <code><iframe></iframe></code> que apareixeran si el navegador no suporta l'etiqueta <code><iframe></code>. En aquest cas hem inclòs un enllaç a la pàgina en el seu lloc. És poc probable trobar-se amb qualsevol navegador que no sigui compatible amb <code><iframe></code>s avui dia.</dd> + <dt>{{htmlattrxref('sandbox','iframe')}}</dt> + <dd>Aquest atribut, funciona en navegadors una mica més modern que la resta de les característiques <code><iframe></code> (per exemple, Internet Explorer 10 i superior) sol·licita la configuració de seguretat reforçada; direm més sobre això en la següent secció.</dd> +</dl> + +<div class="note"> +<p><strong>Nota</strong>: Per tal de millorar la velocitat, és una bona idea establir l'atribut <code>src</code> de l'iframe amb JavaScript després que el contingut principal s'hagi carregat. Això fa que la pàgina s'utilitzi més aviat i disminueixi el temps de càrrega de la pàgina oficial (una mètrica important {{glossary("SEO")}}).</p> +</div> + +<h3 id="Problemes_de_seguretat">Problemes de seguretat</h3> + +<p>Esmentem abans els problemes de seguretat - Entrarem en això en detall, una mica més, ara. No esperem que es pugui entendre tot aquest contingut perfectament la primera vegada; només volem fer-vos conscients d'aquesta preocupació, i proporcionar una referència per tornar a mesura que tingueu més experiéncia i començar a considerar l'ús de <code><iframe></code>s en els vostres experiments i treball. A més, no hi ha necessitat de tenir por i no utilitza <code><iframe></code>s - només s'ha de tenir cura. Seguiu llegint...</p> + +<p>Els fabricants de navegadors i desenvolupadors web han après per les males que els iframes són un objectiu comú (terme oficial: <strong>attack vector</strong>) per a les persones dolentes a la web (sovint anomenat <strong>hackers</strong>, o més exactament, <strong>crackers</strong>) per atacar, si estan tractant de modificar maliciosament la vostre pàgina web, o enganyar a la gent a fer alguna cosa que no volen fer, com revelar informació sensible com noms d'usuari i contrasenyes. A causa d'això, els enginyers d'especificacions i els desenvolupadors de navegadors han desenvolupat diversos mecanismes de seguretat per fer <code><iframe></code>s més segurs, i també estan les millors pràctiques a tenir en compte - anem a cobrir alguns d'aquests a continuació.</p> + +<div class="note"> +<p>{{interwiki('wikipedia','Clickjacking')}} és un tipus d'atac iframe comú on els pirates informàtics incrustan un iframe invisible en el document (o incrustan el document en el seu propi lloc web maliciós) i el fan servir per capturar les interaccions dels usuaris. Aquesta és una forma comuna de confondre als usuaris o robar dades confidencials.</p> +</div> + +<p>Un exemple ràpid, primer - intenteu carregar l'exemple anterior, mostrat previament, en el vostre navegador - es pot <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/other-embedding-technologies/iframe-detail.html">trobar en Github</a> (<a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/other-embedding-technologies/iframe-detail.html">veure el codi font</a> també). No veureu, realment, res que apareigui a la pàgina, i si ens fixem en la <em>consola</em> en les <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">eines de desevolupament del navegador</a>, veureu un missatge que us indica perquè. En Firefox, se hos dirá, càrrega denegada per<em> X-Frame-Options: https://developer.mozilla.org/en-US/docs/Glossary, no permet marcs</em>. Això es deu al fet que els desenvolupadors que van construir MDN han inclòs una configuració al servidor que serveix a les pàgines del lloc web de no permetre que siguin incrustades a l'interior de <code><iframe></code>s (veure {{anch("Configure CSP directives")}}, més avall). Això té sentit - una pàgina sencere MDN no té molt sentit incrustar-la en altres pàgines, llevat que es vulgui fer alguna cosa com incrustar-la el vostre lloc i reclamar-les com a propies - o l'intent de robatori de dades a través de clickjacking, que són alhora coses molt dolentes, que es poden fer. A més, si tothom comences a fer això, tot l'ample de banda addicional començaria a costar-li molts diners a Mozilla.</p> + +<h4 id="Només_incrustar_quan_sigui_necessari">Només incrustar quan sigui necessari</h4> + +<p>De vegades té sentit incrustar el contingut de tercers - com vídeos i mapes youtube - però ens podem estalviar molts mals de cap si només incrusten contingut de tercers quan sigui completament necessari. Una bona regla d'or per a la seguretat web és <em>"Mai es pot ser massa cautelós. Si ho heu fet, torneu a comprovar-ho de totes maneres. Si algú més ho ha fet, se suposa que és perillós fins que es demostri el contrari"</em>.</p> + +<div> +<p>A més de la seguretat, també s'ha d'estar al tant de les qüestions de la propietat intel·lectual. La majoria dels continguts té drets d'autor, fora de línia i en línia, fins i tot continguts que no us ho espereu (per exemple, la majoria de les imatges de <a href="https://commons.wikimedia.org/wiki/Main_Page">Wikimedia Commons</a>). Mai mostrar el contingut de la vostra pàgina web a menys que el propietari o els propietaris hagin donat per escrit, l'autorització inequívoca. Les sancions per infracció de drets d'autor són greus. Un cop més, mai es pot ser massa cautelós.</p> + +<p>Si el contingut és llicenciat, s'ha d'obeir els termes de la llicència. Per exemple, el contingut MDN és <a href="/en-US/docs/MDN/About#Copyrights_and_licenses">sota llicència CC-BY-SA</a>. Això vol dir, que s'ha d'<a href="https://wiki.creativecommons.org/wiki/Best_practices_for_attribution">acreditar adequadament</a> quan se cita el nostre contingut, fins i tot si es realitzen canvis substancials.</p> +</div> + +<h4 id="Utilitzar_HTTPS">Utilitzar HTTPS</h4> + +<p>{{Glossary("HTTPS")}} és la versió encriptada de {{Glossary("HTTP")}}. S'h de fer servir, HTTPS, en els vostres llocs web sempre que sigui possible:</p> + +<ol> + <li>HTTPS redueix la possibilitat que el contingut remot hagi estat manipulat en trànsit,</li> + <li>HTTPS impedeix que el contingut incrustat accedeixi al contingut del vostre document principal, i viceversa.</li> +</ol> + +<p>L'ús d'HTTPS requereix un certificat de seguretat, que pot ser car (encara que <a href="https://letsencrypt.org/">Let's Encrypt</a> facilita les coses) - si no es pot aconseguir un, es pot fer servir el document principal amb HTTP. No obstant això, a causa del segon benefici descrit anteriorment sobre HTTPS , <em>no importa el que costi, mai s'ha de incrustar contingut de tercers amb HTTP. </em>(En el millor dels casos, el navegador web de l'usuari donarà un advertiment de por). Totes les empreses de renom que fan que el contingut disponible vagi incrustar a través d'un <code><iframe></code> ho farà disponible a través d'HTTPS - mirar les URL dins de l'atribut <code>src</code> d'<code><iframe></code> quan està incrustant contingut de Google Maps o Youtube, per exemple.</p> + +<div class="note"> +<p><strong>Nota</strong>: <a href="/en-US/docs/Learn/Common_questions/Using_Github_pages">Les pàgines de Github</a> permeten que el contingut se serveixi a través d'HTTPS de forma predeterminada, per la qual cosa és útil per allotjar contingut. Si utilitzeu altre allotjament i no esteu segurs, consulteu al vostre proveïdor d'allotjament, sobre això.</p> +</div> + +<h4 id="Utilitzar_sempre_l'atribut_sandbox">Utilitzar sempre l'atribut <code>sandbox</code></h4> + +<p>Si es vol donar als atacants poc poder, com sigui possible, per fer coses dolentes al vostre lloc web, s'ha de donar els continguts incrustats, només, els permisos necessaris per realitzar-lo. Per descomptat, això també, s'aplica al vostre propi contingut. Un contenidor de codi el qual es pot utilitzar apropiadament - o per a les proves - però no pot causar cap mal a la resta de la base del codi (ja sigui accidental o maliciós) s'anomena <a href="https://en.wikipedia.org/wiki/Sandbox_(computer_security)">sandbox</a>.</p> + +<p>El contingut sense sandbox pot fer molt (l'execució de JavaScript, l'enviament de formularis, finestres emergents, etc.) Per defecte s'ha d'imposar totes les restriccions disponibles mitjançant l'atribut <code>sandbox</code> sense paràmetres, com es mostra en l'exemple anterior.</p> + +<p>Si és absolutament necessari, es pot afegir permisos de tornada un per un (dins del valor d'atribut <code>sandbox</code> ="" ) - veure la referència d'entrada {{htmlattrxref('sandbox','iframe')}} per a totes les opcions disponibles. Una nota important és que <em>mai</em> s'ha d'afegir tant <code>allow-scripts</code> i <code>allow-same-origin</code> al seu atribut <code>sandbox</code> - en aquest cas el contingut incrustat podria passar per alt la mateixa política de seguretat d'origen que deté l'execució de scripts de llocs i l'ús de JavaScript per desactivar completament la sandbox.</p> + +<div class="note"> +<p><strong>Nota</strong>: La Sandboxing no proporciona cap protecció si els atacants poden enganyar a la gent perquè visiti el contingut maliciós directament (fora d'un iframe). Si hi ha alguna possibilitat que cert contingut pot ser maliciós (per exemple, el contingut generat per l'usuari), si us plau feu servir un {{glossary("domini")}} diferent del vostre lloc principal.</p> +</div> + +<h4 id="Configurar_directives_CSP">Configurar directives CSP</h4> + +<p>La {{Glossary("CSP")}} representa la <strong><a href="/en-US/docs/Web/Security/CSP">content security policy</a></strong>, i proporciona <a href="/en-US/docs/Web/Security/CSP/CSP_policy_directives">un conjunt de capçaleres HTTP</a> (metadades enviades juntament amb les seves pàgines web quan es serveixen des d'un servidor web) dissenyades per millorar la seguretat del document HTML. Quan es tracta de protegir <code><iframe></code>s, es pot <em><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options">configurar el servidor per a enviar una capçalera X-Frame-Options apropiada</a></em>. Això pot evitar que altres llocs web incrustin el seu contingut en les vostres pàgines web (el que permetria {{interwiki('wikipedia','clickjacking')}} i una sèrie d'altres atacs), que és exactament el que els desenvolupadors MDN han fet, com hem vist anteriorment.</p> + +<div class="note"> +<p><strong>Nota</strong>: Es pot llegir el post de Frederik Braun <a href="https://blog.mozilla.org/security/2013/12/12/on-the-x-frame-options-security-header/">On the X-Frame-Options Security Header</a> per obtenir més informació d'antecedents sobre aquest tema. Òbviament, està fora de l'abast, per a una explicació completa, d'aquest article.</p> +</div> + +<h2 id="Els_elements_<embed>_i_<object>">Els elements <embed> i <object></h2> + +<p>Els elements {{htmlelement("embed")}} i {{htmlelement("object")}} compleixen una funció diferent a {{htmlelement("iframe")}} - aquests elements de propòsit general són eines d'inserció per a la incrustació de diversos tipus de contingut extern, que inclouen tecnologies de complements com els applets de Java i flash, PDF (es pot mostrar en un navegador amb un plugin PDF), i fins i tot el contingut com vídeos, SVG i les imatges!</p> + +<div class="note"> +<p><strong>Nota</strong>: Un <strong>plugin</strong> és un programari que proporciona accés als continguts del navegador que no pot llegir de forma nativa.</p> +</div> + +<p>No obstant això, és poc probable que utilitzeu molt aquests elements - Els applets no s'han utilitzat durant anys, Flash ja no és molt popular, a causa d'una sèrie de raons (veure {{anch("El cas contra els complements")}}, més endavant), els arxius PDF tendeixen a estar millor enllaçats que incrustats, i altres continguts com a imatges i video tenen elements molt millors i més fàcils de manejar. Plugins i aquests mètodes d'incrustació són realment una tecnologia heretada, i els estem esmentant principalment en cas que us trobeu amb ells en certes circumstàncies com a intranets o projectes empresarials.</p> + +<p>Si necessiteu incorporar contingut de plugin, aquest és el tipus d'informació que necessitareu, com a mínim:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"> </th> + <th scope="col">{{htmlelement("embed")}}</th> + <th scope="col">{{htmlelement("object")}}</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{glossary("URL")}} del contingut incrustat</td> + <td>{{htmlattrxref('src','embed')}}</td> + <td>{{htmlattrxref('data','object')}}</td> + </tr> + <tr> + <td><em>accurate </em>{{glossary("MIME type", 'media type')}} del contingut incrustat</td> + <td>{{htmlattrxref('type','embed')}}</td> + <td>{{htmlattrxref('type','object')}}</td> + </tr> + <tr> + <td>l'altura i l'amplada (en píxels CSS) de la caixa controlada pel complement</td> + <td>{{htmlattrxref('height','embed')}}<br> + {{htmlattrxref('width','embed')}}</td> + <td>{{htmlattrxref('height','object')}}<br> + {{htmlattrxref('width','object')}}</td> + </tr> + <tr> + <td>noms i valors, per alimentar el complement com paràmetres</td> + <td>atributs ad hoc amb els noms i valors</td> + <td>elements d'una sola etiqueta {{htmlelement("param")}}, continguts dins <code><object></code></td> + </tr> + <tr> + <td>Contingut HTML independent com a recurs alternatiu per a un recurs no disponible</td> + <td>No suportat (<noembed> és obsolet)</td> + <td>contingut dins <code><object></code>, després d'elements <code><param></code></td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: <object> requereix un atribut data, un atribut type, o tots dos. Si s'utilitzant ambdòs, també es pot utilitzar l'atribut {{htmlattrxref('typemustmatch','object')}} (només implementat en Firefox, a partir d'aquest escrit). typemustmatch mante l'arxiu incrustat a que s'executi llevat que l'atribut type proporcioni el tipus de medi correcte. Per tant, typemustmatch pot conferir beneficis significatius de seguretat quan està incrustar el contingut d'un {{glossary("origen")}} diferent (pot mantenir els atacants d'executar scripts arbitràries mitjançant el complement).</p> +</div> + +<p>Heus aquí un exemple que utilitza l'element {{htmlelement("embed")}} per incrustar una pel lícula Flash (veure aquest <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/other-embedding-technologies/embed-flash.html">en Github</a> i <a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/other-embedding-technologies/embed-flash.html">comprovar el codi font</a> també):</p> + +<pre class="brush: html"><embed src="whoosh.swf" quality="medium" + bgcolor="#ffffff" width="550" height="400" + name="whoosh" align="middle" allowScriptAccess="sameDomain" + allowFullScreen="false" type="application/x-shockwave-flash" + pluginspage="http://www.macromedia.com/go/getflashplayer"></pre> + +<p>Bastant horrible, no ho és. El HTML generat per l'eina d'Adobe Flash tendia a ser encara pitjor, l'ús d'un element <code><object></code> amb un element <code><embed></code> incrustat en ell, per cobrir totes les bases (fes un cop d'ull a un exemple). El flaix fins i tot va ser utilitzat amb èxit com a contingut alternatiu a HTML5 de vídeo, per un temps, però això cada vegada es veu més innecessari.</p> + +<p>Ara veurem un exemple <object>, que insereix un PDF en una pàgina (vegeu l'<a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/other-embedding-technologies/object-pdf.html">exemple en viu</a> i el <a href="https://github.com/mdn/learning-area/blob/gh-pages/html/multimedia-and-embedding/other-embedding-technologies/object-pdf.html">codi font</a>):</p> + +<pre class="brush: html"><object data="mypdf.pdf" type="application/pdf" + width="800" height="1200" typemustmatch> + <p>You don't have a PDF plugin, but you can <a href="myfile.pdf">download the PDF file.</a></p> +</object></pre> + +<p>Els PDFs eren un pas necessari entre el paper i el digital, però plantegen molts <a href="http://webaim.org/techniques/acrobat/acrobat">reptes d'accessibilitat</a> i poden ser difícils de llegir en pantalles petites. Encara tendeixen a ser popular en alguns cercles, però és molt millor enllaçar-los perquè puguin ser descarregats o llegits en una pàgina separada, en lloc de incrustar-los en una pàgina web.</p> + +<h3 id="El_cas_en_contra_dels_complements_(plugins)">El cas en contra dels complements (plugins)</h3> + +<p>Hi havia una vegada, que els complements (plugins) eran indispensables a la web. Recordeu els dies en què calia instal·lar Adobe Flash Player, només, per veure una pel·lícula en línia? Llavors teníem constantment alertes molestes sobre l'actualització de Flash Player i el seu entorn d'execució de Java. Les tecnologies web han crescut molt més robustes, i aquells dies s'han acabat. Per a la majoria de les aplicacions, és hora que deixin de lliurar contingut que depenguin dels complements (plugins), i comencin a prendre avantatge de les tecnologies web al seu lloc.</p> + +<ul> + <li><strong>Ampliar el seu abast a tot el món. </strong>Tothom té un navegador, però els complements (plugins) són cada vegada mes rars, especialment entre els usuaris mòbils. Atès que la web és en gran part utilitzable sense complements (plugins), la gent prefereix anar als llocs web dels seus competidors, que instal·lar un complement (plugin).</li> + <li><strong>Feu una pausa amb els <a href="http://webaim.org/techniques/flash/">mals de cap d'accessibilitat addicionals </a>que vénen amb Flash i altres complements (plugins).</strong></li> + <li><strong>Mantenir-se allunyat dels riscos de seguretat addicionals</strong>. Adobe Flash és <a href="http://www.cvedetails.com/product/6761/Adobe-Flash-Player.html?vendor_id=53">notoriament insegur,</a> fins i tot després d'un sens fi de pegats. El 2015, Alex Stamos, director de seguretat de Facebook, fins i tot va <a href="http://www.theverge.com/2015/7/13/8948459/adobe-flash-insecure-says-facebook-cso">demanar que se suspengues Adobe Flash.</a></li> +</ul> + +<p>Llavors, què s'ha de fer? Si es necessita interactivitat, HTML i {{glossary("JavaScript")}} ens pot donar fàcilment la feina feta sense necessitat d'applets de Java o tecnologia obsoleta ActiveX/BHO. En lloc de confiar en Adobe Flash, podem utilitzar <a href="/en-US/docs/Learn/HTML/Howto/Add_audio_or_video_content_to_a_webpage">vídeo HTML5 </a>per les necessitats media, per a gràfics vectorials <a href="/en-US/docs/Learn/HTML/Howto/Add_vector_image_to_a_webpage">SVG</a> i <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial">Canvas</a> per a imatges i animacions complexes. <a href="https://plus.google.com/+PeterElst/posts/P5t4pFhptvp">Peter Elst escrivia fa uns anys </a>que Adobe Flash no sol ser l'eina adequada per al treball, excepte per a jocs i aplicacions empresarials especialitzades. Pel que fa a ActiveX, fins i tot el navegador Microsoft {{glossary("Microsoft Edge","Edge")}} ja no ho suporta.</p> + +<h2 id="Sumari">Sumari</h2> + +<p>El tema de la incrustació d'altres continguts en els documents web, de forma ràpida, pot arribar a ser molt complex, pel qual en aquest article hem tractat d'introduir d'una manera simple i familiar el que us pogui semblar d'una rellevancia immediata, mentre en seguit fent al·lusió a algunes de les característiques més avançades de les tecnologies involucrades. Per començar, és probable que feu servir la incrustació molt més enllà, inclouent continguts de tercers com mapes i vídeos en les vostres pàgines. A mesura que adquiriu més experiència, és probable que comenceu a trobar més usos per a ells.</p> + +<p>Hi ha moltes altres tecnologies que impliquen la incrustació de continguts externs a més dels que hem tractat aquí. Vam veure alguns, en els articles anteriors, com {{htmlelement("video")}}, {{htmlelement("audio")}} i {{htmlelement("img")}}, però hi ha altres a descobrir, com {{htmlelement("canvas")}} per generar en JavaScript gràfics 2D i 3D, i {{htmlelement("svg")}} per a incrustar gràfics vectorials. Aviat ens ocuparem de <a href="/en-US/docs/Web/SVG">SVG</a> en l'article següent del mòdul.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Video_and_audio_content", "Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web", "Learn/HTML/Multimedia_and_embedding")}}</p> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/images_in_html/index.html b/files/ca/learn/html/multimèdia_i_incrustar/images_in_html/index.html new file mode 100644 index 0000000000..839a38b400 --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/images_in_html/index.html @@ -0,0 +1,373 @@ +--- +title: Imatges en HTML +slug: Learn/HTML/Multimèdia_i_incrustar/Images_in_HTML +tags: + - Article + - Beginner + - Guide + - HTML + - Image + - alt text + - captions + - figcaption + - figure + - img +translation_of: Learn/HTML/Multimedia_and_embedding/Images_in_HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/HTML/Multimedia_and_embedding/Video_and_audio_content", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<p class="summary">Al principi, la web era només text, i resultava molt avorrit. Afortunadament, no va passar gaire temps abans que s’afegís la capacitat d'incrustar imatges (i altres tipus de continguts més interessants) dins de les pàgines web. Hi ha altres tipus de mitjans multimèdia a tenir en compte, però és lògic començar amb l'humil element {{HTMLElement("img")}}, que s'utilitza per a incrustar en una pàgina web una imatge simple . En aquest article veurem com utilitzar-lo en profunditat, incloent els conceptes bàsics, com anotar-la amb llegendes amb l’element {{htmlelement("figure")}}, i com es relaciona amb les imatges de fons de CSS.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Coneixements bàsics d'informàtica, <a href="/ca/docs/Learn/Getting_started_with_the_web/Instal·lació_bàsica_programari">instal·lació de software bàsic</a>, coneixements bàsics de <a href="/ca/docs/Learn/Getting_started_with_the_web/Tractar_amb_arxius">treballar amb arxius</a>, familiaritat amb els fonaments de l’HTML (que exposen en l’article <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Getting_started">Introducció a l’HTML</a>.)</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre a incrustar imatges simples en HTML i comentar-les amb llegendes, i com es relacionen les imatges HTML amb les imatges de fons CSS.</td> + </tr> + </tbody> +</table> + +<h2 id="Posar_una_imatge_en_una_pàgina_web"><span id="result_box" lang="ca">P<span>osar una</span> <span>imatge</span> <span>en una pàgina</span> <span>web</span></span></h2> + +<p>Per posar una imatge simple en una pàgina web, s'utilitza l'element {{htmlelement("img")}}. Es tracta d’un element buit (que significa que no té contingut de text o etiqueta de tancament) que requereix un mínim d'un atribut per a ser útil: <code>src</code> (de vegades se l’anomena pel nom complet, <em>source</em>). L'atribut <code>src</code> conté una ruta que apunta a la imatge que es vol incrustar a la pàgina, que pot ser una adreça URL relativa o absoluta, de la mateixa manera que en l'element {{htmlelement("a")}} el valor de l'atribut <code>href</code>.</p> + +<div class="blockIndicator note"> +<p><strong>Nota: </strong>Fes una lectura de la <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Crear_hipervincles#Una_introducci%C3%B3_r%C3%A0pida_a_les_adreces_URL_i_les_rutes">guia ràpida a les adreces i rutes</a> per refrescar la memòria abans de continuar.</p> +</div> + +<p>Així, per exemple, si la imatge es diu <code>dinosaur.jpg</code> i és en el mateix directori que la pàgina HTML, la imatge es podria incloure d'aquesta manera:</p> + +<pre class="brush: html notranslate"><img src="dinosaur.jpg"></pre> + +<p>Si la imatge és en un subdirectori d'imatges dins del mateix directori que la pàgina HTML (que és el que Google recomana per a propòsits de posicionament en cercadors ({{glossary("SEO")}}) / indexació), llavors s'incrusta així:</p> + +<pre class="brush: html notranslate"><img src="images/dinosaur.jpg"></pre> + +<p>I així succesivament.</p> + +<div class="note"> +<p><strong>Nota</strong>: Els motors de cerca també llegeixen els noms d'arxiu d'imatge i els tenen en compte en termes de SEO; per tant, s'ha de donar a la imatge un nom d'arxiu que sigui descriptiu (<code>dinosaur.jpg</code> és millor que <code>img835.png</code>.)</p> +</div> + +<p>La imatge es pot incloure utilitzant la seva adreça URL absoluta, per exemple:</p> + +<pre class="brush: html notranslate"><img src="https://www.example.com/images/dinosaur.jpg"></pre> + +<p>Però això no té sentit perquè el navegador té més feina a buscar l'adreça IP del servidor de nou, etc. Gairebé sempre, les imatges del lloc web es mantenen en el mateix servidor que l'HTML.</p> + +<div class="warning"> +<p><strong>Atenció:</strong> La majoria de les imatges tenen drets de propietat intelectual. <strong>No</strong> mostris una imatge a la pàgina web si no és que</p> + +<ul> + <li>n’ets el propietari,</li> + <li>has rebut permís explícit per escrit del propietari de la imatge, o</li> + <li>tens proves contundents que la imatge és de domini públic.</li> +</ul> + +<p>Les infraccions dels drets d'autor són il·legals i antiétiques. A més, no incloguis <strong>mai</strong> en l'atribut <code>src</code> una adreça url que apunti cap a una imatge que estigui allotjada en la pàgina web d'algú, si no tens permís per a enllaçar-la. D’això, se’n diu <em>hotlinking</em> i, un cop més, robar ample de banda d'algú altre és il·legal. També redueix la velocitat de la pàgina, i no tens control sobre la imatge si l’eliminen o la substitueixen per alguna altra cosa que et podria resultar enutjosa.</p> +</div> + +<p>El codi anterior donaria el resultat següent:</p> + +<p><img alt="Imatge bàsica d’un dinosaure incrustada en un navegador, amb el text Images in HTML escrit a dalt" src="https://mdn.mozillademos.org/files/12700/basic-image.png" style="display: block; height: 700px; margin: 0px auto; width: 700px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Els elements com {{htmlelement("img")}} i {{htmlelement("video")}} es denominen de vegades <strong>elements reemplaçats</strong>, perquè el contingut i la mida de l'element el defineix un recurs extern (com una imatge o un arxiu de vídeo), no el contingut propi de l’element.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar l'exemple acabat al final d'aquesta secció, <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/images-in-html/index.html">executat a GitHub</a> (consulta’n també el <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/images-in-html/index.html">codi font</a>.)</p> +</div> + +<h3 id="Text_alternatiu">Text alternatiu</h3> + +<p>L’atribut següent que veurem és <code>alt</code>. El valor d’aquest atribut se suposa que és una descripció textual de la imatge, que s’utilitza en situacions en què la imatge no es pot veure/representar. Per exemple, el codi anterior es pot modificar d'aquesta manera:</p> + +<pre class="brush: html notranslate"><img src="images/dinosaur.jpg" + alt="The head and torso of a dinosaur skeleton; + it has a large head with long sharp teeth"></pre> + +<p>La manera més senzilla de provar el text alternatiu és escriure malament el nom de l'arxiu. Si, per exemple, escrius el nom de la imatge així: <code>dinosooooor.jpg</code>, el navegador no mostrarà la imatge; en lloc d’ella, mostrarà el text alternatiu.</p> + +<p><img alt="El títol Images in HTML, però aquesta vegada la imatge del dinosaure no es mostra i en lloc de la imatge apareix el text alternatiu." src="https://mdn.mozillademos.org/files/12702/alt-text.png" style="display: block; height: 700px; margin: 0px auto; width: 700px;"></p> + +<p>Llavors, per què hauries de veure o necessitar mai el text alternatiu? Pot ser útil en diverses situacions:</p> + +<ul> + <li>L'usuari és discapacitat visual, i usa un <a href="https://ca.wikipedia.org/wiki/Lector_de_pantalla">lector de pantalla</a> per a llegir el lloc web; en aquest cas, disposar de text alternatiu per a descriure les imatges és molt útil.</li> + <li>Com ja hem vist, podries haver escrit malament el nom de l'arxiu o la ruta.</li> + <li>El navegador no és compatible amb el tipus d'imatge. Hi ha persones que encara utilitzen navegadors de només text, com <a href="https://ca.wikipedia.org/wiki/Lynx_(navegador_web)">Lynx</a>, que mostra el text alternatiu de les imatges.</li> + <li>Vols proporcionar una mica de text per a ús dels motors de cerca; els motors de cerca poden associar el text alternatiu amb les consultes de cerca, per exemple.</li> + <li>Els usuaris han desactivat les imatges per reduir la transferència de dades i les distraccions (comú sobretot en els dispositius mòbils, en països en què l'ample de banda és limitat i car).</li> +</ul> + +<p>Què s'ha d'escriure exactament dins de l'atribut <code>alt</code>? En primer lloc, depèn de <em>per què</em> la imatge és allà (en altres paraules, què es perd si la imatge no es mostra):</p> + +<ul> + <li><strong>Decoració. </strong>Si la imatge és només de decoració i no forma part del contingut, s'afegeix un espai en blanc <code>alt = ""</code>, de manera que, per exemple, un lector de pantalla no perd el temps llegint un contingut que no té cap utilitat per a l'usuari. De totes maneres, les imatges decoratives no pertanyen realment al codi HTML; per a la inserció de la decoració s’han d’utilitzar imatges de fons CSS ({{anch("CSS background images")}}), però si és inevitable, <code>alt = ""</code> és el millor camí que cal seguir.</li> + <li><strong>Contingut. </strong>Si la imatge proporciona informació important, proporciona la mateixa informació en un text alternatiu <em>breu</em> o, millor encara, en el text principal, i que tothom el pugui veure. No escriguis text alternatiu redundant (no resultaria força molest per a un usuari visual que tots els paràgrafs estiguessin escrits dues vegades en el contingut principal?). Si la imatge ja es descriu adequadament en el cos del text principal, pots simplement utilitzar <code>alt = ""</code>.</li> + <li><strong>Enllaç.</strong> Si poses una imatge dins d’una etiqueta {{htmlelement("a")}} per convertir-la en un enllaç, també has de proporcionar <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Introducci%C3%B3_al_HTML/Crear_hipervincles#Fes_servir_un_redactat_clar">text del vincle accessible</a>; en aquest cas, el pots escriure dins del mateix element <code><a></code> o dins de l'atribut <code>alt</code> de la imatge, si va més bé.</li> + <li><strong>Text.</strong> No s'ha de posar el text en imatges (si el encapçalament principal necessita una petita ombra, per exemple, <a href="/en-US/docs/Web/CSS/text-shadow">utilitza CSS</a> en lloc de posar el text en una imatge.) Si <em>realment no es pot evitar fer-ho</em>, s'ha de proporcionar el text dins de l'atribut <code>alt</code>.</li> +</ul> + +<p>La clau està en oferir una experiència d’usabilitat fins i tot quan les imatges no es poden veure, en què els usuaris no perdin cap dels continguts. Desactiva les imatges en el navegador i observa com són les coses. De seguida t’adonaràs de com són d’inútils els textos alternatius com «logo» o «el meu lloc web favorit», si la imatge no es pot veure.</p> + +<div class="note"> +<p><strong>Nota</strong>: WebAIM, <a href="http://webaim.org/techniques/alttext/">guia del text alternatiu</a>, ofereix una orientació més detallada per al text alternatiu, i és una bona lectura per a més informació.</p> +</div> + +<h3 id="Amplada_i_alçada">Amplada i alçada</h3> + +<p>Es poden utilitzar els atributs <code>width</code> i <code>height</code> per a especificar l'amplada i l'alçada de la imatge (es pot trobar l'amplada i l'alçada de la imatge de moltes maneres, per exemple en Mac es pot utilitzar <kbd>Cmd</kbd> + <kbd>I</kbd> per a obtenir la visualització de la informació de l'arxiu d'imatge). Tornant al nostre exemple, poden fer això:</p> + +<pre class="brush: html notranslate"><img src="images/dinosaur.jpg" + alt="The head and torso of a dinosaur skeleton; + it has a large head with long sharp teeth" + width="400" + height="341"></pre> + +<p>Això no dona com a resultat una gran diferència a la pantalla en circumstàncies normals, però si no la imatge es mostra (per exemple, perquè l'usuari acaba d’acccedir a la pàgina i la imatge encara no s'ha carregat) veuràs que el navegador deixa un espai perquè la imatge aparegui:</p> + +<p><img alt="El títol Images in HTML amb el text alternatiu per al dinosaure, que es mostra dins de la caixa que resulta de configurar l’amplada i l’alçada" src="https://mdn.mozillademos.org/files/12706/alt-text-with-width-height.png" style="display: block; height: 700px; margin: 0px auto; width: 700px;"></p> + +<p>Això és bo perquè la càrrega de la pàgina resulta més ràpida i suau.</p> + +<p>La mida de les imatges no s'ha d'alterar utilitzant atributs HTML; si s'estableix la mida massa gran, les imatges es veuran granulades/difuses; si la mida es fa massa petita, es malbarata ample de banda amb la descàrrega d'una imatge que és molt més gran del que cal. La imatge també pot acabar semblant distorsionada, si no es manté la <a href="https://ca.wikipedia.org/wiki/Relaci%C3%B3_d%27aspecte">relació d'aspecte</a> correcta. S'ha d'utilitzar un editor d'imatges per a posar la imatge en la mida correcta abans de posar-la a la pàgina web.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si has d’alterar la mida d'una imatge, utilitza <a href="/ca/docs/Learn/CSS">CSS</a> en lloc d'HTML.</p> +</div> + +<h3 id="Títols_d’imatge">Títols d’imatge</h3> + +<p>De la mateixa manera que <a href="/ca/docs/Learn/HTML/Introducció_al_HTML/Crear_hipervincles">amb els enllaços</a>, també es pot afegir l'atribut <code>title</code> a les imatges per a proporcionar informació de suport addicional, si cal. En el nostre exemple, podríem fer això:</p> + +<pre class="brush: html notranslate"><img src="images/dinosaur.jpg" + alt="The head and torso of a dinosaur skeleton; + it has a large head with long sharp teeth" + width="400" + height="341" + title="A T-Rex on display in the Manchester University Museum"></pre> + +<p>Això ens fa aparèixer un indicador de funció (<em>tooltip</em>), igual que amb els títols dels enllaços:</p> + +<p><img alt="La imatge del dinosaure amb un indicador de funció a la part de dalt que diu: Un T-Rex exposat al museu de la Universitat de Manchester" src="https://mdn.mozillademos.org/files/12708/image-with-title.png" style="display: block; height: 341px; margin: 0px auto; width: 400px;"></p> + +<p>Els títols d'imatge no són essencials, i sovint és millor incloure'ls com a informació de suport en el text principal de l'article, en lloc d’associar-los a la imatge. Són útils en algunes circumstàncies, per exemple quan en una galeria d'imatges no hi ha espai per als subtítols.</p> + +<h3 id="Aprenentatge_actiu_incrustar_una_imatge">Aprenentatge actiu: incrustar una imatge</h3> + +<p>Doncs, ara et toca a tu! En aquesta secció d'aprenentatge actiu volem que juguis amb un exercici d'incrustació simple. Disposes d'una etiqueta bàsica {{htmlelement("img")}}, i volem que incrustis la imatge que hi ha en la següent URL:</p> + +<p>https://raw.githubusercontent.com/mdn/learning-area/master/html/multimedia-and-embedding/images-in-html/dinosaur_small.jpg</p> + +<p>Sí, ja hem dit que no s’ha de fer <em>hotlink</em> d'imatges a altres servidors. Però això és només a tall de demostració; et deixem fer-ho, només aquesta vegada!</p> + +<p>Potser també voldries:</p> + +<ul> + <li>Afegir una mica de text alternatiu i comprovar que funciona quan l'adreça URL de la imatge està mal escrita.</li> + <li>Establir l'amplada i l'alçada correcta de la imatge (pista: és 200 px d'ample i 171 px d'alt), i experimentar amb altres valors per a veure’n l’efecte.</li> + <li>Establir un <code>title</code> per a la imatge.</li> +</ul> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó de <em>Reinicia</em>. Si t’encalles, fes clic al botó <em>Mostra la solució</em> per a veure una solució.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Input</h2> +<textarea id="code" class="input"> +<img></textarea> +<h2>Output</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Reset" /> + <input id="solution" type="button" value="Show solution" /> +</div> +</pre> + +<pre class="brush: css notranslate">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<img src="https://raw.githubusercontent.com/mdn/learning-area/master/html/multimedia-and-embedding/images-in-html/dinosaur_small.jpg"\n alt="The head and torso of a dinosaur skeleton; it has a large head with long sharp teeth"\n width="200"\n height="171"\n title="A T-Rex on display in the Manchester University Museum">'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 500) }}</p> + +<h2 id="Descriure_imatges_amb_figures_i_peus_dimatge">Descriure imatges amb figures i peus d'imatge</h2> + +<p>Hi hauria moltes maneres possibles d’afegir una llegenda associada a la teva imatge. Per exemple, no hi hauria res que impedís de fer això:</p> + +<pre class="brush: html notranslate"><div class="figure"> + <img src="images/dinosaur.jpg" + alt="The head and torso of a dinosaur skeleton; + it has a large head with long sharp teeth" + width="400" + height="341"> + + <p>A T-Rex on display in the Manchester University Museum.</p> +</div></pre> + +<p>Això està bé. Inclou el contingut que necessita, i es fa un ús correcte de l’aplicació d’estil amb CSS. Però hi ha un problema: no hi ha res que vinculi semànticament la imatge a la seva llegenda, i això pot causar problemes als lectors de pantalla, per exemple (quan hi ha 50 imatges i llegendes, quina llegenda va amb quina imatge?).</p> + +<p>Una solució més encertada és utilitzar els elements {{htmlelement("figure")}} i {{htmlelement("figcaption")}} d’HTML5, que s'han creat precisament amb aquest propòsit: proporcionar un contenidor semàntic per a les figures, que vinculi clarament la figura amb la llegenda. El nostre exemple anterior es podria reescriure així:</p> + +<pre class="notranslate"><figure> + <img src="images/dinosaur.jpg" + alt="The head and torso of a dinosaur skeleton; + it has a large head with long sharp teeth" + width="400" + height="341"> + + <figcaption>A T-Rex on display in the Manchester University Museum.</figcaption> +</figure></pre> + +<p>L'element {{htmlelement("figcaption")}} indica als navegadors i la tecnologia d'assistència que la llegenda descriu la resta del contingut de l'element {{htmlelement("figure")}}.</p> + +<div class="note"> +<p><strong>Nota</strong>: Des d'un punt de vista d'accessibilitat, les llegendes i el text alternatiu {{htmlattrxref('alt','img')}} tenen funcions diferents. Les llegendes beneficien fins i tot les persones que poden veure la imatge, mentre que el text alternatiu {{htmlattrxref('alt','img')}} fa la mateixa funció que una imatge, quan aquesta no hi és. Per tant, les llegendes i el text alternatiu no poden dir el mateix, perquè tots dos elements apareixen quan la imatge no hi és. Intenta desactivar les imatges en el navegador i observa com es veuen les coses.</p> +</div> + +<p>Recordeu que una figura no té per què ser una imatge; una figura és una unitat independent del contingut que:</p> + +<ul> + <li>Expressa el seu significat en una forma compacta i d'una manera fàcil d'entendre.</li> + <li>Podria anar en diversos llocs del flux lineal de la pàgina.</li> + <li>Proporciona informació essencial que dona suport al text principal.</li> +</ul> + +<p>Una figura podria ser un conjunt d’imatges, un fragment de codi, àudio o vídeo, equacions, una taula, o alguna altra cosa.</p> + +<h3 id="Aprenentatge_actiu_crear_una_figura">Aprenentatge actiu: crear una figura</h3> + +<p>En aquesta secció d'aprenentatge actiu, et demanarem que agafis el codi acabat de la secció d'aprenentatge actiu anterior, i el converteixis en una figura:</p> + +<ul> + <li>Etiqueta’l amb un element {{htmlelement("figure")}}.</li> + <li>Copia el text de l'atribut <code>title</code>, elimina’n l'atribut <code>title</code>; a continuació, posa el text dins d'un element {{htmlelement("figcaption")}} a sota de la imatge.</li> +</ul> + +<p>Si t’equivoques, sempre pots tornar a començar amb el botó de <em>Reinicia</em>. Si t’encalles, fes clic al botó <em>Mostra la solució</em> per a veure una solució.</p> + +<div class="hidden"> +<h6 id="Playable_code_2">Playable code 2</h6> + +<pre class="brush: html notranslate"><h2>Input</h2> +<textarea id="code" class="input"> +</textarea> +<h2>Output</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Reset" /> + <input id="solution" type="button" value="Show solution" /> +</div> +</pre> + +<pre class="brush: css notranslate">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<figure>\n <img src="https://raw.githubusercontent.com/mdn/learning-area/master/html/multimedia-and-embedding/images-in-html/dinosaur_small.jpg"\n alt="The head and torso of a dinosaur skeleton; it has a large head with long sharp teeth"\n width="200"\n height="171">\n <figcaption>A T-Rex on display in the Manchester University Museum</figcaption>\n</figure>'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_2', 700, 500) }}</p> + +<h2 id="Imatges_de_fons_de_CSS"><span id="result_box" lang="ca"><span title="CSS background images">Imatges de fons de CSS</span></span></h2> + +<p>També pots utilitzar CSS per a incrustar imatges en pàgines web (i JavaScript, però això és una altra història). La propietat {{cssxref("background-image")}} de CSS, i les altres propietats <code>background*</code> s'utilitzen per a controlar la col·locació de la imatge de fons. Per exemple, per a posar una imatge de fons en cada paràgraf d’una pàgina, es podria fer això:</p> + +<pre class="brush: css notranslate">p { + background-image: url("images/dinosaur.jpg"); +}</pre> + +<p>La imatge incrustada que resulta possiblement és més fàcil de posicionar i controlar que les imatges HTML; aleshores, per què ens hem de molestar amb les imatges HTML? Com ja hem insinuat abans, les imatges de fons de CSS són només per a decoració. Si només volem afegir una cosa bonica per a millorar l'aspecte visual de la pàgina, això està molt bé, però aquest tipus d'imatges no tenen cap significat semàntic en absolut —no poden tenir text equivalent—, són invisibles per als lectors de pantalla, etc. Aquí és on destaquen les imatges HTML.</p> + +<p>Per tant, si una imatge té sentit en termes de contingut, s'ha d'utilitzar una imatge en HTML. Si una imatge és purament decorativa, s'han d'utilitzar imatges de fons CSS.</p> + +<div class="note"> +<p><strong>Nota</strong>: Aprendreu molt més sobre <a href="/ca/docs/Learn/CSS/Building_blocks/Fons_i_vores">imatges de fons CSS</a> en el nostre tema <a href="/ca/docs/Learn/CSS">CSS</a>.</p> +</div> + +<h2 id="Sumari">Sumari</h2> + +<p>Això és tot per ara. Hem exposat les imatges i les llegendes amb detall. En l’article següent ens mourem en un nivell superior, i aprendrem com utilitzar HTML per a incrustar vídeo i àudio a les pàgines web.</p> + +<p>{{NextMenu("Learn/HTML/Multimedia_and_embedding/Video_and_audio_content", "Learn/HTML/Multimedia_and_embedding")}}</p> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/imatges_sensibles/index.html b/files/ca/learn/html/multimèdia_i_incrustar/imatges_sensibles/index.html new file mode 100644 index 0000000000..4be56f6248 --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/imatges_sensibles/index.html @@ -0,0 +1,254 @@ +--- +title: Imatges sensibles +slug: Learn/HTML/Multimèdia_i_incrustar/Imatges_sensibles +tags: + - Article + - Beginner + - CodingScripting + - Design + - Graphics + - Guide + - HTML + - Image + - Intermediate + - img + - sizes + - srcset +translation_of: Learn/HTML/Multimedia_and_embedding/Responsive_images +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web", "Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<div> +<p class="summary">En aquest article aprendrem sobre el concepte de les imatges sensibles - imatges que funcionen bé en dispositius amb diferentes mides de pantalles, resolucions i altres característiques semblants - i veurem les eines que proporciona HTML per ajudar-nos a posar-les en pràctica. Imatges sensibles és només una part del (i prepara l'escenari per) disseny web sensible, un tema que aprendrem molt més en un futur mòdul del <a href="/en-US/docs/Learn/CSS">tema CSS</a>.</p> +</div> + +<table class="learn-box nostripe standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Heu de coneixer el fonaments <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">bàsics d'HTML</a> i com <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">afegir imatges estàtiques a una pàgina web</a>.</td> + </tr> + <tr> + <th scope="row">Objectius:</th> + <td>Aprendre com utilitzar funcions com {{htmlattrxref("srcset", "img")}} i l'element {{htmlelement("picture")}} per implementar solucions d'imatges sensibles en els llocs web.</td> + </tr> + </tbody> +</table> + +<h2 id="Per_què_les_imatges_sensibles"><span class="short_text" id="result_box" lang="ca"><span>Per què</span> <span>les</span> <span>imatges</span> <span>sensibles</span></span> ?</h2> + +<p>Llavors, quin problema estem tractant de resoldre amb imatges sensibles? Examinarem un escenari típic. Un lloc web típic, probablement, té una imatge de capçalera perquè es vegi bonic per als visitants, a més, potser algunes imatges de contingut per sota d'aquesta. És possible que vulgueu fer que la capçalera abasti la totalitat de l'amplada de la mateixa, i la imatge de contingut en formi part, en algun lloc, dins de la columna de contingut. Fem una ullada a un exemple senzill d'això:</p> + +<p><img alt="Our example site as viewed on a wide screen - here the first image works ok, as it is big enough to see the detail in the center." src="https://mdn.mozillademos.org/files/12940/picture-element-wide.png" style="display: block; height: 554px; margin: 0px auto; width: 700px;"></p> + +<p>Això funciona bé en un dispositiu de pantalla ampla, com ara un ordinador portàtil o de sobretaula (es pot <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/responsive-images/not-responsive.html">veure l'example en directa</a> i trobar el <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/responsive-images/not-responsive.html">codi font</a> en Github.) No parlarem tant de la CSS, excepte per dir que</p> + +<ul> + <li>El contingut del cos s'ha ajustat a una amplada màxima de 1200 píxels - en la finestra gràfica anterior l'ample del cos es manté en 1200px i es centrat en l'espai disponible. En la finestra gràfica següent l'ample del cos romandre en el 100% de l'amplada de la finestra gràfica.</li> + <li>La imatge de capçalera s'ha establert de manera que el seu centre es manté sempre en el centre de la capçalera, no importa quina és l'amplada de la capçalera. Així que si el lloc s'està veient en una pantalla més estreta, el detall important del centre de la imatge (el poble) encara es pot veure, i l'excés es perd per fora de cada costat. És 200 píxels d'alt.</li> + <li>Les imatges de contingut han estat establertes de manera que si l'element del cos es fa més petit que la imatge, les imatges es comencin a encongir de manera que sempre es quedin a l'interior del cos, en lloc de desbordar-se.</li> +</ul> + +<p>Això està bé, però el problema ve quan es comença a veure el lloc en un dispositiu de pantalla estreta - la capçalera es veu bé, però està començant a ocupar molta alçada de la pantalla d'un dispositiu mòbil; la primera imatge de contingut, d'altra banda, es veu terrible - en aquesta grandària amb prou feines es pot veure a la gent!</p> + +<p><img alt="Our example site as viewed on a narrow screen; the first image has shrunk to the point where it is hard to make out the detail on it." src="https://mdn.mozillademos.org/files/12936/non-responsive-narrow.png" style="display: block; height: 793px; margin: 0px auto; width: 320px;"></p> + +<p>Seria molt millor mostrar una versió retallada de la imatge que fixar-se en els detalls importants de la fotografia quan el lloc es veu en una pantalla estreta, i potser una mica entre els dos per a un dispositiu de pantalla d'amplada mitjana com una tauleta - això es coneix comunament com el <strong> problema direcció d'art </strong>.</p> + +<p>A més, no hi ha necessitat d'integrar aquest tipus d'imatges de grans dimensions a la pàgina si s'està veient en una petita pantalla de mòbil; això es diu <strong>problema canvi de resolució</strong> - una imatge de trama és un nombre fix de píxels d'ample i un nombre fix de píxels d'alt; com vam veure en fixar-nos en els <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web">gràfics de vector</a>, una imatge de trama comença a veure's granulada i horrible si es visualitza més gran que la mida original (mentre que un gràfic vectorial no ho fa). I si es mostra significativament més petita que la mida original, és un malbaratament d'ample de banda - en especial els usuaris de mòbils no volen haver de gravar a través del seu ample de banda la descàrrega d'una imatge gran destinada a escritori, quan una imatge petita faria per al dispositiu. Una situació ideal seria tenir múltiples resolucions disponibles i servir mides adequades, depenent dels diferents dispositius que accedeixen al lloc web.</p> + +<p>Per complicar més les coses, alguns dispositius tenen pantalles d'alta resolució que necessiten les imatges més grans del que s'espera que ells necessiten, per mostrar-ho bé. Això és essencialment el mateix problema, però en un context lleugerament diferent.</p> + +<p>Es podria pensar que les imatges de vector resoldrien aquests problemes, i ho fan fins a cert punt - tots dos són petits en grandària d'arxiu i s'escalen bé, i han de ser usats sempre que sigui possible. No són adequats per a tot tipus d'imatges però -si bé són excel·lents per a gràfics simples, patrons, elements d'interfície, etc., comença a ser molt complex per crear una imatge basada en vectors amb el tipus de detall que ens agradaria trobar, diguem, una foto. Els formats d'imatge de trama, com JPEG són més adequats per al tipus d'imatges que hem vist en l'exemple anterior.</p> + +<p>Aquest tipus de problema no existia quan la primera web va existir, a principis de mitjans dels anys 90 - en aquell temps els únics dispositius que existien per navegar per la web eren de sobretaula i portàtils, de manera que els enginyers de navegadors i escriptors d'especificacions ni tan sols pensaven posar en pràctica solucions. <em>Les tecnologies d'imatges sensibles</em> es van dur a terme recentment per resoldre els problemes indicats anteriorment, ja que permetien oferir el navegador diversos arxius d'imatge, ja sigui tots els que mostraven el mateix, però que contenien un nombre diferent de píxels (<em>resolution switching</em>), o diferents imatges adequades per a diferents assignacions d'espai (<em>art direction</em>)</p> + +<div class="note"> +<p><strong>Nota</strong>: Les noves característiques que es descriuen en aquest article - {{htmlattrxref("srcset", "img")}}/{{htmlattrxref("sizes", "img")}}/{{htmlelement("picture")}} - están totes suportades en les versions pubicades per els escriptoris moderns i navegadors mòbils (incloent el navegador de Microsoft Edge, encara que no amb Internet Explorer.)</p> +</div> + +<h2 id="Com_crear_imatges_sensibles">Com crear imatges sensibles?</h2> + +<p>En aquesta secció, veurem els dos problemes il·lustrats a dalt i mostrarem com resoldre'ls utilitzant les característiques de la imatge sensible d'HTML. S'ha de tenir en compte que ens centrarem en {{htmlelement("img")}}s d'HTML per aquesta secció, com es veu en l'àrea de contingut de l'exemple anterior - la imatge a la capçalera del lloc és només de decoració, i per tant implementat utilitzant imatges de fons CSS. <a href="http://blog.cloudfour.com/responsive-images-101-part-8-css-images/">CSS podria dir-se que té millors eines per el disseny sensible</a>, parlarem d'elles en un futur mòdul CSS.</p> + +<h3 id="Canvi_de_resolució_Diferents_mides">Canvi de resolució: Diferents mides</h3> + +<p>Llavors, quin és el problema que es vol resoldre amb el canvi de resolució? Volem mostrar el mateix contingut d'imatge, major o menor depenent del dispositiu - aquesta és la situació que tenim amb la segona imatge de contingut en el nostre exemple. L'element standard {{htmlelement("img")}} tradicionalment només se li permet apuntar el navegador a un sol arxiu font:</p> + +<pre class="brush: html"><img src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy"></pre> + +<p>No obstant això, podem utilitzar dos nous atributs - {{htmlattrxref("srcset", "img")}} i {{htmlattrxref("sizes", "img")}} - per proporcionar diverses imatges fonts addicionals, juntament amb consells per ajudar al navegador a triar el més adequat. Es pot veure un exemple d'això en el nostre exemple <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/responsive-images/responsive.html">responsive.html</a> en Github (vegeu també <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/responsive-images/responsive.html">el codi font</a>):</p> + +<pre class="brush: html"><img srcset="elva-fairy-320w.jpg 320w, + elva-fairy-480w.jpg 480w, + elva-fairy-800w.jpg 800w" + sizes="(max-width: 320px) 280px, + (max-width: 480px) 440px, + 800px" + src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy"></pre> + +<p>Els atributs <code>srcset</code> i <code>sizes</code> es veuen complicats, però no són tan dolents per entendre si es formaten com es mostra a dalt, amb una part diferent del valor de l'atribut en cada línia. Cada valor conté una llista separada per comes. i cada part de les llistes es componen de tres sub-parts. Recorrerem els continguts de cada, ara:</p> + +<p><strong><code>srcset</code></strong> defineix el conjunt d'imatges que permetrà el navegador triar entre, cada mida d'imatge. Abans de cada coma, escrivim:</p> + +<ol> + <li>Un <strong>nom de fitxer d'imatge</strong> (<code>elva-fairy-480w.jpg</code>.)</li> + <li>Un espai.</li> + <li>L'ample de la <strong>imatge inherent en píxels</strong> (480w) - en compte que aquesta utilitza la unitat w, no px com es podria esperar. Aquesta és la mida real de la imatge, que es pot trobar al inspeccionar l'arxiu d'imatge a l'ordinador (per exemple en un Mac es pot seleccionar la imatge en el Finder i preme <kbd>Cmd</kbd> + <kbd>I</kbd> per obrir la pantalla d'informació).</li> +</ol> + +<p><strong><code>sizes</code></strong> defineix un conjunt de condicions de medis (per exemple, amples de pantalla) i indica quina mida de la imatge seria millor triar, quan es compleixin certes condicions en els medis - aquests són els consells que parlàvem anteriorment. En aquest cas, abans de cada coma, escrivim</p> + +<ol> + <li>una <strong>condició de medis</strong> ((<code>max-width:480px)</code>) - aprendrem més sobre això en el<a href="/en-US/docs/Learn/CSS"> tema de CSS</a>, però per ara direm que una condició de medis descriu un possible estat en que la pantalla pot estar. En aquest cas, estem dient "quan l'amplada de la finestra gràfica sigui de 480 píxels o menys".</li> + <li>Un espai.</li> + <li>L'<strong>amplada de l'espai</strong> de la imatge s'ompli quan la condició del medi sigui certa (<code>440px</code>).</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Per l'ample de l'espai, és possible proporcionar una longitud absoluta (<code>px</code>, <code>em</code>) o una longitud relativa (com un percentatge). Es pot haver notat que l'última amplada de l'espai no té cap condició del medi - Aquest és per defecte el que es tria quan cap de les condicions del medi són certes). El navegador ignora tot després de la primera condició coincident, així que s'ha d'anar amb compte com es demanan les condicions del medi.</p> +</div> + +<p>Així, amb aquests atributs en el seu lloc, el navegador:</p> + +<ol> + <li>Mirar l'amplada del dispositiu.</li> + <li>Calcular quina condició del medi en la llista de <code>sizes</code> (mides) és el primer a ser veritat.</li> + <li>Mirar la mida de l'espai donat a aquesta consulta de medis.</li> + <li>Carregar la imatge de referència en la llista <code>srcset</code> que més s'acosti a la mida de l'espai triat.</li> +</ol> + +<p>I ja està! Així que en aquest punt, si un navegador de suport amb un ample de 480px de finestra gràfica carrega la pàgina, la condició (<code>max-width: 480px</code>) del medi serà veritat, per tant, es triarà l'espai <code>440px</code>, de manera que el <code>elva-fada-480w.jpg</code> serà carregat, ja que el seu ample inherent (<code>480w</code>) és el més proper a <code>440px</code>. La imatge 800px és de 128 KB en el disc mentre que la versió de 480px és només 63KB - un estalvi de 65KB. Ara imaginem si aquesta era una pàgina que tenia moltes imatges. Usant aquesta tècnica es podria estalviar als usuaris de mòbils una gran quantitat d'ample de banda.</p> + +<p>Els navegadors més antics no soportan aquestes característiques, simplement, les ignoran i segueixen endavant i carregan la imatge que es fa referència en l'atribut {{htmlattrxref("src", "img")}} com a normal.</p> + +<div class="note"> +<p><strong>Nota</strong>: En el {{htmlelement("head")}} del document trobarem la línia <code><meta name = "viewport" content = "width = device-width"></code>: això obliga els navegadors mòbils a adoptar l'amplada real de la seva finestra en carregar pàgines web (alguns navegadors mòbils menteixen sobre la seva amplada de la finestra gràfica, i en lloc de carregar pàgines a l'amplada de la finestra gràfica, redueixen la pàgina carregada cap avall, el que no és molt útil per a les imatges o el disseny sensible. Us ensenyarem més sobre això en un mòdul futur).</p> +</div> + +<h3 id="Eines_útils_per_a_desenvolupadors">Eines útils per a desenvolupadors</h3> + +<p>Hi ha algunes <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">eines de desenvolupament</a> útils en els navegadors per ajudar en l'elaboració de les amplades d'espai, etc, que són necessàries utilitzar. Quan els estem treballant, carreguem per primera vegada la versió no sensible del exemple (not-responsive.html), després entreu en <a href="/en-US/docs/Tools/Responsive_Design_Mode">Responsive Design View</a> (<em>Tools > Web Developer > Responsive Design View</em>), que ens permetrà mirar els dissenys de pàgina web com si els veiéssim a través d'una varietat de diferents mides de pantalles de dispositius.</p> + +<p>S'ha establert l'amplada de la finestra gràfica a 320px llavors 480px; per a cada un entrem al <a href="/en-US/docs/Tools/Page_Inspector">Inspector DOM</a>, fent clic a l'element {{htmlelement("img")}} que ens interessa, després mirem la seva grandària en la pestanya de Box Model view en el costat dret de la pantalla. Això ens ha de donar els amples de imatge inherents que necessita.</p> + +<p><img alt="A screenshot of the firefox devtools with an image element highlighted in the dom, showing its dimensions as 440 by 293 pixels." src="https://mdn.mozillademos.org/files/12932/box-model-devtools.png" style="display: block; height: 845px; margin: 0px auto; width: 480px;"></p> + +<p>A continuació, es pot comprovar si el srcset ha treballat mitjançant l'establiment de l'amplada de la finestra gràfica que volem (establint una amplada estreta, per exemple), obrim Network Inspector (<em>Tools > Web Developer > Network</em>), a continuació, tornem a carregar la pàgina. Això ens ha de donar una llista de recursos que s'han descarregat per compondre la pàgina web, i aquí es pot comprovar quin arxiu d'imatge va ser triat per a descarregar.</p> + +<p><img alt="a screenshot of the network inspector in firefox devtools, showing that the HTML for the page has been downloaded, along with three images, which include the two 800 wide versions of the responsive images" src="https://mdn.mozillademos.org/files/12934/network-devtools.png" style="display: block; height: 630px; margin: 0px auto; width: 600px;"></p> + +<h3 id="Canvi_de_resolució_Mateixa_grandària_diferents_resolucions">Canvi de resolució: Mateixa grandària, diferents resolucions</h3> + +<p>Si s'està donant suport a múltiples resolucions de pantalla, però tothom veu la imatge a la mateixa grandària real en la pantalla, es pot permetre que el navegador seleccioni una imatge de resolució apropiada utilitzant <code>srcset</code> amb x-descriptors i sense grandaries (<code>sizes</code>) - una sintaxi una mica més fàcil! Es pot trobar un exemple de com es veu en <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/responsive-images/srcset-resolutions.html">srcset-resolutions.html</a> (vegeu també <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/responsive-images/srcset-resolutions.html">el codi font</a>):</p> + +<pre class="brush: html"><img srcset="elva-fairy-320w.jpg, + elva-fairy-480w.jpg 1.5x, + elva-fairy-640w.jpg 2x" + src="elva-fairy-640w.jpg" alt="Elva dressed as a fairy"> +</pre> + +<p><img alt="A picture of a little girl dressed up as a fairy, with an old camera film effect applied to the image" src="https://mdn.mozillademos.org/files/12942/resolution-example.png" style="display: block; height: 425px; margin: 0px auto; width: 480px;">En aquest exemple, el següent CSS s'aplica a la imatge de manera que tindrà una amplada de 320 píxels a la pantalla (també anomenats píxels CSS):</p> + +<pre class="brush: css">img { + width: 320px; +}</pre> + +<p>En aquest cas, la grandària (<code>sizes</code>) no és necessaria - el navegador simplement resol la resolució de la pantalla que es mostra, i serveix la imatge més adequada que es fa referència en el <code>srcset</code>. Així, si el dispositiu que accedeixi a la pàgina té un estàndard/de baixa resolució, amb un píxel de dispositiu que representa cada píxel CSS, la imatge <code>elva-fada-320w.jpg</code> serà carregada (el 1x està implícit, pel que no cal incloure). Si el dispositiu té una alta resolució de dos píxels de dispositiu per píxel CSS o més, es carregarà la imatge <code>elva-fada-640w.jpg</code>. La imatge de 640px té 93KB, mentre que la imatge de 320px té només 39KB.</p> + +<h3 id="Direcció_d'art">Direcció d'art</h3> + +<p>En resum, el <strong>problema de direcció d'art</strong> implica voler canviar la imatge que es mostra per adaptar-se a diferents grandàries de visualització de la imatge. Per exemple, si es mostra un paisatge gran amb una persona al mig en un lloc web quan es veu en un navegador d'escriptori, aquesta es redueix quan es veu el lloc web en un navegador mòbil, es veurà malament, la persona serà molt petita i difícil de veure. Probablement seria millor mostrar una imatge més petita, de retrat en el mòbil, que mostri la persona ampliada. L'element {{htmlelement("picture")}} ens permet implementar exactament aquest tipus de solució.</p> + +<p>Tornant al nostre exemple original <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/responsive-images/not-responsive.html">not-responsive.html</a> tenim una imatge que necessita molt la direcció d'art:</p> + +<pre class="brush: html"><img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva"></pre> + +<p>Arreglarem això, amb {{htmlelement("picture")}}! Igual que <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content"><code><video></code> i <code><audio></code></a>, l'element <code><picture></code> és un contenidor que conté diversos elements {{htmlelement("source")}} que proporcionen diverses fonts diferents que el navegador pot triar, seguit per l'importantíssim element {{htmlelement("img")}}. El codi de <a href="http://mdn.github.io/learning-area/html/multimedia-and-embedding/responsive-images/responsive.html">responsive.html</a> es veu així:</p> + +<pre class="brush: html"><picture> + <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg"> + <source media="(min-width: 800px)" srcset="elva-800w.jpg"> + <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva"> +</picture> +</pre> + +<ul> + <li>Els elements <code><source></code> inclouen un atribut <code>media</code> que conté una condició de medis - igual que amb el primer exemple amb <code>srcset</code>, aquestes condicions són les proves que decideixen quina és la imatge que es mostrarà - el primer que retorna veritable és el que es mostrarà. En aquest cas, si l'amplada de la finestra gràfica és 799px d'ample o menys, es mostrarà la primera imatge de l'element <code><source></code>. Si l'amplada de la finestra gràfica és 800px o més, serà la segona.</li> + <li>Els atributs <code>srcset</code> contenen la ruta de la imatge per mostrar. Recordeu que tal com vam veure amb <code><img></code> a dalt, <code><font></code> pot prendre un atribut <code>srcset</code> amb diverses imatges de referència, i també un atribut <code>sizes</code>. Pel que podria oferir diverses imatges a través d'un element <code><picture></code>, però també podria ofererir múltiples resolucions de cadascuna. Sent realistes, és probable no s'hagin de fer aquest tipus de coses molt sovint.</li> + <li>En tots els casos, s'ha de proporcionar un element <code><img></code>, amb <code>src</code> i <code>alt</code>, just abans de <code></picture></code>, en cas contrari no apareixeran les imatges. Això proporciona un cas per defecte que s'aplicarà quan cap de les condicions de medis retorni cert (en realitat es podria treure el segon element <code><source></code> en aquest exemple), i una alternativa per als navegadors que no suporten l'element <code><picture></code>.</li> +</ul> + +<p>Aquest codi ens permet mostrar una imatge adequada tant en pantalla ampla com en pantalla estreta, com es veu a continuació:</p> + +<p><img alt="Our example site as viewed on a wide screen - here the first image works ok, as it is big enough to see the detail in the center." src="https://mdn.mozillademos.org/files/12940/picture-element-wide.png" style="display: block; height: 554px; margin: 0px auto; width: 700px;"><img alt="Our example site as viewed on a narrow screen with the picture element used to switch the first image to a portrait close up of the detail, making it a lot more useful on a narrow screen" src="https://mdn.mozillademos.org/files/12938/picture-element-narrow.png" style="display: block; height: 710px; margin: 0px auto; width: 320px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: S'ha d'utilitzar el atribut <code>media</code> només en escenaris de direcció d'art; quan es fa ús de <code>media</code>, no oferir condicions de medis dins l'atribut <code>sizes</code>.</p> +</div> + +<h3 id="Per_què_no_podem_fer_això_usant_CSS_o_Javascript">Per què no podem fer això usant CSS o Javascript?</h3> + +<p>Quan el navegador comença a carregar una pàgina, s'inicia la descàrrega (precàrrega) d'alguna de les imatges abans que l'analitzador principal hagi començat a carregar i interpretar el CSS i JavaScript de la pàgina. Aquesta és una tècnica útil, que de mitjana ha rebaixat el 20% el temps de càrrega. No obstant això, no és útil per a les imatges sensibles, d'aquí la necessitat d'implementar solucions com <code>srcset</code>. No es podria, per exemple, carregar l'element {{htmlelement("img")}}, després de detectar l'amplada de la finestra gràfica amb JavaScript i canviar dinàmicament la imatge d'origen en una més petita si es desitjes. Per llavors, la imatge original ja hauria estat carregada, i es carregaria també la imatge petita, així, que és encara pitjor en termes d'imatge sensible.</p> + +<ul> +</ul> + +<h3 id="Utilitzar_formats_d'imatge_moderns_audaçment"><span class="short_text" id="result_box" lang="ca"><span>Utilitzar</span> <span>formats</span> <span>d'imatge</span> <span>moderns</span> <span>audaçment</span></span></h3> + +<p>Hi ha diversos nous formats d'imatge emocionants (com WebP i JPEG-2000) que poden mantenir una mida d'arxiu baix i d'alta qualitat al mateix temps. No obstant això, el suport dels navegadors és irregular.</p> + +<p><picture> ens permet continuar atenent els navegadors antics. Es pot subministrar el tipus MIME dins de l'atribut <code>type</code> perquè el navegador pogui rebutjar immediatament tipus d'arxius no compatibles:</p> + +<pre class="brush: html"><picture> + <source type="image/svg+xml" srcset="pyramid.svg"> + <source type="image/webp" srcset="pyramid.webp"> + <img src="pyramid.png" alt="regular pyramid built from four equilateral triangles"> +</picture> +</pre> + +<ul> + <li>No utilitzar l'atribut <code>media</code>, llevat que també es necessiti la direcció d'art.</li> + <li>En un element <code><source></code>, només es pot fer referència a les imatges del tipus declarat en <code>type</code>.</li> + <li>Igual que abans, us convidem a utilitzar llistes separades per comes amb <code>srcset</code> i <code>sizes</code>, segons sigui necessari.</li> +</ul> + +<h2 id="Aprenentatge_actiu_La_implementació_de_les_vostres_pròpies_imatges_sensibles">Aprenentatge actiu: La implementació de les vostres pròpies imatges sensibles</h2> + +<p>Per a aquest aprenentatge actiu, estem esperant que sigueu valents i sobretot actueu independentment.... Volem que implementeu el vostre propi art adequat dirigit a pantalla estreta/pantalla ampla utilitzant <code><picture></code>, i un exemple de canvi de resolució que utilitzi <code>srcset</code>.</p> + +<ol> + <li>Escriure alguna cosa d'HTML senzilla per contenir el codi (usar <code>not-responsive.html</code> com a punt de partida, si es vol)</li> + <li>Troba una bona imatge apaïsada de pantalla ampla amb algun tipus de detalls continguts en ella en algun lloc. Crear una versió en grandària web de la mateixa utilitzant un editor de gràfics, a continuació, retallar-la per mostrar una part més petita que ampliï el detall, i crear una segona imatge (al voltant de 480px d'ample que és bo per a això).</li> + <li>Utilitzeu l'element <code><picture></code> per implementar un selector d'imatge de direcció d'art!</li> + <li>Crear diversos arxius d'imatges de diferents mides, cadascun mostrant la mateixa imatge.</li> + <li>Utilitzeu <code>srcset/size</code> per crear un exemple de canvi de resolució, ja sigui per servir la mateixa imatge a mida en diferentes resolucions, o diferentes mides d'imatges en diferentes amplades de finestra gràfica.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Utilitzeu el devtools del navegador perquè us ajudi a saber quines mides necessiteu, com es va esmentar anteriorment.</p> +</div> + +<h2 id="Sumari">Sumari</h2> + +<p>Això és un embolcall per a les imatges sensibles - Esperem que hagiu gaudit jugant amb aquestes noves tècniques. Com a resum, hi ha dos problemes diferents que hem estat discutint aquí:</p> + +<ul> + <li><strong>Direcció d'art</strong>: El problema pel qual es volem servir imatges retallades per diferentes disposicions - per exemple, una imatge apaïsada que mostra una escena completa per a un disseny d'escriptori, i una imatge retrat que mostra el tema principal enfocat, estreta per a un disseny mòbil. Això es pot resoldre mitjançant l'element {{htmlelement("picture")}}</li> + <li><strong>Canvi de resolució</strong>: El problema pel qual es volem servir arxius d'imatge més petits a dispositius de pantalla estreta, ja que no necessiten imatges enormes com a pantalles d'escriptori - i també opcionalment servir imatges de resolució diferent a pantalles d'alta/baixa densitat. Això es pot resoldre usant<a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web"> gràfics vectoriasl</a> (imatges SVG) i els atributs {{htmlattrxref ("srcset", "img")}} i {{htmlattrxref ("sizes", "img")}}.</li> +</ul> + +<p>Hem arribat al final de tot, dels mòduls <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding">Multimedia i incrustació</a>! L'única cosa que fer ara, abans de seguir endavant, és provar la vostra avaluació multimèdia i veure com us va. Diverteix-te.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="http://blog.cloudfour.com/responsive-images-101-definitions">Excel·lent introducció a les imatges sensibles, per Jason Grigsby</a></li> + <li>{{htmlelement("img")}}</li> + <li>{{htmlelement("picture")}}</li> + <li>{{htmlelement("source")}}</li> +</ul> + +<div>{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web", "Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page", "Learn/HTML/Multimedia_and_embedding")}}</div> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/index.html b/files/ca/learn/html/multimèdia_i_incrustar/index.html new file mode 100644 index 0000000000..43e0e89c91 --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/index.html @@ -0,0 +1,75 @@ +--- +title: Multimèdia i incrustar +slug: Learn/HTML/Multimèdia_i_incrustar +tags: + - Assessment + - Audio + - Beginner + - CodingScripting + - Flash + - Guide + - HTML + - Images + - Landing + - Learn + - SVG + - Video + - iframes + - imagemaps + - responsive +translation_of: Learn/HTML/Multimedia_and_embedding +--- +<div class="textArea" id="destText" style="direction: ltr;"> +<div><span class="highlighted" id="ouHighlight__0_9TO0_9">Multimèdia</span><span id="noHighlight_0.7886620835513062"> </span><span id="ouHighlight__11_13TO11_11">i</span><span id="noHighlight_0.5759707384643681"> </span><span id="ouHighlight__15_23TO13_21">incrustar</span></div> +</div> + +<p>{{LearnSidebar}}</p> + +<p class="summary">Hem vist una gran quantitat de text fins ara en aquest curs. Molt. de. text. Però la web seria molt avorrida sense res més que el text, de manera que anem a començar a buscar la manera de fer que la web cobri vida, amb un contingut més interessant! Aquest mòdul explora com utilitzar HTML per incloure multimèdia en les pàgines web, incloent-hi les diferents formes en què les imatges poden ser inclosos, i com integrar vídeo, àudio i fins i tot altres pàgines web senceres.</p> + +<h2 id="Requisits_previs">Requisits previs</h2> + +<p>Abans d'iniciar aquest mòdul, s'ha de tenir un coneixement raonable dels conceptes bàsics d'HTML, com s'explica en <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introduction to HTML</a>. Si no s'ha treballat a través d'aquest mòdul (o alguna cosa semblant), comenceu a treballar amb ell en primer lloc, i a continuació, tornar!</p> + +<div class="note"> +<p><strong>Nota</strong>: Si esteu treballant en un ordinador/tauleta/altre dispositiu els quals no tenen la capacitat de crear els vostres propis arxius, podeu provar (la majoria) els exemples en un programa de codificació en línia, com ara <a href="http://jsbin.com/">JSBin</a> o <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guies">Guies</h2> + +<p>Aquest mòdul conté els següents articles, que ens portarà a través de tots els fonaments de la incrustació de multimèdia en pàgines web.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML">Imatges en HTML</a></dt> + <dd>Hi ha altres tipus de multimèdia a tenir en compte, però és lògic començar amb l'element humil {{htmlelement("img")}}, que s'utilitza per incrustar una imatge en una pàgina web senzilla. En aquest article veurem com utilitzar-lo en profunditat, incloent conceptes bàsics, anotant-ho amb subtítols utilitzant {{htmlelement("figure")}}, i com es relaciona amb les imatges de fons de CSS.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content">Contingut d'àudio i vídeo</a></dt> + <dd>A continuació, veurem com utilitzar els elements HTML5 {{htmlelement("video")}} i {{htmlelement("audio")}} per incrustar vídeo i àudio a les pàgines, incloent conceptes bàsics, proporcionant accés a diferents formats d'arxiu a diferents navegadors, afegir títols i subtítols, i com afegir alternatives per als navegadors antics.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies">De <object> a <iframe> — altres tecnologies d'incrustació</a></dt> + <dd>En aquest punt ens agradaria fer un petit pas al costat, mirant a un parell d'elements que permeten introduir una àmplia varietat de tipus de contingut en les pàgines web: els elements {{htmlelement("iframe")}}, {{htmlelement("embed")}} and {{htmlelement("object")}}. <code><iframe></code>s són per incrustar en altres pàgines web, i els altres dos permeten incrustar arxius PDF, SVG, i fins i tot flash - una tecnologia que està en camí de desapareixa, però que encara es veu semi-regularment.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web">Afegir gràfics vectorials a la Web</a></dt> + <dd> + <p>Els gràfics vectorials poden ser molt útils en certes situacions. A diferència dels formats habituals com PNG/JPG, que no es distorsionen/pixelen quan s'acostan - poden romandre suaus quan s'escalen. Aquest article és una introducció al que són vectors gràfics, i com incloure el popular format {{glossary("SVG")}} en pàgines web.</p> + </dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images">Imatges responsive</a></dt> + <dd>Amb tants tipus de dispositius differerents capaços de navegar per la web - des de telèfons mòbils als ordinadors d'escriptori - un concepte essencial per dominar en el món web modern és el disseny sensible. Això es refereix a la creació de pàgines web que poden canviar de forma automàtica les seves característiques per adaptar-se a diferents mides de pantalla, resolucions, etc. Això es veurà amb més detall en un mòdul CSS més endavant, però per ara mirem les eines HTML que tenim a disposició per crear imatges sensibles, incloent l'element {{htmlelement("picture")}}.</dd> +</dl> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Les següents avaluacions posaran a prova la comprensió dels conceptes bàsics HTML coberts en les guies anteriors.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page">Pàgina de benvinguda de Mozilla</a></dt> + <dd>En aquesta avaluació, posarem a prova el coneixement d'algunes de les tècniques descrites en els articles d'aquest mòdul, aconseguir afegir algunes imatges i vídeo a una pàgina de benvinguda de moda, tot sobre Mozilla!</dd> +</dl> + +<h2 id="Veure">Veure</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image">Afegir un hitmap a la part superior d'una imatge</a></dt> + <dd>Els mapes d'imatge proporcionen un mecanisme perquè les diferents parts d'una imatge enllaci a diferents llocs (pensem en un mapa, a través del qual amb els enllaços obtenim més informació sobre cada pais en clicar-los.) Aquesta tècnica pot ser útil a vegades.</dd> + <dt><a href="https://teach.mozilla.org/activities/web-lit-basics-two/">Conceptes bàsics d'alfabetització Web 2</a></dt> + <dd> + <p>Un excel·lent curs de la fundació Mozilla que explora i posa a prova algunes de les habilitats parlades en el mòdul <em>Multimèdia i incrustació</em>. Busseig profund en la composició bàsica de les pàgines web, disseny per l'accessibilitat, compartint recursos, utilitzant els medis en línia, i el treball obert.</p> + </dd> +</dl> diff --git a/files/ca/learn/html/multimèdia_i_incrustar/mozilla_pàgina_de_benvinguda/index.html b/files/ca/learn/html/multimèdia_i_incrustar/mozilla_pàgina_de_benvinguda/index.html new file mode 100644 index 0000000000..71e1d3426e --- /dev/null +++ b/files/ca/learn/html/multimèdia_i_incrustar/mozilla_pàgina_de_benvinguda/index.html @@ -0,0 +1,109 @@ +--- +title: Mozilla pàgina de benvinguda +slug: Learn/HTML/Multimèdia_i_incrustar/Mozilla_pàgina_de_benvinguda +tags: + - Assessment + - Beginner + - CodingScripting + - Embedding + - HTML + - Images + - Multimedia + - Video + - iframe + - picture + - responsive + - sizes + - srcset +translation_of: Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/HTML/Multimedia_and_embedding/Responsive_images", "Learn/HTML/Multimedia_and_embedding")}}</div> + +<p class="summary">En aquesta avaluació, posarem a prova els vostres coneixements d'algunes de les tècniques descrites en els articles d'aquest mòdul, fent que afegiu algunes imatges i vídeos a una pàgina, amb un toc de moda, tot sobre Mozilla!</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits Previs:</th> + <td>Abans d'intentar aquesta avaluació ja hauria d'haver treballat el mòdul <a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding">Multimedia i incrustació</a>.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Posar a prova els coneixements al voltant de la incrustació d'imatges i de vídeo en pàgines web, marcs i tècniques d'imatge sensible HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida">Punt de partida</h2> + +<p>Per començar aquesta avaluació, s'ha de agafar l'HTML i totes les imatges disponibles en el directori <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/mdn-splash-page-start/">mdn-splash-page-start</a> en github. Desar el contingut d'<a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/mdn-splash-page-start/index.html">index.html</a> en un arxiu anomenat <code>index.html</code> en la unitat local, en un nou directori. A continuació, desar <a href="https://github.com/mdn/learning-area/blob/master/html/multimedia-and-embedding/mdn-splash-page-start/pattern.png">pattern.png</a> en el mateix directori (botó dret del ratolí sobre la imatge per obtenir l'opció de guardar-lo).</p> + +<p>Accedir a les diferents imatges en el directori de les <a href="https://github.com/mdn/learning-area/tree/master/html/multimedia-and-embedding/mdn-splash-page-start/originals">originals</a> i guardar-les de la mateixa manera; voldreu guardar-les en un directori diferent, per ara, ja que necessitareu manipular-les (algunes) usant un editor de gràfics abans de que estiguin llestes per ser utilitzades.</p> + +<div class="note"> +<p><strong>Nota</strong>: L'arxiu HTML d'exemple conté un bon munt de CSS, l'estil de la pàgina. No cal tocar el CSS, només l'HTML dins de l'element {{htmlelement("body")}} - sempre que s'insereix el marcat correcte, l'estil farà que es vegi correcte.</p> +</div> + +<h2 id="Project_brief">Project brief</h2> + +<p>En aquesta avaluació presentem una pàgina de benvinguda de Mozilla gairebé acabada, que pretén dir alguna cosa agradable i interessant sobre el que representa Mozilla, i proporcionar alguns enllaços a altres recursos. Malauradament, no s'han afegit imatges o vídeos - aquesta és la vostre feina! Cal afegir alguns medis perquè la pàgina es vegi bé i tingui més sentit. Les següents subseccions detallan el que s'ha de fer:</p> + +<h3 id="Preparar_imatges">Preparar imatges</h3> + +<p>Usar l'editor d'imatges favorit, per crear versions de 400px d'ample i 120px d'ample:</p> + +<ul> + <li><code>firefox_logo-only_RGB.png</code></li> + <li><code>firefox-addons.jpg</code></li> + <li><code>mozilla-dinosaur-head.png</code></li> +</ul> + +<p>Anomenar-les d'una manera sensata, per exemple, <code>firefoxlogo400.png</code> i <code>firefoxlogo120.png</code>.</p> + +<p>Juntament amb mdn.svg, aquestes imatges seran les vostres icones per enllaçar a altres recursos, dins l'àrea d'<code>informació addiciona</code>l. També s'enllaçarà el logo de Firefox a la capçalera del lloc. Desar les còpies de tot això dins el mateix directori que <code>index.html</code>.</p> + +<p>A continuació, crear una versió apaïsada de 1200 píxels d'ample de <code>red-panda.jpg</code>, i una versió retrat de 600px d'ample que mostri el panda en un primer pla. Una vegada més, anomenar-les d'una manera sensata perquè puguin se identificades fàcilment. Guardar una còpia de tots dues dins del mateix directori que <code>index.html</code>.</p> + +<div class="note"> +<p><strong>Nota</strong>: S'han de optimitzar les imatges JPG i PNG perquè siguin el més petites possible, mentre encara es vegin bé. tinypng.com és un gran servei per fer això fàcilment.</p> +</div> + +<h3 id="Afegir_un_logo_a_la_capçalera">Afegir un logo a la capçalera</h3> + +<p>Dins de l'element {{htmlelement("header")}}, afegir un element {{htmlelement("img")}} que incrustar la petita versió del logo de Firefox a la capçalera.</p> + +<h3 id="Afegir_un_vídeo_al_continut_principal_del_article">Afegir un vídeo al continut principal del article</h3> + +<p>Just dins de l'element {{htmlelement("article")}} (a sota de l'etiqueta d'obertura), incrustar el vídeo de YouTube trobat en <a href="https://www.youtube.com/watch?v=ojcNcvb1olg">https://www.youtube.com/watch?v=ojcNcvb1olg</a>, utilitzant les eines adequades de YouTube per generar el codi. El vídeo ha de ser 400 px d'ample.</p> + +<h3 id="Afegir_imatges_sensibles_als_enllaços_d'informació_addicional">Afegir imatges sensibles als enllaços d'informació addicional</h3> + +<p>Dins de {{htmlelement("div")}} amb la classe <code>further-info</code>, troben quatre elements {{htmlelement("a")}} - cada un dels enllaços amb pàgines interessants relacionades amb Mozilla. Per completar aquesta secció haurem de inserir un element {{htmlelement("img")}} dins de cada un d'ells que continguin els atributs apropiats {{htmlattrxref("src", "img")}}, {{htmlattrxref("alt", "img")}}, {{htmlattrxref("srcset", "img")}} i {{htmlattrxref("sizes", "img")}}.</p> + +<p>En tots els casos (excepte un - quin és inherentment sensible?) volem que el navegador serveixi la versió de 120px d'ample quan l'amplada de la finestra gràfica sigui 480px d'ample o menys, o la versió de 400px d'amplada d'altra manera.</p> + +<p>Assegurar-se de fer coincidir les imatges correctes amb els vincles correctes!</p> + +<div class="note"> +<p><strong>Nota</strong>: Per provar correctament els exemples <code>srcset/sizes</code>, es necessita pujar el lloc a un servidor (usant pàgines <a href="/en-US/docs/Learn/Common_questions/Using_Github_pages">Github pages</a> és una solució fàcil i lliure), a continuació, a partir d'aquí es pot comprovar si s'està treballant adequadament utilitzant les eines de desenvolupador del navegador, com es detalla en les <a href="/en-US/Learn/HTML/Multimedia_and_embedding/Responsive_images#Useful_developer_tools">imatges sensibles: eines útils per a desenvolupadors</a>.</p> +</div> + +<h3 id="Un_art_dirigit_panda_vermell">Un art dirigit panda vermell</h3> + +<p>Dins de {{htmlelement("div")}} amb la classe <code>red-panda</code>, volem inserir un element {{htmlelement("picture")}} que serveixi d'imatge de petit retrat del panda si la finestra gràfica és de 600px d'ample o menys, i la imatge apaïsada, gran, al contrari.</p> + +<h2 id="Exemple">Exemple</h2> + +<p>Les següents captures de pantalla mostren la pàgina de benvinguda que ha de ser similar després d'haver estat marcada correctament, en una àmplia i estreta visualització de la pantalla.</p> + +<p><img alt="A wide shot of our example splash page" src="https://mdn.mozillademos.org/files/12946/wide-shot.png" style="border-style: solid; border-width: 1px; display: block; height: 620px; margin: 0px auto; width: 700px;"></p> + +<p><img alt="A narrow shot of our example splash page" src="https://mdn.mozillademos.org/files/12944/narrow-shot.png" style="border-style: solid; border-width: 1px; display: block; height: 1069px; margin: 0px auto; width: 320px;"></p> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Si esteu seguint aquesta avaluació com a part d'un curs organitzat, heu de ser capaços de donar al vostre treball al professor/tutor per evaluar. Si sou d'auto-aprenentatge, llavors es pot obtenir la guia d'evaluació faciliment preguntan a la llista de correu <a href="https://lists.mozilla.org/listinfo/dev-mdc">dev-mdc</a> o al canal d'IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Proveu el primer exercici - no hi ha res a guanyar amb trampa!</p> + +<p>{{PreviousMenu("Learn/HTML/Multimedia_and_embedding/Responsive_images", "Learn/HTML/Multimedia_and_embedding")}}</p> diff --git a/files/ca/learn/html/taules_html/avaluació_estructurar_les_dades_dels_planeta/index.html b/files/ca/learn/html/taules_html/avaluació_estructurar_les_dades_dels_planeta/index.html new file mode 100644 index 0000000000..15d583607f --- /dev/null +++ b/files/ca/learn/html/taules_html/avaluació_estructurar_les_dades_dels_planeta/index.html @@ -0,0 +1,79 @@ +--- +title: 'Avaluació: Estructurar les dades dels planeta' +slug: Learn/HTML/Taules_HTML/Avaluació_Estructurar_les_dades_dels_planeta +tags: + - Assessment + - Beginner + - CodingScripting + - HTML + - Learn + - Tables +translation_of: Learn/HTML/Tables/Structuring_planet_data +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenu("Learn/HTML/Tables/Advanced", "Learn/HTML/Tables")}}</div> + +<p class="summary">En la nostra avaluació de la taula, proporcionarem algunes dades sobre els planetes del nostre sistema solar, per obtenir una estructura en una taula HTML.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits Previs:</th> + <td>Abans de procedir a aquesta avaluació ja s'hauria d'haver treballat a través de tots els articles d'aquest mòdul.</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Posar a prova la comprensió de les taules HTML i funcions associades.</td> + </tr> + </tbody> +</table> + +<h2 id="Punt_de_partida">Punt de partida</h2> + +<p>Per obtenir aquesta avaluació començarem per fer còpies locals de <a href="https://github.com/mdn/learning-area/blob/master/html/tables/assessment-start/blank-template.html">blank-template.html</a>, <a href="https://github.com/mdn/learning-area/blob/master/html/tables/assessment-start/minimal-table.css">minimal-table.css</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/assessment-start/planets-data.txt">planets-data.txt</a> en un nou directori a l'equip local.</p> + +<div class="note"> +<p><strong>Nota</strong>: Com a alternativa, es pot utilitzar un lloc com <a class="external external-icon" href="https://jsbin.com/">JSBin</a> o <a class="external external-icon" href="https://thimble.mozilla.org/">Thimble</a> per fer l'avaluació. Es pot fer enganxant el codi HTML, CSS i JavaScript en un d'aquests editors en línia. Si l'editor en línia que s'utilitza no té panells separats de JavaScript/CSS, lliurament es poden posar en línia amb els elements <code><script></code>/<code><style></code> dins de la pàgina HTML.</p> +</div> + +<h2 id="Resum_del_projecte">Resum del projecte</h2> + +<p>Estem treballant en una escola; actualment els estudiants estan estudiant els planetes del nostre sistema solar, i volem proporcionar-los un conjunt fàcil de seguiment de dades per buscar dades i xifres sobre els planetes. Una taula de dades HTML seria ideal - cal prendre les dades en brut que tenim disponibles i convertir-les en una taula, seguint els passos a continuació.</p> + +<p>La taula d'acabada ha de tenir aquest aspecte:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14609/assessment-table.png" style="display: block; margin: 0 auto;"></p> + +<p>També es pot <a href="https://mdn.github.io/learning-area/html/tables/assessment-finished/planets-data.html">veure el exemple en viu aquí</a> (sense mirar el codi font - no enganyar!)</p> + +<ul> +</ul> + +<h2 id="Passos_per_completar"><span class="short_text" id="result_box" lang="ca"><span>Passos</span> <span>per completar</span></span></h2> + +<p>Els següents passos descriuen el que s'ha de fer per completar la taula d'exemple. Totes les dades que es necessitan estan contingudes en l'arxiu <code>planets-data.txt</code>. Si hi ha problemes per visualitzar les dades, mirar l'exemple viu de dalt, o tractar de dibuixar un diagrama.</p> + +<ol> + <li>Obrir la còpia <code>blank-template.html</code> i començar la taula per fora, donant-li un recipient exterior, una capçalera i un cos de taula. No cal un peu de taula per a aquest exemple.</li> + <li>Afegir el títol proporcionat a la taula.</li> + <li>Afegir una fila a la capçalera de la taula que contingui tots els encapçalats de columna.</li> + <li>Crear totes les files de contingut dins del cos de la taula, sense oblidar de fer tots els encapçalats de les files en encapçalats semàntics.</li> + <li>Assegureu-vos que tot el contingut s'insereix en les cel·les correctes - amb les dades en brut, cada fila de dades del planeta s'ha de mostrar al costat del seu planeta associat.</li> + <li>Afegir atributs per fer que les capçaleres de fila i columna estiguin inequívocament associades a les files, columnes o grups de files que actuen com capçaleres.</li> + <li>Afegir una vora negre al voltant de la columna que conté tots els encapçalats de fila dels noms del planetes</li> +</ol> + +<h2 id="Consells_i_suggeriments"><span class="short_text" id="result_box" lang="ca"><span>Consells</span> <span>i</span> <span>suggeriments</span></span></h2> + +<ul> + <li>La primera cel·la de la fila de capçalera ha d'estar en blanc, i abasta dues columnes.</li> + <li>Els títols de les files del grup (per exemple <em>Jovian planets</em> ) que se situen a l'esquerra dels encapçalats de les files dels noms dels planetes (per exemple, <em>Saturn</em> ) són una mica complicats de classificar - necessita està segur que cadascun abasti el nombre correcte de files i columnes.</li> + <li>Associar les capçaleres amb les seves files/columnes és molt més fàcil que al revés.</li> +</ul> + +<h2 id="Avaluació">Avaluació</h2> + +<p>Si esteu seguint aquesta avaluació com a part d'un curs organitzat, heu de ser capaços de donar al treball al vostre professor/tutor per avaluar-ho. Si és d'auto-aprenentatge, llavors es pot obtenir la guia d'avaluació facilment preguntan a la llista de correu <a href="https://lists.mozilla.org/listinfo/dev-mdc">dev-mdc</a> o al canal d'IRC <a href="irc://irc.mozilla.org/mdn">#mdn</a> en <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>. Proveu el primer exercici - no hi ha res a guanyar amb trampes!</p> + +<p>{{PreviousMenu("Learn/HTML/Tables/Advanced", "Learn/HTML/Tables")}}</p> diff --git a/files/ca/learn/html/taules_html/fonaments_de_la_taula_html/index.html b/files/ca/learn/html/taules_html/fonaments_de_la_taula_html/index.html new file mode 100644 index 0000000000..f21f6fd3ca --- /dev/null +++ b/files/ca/learn/html/taules_html/fonaments_de_la_taula_html/index.html @@ -0,0 +1,618 @@ +--- +title: Fonaments de la taula HTML +slug: Learn/HTML/Taules_HTML/Fonaments_de_la_taula_HTML +tags: + - Article + - Beginner + - CodingScripting + - HTML + - Learn + - Tables + - basics + - cell + - col + - colgroup + - colspan + - header + - row + - rowspan +translation_of: Learn/HTML/Tables/Basics +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/HTML/Tables/Advanced", "Learn/HTML/Tables")}}</div> + +<p class="summary">Aquest article ens ajuda a començar amb les taules HTML, n’exposa els conceptes bàsics com ara les files i cel·les, les capçaleres, les cel·les que ocupen diverses columnes i files, i la manera d’agrupar totes les cel·les d'una columna per a propòsits d'estil.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Fonaments d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Familiaritzar-se amb les taules HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Què_és_una_taula">Què és una taula?</h2> + +<p>Una taula és un conjunt estructurat de dades compost de files i columnes (<strong>dades tabulars</strong>). Una taula permet buscar de manera ràpida i fàcil valors que indiquen algun tipus de connexió entre els diferents tipus de dades, per exemple, una persona i la seva edat, o un dia de la setmana, o l’horari d'una piscina municipal.</p> + +<p><img alt="Una taula de mostra que presenta els noms i les edats d'algunes persones: Chris 38, Dennis 45, Sarah 29, Karen 47." src="https://mdn.mozillademos.org/files/14583/numbers-table.png" style="display: block; height: 156px; margin: 0px auto; width: 350px;"></p> + +<p><img alt="Un exemple de taula de dades que presenta l'horari d'una piscina" src="https://mdn.mozillademos.org/files/14587/swimming-timetable.png" style="display: block; height: 301px; margin: 0px auto; width: 794px;"></p> + +<p>Les taules s'utilitzen amb molta freqüència en la nostra societat, i hi estan des de fa molt de temps, com ho demostra aquest document del cens dels EUA de 1800:</p> + +<p><img alt="Un document en pergamí molt antic en què les dades no es llegeixen amb facilitat, però presenta clarament l'ús d'una taula de dades." src="https://mdn.mozillademos.org/files/14585/1800-census.jpg" style="display: block; height: 505px; margin: 0px auto; width: 800px;"></p> + +<p>Per tant, no és estrany que els creadors de l'HTML proporcionessin un mitjà d’estructurar i presentar dades tabulars per al web.</p> + +<h3 id="Com_funciona_una_taula">Com funciona una taula?</h3> + +<p>La característica d'una taula és que és rígida. La informació és fàcil d'interpretar a partir d’associacions visuals entre les capçaleres de les files i les columnes. Mira la taula que hi ha a continuació i busca ungegant de gas amb 62 llunes. Trobes la resposta associant els encapçalaments de fila i columna corresponents.</p> + +<table> + <thead> + <tr> + <td colspan="2"></td> + <th scope="col">Nom</th> + <th scope="col">Massa (10<sup>24</sup> kg)</th> + <th scope="col">Diàmetre (km)</th> + <th scope="col">Densitat (kg/m<sup>3</sup>)</th> + <th scope="col">Gravetat (m/s<sup>2</sup>)</th> + <th scope="col">Duració del dia (hores)</th> + <th scope="col">Distància del Sol (10<sup>6</sup>km)</th> + <th scope="col">Temperatura mitja (°C)</th> + <th scope="col">Número de llunes</th> + <th scope="col">Observacions</th> + </tr> + <tr> + <th colspan="2" rowspan="4" scope="rowgroup">Planetes terrestres</th> + <th scope="row">Mercuri</th> + <td>0,330</td> + <td>4.879</td> + <td>5.427</td> + <td>3,7</td> + <td>4.222,6</td> + <td>57,9</td> + <td>167</td> + <td>0</td> + <td>El més proper al Sol</td> + </tr> + <tr> + <th scope="row">Venus</th> + <td>4,87</td> + <td>12.104</td> + <td>5.243</td> + <td>8,9</td> + <td>2.802,0</td> + <td>108,2</td> + <td>464</td> + <td>0</td> + <td></td> + </tr> + <tr> + <th scope="row">La Terra</th> + <td>5,97</td> + <td>12.756</td> + <td>5.514</td> + <td>9,8</td> + <td>24,0</td> + <td>149,6</td> + <td>15</td> + <td>1</td> + <td>El nostre planeta</td> + </tr> + <tr> + <th scope="row">Mart</th> + <td>0,642</td> + <td>6.792</td> + <td>3.933</td> + <td>3,7</td> + <td>24,7</td> + <td>227,9</td> + <td>-65</td> + <td>2</td> + <td>El planeta vermell</td> + </tr> + <tr> + <th rowspan="4" scope="rowgroup">Planetas jovians</th> + <th rowspan="2" scope="rowgroup">Gegants de gas</th> + <th scope="row">Júpiter</th> + <td>1.898</td> + <td>142.984</td> + <td>1.326</td> + <td>23,1</td> + <td>9,9</td> + <td>778,6</td> + <td>-110</td> + <td>67</td> + <td>El planeta més gran</td> + </tr> + <tr> + <th scope="row">Saturn</th> + <td>568</td> + <td>120.536</td> + <td>687</td> + <td>9,0</td> + <td>10,7</td> + <td>1.433,5</td> + <td>-140</td> + <td>62</td> + <td></td> + </tr> + <tr> + <th rowspan="2" scope="rowgroup">Gegants de gel</th> + <th scope="row">Urà</th> + <td>86,8</td> + <td>51.118</td> + <td>1.271</td> + <td>8,7</td> + <td>17,2</td> + <td>2.872,5</td> + <td>-195</td> + <td>27</td> + <td></td> + </tr> + <tr> + <th scope="row">Neptú</th> + <td>102</td> + <td>49.528</td> + <td>1.638</td> + <td>11,0</td> + <td>16,1</td> + <td>4.495,1</td> + <td>-200</td> + <td>14</td> + <td></td> + </tr> + <tr> + <th colspan="2" scope="rowgroup">Planetes nans</th> + <th scope="row">Plutó</th> + <td>0,0146</td> + <td>2.370</td> + <td>2.095</td> + <td>0,7</td> + <td>153,3</td> + <td>5.906,4</td> + <td>-225</td> + <td>5</td> + <td>Desclassificat como planeta el 2006, pero encara és una <a href="http://www.usatoday.com/story/tech/2014/10/02/pluto-planet-solar-system/16578959/">qüestió polèmica</a>.</td> + </tr> + </thead> +</table> + +<p>Quan es fa correctament, fins i tot les persones cegues poden interpretar les dades tabulades en una taula HTML; una taula HTML ben feta hauria de millorar l'experiència dels usuaris sense discapacitats i amb discapacitats per igual.</p> + +<h3 id="Aplicar_estil_a_una_taula">Aplicar estil a una taula</h3> + +<p>A GitHub pots trobar <a href="https://mdn.github.io/learning-area/html/tables/assessment-finished/planets-data.html">l'exemple en viu</a>. Observa que la taula que hi trobaràs és llegible; això és perquè la taula que apareix més amunt té uns estils mínims, mentre que la de GitHub té força més CSS aplicat.</p> + +<p>No ens enganyem; perquè les taules siguin eficaces en web s'ha de proporcionar alguna informació d'estil amb <a href="/ca/docs/Learn/CSS">CSS</a>, així com una bona estructura sòlida amb HTML. En aquest mòdul ens centrem en la part HTML; si vols saber coses sobre la part CSS, pots visitar el nostre article <a href="/ca/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a> quan acabis d’aquí.</p> + +<p>En aquest mòdul no ens centrarem en el CSS, però et proporcionem un full d'estil CSS de mínims perquè l’usis per fer les taules més llegibles que amb els valors per defecte que s'obtenen sense afegir cap tipus d'estil. Pots trobar el <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/minimal-table.css">full d'estil aquí</a> i també hi pots trobar una <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/blank-template.html">plantilla HTML</a> on aplicar el full d'estil; tot plegat et donarà un bon punt de partida per a experimentar amb taules HTML.</p> + +<h3 id="Quan_NO_s’han_d’usar_taules_HTML">Quan NO s’han d’usar taules HTML?</h3> + +<p>Les taules HTML s'han d'utilitzar per a presentar dades tabulades; estan dissenyades per a això. Malauradament, molta gent utilitza taules HTML per a fer disseny de pàgines web; per exemple, una fila per a contenir la capçalera, una fila per a contenir les columnes de contingut, una fila per a contenir el peu de pàgina, etc. En pots trobar més detalls i un exemple en l’article <a href="/en-US/docs/Learn/Accessibility/HTML#Page_layouts">Disseny de pàgines web</a> en el nostre <a href="/ca/docs/Learn/Accessibility">mòdul d'aprenentatge de l'accessibilitat</a>. Això es feia servir sovint perquè la compatibilitat CSS dels navegadors solia ser molt precària; avui dia els dissenys de pàgines web amb taules són molt menys comuns, però encara se’n poden veure en alguns racons de la xarxa web.</p> + +<p>En resum, l'ús de taules per al disseny de pàgines web en lloc de les <a href="/ca/docs/Learn/CSS/Disseny_CSS">tècniques de disseny CSS</a> és una mala idea. Les raons principals són les següents:</p> + +<ol> + <li><strong>El disseny de pàgines web amb taules redueixen l'accessibilitat dels usuaris amb discapacitats visuals</strong>: Els <a href="/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility#Screenreaders">lectors de pantalla</a> que fan servir les persones amb discapacitat visual interpreten les etiquetes d’una pàgina HTML i en llegeixen el contingut a l'usuari. Com que les taules no són l'eina adequada per al disseny de pàgines web i l’etiquetatge és més complex que amb les tècniques de disseny CSS, la sortida pels lectors de pantalla serà confusa per a aquests usuaris.</li> + <li><strong>El disseny de pàgines web amb taules genera una sopa d'etiquetes</strong>: Com s’ha dit, els dissenys de pàgines web amb taules en general involucren estructures d’etiquetatge més complexes que les tècniques de disseny adequades. Això pot generar un codi més difícil d'escriure, mantenir i depurar.</li> + <li><strong>Les taules no tenen adaptabilitat automàtica</strong>: Quan s'utilitzen esquemes de contenidors adequats (com ara {{htmlelement("header")}}, {{htmlelement("section")}}, {{htmlelement("article")}} o {{htmlelement("div")}}), els valors per defecte de les amplades són el 100% de la de l’element pare. En canvi, les taules estan dimensionades per defecte d'acord amb el contingut que inclouen, de manera que calen mesures addicionals per a aconseguir aplicar estils de disseny de taula que funcionin de manera eficient en una varietat de dispositius.</li> +</ol> + +<h2 id="Aprenentatge_actiu_Crea_la_teva_primera_taula">Aprenentatge actiu: Crea la teva primera taula</h2> + +<p>Hem parlat de prou teoria sobre les taules; ara ens cabussarem en un exemple pràctic i construirem una taula senzilla.</p> + +<ol> + <li>En primer lloc, fes una còpia local de <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/blank-template.html">blank-template.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/minimal-table.css">minimal-table.css</a> en un directori nou del teu equip local.</li> + <li>El contingut de cada taula està delimitat per aquestes dues etiquetes: <strong><code><a href="/en-US/docs/Web/HTML/Element/table"><table></table></a></code></strong>. Afegeix-les al cos del teu codi HTML.</li> + <li>El contenidor més petit que hi ha dins d'una taula és una cel·la de taula, que es crea amb un element <strong><code><a href="/en-US/docs/Web/HTML/Element/td"><td></a></code></strong> ('td' ve de <em>table data</em>, 'dades de la taula'). Afegeix el següent entre les etiquetes de la teva taula: + <pre class="brush: html notranslate"><td>Hi, I'm your first cell.</td></pre> + </li> + <li>Si vols fer una fila de quatre cel·les, has de copiar aquestes etiquetes tres vegades més. Actualitza els continguts de la teva taula perquè et quedi així: + <pre class="brush: html notranslate"><td>Hi, I'm your first cell.</td> +<td>I'm your second cell.</td> +<td>I'm your third cell.</td> +<td>I'm your fourth cell.</td></pre> + </li> +</ol> + +<p>Observa que les cel·les no es col·loquen l’una sota de l'altra, sinó que s'alineen automàticament les unes amb les altres a la mateixa fila. Cada element <code><td></code> crea una sola cel·la, i totes juntes formen la primera fila. Cada cel·la que afegeixes fa la fila més llarga.</p> + +<p>Per evitar que aquesta fila continuï creixent i començar a col·locar les cel·les següents en una segona fila, hem d'utilitzar l'etiqueta <strong><code><a href="/en-US/docs/Web/HTML/Element/tr"><tr></a></code></strong> ('tr' ve de <em>table raw</em>, ’fila de taula'). Ara explicarem això.</p> + +<ol> + <li>Col·loca les quatre cel·les que has creat entre etiquetes <code><tr></code>, d’aquesta manera: + + <pre class="brush: html notranslate"><tr> + <td>Hi, I'm your first cell.</td> + <td>I'm your second cell.</td> + <td>I'm your third cell.</td> + <td>I'm your fourth cell.</td> +</tr></pre> + </li> + <li>Ja has creat una fila, ara intenta fer-ne una o dues més; cada fila ha d’estar etiquetada en un element <code><tr></code> addicional, i cada cel·la ha d’estar continguda entre etiquetes <code><td></code>.</li> +</ol> + +<p>Això hauria de donar com a resultat una taula, com la que es veu a continuació:</p> + +<table> + <tbody> + <tr> + <td>Hi, I'm your first cell.</td> + <td>I'm your second cell.</td> + <td>I'm your third cell.</td> + <td>I'm your fourth cell.</td> + </tr> + <tr> + <td>Second row, first cell.</td> + <td>Cell 2.</td> + <td>Cell 3.</td> + <td>Cell 4.</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: També la pots trobar a GitHub, com <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/simple-table.html">simple-table.html</a> (i també pots consultar-la en l’<a href="http://mdn.github.io/learning-area/html/tables/basic/simple-table.html">exemple en viu</a>).</p> +</div> + +<h2 id="Afegeix_capçaleres_amb_elements_<th>">Afegeix capçaleres amb elements <th></h2> + +<p>Ara centrem la nostra atenció en les capçaleres de taula; són cel·les especials que van al començament d'una fila o columna i defineixen el tipus de dades que conté la fila o la columna (per exemple, observa les cel·les «Breed» i «Age» en el primer exemple que es mostra en aquest article). Per a il·lustrar per què són útils, dona una ullada a la taula d'exemple següent. Primer, el codi d’origen:</p> + +<pre class="brush: html notranslate"><table> + <tr> + <td>&nbsp;</td> + <td>Knocky</td> + <td>Flor</td> + <td>Ella</td> + <td>Juan</td> + </tr> + <tr> + <td>Breed</td> + <td>Jack Russell</td> + <td>Poodle</td> + <td>Streetdog</td> + <td>Cocker Spaniel</td> + </tr> + <tr> + <td>Age</td> + <td>16</td> + <td>9</td> + <td>10</td> + <td>5</td> + </tr> + <tr> + <td>Owner</td> + <td>Mother-in-law</td> + <td>Me</td> + <td>Me</td> + <td>Sister-in-law</td> + </tr> + <tr> + <td>Eating Habits</td> + <td>Eats everyone's leftovers</td> + <td>Nibbles at food</td> + <td>Hearty eater</td> + <td>Will eat till he explodes</td> + </tr> +</table></pre> + +<p>Ara, la representació de la taula:</p> + +<table> + <tbody> + <tr> + <td></td> + <td>Knocky</td> + <td>Flor</td> + <td>Ella</td> + <td>Juan</td> + </tr> + <tr> + <td>Breed</td> + <td>Jack Russell</td> + <td>Poodle</td> + <td>Streetdog</td> + <td>Cocker Spaniel</td> + </tr> + <tr> + <td>Age</td> + <td>16</td> + <td>9</td> + <td>10</td> + <td>5</td> + </tr> + <tr> + <td>Owner</td> + <td>Mother-in-law</td> + <td>Me</td> + <td>Me</td> + <td>Sister-in-law</td> + </tr> + <tr> + <td>Eating Habits</td> + <td>Eats everyone's leftovers</td> + <td>Nibbles at food</td> + <td>Hearty eater</td> + <td>Will eat till he explodes</td> + </tr> + </tbody> +</table> + +<p>El problema és que, encara que pots anar intuint què passa aquí, fer el creuament de les dades no resulta tan fàcil com podria ser. Seria molt millor si les capçaleres de la columna i de la fila destaquessin d'alguna manera.</p> + +<h3 id="Aprenentatge_actiu_capçaleres_de_taula"><span class="short_text" id="result_box" lang="ca">Aprenentatge actiu: capçaleres de taula</span></h3> + +<p>Intentem millorar aquesta taula.</p> + +<ol> + <li>En primer lloc, fes una còpia local dels fitxers <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/dogs-table.html">dogs-table.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/minimal-table.css">minimal-table.css</a> en un directori nou del teu equip local. L'HTML conté el mateix exemple Dogs que has vist abans.</li> + <li>Perquè les capçaleres de taula es reconeguin com capçaleres, tant visualment com semànticament, pots utilitzar l'element <strong><code><a href="/en-US/docs/Web/HTML/Element/th"><th></a></code></strong> ('th' ve de <em>table header</em>, 'capçalera de taula'). Funciona exactament de la mateixa manera que un element <code><td></code>, però denota una capçalera, que no és una cel·la normal. Entra al codi HTML i canvia tots els elements <code><td></code> que delimiten les cel·les de capçalera de la taula per elements <code><th></code>.</li> + <li>Desa l'HTML i carrega’l en un navegador; ara hauria de mostrar les cel·les de capçalera amb aspecte de capçaleres.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: En GitHub pots trobar el nostre exemple acabat en <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/dogs-table-fixed.html">dogs-table-fixed.html</a> (i també el pots consultar en l’<a href="http://mdn.github.io/learning-area/html/tables/basic/dogs-table-fixed.html">exemple en viu</a>).</p> +</div> + +<h3 id="Per_què_són_útils_les_capçaleres">Per què són útils les capçaleres?</h3> + +<p>Ja hem respost parcialment aquesta pregunta; quan busques dades, resulta més fàcil trobar-les quan les capçaleres destaquen clarament i el disseny es veu més bé en general.</p> + +<div class="note"> +<p><strong>Nota</strong>: Les capçaleres de les taules venen amb un estil per defecte fins i tot quan no afegeixes el teu estil de taula propi, perquè destaquin: el text està en negreta i centrat.</p> +</div> + +<p>Les capçaleres de les taules també presenten un altre avantatge: juntament amb l'atribut <code>scope</code> (que veurem en l’article següent), fa les taules més accessibles perquè cada capçalera s’associa amb totes les dades de la mateixa fila o columna. Els lectors de pantalla són capaços de llegir tota una fila o tota una columna de dades alhora, i això és força útil.</p> + +<h2 id="Cel·les_que_ocupen_diverses_files_i_columnes">Cel·les que ocupen diverses files i columnes</h2> + +<p>A vegades volem que les cel·les abastin diverses files o columnes. Prenguem l’exemple senzill següent, que mostra uns quants noms d’animals comuns. Volem que en alguns casos es mostrin els noms dels mascles i els de les femelles al costat del nom de l'animal, però d’altres vegades no ho volem, sinó que volem que el nom de animal abasti tota l’amplada de la taula.</p> + +<p>L’etiquetatge inicial és el següent:</p> + +<pre class="brush: html notranslate"><table> + <tr> + <th>Animals</th> + </tr> + <tr> + <th>Hippopotamus</th> + </tr> + <tr> + <th>Horse</th> + <td>Mare</td> + </tr> + <tr> + <td>Stallion</td> + </tr> + <tr> + <th>Crocodile</th> + </tr> + <tr> + <th>Chicken</th> + <td>Cock</td> + </tr> + <tr> + <td>Rooster</td> + </tr> +</table></pre> + +<p>Però la sortida no ens dona exactament el que volem:</p> + +<table> + <tbody> + <tr> + <th>Animals</th> + </tr> + <tr> + <th>Hippopotamus</th> + </tr> + <tr> + <th>Horse</th> + <td>Mare</td> + </tr> + <tr> + <td>Stallion</td> + </tr> + <tr> + <th>Crocodile</th> + </tr> + <tr> + <th>Chicken</th> + <td>Cock</td> + </tr> + <tr> + <td>Rooster</td> + </tr> + </tbody> +</table> + +<p>Necessitem una manera d'aconseguir que «Animals», «Hippopotamus» i «Crocodile» ocupin l’amplada de dues columnes, i «Horse» i «Chicken» ocupin més de dues files cap avall. Afortunadament, les capçaleres de taula i les cel·les tenen els atributs <code>colspan</code> i <code>rowspan</code>, que ens permeten fer precisament aquestes coses. Totes dues propietats accepten per valor un nombre sense unitats, que és igual al nombre de files o columnes que es vol abastar. Per exemple, <code>colspan="2"</code> fa que una cel·la ocupi dues columnes.</p> + +<p>Utilitzem <code>colspan</code> i <code>rowspan</code> per a millorar aquesta taula.</p> + +<ol> + <li>En primer lloc, fes una còpia local dels fitxers <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/animals-table.html">animals-table.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/minimal-table.css">minimal-table.css</a> en un directori nou del teu equip local. L'HTML conté el mateix exemple amb animals que has vist abans.</li> + <li>A continuació, utilitza <code>colspan</code> perquè «Animals», «Hippopotamus» i «Crocodile» ocupin l’amplada de dues columnes.</li> + <li>Finalment, utilitza <code>rowspan</code> perquè «Horse» i «Chicken» ocupin dues files.</li> + <li>Desa el codi i obre’l en el navegador per a veure com millora.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: En GitHub pots trobar el nostre exemple acabat en <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/animals-table-fixed.html">animals-table-fixed.html</a> (també el pots consultar en l’<a href="http://mdn.github.io/learning-area/html/tables/basic/animals-table-fixed.html">exemple en viu</a>).</p> +</div> + +<table id="tabular" style="background-color: white;"> +</table> + +<h2 id="Aplicar_a_les_columnes_un_estil_comú"><span class="short_text" id="result_box" lang="ca">Aplicar a les columnes un estil comú</span></h2> + +<p>Abans de continuar endavant, en aquest article explicarem una darrera característica. HTML té un mètode per a definir la informació d'estil per a tota una columna de dades en un sol lloc; es tracta dels elements <strong><code><a href="/en-US/docs/Web/HTML/Element/col"><col></a></code></strong> i <strong><code><a href="/en-US/docs/Web/HTML/Element/colgroup"><colgroup></a></code></strong>. Aquests elements existeixen perquè pot ser una mica empipador i ineficient haver d'especificar l'estil de les columnes; en general, la informació d'estil s'ha d'especificar per a cada <code><td></code> o <code><th></code> de la columna, o s’ha d’utilitzar un selector complex com {{cssxref(":nth-child()")}}.</p> + +<p>Considerem l’exemple següent:</p> + +<pre class="brush: html notranslate"><table> + <tr> + <th>Data 1</th> + <th style="background-color: yellow">Data 2</th> + </tr> + <tr> + <td>Calcutta</td> + <td style="background-color: yellow">Orange</td> + </tr> + <tr> + <td>Robots</td> + <td style="background-color: yellow">Jazz</td> + </tr> +</table></pre> + +<p>Ens dona el resultat següent:</p> + +<table> + <tbody> + <tr> + <th>Data 1</th> + <th style="background-color: yellow;">Data 2</th> + </tr> + <tr> + <td>Calcutta</td> + <td style="background-color: yellow;">Orange</td> + </tr> + <tr> + <td>Robots</td> + <td style="background-color: yellow;">Jazz</td> + </tr> + </tbody> +</table> + +<p>Això no és l'ideal, perquè hem de repetir la informació d'estil en les tres cel·les de la columna (probablement en un projecte real tindríem un conjunt de classes en totes tres i l'estil especificat en un full d'estil separat). En comptes d’això, podem especificar la informació una vegada en un element <code><col></code>. Els elements <code><col></code> s'especifiquen dins d'un contenidor <code><colgroup></code> just a sota de l'etiqueta d'obertura <code><table></code>. Podem crear el mateix efecte que veiem a dalt si especifiquem la nostra taula de la següent manera:</p> + +<pre class="brush: html notranslate"><table> + <colgroup> + <col> + <col style="background-color: yellow"> + </colgroup> + <tr> + <th>Data 1</th> + <th>Data 2</th> + </tr> + <tr> + <td>Calcutta</td> + <td>Orange</td> + </tr> + <tr> + <td>Robots</td> + <td>Jazz</td> + </tr> +</table></pre> + +<p>De fet, hem definit dues «columnes d'estil», una que especifica la informació d'estil per a cadascuna de les columnes. No volem aplicar estil a la primera columna, per això encara hem d'incloure un element en blanc <code><col></code>; si no ho fem, l'estil s'aplicarà justament a la primera columna.</p> + +<p>Si volem aplicar la informació d'estil a totes dues columnes, podem incloure un element <code><col></code> que inclogui un atribut <code>span</code>, com aquest:</p> + +<pre class="brush: html notranslate"><colgroup> + <col style="background-color: yellow" span="2"> +</colgroup></pre> + +<p>Igual que <code>colspan</code> i <code>rowspan</code>, <code>span</code> pren un valor numèric sense unitats que especifica el nombre de columnes a les quals volem aplicar l'estil.</p> + +<h3 id="Aprenentatge_actiu_colgroup_i_col">Aprenentatge actiu: colgroup i col</h3> + +<p>Ara és el moment de fer-ho tu mateix.</p> + +<p>A continuació pots veure l'horari d'una professora d'idiomes. Divendres té una classe nova d'ensenyament d'holandès durant tot el dia, però també fa classes d’alemany algunes hores el dimarts i el dijous. Vol que destaquin les columnes dels dies que fa classes.</p> + +<table> + <colgroup> + <col> + <col style="background-color: #97DB9A;"> + <col style="width: 42px;"> + <col style="background-color: #97DB9A;"> + <col style="background-color: #DCC48E; border: 4px solid #C1437A;"> + <col style="width: 42px;"> + </colgroup> + <tbody> + <tr> + <td></td> + <th>Mon</th> + <th>Tues</th> + <th>Wed</th> + <th>Thurs</th> + <th>Fri</th> + <th>Sat</th> + <th>Sun</th> + </tr> + <tr> + <th>1st period</th> + <td>English</td> + <td></td> + <td></td> + <td>German</td> + <td>Dutch</td> + <td></td> + <td></td> + </tr> + <tr> + <th>2nd period</th> + <td>English</td> + <td>English</td> + <td></td> + <td>German</td> + <td>Dutch</td> + <td></td> + <td></td> + </tr> + <tr> + <th>3rd period</th> + <td></td> + <td>German</td> + <td></td> + <td>German</td> + <td>Dutch</td> + <td></td> + <td></td> + </tr> + <tr> + <th>4th period</th> + <td></td> + <td>English</td> + <td></td> + <td>English</td> + <td>Dutch</td> + <td></td> + <td></td> + </tr> + </tbody> +</table> + +<p>Tornar a crear la taula seguint aquests passos:</p> + +<ol> + <li>En primer lloc, fes una còpia local de l'arxiu <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/timetable.html">timetable.html</a> en un directori nou del teu equip local. L'HTML conté la mateixa taula que hem vist abans, menys la informació de les columnes d'estil.</li> + <li>Afegeix un element <code><colgroup></code> a la part superior de la taula, just a sota de l'etiqueta <code><table></code>, en què afegirem els elements <code><col>.</code></li> + <li>No apliquem cap estil a les dues primeres columnes.</li> + <li>Afegim un color de fons a les columnes segona i tercera. El valor de l'atribut <code>style</code> és <code>background-color:#97DB9A</code>;</li> + <li>Establim una amplada de separació en la quarta columna. El valor de l'atribut <code>style</code> és <code>width: 42px</code>;</li> + <li>Afegim un color de fons a la cinquena columna. El valor de l'atribut <code>style</code> és <code>background-color:#97DB9A;</code></li> + <li>Afegim un color de fons diferent, més una vora, a la sisena columna, per a indicar que és un dia especial perquè dona una classe nova. Els valors de l'atribut <code>style</code> són <code>background-color:#DCC48E</code>; <code>border:4px solid #C1437A</code>;</li> + <li>Els dos últims dies són dies lliures; el valor de l'atribut <code>style</code> és <code>width: 42px</code>;</li> +</ol> + +<p>Continua tu amb l'exemple i a veure com et va. Si t’encalles o vols revisar-lo, pots trobar la nostra versió en GitHub com <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/timetable-fixed.html">timetable-fixed.html</a> (també el pots consultar en l’<a href="http://mdn.github.io/learning-area/html/tables/basic/timetable-fixed.html">exemple en viu</a>).</p> + +<h2 id="Resum">Resum</h2> + +<p>Amb això concloem gairebé els conceptes bàsics de les taules HTML. En l’article següent veurem algunes característiques una mica més avançades de les taules i començarem a pensar en l'accessibilitat per a les persones amb discapacitat visual.</p> + +<div>{{NextMenu("Learn/HTML/Tables/Advanced", "Learn/HTML/Tables")}}</div> diff --git a/files/ca/learn/html/taules_html/index.html b/files/ca/learn/html/taules_html/index.html new file mode 100644 index 0000000000..add81f874e --- /dev/null +++ b/files/ca/learn/html/taules_html/index.html @@ -0,0 +1,45 @@ +--- +title: Taules HTML +slug: Learn/HTML/Taules_HTML +tags: + - Article + - Beginner + - CodingScripting + - Guide + - HTML + - Landing + - Module + - Tables +translation_of: Learn/HTML/Tables +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Una tasca molt comuna en HTML és estructurar dades tabulars, té una sèrie d'elements i atributs per a aquest propòsit. Juntament amb una mica de CSS per el disseny, HTML fa que sigui fàcil de visualitzar taules d'informació a la web, com ara el pla de lliçó de l'escola, els horaris a la piscina del lloc, estadístiques sobre els dinosaures favorits o equip de futbol. Aquest mòdul us porta a través de tot el que es necessita saber sobre l'estructuració de dades tabulars utilitzant HTML.</p> + +<h2 id="Requisits_previs">Requisits previs</h2> + +<p>Abans d'iniciar aquest mòdul, ja hauria d'haver cobert els conceptes bàsics d'HTML - vegeu <a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Si es treballa en un ordinador/tauleta/altre dispositiu el qual no té la capacitat de crear els vostres propis arxius, es pot portar a terme (la majoria) els exemples amb un programa de codificació en línia, com ara <a href="http://jsbin.com/">JSBin</a> o <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guies">Guies</h2> + +<p>Aquest mòdul conté els següents articles:</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Tables/Basics">Taules HTML bàsiques</a></dt> + <dd> + <p>Aquest article ens ajudarà a començar amb les taules HTML, que cobreix els conceptes més bàsics com ara files i cel·les, encapçalats, fent que les cel·les abastin múltiples columnes i files, i com agrupar totes les cel·les d'una columna per a propòsits d'estil.</p> + </dd> + <dt><a href="/en-US/docs/Learn/HTML/Tables/Advanced">Taules HTML característiques avançades i accessibilitat</a></dt> + <dd>En el segon article d'aquest mòdul, ens fixarem en algunes de les característiques més avançades de les taules HTML - com llegendes/resums i agrupament de files en la taula, seccions de cos i peu - així com l'accessibilitat de les taules per als usuaris amb discapacitat visual.</dd> +</dl> + +<h2 id="Avaluació">Avaluació</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Tables/Structuring_planet_data">Estructuració de dades dels planetes</a></dt> + <dd>En la nostra avaluació de la taula, us proporcionarem algunes dades sobre els planetes del nostre sistema solar i aconseguir una estructura dins d'una taula HTML.</dd> +</dl> diff --git a/files/ca/learn/html/taules_html/taula_html_característiques_avançades_i_laccessibilitat/index.html b/files/ca/learn/html/taules_html/taula_html_característiques_avançades_i_laccessibilitat/index.html new file mode 100644 index 0000000000..69b7edf725 --- /dev/null +++ b/files/ca/learn/html/taules_html/taula_html_característiques_avançades_i_laccessibilitat/index.html @@ -0,0 +1,462 @@ +--- +title: 'Taules HTML: característiques avançades i accessibilitat' +slug: Learn/HTML/Taules_HTML/Taula_HTML_característiques_avançades_i_laccessibilitat +tags: + - Accessibility + - Advanced + - Article + - Beginner + - CodingScripting + - HTML + - Headers + - Learn + - caption + - nesting + - scope + - sumary + - table + - tbody + - tfoot + - thead +translation_of: Learn/HTML/Tables/Advanced +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Tables/Basics", "Learn/HTML/Tables/Structuring_planet_data", "Learn/HTML/Tables")}}</div> + +<p class="summary">En el segon article d'aquest mòdul ens fixem en algunes de les característiques més avançades de les taules HTML, com ara les llegendes/resums i l'agrupament de files en seccions de capçalera, cos i peu de taula, i en l'accessibilitat de les taules per als usuaris amb discapacitat visual.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Requisits previs:</th> + <td>Fonaments d'HTML (consulta la <a href="/ca/docs/Learn/HTML/Introducció_al_HTML">Introducció a l’HTML</a>).</td> + </tr> + <tr> + <th scope="row">Objectiu:</th> + <td>Aprendre les característiques més avançades de les taules HTML i qüestions d'accessibilitat de les taules.</td> + </tr> + </tbody> +</table> + +<h2 id="Afegir_un_títol_a_la_taula_amb_<caption>">Afegir un títol a la taula amb <caption></h2> + +<p>Pots donar a la taula una títol, que es posa dins d'un element {{htmlelement("caption")}} que està imbricat dins de l'element {{htmlelement("table")}}. Aquest títol s'ha de posar just sota l'etiqueta d'obertura <code><table></code>.</p> + +<pre class="brush: html notranslate"><table> + <caption>Dinosaurs in the Jurassic period</caption> + + ... +</table></pre> + +<p>Com es pot deduir del breu exemple anterior, el títol està destinat a contenir una descripció del contingut de la taula. Això és útil per a tots els lectors que volen tenir una idea ràpida de si la taula els és útil a partir de donar una ullada a la pàgina, però ho és en particular per als usuaris cecs perquè, en lloc d’haver-se d’esperar que el lector de pantalla llegeixi el contingut de moltes cel·les per a esbrinar quina informació proporciona la taula, podran decidir a partir del títol si llegeixen la taula amb més detall.</p> + +<p>Un títol es col·loca directament sota l'etiqueta <code><table></code>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Per a proporcionar una descripció també pots utilitzar l'atribut {{htmlattrxref("summary","table")}} en l'etiqueta <code><table></code>, que els lectors de pantalla també poden llegir. Tanmateix, et recomanem que empris l'element <code><caption></code>, perquè l’atribut {{htmlattrxref("summary","table")}} està {{glossary("desaprovat")}} per l'especificació HTML 5, i a més els usuaris vidents no el poden llegir (no apareix a la pàgina).</p> +</div> + +<h3 id="Aprenentatge_actiu_Afegir_un_títol">Aprenentatge actiu: Afegir un títol</h3> + +<p>Tornem al primer exemple de l'article anterior i observem com es fa això.</p> + +<ol> + <li>Obre l’exemple de la taula horària de la professora d'idiomes del final de l’article <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Taules_HTML/Fonaments_de_la_taula_HTML#Aprenentatge_actiu_colgroup_i_col">Fonaments bàsics de les taules HTML</a>, o fes una còpia local de l'arxiu <a href="https://github.com/mdn/learning-area/blob/master/html/tables/basic/timetable-fixed.html">timetable-fixed.html</a></li> + <li>Afegeix un títol adequat a la taula.</li> + <li>Desa el codi i obre’l en el navegador, i observa com es veu.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar a GitHub la nostra versió del fitxer <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/timetable-caption.html">timetable-caption.html</a>; i també el pots consultar en l’<a href="http://mdn.github.io/learning-area/html/tables/advanced/timetable-caption.html">exemple en viu</a>).</p> +</div> + +<h2 id="Afegir_estructura_amb_<thead>_<tfoot>_i_<tbody>">Afegir estructura amb <thead>, <tfoot> i <tbody></h2> + +<p>A mesura que l’estructura de les taules es fa més complexa, és útil aprofundir en la definició estructural. Una manera clara de fer això és amb l'ús de {{htmlelement("thead")}}, {{htmlelement("tfoot")}} i {{htmlelement("tbody")}}, que et permeten etiquetar les seccions de capçalera, peu i cos de la taula.</p> + +<p>Aquests elements no fan la taula més accessible als usuaris de lectors de pantalla, i no proporcionen cap millora visual, però són molt útils per a l'aplicació d’estil i el disseny de pàgina web perquè actuen com «ganxos» amb què s’afegeix CSS a la taula. Podem esmentar com a exemples interessants que es repeteixin en cada pàgina impresa la capçalera i el peu de pàgina d’una taula molt llarga, o que el cos de la taula es mostri en una sola pàgina i el contingut disponible es pugui desplaçar amunt i avall.</p> + +<p><span class="short_text" id="result_box" lang="ca">Per a utilitzar aquests elements cal tenir en compte el següent:</span></p> + +<ul> + <li>L'element <code><thead></code> ha d'etiquetar la part de la taula que és la capçalera; normalment és la primera fila, que conté les capçaleres de columna, però no sempre és així. Si utilitzes els elements {{htmlelement("col")}}/{{htmlelement("colgroup")}}, la capçalera de la taula hi ha de venir just a sota.</li> + <li>L'element <code><tfoot></code> ha d'etiquetar la part de la taula que és el peu, que podria ser la fila del final, que conté la suma dels elements de les files anteriors, per exemple. Pots incloure el peu de taula a la part inferior de la taula, com es podria esperar, o just sota la capçalera de la taula (el navegador la mostrarà a la part inferior de la taula).</li> + <li>L'element <code><tbody></code> ha d'etiquetar les altres parts del contingut de la taula que no estan a la capçalera ni al peu de taula. Apareix a sota de la capçalera de la taula, o de vegades a sota del peu de taula, segons com decideixis estructurar-la (consulta els articles anteriors).</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: <code><tbody></code> sempre s'inclou implícitament en totes les taules, si no s'especifica en el codi. Per comprovar-ho, obre un dels exemples anteriors que no inclogui <code><tbody></code> i observa el codi HTML amb les <a href="/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools">eines de desenvolupador del navegador</a>; observa que el navegador hi ha afegit aquesta etiqueta. Et podries demanar per què molestar-nos a incloure-la; s’ha de fer, perquè ens proporciona més control sobre l’estructura de la taula i l'estil.</p> +</div> + +<h3 id="Aprenentatge_actiu_afegir_estructura_a_la_taula">Aprenentatge actiu: afegir estructura a la taula</h3> + +<p>Posarem aquests elements nous en acció.</p> + +<ol> + <li>Primer de tot, fes una còpia local de <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/spending-record.html">spending-record.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/minimal-table.css">minimal-table.css</a> en una carpeta nova.</li> + <li>Obre’l en un navegador; observa que no està malament, però es podria millorar. La fila «SUM» conté una suma de les quantitats que s’han gastat i no sembla que estigui en el lloc adequat, i falten alguns detalls de codi.</li> + <li>Posa les capçaleres òbvies de fila dins d'un element <code><thead></code>, la fila «SUM» dins d'un element <code><tfoot></code>, i la resta del contingut dins d'un element <code><tbody></code>.</li> + <li>Desa i actualitza, i observa que en afegir l'element <code><tfoot></code> la fila «SUM» s’ha col·locat a la part inferior de la taula.</li> + <li>A continuació, afegeix un atribut {{htmlattrxref("colspan","td")}} perquè la cel·la «SUM» ocupi les quatre primeres columnes, de manera que el nombre aparegui a la part inferior de la columna «Cost».</li> + <li>Afegeix una mica d'estil extra a la taula i observa la utilitat d’aplicar CSS a aquests elements. Observa que en la capçalera (<code>head</code>) del document HTML hi ha un element {{htmlelement("style")}} buit. Afegirem dins d'aquest element les línies de codi CSS següents: + <pre class="brush: css notranslate">tbody { + font-size: 90%; + font-style: italic; +} + +tfoot { + font-weight: bold; +} +</pre> + </li> + <li>Desa i actualitza, i dona una ullada al resultat. Si els elements <code><tbody></code> i <code><tfoot></code> no estan a lloc, serà molt més complicat escriure selectors/regles i aplicar-los el mateix estil.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: No esperem que entenguis del tot el CSS en aquest moment. N’aprendràs més en els nostres mòduls dedicats al CSS (<a href="/ca/docs/Learn/CSS/First_steps">Introducció al CSS</a> és un bon lloc per on començar; també hi ha un article concret sobre <a href="/ca/docs/Learn/CSS/Building_blocks/Styling_tables">aplicar estil a les taules</a>).</p> +</div> + +<p>La taula acabada ha de presentar un aspecte semblant a aquest:</p> + +<div class="hidden"> +<h6 id="Hidden_example">Hidden example</h6> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My spending record</title> + <style> + + html { + font-family: sans-serif; + } + + table { + border-collapse: collapse; + border: 2px solid rgb(200,200,200); + letter-spacing: 1px; + font-size: 0.8rem; + } + + td, th { + border: 1px solid rgb(190,190,190); + padding: 10px 20px; + } + + th { + background-color: rgb(235,235,235); + } + + td { + text-align: center; + } + + tr:nth-child(even) td { + background-color: rgb(250,250,250); + } + + tr:nth-child(odd) td { + background-color: rgb(245,245,245); + } + + caption { + padding: 10px; + } + + tbody { + font-size: 90%; + font-style: italic; + } + + tfoot { + font-weight: bold; + } + </style> + </head> + <body> + <table> + <caption>How I chose to spend my money</caption> + <thead> + <tr> + <th>Purchase</th> + <th>Location</th> + <th>Date</th> + <th>Evaluation</th> + <th>Cost (€)</th> + </tr> + </thead> + <tfoot> + <tr> + <td colspan="4">SUM</td> + <td>118</td> + </tr> + </tfoot> + <tbody> + <tr> + <td>Haircut</td> + <td>Hairdresser</td> + <td>12/09</td> + <td>Great idea</td> + <td>30</td> + </tr> + <tr> + <td>Lasagna</td> + <td>Restaurant</td> + <td>12/09</td> + <td>Regrets</td> + <td>18</td> + </tr> + <tr> + <td>Shoes</td> + <td>Shoeshop</td> + <td>13/09</td> + <td>Big regrets</td> + <td>65</td> + </tr> + <tr> + <td>Toothpaste</td> + <td>Supermarket</td> + <td>13/09</td> + <td>Good</td> + <td>5</td> + </tr> + </tbody> + </table> + + </body> +</html></pre> +</div> + +<p>{{ EmbedLiveSample('Hidden_example', '100%', 300) }}</p> + +<div class="note"> +<p><strong>Nota</strong>: Pots trobar el fitxer a GitHub com <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/spending-record-finished.html">spending-record-finished.html</a> (i també consultar l’<a href="http://mdn.github.io/learning-area/html/tables/advanced/spending-record-finished.html">exemple en viu</a>).</p> +</div> + +<h2 id="Taules_imbricades">Taules imbricades</h2> + +<p>És possible imbricar una taula dins d'una altra, sempre que s'hi inclogui l'estructura completa, que inclou l'element <code><table></code>. No és en aconsellable en general perquè dona un marcatge més confús i menys accessible als usuaris de lectors de pantalla, i perquè en molts casos es pot resoldre afegint cel·les/files/columnes addicionals a la taula d’origen. Això no obstant, de vegades és necessari, per exemple, per a importar contingut fàcilment d'altres fonts.</p> + +<p>El marcatge següent mostra una imbricació de taules senzilla:</p> + +<pre class="brush: html notranslate"><table id="table1"> + <tr> + <th>title1</th> + <th>title2</th> + <th>title3</th> + </tr> + <tr> + <td id="nested"> + <table id="table2"> + <tr> + <td>cell1</td> + <td>cell2</td> + <td>cell3</td> + </tr> + </table> + </td> + <td>cell2</td> + <td>cell3</td> + </tr> + <tr> + <td>cell4</td> + <td>cell5</td> + <td>cell6</td> + </tr> +</table></pre> + +<p>La sortida presenta aquest aspecte:</p> + +<table id="table1"> + <tbody> + <tr> + <th>title1</th> + <th>title2</th> + <th>title3</th> + </tr> + <tr> + <td id="nested"> + <table id="table2"> + <tbody> + <tr> + <td>cell1</td> + <td>cell2</td> + <td>cell3</td> + </tr> + </tbody> + </table> + </td> + <td>cell2</td> + <td>cell3</td> + </tr> + <tr> + <td>cell4</td> + <td>cell5</td> + <td>cell6</td> + </tr> + </tbody> +</table> + +<h2 id="Taules_per_a_usuaris_amb_discapacitats_visuals"><span class="short_text" id="result_box" lang="ca">Taules per a usuaris amb discapacitats visuals</span></h2> + +<p>Recapitulem breument sobre com la manera de fer servir les taules de dades. Una taula pot ser una eina molt útil perquè ens dona un accés ràpid a les dades i ens permet buscar-hi valors. Per exemple, només cal un cop d'ull breu a la taula de sota per a esbrinar quants anells es van vendre a Gant (Gent) l'agost passat. Per a entendre la informació, fem associacions visuals entre les dades i les capçaleres de les files i columnes d'aquesta taula.</p> + +<table> + <caption>Items Sold August 2016</caption> + <tbody> + <tr> + <td></td> + <td></td> + <th colspan="3" scope="colgroup">Clothes</th> + <th colspan="2" scope="colgroup">Accessories</th> + </tr> + <tr> + <td></td> + <td></td> + <th scope="col">Trouses</th> + <th scope="col">Skirts</th> + <th scope="col">Dresses</th> + <th scope="col">Bracelets</th> + <th scope="col">Rings</th> + </tr> + <tr> + <th rowspan="3" scope="rowgroup">Belgium</th> + <th scope="row">Antwerp</th> + <td>56</td> + <td>22</td> + <td>43</td> + <td>72</td> + <td>23</td> + </tr> + <tr> + <th scope="row">Gent</th> + <td>46</td> + <td>18</td> + <td>50</td> + <td>61</td> + <td>15</td> + </tr> + <tr> + <th scope="row">Brussels</th> + <td>51</td> + <td>27</td> + <td>38</td> + <td>69</td> + <td>28</td> + </tr> + <tr> + <th rowspan="2" scope="rowgroup">The Netherlands</th> + <th scope="row">Amsterdam</th> + <td>89</td> + <td>34</td> + <td>69</td> + <td>85</td> + <td>38</td> + </tr> + <tr> + <th scope="row">Utrecht</th> + <td>80</td> + <td>12</td> + <td>43</td> + <td>36</td> + <td>19</td> + </tr> + </tbody> +</table> + +<p>Però... i si no pots fer associacions visuals? Com es pot llegir una taula com l'anterior, llavors? Les persones que tenen alguna discapacitat visual sovint utilitzen lectors de pantalla que els llegeixen la informació de les pàgines web. Això no és cap problema quan es llegeix text sense format, però la interpretació d'una taula pot ser tot un repte per a una persona cega. Tanmateix, amb el marcatge adequat, les associacions visuals es poden substituir per unes de programàtiques.</p> + +<p>En aquesta secció de l'article t'oferim tècniques que confereixen a les taules una accessibilitat màxima.</p> + +<h3 class="attTitle" id="Utilitza_capçaleres_per_a_les_files_i_les_columnes"><span class="short_text" id="result_box" lang="ca">Utilitza capçaleres per a les files i les columnes</span></h3> + +<p>Els lectors de pantalla identifiquen totes les capçaleres i les utilitzen per a fer associacions programàtiques entre les capçaleres i les cel·les amb què es relacionen. La combinació de les capçaleres de les files i les columnes identifica i interpreta les dades que hi ha en cada cel·la perquè l'usuari lector de pantalla pugui interpretar la taula de manera similar a com ho fa un usuari sense discapacitats visuals.</p> + +<p>Ja hem exposat les capçaleres en l’article anterior; consulta <a href="https://wiki.developer.mozilla.org/ca/docs/Learn/HTML/Taules_HTML/Fonaments_de_la_taula_HTML#Afegeix_cap%C3%A7aleres_amb_elements_%3Cth%3E">Afegir capçaleres amb elements <th></a>.</p> + +<h3 class="attTitle" id="Latribut_scope">L'atribut scope</h3> + +<p>Un tema nou d'aquest article és l'atribut {{htmlattrxref("scope","th")}}, que s’afegeix a l'element <code><th></code> i informa els lectors de pantalla exactament de quines cel·les són capçalera les cel·les de capçalera; per exemple, la capçalera és de la fila o de la columna en què es troba? Si tornem enrere al nostre exemple de registre de despeses, les capçaleres de columna es podrien definir sense ambigüitats com capçaleres de columna de la manera següent:</p> + +<pre class="brush: html notranslate"><thead> + <tr> + <th scope="col">Purchase</th> + <th scope="col">Location</th> + <th scope="col">Date</th> + <th scope="col">Evaluation</th> + <th scope="col">Cost (€)</th> + </tr> +</thead></pre> + +<p>I cada fila podria tenir una capçalera definida de la mateixa manera (si afegíssim capçaleres a les files, a més de les capçaleres de columna):</p> + +<pre class="brush: html notranslate"><tr> + <th scope="row">Haircut</th> + <td>Hairdresser</td> + <td>12/09</td> + <td>Great idea</td> + <td>30</td> +</tr></pre> + +<p>Els lectors de pantalla reconeixen un marcatge estructurat com aquest i permeten als usuaris llegir tota una columna o tota una fila alhora, per exemple.</p> + +<p><code>scope</code> té dos valors possibles més; <code>colgroup</code> i <code>rowgroup</code>. S'utilitzen per als títols que es col·loquen a la part superior de diverses columnes o files. Si tornem enrere a la taula d’exemple dels articles venuts l’agost del 2016 (Items Sold August 2016) que hi ha al començament d'aquesta secció de l'article, pots observar que la cel·la «Clothes» fa de capçalera de les cel·les «Trousers», «Skirts» i «Dresses». Totes aquestes cel·les haurien de marcar-se com capçaleres (<code><th></code>), però «Clothes» és un títol de nivell superior i defineix els altres tres subtítols. Per tant, «Clothes» ha de tenir un atribut <code>scope="colgroup"</code>, mentre que les altres tindrien un atribut <code>scope="col"</code>.</p> + +<h3 class="attTitle" id="Els_atributs_id_i_headers">Els atributs id i headers</h3> + +<p>Una alternativa a l'ús de l'atribut <code>scope</code> és utilitzar els atributs {{htmlattrxref("id")}} i {{htmlattrxref("headers", "td")}} per a crear associacions entre les capçaleres i les cel·les. La forma en què s'utilitzen és la següent:</p> + +<ol> + <li>Afegeix un <code>id</code> únic per a cada element <code><th></code>.</li> + <li>Afegeix un atribut <code>headers</code> per a cada element <code><td></code>. Cada atribut <code>headers</code> ha d’incloure una llista dels <code>id</code> de tots els elements <code><th></code> que actuen de capçalera per a aquesta cel·la, separats per espais.</li> +</ol> + +<p>Això dona a la taula HTML una definició explícita de la posició de cada cel·la de la taula, definida per les capçaleres de cada columna i de cada fila de què forma part, de manera semblant a un full de càlcul. Perquè funcioni bé, la taula necessita les dues capçaleres, de fila i de columna.</p> + +<p>Tornem al nostre exemple de les despeses; dos fragments anteriors es podrien reescriure així:</p> + +<pre class="brush: html notranslate"><thead> + <tr> + <th id="purchase">Purchase</th> + <th id="location">Location</th> + <th id="date">Date</th> + <th id="evaluation">Evaluation</th> + <th id="cost">Cost (€)</th> + </tr> +</thead> +<tbody> +<tr> + <th id="haircut">Haircut</th> + <td headers="location haircut">Hairdresser</td> + <td headers="date haircut">12/09</td> + <td headers="evaluation haircut">Great idea</td> + <td headers="cost haircut">30</td> +</tr> + + ... + +</tbody></pre> + +<div class="note"> +<p><strong>Nota</strong>: Aquest mètode crea associacions molt precises entre les capçaleres i les cel·les de dades però utilitza <strong>molt</strong> més etiquetatge i no deixa gens d’espai per a errors. L'enfocament de <code>scope</code> sol ser prou per a la majoria de les taules.</p> +</div> + +<h3 id="Aprenentatge_actiu_Juga_amb_l’scope_i_les_capçaleres">Aprenentatge actiu: Juga amb l’scope i les capçaleres</h3> + +<ol> + <li>Per a aquest exercici final, et proposem de fer, primer, còpies locals dels fitxers <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/items-sold.html">items-sold.html</a> i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/minimal-table.css">minimal-table.css</a>, en un directori nou.</li> + <li>A continuació, afegeix els atributs <code>scope</code> apropiats per a fer aquesta taula més adequada.</li> + <li>Per acabar, fes una altra còpia dels fitxers inicials i millora l’accessibilitat de la taula utilitzant els atributs <code>id</code> i <code>header</code>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Pots verificar el teu treball comparant-lo amb els nostres exemples acabats, que pots consultar a <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/items-sold-scope.html">items-sold-scope.html</a> (o també consultar l’<a href="http://mdn.github.io/learning-area/html/tables/advanced/items-sold-scope.html">exemple en viu</a>) i <a href="https://github.com/mdn/learning-area/blob/master/html/tables/advanced/items-sold-headers.html">items-sold-headers.html</a> (o també consultar l’<a href="http://mdn.github.io/learning-area/html/tables/advanced/items-sold-headers.html">exemple en viu</a>).</p> +</div> + +<h2 id="Resum">Resum</h2> + +<p>Es poden aprendre més coses sobre les taules en HTML, però de fet t’hem proporcionat tot el que et cal saber ara mateix. En aquest punt, pot ser que vulguis aprendre com aplicar estil a les taules HTML; ves a l’article <a href="/ca/docs/Learn/CSS/Building_blocks/Styling_tables">Aplicar estil a les taules</a>.</p> + +<div>{{PreviousMenuNext("Learn/HTML/Tables/Basics", "Learn/HTML/Tables/Structuring_planet_data", "Learn/HTML/Tables")}}</div> diff --git a/files/ca/learn/index.html b/files/ca/learn/index.html new file mode 100644 index 0000000000..f36734c07c --- /dev/null +++ b/files/ca/learn/index.html @@ -0,0 +1,117 @@ +--- +title: Aprendre desenvolupament web +slug: Learn +tags: + - Beginner + - Index + - Intro + - Landing + - Learn + - Web +translation_of: Learn +--- +<div>{{LearnSidebar}}</div> + +<div> +<p class="summary">Us donem la benvinguda a l'Àrea d'Aprenentatge de MDN. Aquest conjunt d'articles té com a objectiu proporcionar als principiants en el desenvolupament web tot el que necessitin per a començar a codificar llocs web senzills.</p> +</div> + +<p>L'objectiu d'aquesta àrea de MDN no és que passeu de "principiant" a "expert", sinó que ho feu de "principiant" a "còmode". A partir d'aquí, hauríeu de poder començar a fer el vostre propi camí, aprenent del contingut de <a href="https://developer.mozilla.org/ca/">la resta del lloc MDN</a> i altres recursos intermedis o avançats que demanin més coneixements previs.</p> + +<p>Si comenceu absolutament de zero, el desenvolupament web pot ser un repte: us agafarem de la mà i us proporcionarem prou detalls perquè us sentiu còmodes i coneixeu els temes adequadament. Us heu de sentir com a casa, tant si esteu estudiant i voleu aprendre a desenvolupar un lloc web (pel vostre compte o com a part d'una classe), com si sou docent i busqueu materials de classe, per afició o com algú que només vol comprendre com funciona la tecnologia web.</p> + +<div class="warning"> +<p><strong>Important</strong>: Regularment, es va afegint nou contingut a l'Àrea d'Aprenentatge. Si teniu preguntes sobre els temes que voleu aprendre o en trobeu a faltar algun, consulteu la secció <a href="#Contacteu amb nosaltres">"Contacteu amb nosaltres"</a> a continuació per obtenir informació sobre com posar-vos en contacte.</p> +</div> + +<h2 id="On_començar"><span class="short_text" id="result_box" lang="ca"><span>On començar</span></span></h2> + +<ul class="card-grid"> + <li><span>Principiant:</span> Si us acabeu d'iniciar en el desenvolupament web, us recomanem que comenceu a treballar a través del nostre mòdul <a href="https://developer.mozilla.org/ca/docs/Learn/Getting_started_with_the_web">Inici en la Web</a>, que proporciona una introducció pràctica al desenvolupament web.</li> + <li><span>Preguntes específiques:</span> Si teniu una pregunta específica sobre el desenvolupament web, la nostra secció de <a href="/en-US/docs/Learn/Common_questions">Preguntes comunes</a> us pot ajudar</li> + <li><span>Més enllà dels conceptes bàsics:</span> Si ja teniu una mica de coneixements, el següent pas és aprendre {{glossary("HTML")}} i {{glossary("CSS")}} detalladament: comenceu amb el nostre mòdul <a href="/ca/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a> i continueu amb el nostre mòdul <a href="/ca/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a>.</li> + <li><span>Passant a les seqüències d'ordres:</span> Si ja us sentiu còmodes amb HTML i CSS, o si esteu interessats principalment en la codificació, voldreu passar a {{glossary("JavaScript")}} o en el desenvolupament del costat del servidor. Comenceu amb els nostres mòduls de <a href="/en-US/docs/Learn/JavaScript/First_steps">Primers passos en JavaScript</a> i <a href="/en-US/docs/Learn/Server-side/First_steps">Primers passos del costat del servidor</a>.</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span>El nostre <a href="https://developer.mozilla.org/en-US/docs/Glossary">Glossari</a> proporciona definicions terminològiques</span></span>.</p> +</div> + +<p>{{LearnBox({"title":"Random glossary entry"})}}</p> + +<h2 id="Temes_coberts"><span id="result_box" lang="ca"><span>Temes coberts</span></span></h2> + +<p>A continuació es presenta una llista de tots els temes que tractem en l'àrea d'aprenentatge de MDN.</p> + +<dl> + <dt><a href="/ca/Learn/Getting_started_with_the_web">Introducció a la web</a></dt> + <dd>Proporciona una introducció pràctica al desenvolupament web per a principiants.</dd> + <dt><a href="/ca/Learn/HTML">HTML — Estructuració de la web</a></dt> + <dd>HTML és el llenguatge que utilitzem per estructurar les diferents parts del nostre contingut i definir el seu significat o propòsit. Aquest tema ensenya HTML detalladament.</dd> + <dt><a href="/en-US/docs/Learn/CSS">CSS — Donar estil a la web</a></dt> + <dd>CSS és el llenguatge que podem usar per donar estil i dissenyar el nostre contingut web, així com afegir comportaments com l'animació. Aquest tema proporciona una cobertura completa de CSS.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript">JavaScript — Script dinàmic del costat del client</a></dt> + <dd>Javascript és el llenguatge de script utilitzat per afegir funcionalitat dinàmica a les pàgines web. Aquest tema ensenya tot l'essencialment necessari per sentir-se còmode amb l'escriptura i comprensió de Javascript.</dd> + <dt><a href="/en-US/docs/Learn/Accessibility">Accessibilitat — Fer que la web sigui utilitzable per tots</a></dt> + <dd>L'accessibilitat és la pràctica de posar el contingut web a la disposició del major nombre possible de persones independentment de la seva discapacitat, dispositiu, localització o altres factors diferenciadors. Aquest tema us ofereix tot el que necessiteu saber.</dd> + <dt><a href="/en-US/docs/Learn/Tools_and_testing">Eines i proves</a></dt> + <dd>Aquest tema és un lloc per cobrir les eines que els desenvolupadors utilitzen per facilitar el seu treball, com les eines de prova entre navegadors.</dd> + <dt><a href="/en-US/docs/Learn/Server-side">Programació del lloc web del costat del servidor</a></dt> + <dd>Fins i tot si us concentreu en el desenvolupament web del costat del client, segueix sent útil saber com funcionen els servidors i les característiques de codi del costat del servidor. Aquest tema proporciona una introducció general sobre com funciona el costat del servidor i tutorials detallats que destaquen com crear una aplicació del costat del servidor, utilitzant dos marcs de treball populars — Django (Python) i Express (node.js).</dd> +</dl> + +<h2 id="Obtenir_els_nostres_exemples_de_codis">Obtenir els nostres exemples de codis</h2> + +<p>Els exemples de codi que trobareu a l'àrea d'aprenentatge estan <a href="https://github.com/mdn/learning-area/">disponibles a GitHub</a>. Si voleu copiar-les a l'ordinador, la manera més senzilla és:</p> + +<ol> + <li><a href="http://git-scm.com/downloads">Instal·leu Git</a> a la màquina. Aquest és el programari de sistema de control de versions subjacent sobre el qual GitHub funciona.</li> + <li><a href="https://github.com/join">Registreu-vos per obtenir un compte de GitHub</a>. És senzill i senzill.</li> + <li>Una vegada que us hagiu registrat, inicieu sessió en <a href="https://github.com">github.com</a> amb el vostre nom d'usuari i contrasenya.</li> + <li>Obriu el <a href="https://www.lifewire.com/how-to-open-command-prompt-2618089">símbol del sistema</a> del vostre ordinador (Windows) o terminal (<a href="https://help.ubuntu.com/community/UsingTheTerminal">Linux</a>, <a href="http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line">MacOSX</a>)</li> + <li>Per copiar el repositori de l'àrea d'aprenentatge a una carpeta anomenada àrea d'aprenentatge en la ubicació actual a la qual apunta el símbol del sistema/terminal, utilitzeu l'ordre següent: + <pre class="brush: bash">git clone https://github.com/mdn/learning-area</pre> + </li> + <li>Ara podeu entrar en el directori i trobar els fitxers que busqueu (utilitzant el cercador/explorador de fitxers o l'<a href="https://en.wikipedia.org/wiki/Cd_(command)">ordre cd</a>).</li> +</ol> + +<p>Podeu actualitzar el repositori d'<code>àrea d'aprenentatge</code>, amb qualsevol canvi fet, a la versió mestra en GitHub amb els següents passos:</p> + +<ol> + <li><span id="result_box" lang="ca"><span>En el símbol del sistema/terminal, aneu al directori de l'</span></span><code>àrea d'aprenentatge</code><span lang="ca"><span> usant cd.</span> <span>Per exemple, si es trobeu al directori principal:</span></span> + + <pre class="brush: bash">cd learning-area</pre> + </li> + <li><span id="result_box" lang="ca"><span>Actualitzeu el repositori mitjançant l'ordre següent:</span></span> + <pre class="brush: bash">git pull</pre> + </li> +</ol> + +<h2 id="Contacteu_amb_nosaltres"><a name="Contacteu amb nosaltres">Contacteu amb nosaltres</a></h2> + +<p>Si voleu posar-vos en contacte amb nosaltres sobre qualsevol cosa, la millor manera és deixar-nos un missatge en el <a href="https://discourse.mozilla-community.org/t/learning-web-development-marking-guides-and-questions/16294">fil de discursos de la nostra Àrea d'Aprenentatge</a> o als <a href="https://developer.mozilla.org/en-US/docs/MDN/Community/Conversations#Chat_in_IRC">canals d'IRC</a>. Ens agradaria saber qualsevol cosa que considereu incorrecta o que falta al lloc, sol·licituds de nous temes d'aprenentatge, sol·licituds d'ajuda amb articles que no enteneu o qualsevol altra pregunta o preocupació.</p> + +<p>Si esteu interessats a ajudar a desenvolupar/millorar el contingut, feu un cop d'ull a <a href="https://developer.mozilla.org/en-US/Learn/How_to_contribute">com podeu ajudar</a> i posar-vos en contacte! Estem més que contents de parlar amb vosaltres, tant si sou un estudiant, un professor, un desenvolupador web experimentat o algú més interessat a ajudar a millorar l'experiència d'aprenentatge.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<dl> + <dt><a href="https://www.mozilla.org/en-US/newsletter/developer/">Butlletí per a desenvolupadors de Mozilla</a></dt> + <dd>El nostre butlletí per a desenvolupadors web, és un gran recurs per a tots els nivells d'experiència.</dd> +</dl> + +<dl> + <dt><a href="https://www.codecademy.com/">Codecademy</a></dt> + <dd>Un gran lloc interactiu per aprendre llenguatges de programació des de zero.</dd> + <dt><a href="https://code.org/">Code.org</a></dt> + <dd>Teoria i pràctica bàsica de codificació, dirigida principalment a nens/principiants.</dd> + <dt><a href="https://www.freecodecamp.org/">freeCodeCamp.org</a></dt> + <dd>Lloc interactiu amb tutorials i projectes per aprendre desenvolupament web.</dd> +</dl> + +<dl> + <dt><a href="https://learning.mozilla.org/web-literacy/">Mapa d'Alfabetització Web</a></dt> + <dd>Un marc per a l'alfabetització web a nivell d'introducció i les habilitats del segle XXI, que també proporcionan accés a activitats docents, ordenades per categoria.</dd> + <dt><a href="https://learning.mozilla.org/activities">Activitats docents</a></dt> + <dd>Una sèrie d'activitats docents per a l'ensenyament (i l'aprenentatge) creades per la Fundació Mozilla, que abasten des de l'alfabetització web bàsica i la privadesa, fins a JavaScript i la pirateria de Minecraft.</dd> +</dl> diff --git a/files/ca/learn/javascript/building_blocks/index.html b/files/ca/learn/javascript/building_blocks/index.html new file mode 100644 index 0000000000..b1d2001c25 --- /dev/null +++ b/files/ca/learn/javascript/building_blocks/index.html @@ -0,0 +1,42 @@ +--- +title: JavaScript building blocks +slug: Learn/JavaScript/Building_blocks +translation_of: Learn/JavaScript/Building_blocks +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">En aquest mòdul, continuem la nostra cobertura de totes les funcions fonamentals de JavaScript, centrant la nostra atenció en els tipus de bloc de codi que es troben sovint, com ara declaracions condicionals, bucles, funcions i esdeveniments. Ja heu vist aquestes coses al curs, però només de passada, aquí discutirem tot de manera detallada.</p> + +<h2 id="Prerequisits">Prerequisits</h2> + +<p>Abans de començar aquest mòdul, hauríeu d'estar familiaritzats amb els conceptes bàsics d'<a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">HTML</a> i <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS">CSS</a>, i hauireu d'haver treballat el mòdul anterior, <a href="/en-US/docs/Learn/JavaScript/First_steps">Primeres PAsses en JavaScript</a>.</p> + +<div class="note"> +<p><strong>Nota: </strong>Si esteu treballant en un ordinador / tauleta / altre dispositiu on no té la capacitat de crear els vostres propis fitxers, podeu provar (la majoria d') els exemples de codi en un programa de codificació en línia com ara <a href="http://jsbin.com/">JSBin</a> or <a href="https://thimble.mozilla.org/">Thimble</a>.</p> +</div> + +<h2 id="Guides">Guides</h2> + +<dl> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/conditionals">Prenent decisions al teu codi - condicionals</a></dt> + <dd>En qualsevol llenguatge de programació, el codi necessita prendre decisions i dur a terme accions d'acord amb els diferents inputs. Per exemple, en un joc, si el nombre de vides del jugador és 0, llavors s'acaba el joc. En una aplicació meteorològica, si es mira al matí, mostra un gràfic de la sortida del sol, però mostra estrelles i una lluna si és de nit. En aquest article explorarem com funcionen les estructures condicionals en JavaScript.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code">Programant bucles</a></dt> + <dd>De vegades necessites realitzar una tasca més d'una vegada. Per exemple, mirant dins una llista de noms. En la programació, els bucles realitzen aquest treball molt bé. Aquí veurem estructures de bucle a JavaScript.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Functions">Funcions — blocs de codi reutilitzables</a></dt> + <dd>Un altre concepte essencial de la programació és la funció. Les funcions us permeten emmagatzemar un fragment de codi que fa una única tasca dins d'un bloc definit, i després es crida a aquest codi quan es necessiti utilitzant un únic comandament curt, en lloc d'haver d'escriure el mateix codi diverses vegades. En aquest article explorarem conceptes fonamentals darrere de funcions com la sintaxi bàsica, com invocar i definir funcions, abast i paràmetres.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Build_your_own_function">Construeix la teva pròpia funció</a></dt> + <dd>Amb la majoria de la teoria essencial tractada anteriorment, aquest article proporciona una experiència pràctica. Aquí practicareu amb la creació de la vostra pròpia funció personalitzada. Al llarg del camí, també explicarem alguns detalls útils sobre el tractament de funcions.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Return_values">Retorn de valors a les funcions</a></dt> + <dd>L'últim concepte essencial que has de saber sobre una funció és el retorn de valors. Algunes funcions no retornen un valor significatiu després de la finalització, però d'altres ho fan. És important entendre quins són els seus valors, com utilitzar-los en el codi i com fer que les nostres pròpies funcions personalitzades retornin valors útils.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Events">Introducció als esdeveniments</a></dt> + <dd>Els esdeveniments (Events) són accions que ocorren en el sistema que estam programant, on el sistema ens informa perquè puguem respondre d'alguna manera si ho desitjam. Per exemple, si l'usuari fa clic a un botó d'una pàgina web, potser vulgueu respondre a aquesta acció mostrant un quadre d'informació. En aquest article final anem a parlar sobre alguns conceptes importants que envolten els esdeveniments, i veure com funcionen en els navegadors.</dd> +</dl> + +<h2 id="Avaluacions">Avaluacions</h2> + +<p>La següent avaluació comprovarà la comprensió dels aspectes bàsics de JavaScript que es detallen a les guies anteriors.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks/Image_gallery">Image gallery</a></dt> + <dd>Ara que hem examinat els fonaments bàsics de JavaScript, provarem els teus coneixements de bucles, funcions, condicionals i esdeveniments mitjançant la construcció d'un article bastant comú que veureu en molts llocs web: una galeria d'imatges amb Javascript.</dd> +</dl> diff --git a/files/ca/learn/javascript/index.html b/files/ca/learn/javascript/index.html new file mode 100644 index 0000000000..2e6649a258 --- /dev/null +++ b/files/ca/learn/javascript/index.html @@ -0,0 +1,66 @@ +--- +title: JavaScript +slug: Learn/JavaScript +tags: + - Beginner + - CodingScripting + - JavaScript + - JavaScripting beginner + - Landing + - Module + - NeedsTranslation + - Topic + - TopicStub + - 'l10n:priority' +translation_of: Learn/JavaScript +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">{{Glossary("JavaScript")}} is a programming language that allows you to implement complex things on web pages. Every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, or interactive maps, or animated 2D/3D graphics, or scrolling video jukeboxes, and so on — you can bet that JavaScript is probably involved.</p> + +<h2 id="Learning_pathway">Learning pathway</h2> + +<p>JavaScript is arguably more difficult to learn than related technologies such as <a href="/en-US/docs/Learn/HTML">HTML</a> and <a href="/en-US/docs/Learn/CSS">CSS</a>. Before attempting to learn JavaScript, you are strongly advised to get familiar with at least these two technologies first, and perhaps others as well. Start by working through the following modules:</p> + +<ul> + <li><a href="/en-US/docs/Learn/Getting_started_with_the_web">Getting started with the Web</a></li> + <li><a href="/en-US/docs/Web/Guide/HTML/Introduction">Introduction to HTML</a></li> + <li><a href="/en-US/docs/Learn/CSS/Introduction_to_CSS">Introduction to CSS</a></li> +</ul> + +<p>Having previous experience with other programming languages might also help.</p> + +<p>After getting familiar with the basics of JavaScript, you should be in a position to learn about more advanced topics, for example:</p> + +<ul> + <li>JavaScript in depth, as taught in our <a href="/en-US/docs/Web/JavaScript/Guide">JavaScript guide</a></li> + <li><a href="/en-US/docs/Web/API">Web APIs</a></li> +</ul> + +<h2 id="Modules">Modules</h2> + +<p>This topic contains the following modules, in a suggested order for working through them.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/JavaScript/First_steps">JavaScript first steps</a></dt> + <dd>In our first JavaScript module, we first answer some fundamental questions such as "what is JavaScript?", "what does it look like?", and "what can it do?", before moving on to taking you through your first practical experience of writing JavaScript. After that, we discuss some key JavaScript features in detail, such as variables, strings, numbers and arrays.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Building_blocks">JavaScript building blocks</a></dt> + <dd>In this module, we continue our coverage of all JavaScript's key fundamental features, turning our attention to commonly-encountered types of code block such as conditional statements, loops, functions, and events. You've seen this stuff already in the course, but only in passing — here we'll discuss it all explicitly.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Objects">Introducing JavaScript objects</a></dt> + <dd>In JavaScript, most things are objects, from core JavaScript features like strings and arrays to the browser APIs built on top of JavaScript. You can even create your own objects to encapsulate related functions and variables into efficient packages. The object-oriented nature of JavaScript is important to understand if you want to go further with your knowledge of the language and write more efficient code, therefore we've provided this module to help you. Here we teach object theory and syntax in detail, look at how to create your own objects, and explain what JSON data is and how to work with it.</dd> + <dt><a href="/en-US/docs/Learn/JavaScript/Client-side_web_APIs">Client-side web APIs</a></dt> + <dd>When writing client-side JavaScript for web sites or applications, you won't go very far before you start to use APIs — interfaces for manipulating different aspects of the browser and operating system the site is running on, or even data from other web sites or services. In this module we will explore what APIs are, and how to use some of the most common APIs you'll come across often in your development work. </dd> +</dl> + +<h2 id="Solving_common_JavaScript_problems">Solving common JavaScript problems</h2> + +<p><a href="/en-US/docs/Learn/JavaScript/Howto">Use JavaScript to solve common problems</a> provides links to sections of content explaining how to use JavaScript to solve very common problems when creating a webpage.</p> + +<h2 id="See_also">See also</h2> + +<dl> + <dt><a href="/en-US/docs/Web/JavaScript">JavaScript on MDN</a></dt> + <dd>The main entry point for core JavaScript documentation on MDN — this is where you'll find extensive reference docs on all aspects of the JavaScript language, and some advanced tutorials aimed at experienced JavaScripters.</dd> + <dt><a href="https://www.youtube.com/user/codingmath">Coding math</a></dt> + <dd>An excellent series of video tutorials to teach the math you need to understand to be an effective programmer, by <a href="https://twitter.com/bit101">Keith Peters</a>.</dd> +</dl> diff --git a/files/ca/mdn/comunitat/index.html b/files/ca/mdn/comunitat/index.html new file mode 100644 index 0000000000..26b3c182a8 --- /dev/null +++ b/files/ca/mdn/comunitat/index.html @@ -0,0 +1,54 @@ +--- +title: Uniu-vos a la comunitat MDN +slug: MDN/Comunitat +tags: + - Community + - Guide + - Landing + - MDN Meta +translation_of: MDN/Community +--- +<div>{{MDNSidebar}}</div> + +<div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<div class="summary"> +<p>MDN Web Docs és més que un wiki: és una comunitat de desenvolupadors que treballen junts per fer de MDN un recurs excepcional per a desenvolupadors que utilitzen tecnologies web obertes</p> +</div> + +<p>Ens encantaria que contribuíssiu a MDN, però ens encantaria encara més si participéssiu en la comunitat de MDN. Heus aquí com connectar-se, en tres senzills passos:</p> + +<ol> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Create_an_MDN_account">Creeu una compte en MDN</a>.</li> + <li><a href="/en-US/docs/MDN/Community/Conversations">Uniu-vos a converses</a>.</li> + <li><a href="/en-US/docs/MDN/Community/Whats_happening">Seguiu el que està passant</a>.</li> +</ol> + +<h2 id="Com_funciona_la_comunitat"><span id="result_box" lang="ca"><span>Com funciona la comunitat</span></span></h2> + +<p>Els següents són més articles que descriuen la comunitat de MDN.</p> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt class="landingPageList"><a href="/en-US/docs/MDN/Community/Roles">Rols de la comunitat</a></dt> + <dd class="landingPageList">Hi ha diversos rols dins de la comunitat MDN que tenen responsabilitats específiques.</dd> + <dt class="landingPageList"><a href="/en-US/docs/MDN/Community/Doc_sprints">Doc sprints</a></dt> + <dd class="landingPageList">Aquesta és una guia per organitzar un sprint de documentació. Conté consells i suggeriments de persones que han organitzat un sprint de documentació, per ajudar-vos a organitzar-ne un.</dd> + <dt class="landingPageList"><a href="/en-US/docs/MDN/Community/Whats_happening">Seguiu el que està passant</a></dt> + <dd class="landingPageList">MDN és presentat per la <a class="external" href="https://wiki.mozilla.org/MDN">comunitat de Mozilla Developer Network</a>. Heus aquí algunes maneres de compartir informació sobre el que estem fent.</dd> +</dl> + +<dl> +</dl> +</div> + +<div class="section"> +<dl> + <dt class="landingPageList"><a href="/en-US/docs/MDN/Community/Conversations">Conversas de la comunitat MDN</a></dt> + <dd class="landingPageList">El "treball" de MDN passa en el lloc de MDN, però en la "comunitat" té lloc a través de discussions (asíncroniques) i xat i reunions (sincròniques) en línia.</dd> + <dt class="landingPageList"><a href="/en-US/docs/MDN/Community/Working_in_community">Treballar en comunitat</a></dt> + <dd class="landingPageList">Una part important de la contribució a la documentació de MDN en qualsevol escala significativa és saber com treballar com a part de la comunitat MDN. Aquest article ofereix consells que us ajudaran a treure el màxim profit de les vostres interaccions amb els altres escriptors i amb equips de desenvolupament.</dd> +</dl> +</div> +</div> diff --git a/files/ca/mdn/contribute/feedback/index.html b/files/ca/mdn/contribute/feedback/index.html new file mode 100644 index 0000000000..0f2e497e6c --- /dev/null +++ b/files/ca/mdn/contribute/feedback/index.html @@ -0,0 +1,51 @@ +--- +title: Enviar comentaris sobre MDN +slug: MDN/Contribute/Feedback +tags: + - Documentation + - Guide + - MDN + - MDN Meta +translation_of: MDN/Contribute/Feedback +--- +<div>{{MDNSidebar}}</div> + +<div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p>Benvingut a MDN! Si teniu suggeriments o teniu problemes per utilitzar MDN, aquest és el lloc adequat per estar. El fet que us interessi oferir comentaris us converteix en part de la comunitat de Mozilla i us agraïm per endavant el vostre interès<span class="seoSummary">.</span></p> + +<p>Teniu diverses opcions per oferir la vostra visió; aquest article us ajudarà a fer-ho.</p> + +<h2 id="Actualitzar_la_documentació">Actualitzar la documentació</h2> + +<p>Abans de res, si heu vist un problema amb la documentació, sempre hauríeu de sentir-vos lliures per corregir-ho vosaltres mateixos. Només cal que <a href="/en-US/docs/MDN/Contribute/Howto/Create_an_MDN_account">inicieu la sessió</a> amb <a href="https://github.com/">Github</a>, feu clic a qualsevol botó blau <strong>Edit</strong> per obrir l'<a href="/en-US/docs/MDN/Contribute/Editor">editor</a> i entrar al món de la contribució a la documentació de MDN. La documentació aquí es troba en una wiki i és organitzada per un equip de voluntaris i personal remunerat, així que no sigueu tímids; la vostra gramàtica no ha de ser perfecte. Ho farem netejar si cometeu un error; no s'ha fet cap mal!</p> + +<p>Per obtenir més informació sobre com contribuir a la documentació de MDN, consulteu:</p> + +<ul> + <li><a href="/en-US/docs/Project:Getting_started" title="/en-US/docs/Project:Getting_started">Començant</a></li> + <li><a href="/en-US/docs/MDN/Contribute">Contribuint al MDN</a></li> + <li><a href="/en-US/docs/MDN/Contribute/Editor" title="/en-US/docs/Project:MDN_editing_interface">La interfície d'edició de MDN</a></li> +</ul> + +<h2 id="Uniu-vos_a_la_conversa"><span id="result_box" lang="ca"><span>Uniu-vos a la conversa</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Parla amb nosaltres!</span> <span>Hi ha algunes maneres de posar-vos en contacte amb altres persones que treballen amb contingut de MDN.</span></span></p> + +<h3 id="Xat_Sincrònic">Xat (Sincrònic)</h3> + +<p> + </p><h3 id="Debats_Asincrònics">Debats (Asincrònics)</h3> + + +<p>Els debats a llarg termini tenen lloc al nostre <a href="https://discourse.mozilla-community.org/c/mdn">fòrum de discussió de MDN</a>. Podeu publicar al fòrum per correu electrònic a <a href="mailto://mdn@mozilla-community.org">mdn@mozilla-community.org</a>. Si us uniu al fòrum, podeu optar per rebre notificacions sobre els debats enviats per correu electrònic.</p> + +<h2 id="Reportar_un_problema">Reportar un problema</h2> + +<h3 id="Problemes_de_documentació">Problemes de documentació</h3> + +<p>Si veieu un problema a la documentació i no podeu solucionar-lo per qualsevol motiu, podeu <a href="https://github.com/mdn/sprints/issues/new?template=issue-template.md&projects=mdn/sprints/2&labels=user-report">informar del problema</a>!. Podeu utilitzar aquest formulari per a qualsevol problema de documentació, ja sigui una correcció simple o una sol·licitud d'un contingut completament nou. Com es va esmentar anteriorment, us convidem a contribuir amb els canvis, però aquesta opció també està disponible per a vosaltres.</p> + +<h3 id="Problemes_del_lloc">Problemes del lloc</h3> + +<p>Si teniu problemes amb el lloc web de MDN o teniu idees per a noves característiques del lloc, podeu <a href="https://bugzilla.mozilla.org/form.mdn">enviar un ticket a l'equip de desenvolupament de MDN</a>.</p> diff --git a/files/ca/mdn/contribute/getting_started/index.html b/files/ca/mdn/contribute/getting_started/index.html new file mode 100644 index 0000000000..2ed4b26bf3 --- /dev/null +++ b/files/ca/mdn/contribute/getting_started/index.html @@ -0,0 +1,107 @@ +--- +title: Començant a MDN +slug: MDN/Contribute/Getting_started +tags: + - Guía + - Iniciar-se + - Introducció + - MDN Meta + - Primeres passes +translation_of: MDN/Contribute/Getting_started +--- +<div>{{MDNSidebar}}{{IncludeSubnav("/ca/docs/MDN")}}</div> + +<p>Som una comunitat oberta de persones que generem recursos per a una millor web, independent de marques, navegadors o plataformes. Qualsevol pot contribuir i cada persona que ho fa enforteix la comunitat. Com a comunitat, podem continuar <span class="tlid-translation translation"><span title="">impulsant la innovació a la xarxa per servir el bé més gran. Això comença aquí, amb tu.</span> </span></p> + +<p>Cada part de MDN Web Docs (des del codi que fa que el lloc funcioni a la documentació, exemples de codi i demostracions) és creada per una comunitat de persones. Tothom té alguna cosa per oferir i esperem que t'uneixis a nosaltres!</p> + +<h2 id="3_senzills_passos_per_MDN_Web_Docs"><span class="tlid-translation translation"><span title="">3 senzills passos per MDN Web Docs</span></span></h2> + +<p><span class="seoSummary"><span class="tlid-translation translation"><span class="alt-edited">MDN és una wiki, on <strong>qualsevol persona</strong> pot afegir i editar contingut. No necessiteu saber programació o conèixer molt sobre les tecnologies. Hi ha moltes coses que cal fer, des de tasques simples com ara revisar correctament i corregir errors tipogràfics fins a tasques complexes com ara escriure la documentació de l'API.</span></span></span></p> + +<p><span class="tlid-translation translation"><span class="alt-edited">Contribuir és fàcil i segur. Fins i tot si cometeu un error, és fàcil de solucionar; si no sabeu exactament com han de quedar les coses, o la vostra gramàtica no és la millor, no us preocupeu. Tenim un equip de persones, que fan la feina d'assegurar-se que els continguts de MDN siguin tan bons com sigui possible. Algú estarà atent per assegurar que la vostra aportació estigui ordenada i ben escrita. Compartiu el vostre coneixement, seguiu les vostres fortaleses i confieu en la resta de la comunitat per ajudar a millorar el vostre treball.</span></span></p> + +<h3 id="Pas_1_Crear_un_compte_a_MDN">Pas 1: Crear un compte a MDN</h3> + +<p>Per començar a fer les vostres contribucions al MDN, heu de tenir un compte a MDN. Per obtenir més informació, consulteu <a href="/ca/docs/MDN/Contribute/Howto/Create_an_MDN_account">com crear un compte</a>.</p> + +<h3 id="Pas_2_Triar_una_tasca">Pas 2: Triar una tasca</h3> + +<p><span class="tlid-translation translation"><span class="alt-edited">Ara que heu iniciat la sessió, llegiu les descripcions dels diferents tipus de tasques a {{anch ("Tipus de tasques possibles", "la llista de sota")}}, i decidiu quina us crida més l'atenció. Podeu triar qualsevol tasca que vulgueu i començar la vostra contribució.</span></span></p> + +<h3 id="Pas_3_Fer_la_tasca">Pas 3: <span class="tlid-translation translation"><span class="alt-edited" title="">Fer la tasca</span></span></h3> + +<p><span class="tlid-translation translation"><span class="alt-edited" title="">Un cop hàgiu decidit quin tipus de tasca voleu fer, cerqueu una pàgina específica, un exemple de codi, etc. perquè treballar-hi i, senzillament, feu-la.</span></span></p> + +<p><span class="tlid-translation translation"><span class="alt-edited">No us preocupeu de fer-la perfectament; altres persones col·laboradores de MDN estan aquí per ajudar a corregir els errors que hi hagi. Si teniu preguntes a mesura que aneu fent, consulteu la pàgina de la <a href="/ca/docs/MDN/Community">Comunitat</a> per obtenir informació sobre les llistes de correu i els canals de xat on podeu obtenir respostes.</span></span></p> + +<div class="note"> +<p><span class="tlid-translation translation"><span class="alt-edited">Nota: Si vols experimentar amb l'edició a MDN abans de fer alguna cosa "real", tenim una pàgina <strong><a href="/ca/docs/Sandbox">Sandbox</a></strong> perquè hi juguis. Limita't a fer els teus experiments en aquesta pàgina. No facis canvis innecessaris a les pàgines de contingut només per veure què passa; això pot crear un embolic per qui hagi de netejar-ho.</span></span></p> +</div> + +<p><span class="tlid-translation translation"><span class="alt-edited">Quan hàgiu acabat amb la tasca escollida, no dubteu a triar un altre element, o consulteu a continuació <a href="/ca/docs/Project:Primers_passos$edit#Other_things_you_can_do_on_MDN">altres coses que podeu fer a MDN</a>.</span></span></p> + +<h2 id="Tipus_de_tasques_possibles"><span class="tlid-translation translation"><span title="">Tipus de tasques possibles</span></span></h2> + +<p>Hi ha molts camins que pots triar per contribuir a MDN, en funció de les teves habilitats i interessos. Malgrat que algunes tasques poden ser desencoratjadores, tenim un munt d'activitats simples disponibles. Moltes necessiten només cinc minuts (o menys!) del teu temps. Sota, juntament amb la tasca i la seva descripció curta, trobaràs el temps aproximat que dura cada tipus de tasca.</p> + +<h3 id="Opció_1_M'agraden_les_paraules">Opció 1: M'agraden les paraules</h3> + +<p>Ens pots ajudar revisant o editant documents que ja existeixen i aplicant-hi les etiquetes correctes.</p> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Set_the_summary_for_a_page">Escriu el resum d'una pàgina</a> (5-15 minuts)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Do_an_editorial_review">Revisions Editorials</a> (5-30 minuts)</li> + <li><a href="/en-US/docs/MDN/User_guide/Writing#Editing_an_existing_page">Actualitza un article existent amb nova informació</a> (5 minuts-1 hora)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary">Escriu una nova entrada al Glossari</a> (15 minuts-1 hora)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Create_and_edit_pages">Escriu un article sobre una nova tecnologia o API</a> (30 minuts-2 hores)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web">Escriu un article per ajudar a la gent a aprendre sobre el web</a> (1-3 hores)</li> +</ul> + +<div class="note"><strong>Nota:</strong> Si estàs revisant articles o escrivint-ne de nous, et demanem si us plau que revisis la <a href="/en-US/docs/MDN/Contribute/Guidelines/Style_guide">Guia d'estil</a>. Això ajudarà a assegurar que els articles siguin consistents.</div> + +<h3 id="Opció_2_M'agrada_el_codi">Opció 2: M'agrada el codi</h3> + +<p>Necessitem més exemples! Fins i tot pots ajudar a construir la nostra plataforma de llocs, <a href="/en-US/docs/MDN/Kuma">Kuma</a>!</p> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Convert_code_samples_to_be_live">Converteix mostres de codi per estar "en viu"</a> (30 minuts)</li> + <li><a href="http://kuma.readthedocs.org/en/latest/installation.html">Configura un entorn de Kuma</a> (1 hora)</li> + <li><a href="https://github.com/mozilla/kuma#readme">Envia la teva correció de codi a la base de codi de Kuma</a> (1 hora)</li> + <li><a href="/en-US/demos/submit">Envia una nova demostració</a> (1 hora)</li> +</ul> + +<h3 id="Opció_3_M'agraden_el_codi_i_les_paraules">Opció 3: M'agraden el codi i les paraules</h3> + +<p>Tenim tasques que requereixen habilitats tant tècniques com lingüístiques, com escriure nous articles, revisar We have tasks that require both technical and language skills, like writing new articles, assegurar precisió tècnica o adaptació de documents.</p> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Tag_JavaScript_pages">Etiqueta pàgines de JavaScript</a> (5 minuts)</li> + <li><a href="/en-US/docs/MDN/About/Promote">Promociona MDN a la teva pròpia pàgina web</a> (5 minuts)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Do_a_technical_review">Revisions tècniques</a> (30 minuts)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Create_and_edit_pages">Escriu un nou article sobre un tema amb el que estiguis familiaritzat</a> (1 hora o més)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web">Crea un exercici interactiu per ajudar a la gent a aprendre coses sobre el web</a> (1 hora o més)</li> + <li><a href="/en-US/docs/MDN/Contribute/Howto/Resolve_a_mentored_developer_doc_request">Arregla un error de documentació</a> de <a href="http://www.joshmatthews.net/bugsahoy/?mdn=1">MDN category in Bugs Ahoy</a> (1 hora o més)</li> +</ul> + +<h3 id="Opció_4_Vull_MDN_en_el_meu_idioma">Opció 4: Vull MDN en el meu idioma</h3> + +<p>Tota la feina de localització i traducció a MDN és realitzada per la nostra increible comunitat de voluntaris.</p> + +<ul> + <li><a href="/en-US/docs/MDN/Contribute/Localize/Translating_pages">Tradueix pàgines</a> (2 hores)</li> + <li>Connecta amb altres traductors llistats a <a href="/en-US/docs/MDN/Contribute/Localize/Localization_projects">Projectes de localització</a> (30 minuts)</li> +</ul> + +<h3 id="Opció_5_He_trobat_informació_incorrecte_però_no_sé_com_arreglar-la">Opció 5: He trobat informació incorrecte però no sé com arreglar-la</h3> + +<p>Pots informar sobre problemes <a class="external" href="https://bugzilla.mozilla.org/form.doc">omplint un bug de documentació</a>. (5 minuts)</p> + +<h2 id="Altres_coses_que_pots_fer_a_l'MDN">Altres coses que pots fer a l'MDN</h2> + +<ul> + <li><a href="/en-US/docs/MDN/Community">Uneix-te a la Comunitat MDN</a></li> + <li><a href="/en-US/profile">Completa el teu perfil</a> per que els altres puguin saber més de tu</li> + <li>Aprèn més sobre com <a href="/en-US/docs/MDN/Contribute">contribuir a l'MDN</a></li> + <li><a href="/en-US/docs/MDN/Getting_started/Using_MDN_in_education">Utilitza l'MDN per aprendre</a></li> +</ul> diff --git a/files/ca/mdn/contribute/howto/crear_un_compte_mdn/index.html b/files/ca/mdn/contribute/howto/crear_un_compte_mdn/index.html new file mode 100644 index 0000000000..fd8ae9355c --- /dev/null +++ b/files/ca/mdn/contribute/howto/crear_un_compte_mdn/index.html @@ -0,0 +1,38 @@ +--- +title: Com crear un compte MDN +slug: MDN/Contribute/Howto/Crear_un_compte_MDN +translation_of: MDN/Contribute/Howto/Create_an_MDN_account +--- +<div>{{MDNSidebar}}</div> + +<p><span class="seoSummary">Per editar contingut dins de MDN, us cal un perfil MDN. Si el que voleu, però, és consultar i cercar documentació a MDN, no us cal tenir aquest perfil. Aquesta guia us ajudarà a posar en marxa el vostre perfil MDN.</span></p> + +<div class="pull-aside"> +<div class="moreinfo"><strong>Per a què necessita MDN la meva adreça electrònica?</strong><br> +<br> +La vostra adreça electrònica s'utilitza per a recuperar el vostre compte i, si fos necessari, per a que l'administració de MDN pugui contactar-vos en referència al vostre compte o la vostra activitat dins el lloc.<br> +<br> +A més, us podeu subscriure a les notificacions (tals com <a href="/ca/docs/MDN/Contribute/Howto/Watch_a_page">quan pàgines específiques siguin modificades</a>) i missatges and messages (per exemple, si opteu per unir-vos a l'equip de proves beta, podeu rebre correus electrònics sobre noves funcions que necessiten proves).<br> +<br> +La vostra adreça electrònica mai es mostrarà a MDN i només es podrà utilitzar d'acord amb la nostra <a href="https://www.mozilla.org/privacy/websites/">política de privacitat</a>.<br> + +<div class="note">Si inicieu sessió a MDN des de GitHub i utilitzeu una adreça "noreply" a GitHub, no rebreu missatges (incloses les notificacions quan us subscriviu a pàgines) a MDN.</div> +</div> +</div> + +<ol> + <li>Al capdamunt de cada pàgina a MDN, trobareu un botó anomenat <strong>Sign in</strong>. Poseu-vos a sobre (o polseu-lo si utilitzeu un dispositiu mòbil) per a veure una llista amb els serveis d'autenticació suportats per a iniciar sessió d'usuari a MDN.</li> + <li>Seleccioneu un servei per a iniciar la vostra sessió. Actualment, només està disponible mitjançant GitHub. Teniu en compte que si seleccioneu GitHub, a la pàgina del vostre perfil públic de MDN s'hi afegirà un enllaç al vostre perfil de GitHub.</li> + <li>Seguiu les instruccions de GitHub per a connectar el vostre compte a MDN.</li> + <li>Un cop el servei d'autenticació us retorni a MDN, se us demanarà que entreu un identificador d'usuari i una adreça electrònica. <em>El vostre identificador es mostrarà públicament per fer esment de les tasques que heu realitzat. No utilitzeu la vostra adreça electrònica com identificador.</em></li> + <li>Cliqueu a <strong>Crea el meu perfil MDN</strong>.</li> + <li>Si l'adreça electrònica especificada al pas 4 no és la mateixa que utilitzeu al servei d'autenticació, si us plau, comproveu el correu i cliqueu l'enllaç del missatge de confirmació que us enviem.</li> +</ol> + +<p>I ja està! Ja teniu el vostre compte MDN operatiu i podeu editar immediatament les pàgines!</p> + +<p>Podeu clicar el vostre nom a la part superior de qualsevol pàgina MDN per a veure el vostre perfil públic. Des d'allà, podeu clicar <strong>Edita </strong>per a fer canvis o afegir dades al vostre perfil.</p> + +<div class="note"> +<p>Els nous identificadors d'usuari no poden tenir espais o el caràcter "@". Recordeu que el vostre identificador el mostrarà públicament per a identificar la vostra feina.</p> +</div> diff --git a/files/ca/mdn/contribute/howto/index.html b/files/ca/mdn/contribute/howto/index.html new file mode 100644 index 0000000000..2d2e665e4f --- /dev/null +++ b/files/ca/mdn/contribute/howto/index.html @@ -0,0 +1,18 @@ +--- +title: 'MDN web docs: How-to guides' +slug: MDN/Contribute/Howto +tags: + - Documentation + - Guide + - Howto + - Landing + - MDN Meta + - NeedsTranslation + - TopicStub +translation_of: MDN/Contribute/Howto +--- +<div>{{MDNSidebar}}{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p class="summary"><span class="seoSummary">These articles provide step-by-step guides to accomplishing specific goals when contributing to MDN.</span></p> + +<p>{{LandingPageListSubpages}}</p> diff --git a/files/ca/mdn/contribute/index.html b/files/ca/mdn/contribute/index.html new file mode 100644 index 0000000000..353e061bfe --- /dev/null +++ b/files/ca/mdn/contribute/index.html @@ -0,0 +1,78 @@ +--- +title: Contribuir a MDN +slug: MDN/Contribute +tags: + - Documentation + - Guide + - Landing + - MDN + - MDN Meta + - NeedsTranslation + - TopicStub +translation_of: MDN/Contribute +--- +<div>{{MDNSidebar}}</div> + +<p>Benvingut! En visitar aquesta pàgina, heu fet el primer pas per esdevenir en un colaborador a MDN. Les guies enumerades a continuació cobreixen tots els aspectes de com contribuir al MDN, incloent guies d'estil, guies per a l'ús del nostre editor i eines, i molt més. Si us plau assegureu-vos que heu llegit (i és compatible amb) les <a href="https://www.mozilla.org/en-US/about/legal/terms/mozilla/">condicions de Mozilla</a> abans d'editar o crear cap pàgina.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 id="Contributor_guides">Contributor guides</h2> + +<dl> + <dt><a href="/en-US/docs/MDN/Getting_started">Primers passos</a></dt> + <dd>Una guia d'inici ràpid per aconseguir crear i fer la vostre primera contribuci.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Style_guide">Guia de contingut i estil</a></dt> + <dd>El contingut i l'estil de la guia MDN proporciona detalls sobre l'estil d'escriptura, disseny de pàgina, i estils de contingut, de manera que el contingut escrit encaixi amb la resta del contingut del MDN.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Editor">Guia d'editor</a></dt> + <dd>Una guia completa sobre l'ús de l'editor de MDN.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Reviewing_articles">Revisió dels articles</a></dt> + <dd> + <p>Una guia per realitzar revisions tècniques i editorials del contingut dels articles, per ajudar a garantir que tot el contingut de MDN sigui útil i fàcil de llegir com sigui possible!</p> + </dd> + <dt><a href="/en-US/docs/MDN/Contribute/Conventions">Terminologia i convencions</a></dt> + <dd>La nostra guia de terminologia i convencions proporciona informació que podeu utilitzar per assegurar-vos que utilitzeu la terminologia correcta per descriure coses.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Community">Treballar amb la comunitat MDN</a></dt> + <dd>Una guia per treballar amb la nostra comunitat, buscar ajuda, i connectar-se amb la gent amb les respostes a les preguntes que sorgeixen mentre contribuïu a MDN.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/FAQ">Preguntes freqüents</a></dt> + <dd>Consells i respostes a les preguntes més comuns sobre contribuir a MDN.</dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/MDN/Kuma/Contributing">Contribuir a Kuma</a></dt> + <dd>Una guia per a contribuir al projecte Kuma. Kuma és la plataforma que potencia el lloc web de MDN.</dd> +</dl> +</div> + +<div class="section"> +<h2 id="Com...">Com...</h2> + +<p>Les nostres <a href="/en-US/docs/MDN/Contribute/Howto">guies de com fer-ho</a> proporcionen instruccions pas a pas per ajudar a realitzar tasques específiques quan contribuïu a MDN</p> + +<dl> + <dt><a href="/en-US/docs/MDN/Contribute/Howto/Document_a_CSS_property">Com documentar una propietat CSS</a></dt> + <dd>Una guia per escriure la documentació de les propietats CSS. Tots els documents de propietat CSS han de coincidir amb l'estil i el disseny descrit en aquest article.</dd> + <dt><span id="result_box" lang="ca"><span>Com documentar</span> <span>un element</span> <span>HTML</span></span></dt> + <dd>Aquesta guia per documentar els elements HTML, ens hem d'assegurar que els documents que escrivim coincideixen amb altres a MDN.</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Howto/Tag">Com etiquetar correctament les pàgines</a></dt> + <dd> + <p>Aquesta guia per etiquetar pàgines proporciona informació sobre les nostres normes d'etiquetatge, incloses les llistes d'etiquetes que tenen un significat estàndard en MDN. Seguint aquesta guia ens hem d'assegurar que el seu contingut està classificat adequadament, tenint mes facilitats en la cerca, i que el nostre mecanisme de filtrat de cerca funciona correctament amb els seus articles.</p> + </dd> + <dt><a href="/en-US/docs/MDN/Contribute/Howto/Interpret_specifications">Com interpretar les especificacions</a></dt> + <dd>Aquesta guia us ajudarà a interpretar correctament les especificacions Web estàndard; ser capaç de llegir aquests poden ser una forma d'art, i saber com fer-ho us ajudarà a produir una millor documentació.</dd> +</dl> + +<h2 id="Localització">Localització</h2> + +<dl> + <dt><a href="/en-US/docs/MDN/Contribute/Localize/Tour">Localització visita guiada</a></dt> + <dd><span id="result_box" lang="ca"><span>Aquesta visita</span> <span>guiada</span> <span>us</span> <span>ensenyarà</span> <span>com localitzar el</span> <span>contingut</span> <span>de</span> <span>MDN</span></span> .</dd> + <dt><a href="/en-US/docs/MDN/Contribute/Localize/Guide">Guia de localització</a></dt> + <dd><span id="result_box" lang="ca"><span>Aquesta</span> <span>guia</span> <span>proporciona detalls</span> <span>sobre el procés</span> <span>de localització</span> <span>dels</span> <span>continguts</span> <span>de</span> <span>MDN</span><span>.</span></span></dd> + <dt><a href="/en-US/docs/MDN/Contribute/Localize/Localization_projects">Projectes de localització</a></dt> + <dd>Trobeu el projecte de localització per al vostre idioma, o, si no n'hi ha un, apreneu com iniciar un de nou!</dd> +</dl> +</div> +</div> + +<p> </p> diff --git a/files/ca/mdn/contribute/localize/index.html b/files/ca/mdn/contribute/localize/index.html new file mode 100644 index 0000000000..252256b829 --- /dev/null +++ b/files/ca/mdn/contribute/localize/index.html @@ -0,0 +1,59 @@ +--- +title: Localització de MDN +slug: MDN/Contribute/Localize +tags: + - Landing + - Localization + - MDN Meta + - l10n +translation_of: MDN/Contribute/Localize +--- +<div>{{MDNSidebar}}</div><div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p>MDN és utilitzat per persones de tot el món com a referència i guia per a les tecnologies web, així com també per als interns del propi Firefox. Les nostres comunitats de localització són una part clau del projecte Mozilla; el seu treball de traducció i localització de la nostra documentació ajuda a persones de tot el món a desenvolupar la Web oberta. Si voleu obtenir més informació sobre la localització o, fins i tot, iniciar una nova localització, aquest és el lloc on començar.</p> + +<h2 id="Tipus_de_localització_a_MDN">Tipus de localització a MDN</h2> + +<p>La localització a MDN comprèn tres aspectes, que requereixen diferents sistemes o privilegis d'accés.</p> + +<dl> + <dt>Interfície d'usuari del lloc MDN</dt> + <dd>Les cadenes que apareixen a cada pàgina de MDN (o en la majoria de les pàgines) per emmarcar el contingut de l'article principal i proporcionar controls de navegació i d'usuaris. Aquestes cadenes es tradueixen utilitzant el sistema de Mozilla’s <a href="/en-US/docs/Mozilla/Localization/Localizing_with_Pontoon">Pontoon</a> en el <a href="https://pontoon.mozilla.org/projects/mdn/">projecte MDN</a>. Si la vostra localitat no està disponible per a MDN, un administrador ha d'habilitar-la. Consulte <a href="/en-US/docs/MDN/Contribute/Localize/Starting_a_localization">Obrir una nova localització a MDN</a>.</dd> + <dt>Contingut de MDN</dt> + <dd>El cos principal de les pàgines de MDN, consisteix en articles de referència, guies o tutorials. Els articles poden ser traduïts utilitzant la <a href="/en-US/docs/MDN/Contribute/Localize/Translating_pages">interfície de traducció integrada de MDN</a>. Si la vostra localitat no està disponible a la llista de localitats a la qual traduir, consulteu <a href="/en-US/docs/MDN/Contribute/Localize/Starting_a_localization">Obrir una nova localització a MDN</a>.</dd> +</dl> + +<dl> + <dt>Cadenes de macro</dt> + <dd>Aquestes cadenes són generades per <a href="/en-US/docs/MDN/Contribute/Structures/Macros">macro plantilles</a> que construeixen certs tipus de navegació, missatges o estructures generades. Atès que les plantilles poden tenir efectes omnipresents i potencialment destructius, els canvis passen per <a href="/en-US/docs/MDN/Contribute/Tools/Template_editing">una sol.licitud d'extracció i procés de revisió</a>.</dd> +</dl> + +<p>Les pàgines següents proporcionen més detalls sobre la localització en MDN:</p> + +<p>{{LandingPageListSubpages}}</p> + +<h2 id="Comunitats_de_localització_en_MDN">Comunitats de localització en MDN</h2> + +<p>Les activitats de localització en MDN són realitzades tant per individus que actuen de forma independent com per grups que treballen junts, possiblement com a part d'una comunitat de localització de Mozilla més gran. Els projectes de localització de MDN estan liderats pels <strong>controladors de localització</strong>.</p> + +<ul> + <li><a href="/en-US/docs/MDN/Community/Roles/Localization_projects">Projectes de Localització</a></li> + <li><a href="/en-US/docs/MDN/Community/Roles/Localization_driver_role">Funció del controlador de localització</a></li> +</ul> + +<h2 id="Eines_de_localització">Eines de localització</h2> + +<p>Hi ha diverses eines útils que utilitzareu durant el treball de localització:</p> + +<dl> + <dt><a href="/en-US/docs/Mozilla/Localization/Localizing_with_Pontoon" title="/en-US/docs/Mozilla/Localization/Localizing_with_Verbatim">Pontoon</a></dt> + <dd>S'utilitza per a la traducció de cadenes en diversos projectes de Mozilla, inclosa la interfície d'usuari de MDN (així com la interfície d'usuari de Firefox).</dd> + <dt><a href="http://transvision.mozfr.org/" title="http://transvision.mozfr.org/">Transvision</a></dt> + <dd>Una utilitat proporcionada per la comunitat francesa de Mozilla, que us permet cercar les ocurrències d'una cadena de text anglesa, trobant totes les diverses traduccions en una localització de destinació que s'utilitza en tot el codi de Mozilla. Útil per trobar les traduccions preferides per paraules o frases.</dd> +</dl> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Mozilla/Localization" title="/en-US/docs/Mozilla/Localization">Localització en Mozilla</a></li> +</ul> diff --git a/files/ca/mdn/contribute/localize/traducció_pàgines/index.html b/files/ca/mdn/contribute/localize/traducció_pàgines/index.html new file mode 100644 index 0000000000..d8f1ebffc7 --- /dev/null +++ b/files/ca/mdn/contribute/localize/traducció_pàgines/index.html @@ -0,0 +1,119 @@ +--- +title: La traducció de pàgines MDN +slug: MDN/Contribute/Localize/traducció_pàgines +tags: + - MDN + - català + - localització + - traducció +translation_of: MDN/Contribute/Localize/Translating_pages +--- +<div>{{MDNSidebar}}</div><p>Aquest article és una guia bàsica per traduir continguts de MDN, incloent-hi tant la mecànica de treball com consells sobre la forma correcta de treballar amb diversos tipus de continguts.</p> + +<h2 id="Traduïnt_una_una_nova_pàgina"><strong>Traduïnt una una nova pàgina</strong></h2> + +<section class="content-wrapper" id="content"> +<div class="wrapper "> +<div class="container-fluid"> +<div class="row"> +<div class="contingut contingut-left col-sm-12 col-md-8"> +<section class="formulari-eines contingut-section" id="sect3"> +<div class="traductor-textarea form-group"> +<div class="textarea-desti col-xs-12 col-sm-6"> +<div class="form-control second-textarea"> +<section class="content-wrapper" id="content"> +<div class="wrapper "> +<div class="container-fluid"> +<div class="row"> +<div class="contingut contingut-left col-sm-12 col-md-8"> +<section class="formulari-eines contingut-section" id="sect4"> +<div class="traductor-textarea form-group"> +<div class="textarea-desti col-xs-12 col-sm-6"> +<div class="form-control second-textarea">Quan et trobes amb una pàgina que t'agradaria traduir-la al teu idioma, segueix els següents passos</div> +</div> +</div> +</section> +</div> +</div> +</div> +</div> +</section> +</div> +</div> +</div> +</section> +</div> +</div> +</div> +</div> +</section> + +<ol> + <li> + <p>Feu clic a la icona d'Idiomes per obrir el<strong> menú d'Idiomes</strong>, i feu clic a <strong>Afegeix una traducció</strong>. Apareix la pàgina Seleccionar Idiomes.</p> + </li> + <li>Feu clic en l'idioma que voleu traduir la pagina. la vista de traducció de l'article sobre amb el text original es mostra a la banda esquerra de la vista.</li> + <li>Sota <strong>Traducció de la descripció</strong>, pot traduir el títol i, opcionalment, el llimac en l'idioma de destí. El llimac és l'última part de l'URL de la pàgina (per exemple, "traducció_pàgines" d'aquest article.) Algunes comunitats lingüístiques no tradueixen el llimac, mantenint la mateixa llimac en anglès. Comparar amb altres articles en el seu idioma per determinar la pràctica comuna. Pot fer clic al signe menys al costat de <strong>Traducció de la descripció</strong> per ocultar aquesta informació quan hagi acabat amb ell, per fer més espai per a la secció de <strong>Traducció del contingut</strong>.</li> + <li>sota el <strong>contingut traduit</strong>, traduïu el cos de la pagina</li> + <li>Ompliu almenys una <strong>etiqueta </strong>per a la pàgina</li> + <li>Feu clic a <strong>Desa els canvis</strong> quan hagi acabat.</li> +</ol> + +<div class="note"><strong>Nota: </strong>Els elements d'interfície de l'usuari de l'Article a Traduir, iinicialment la vista és mostrada en anglès.En visites subsegüents, per traduir un article en particular, l'UI és mostra en la llengua apropiada si la localització en el MDN està disponible per aquesta llengua.L'interfície d'usuari del MDN pot ser localizat utilitzant<a href="https://localize.mozilla.org/projects/mdn/" title="https://localize.mozilla.org/projects/mdn/"> Pontoon</a>. Per mes detalls, veure <a href="/en-US/docs/Mozilla/Localization/Localizing_with_Verbatim" title="/en-US/docs/Mozilla/Localization/Localizing_with_Verbatim">Localització amb Pontoon</a> com utilitzar aquesta eina.</div> + +<h2 id="Edició_d'una_pàgina_traduïda">Edició d'una pàgina traduïda</h2> + +<ul> + <li>En una pàgina traduïda, feu clic al botó Edita (de vegades etiquetats en la llengua d'arribada). S'obre la vista de traducció de la pagina.</li> +</ul> + +<p>Si la versió amb anglès ha canviat des que la traducció ha estat actualitzat, la vista de traducció de la pagina mostra un nivell de codi font "diff" dels canvis en la versió amb anglès. Això l'ajuda a veure el que ha de ser actualitzat en la traducció.</p> + +<h2 id="Traduir_etiquetes">Traduir etiquetes</h2> + +<p id="És_important_que_cada_pàgina_s'etiqueta_amb_almenys_una_etiqueta._Fins_i_tot_si_aquesta_és_traducció."><span style="font-size: 14px; font-weight: normal; line-height: 1.5;">És important que cada pàgina s'etiqueti almenys amb una etiqueta. Fins i tot si aquesta és traducció. </span>En general, és una bona idea utilitzar les mateixes etiquetes que en l'article original.</p> + +<p>Algunes etiquetes s'utilitzen per als filtres de recerca, o com a convenis entre contribuents. No han de ser traduïts. Per conèixer aquestes etiquetes, llegiu<a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Howto/Tag"> les normes d'etiquetatge</a>. Vostè és lliure de crear etiquetes traduïdes al contingut del grup si no està cobert per una de les etiquetes de normalització.</p> + +<h2 id="Consells_per_nous_localitzadors">Consells per nous localitzadors</h2> + +<p>Si ets nou com a localitzador a MDN, aquí tens alguns suggeriments:</p> + +<section class="content-wrapper" id="content"> +<div class="wrapper "> +<div class="container-fluid"> +<div class="row"> +<div class="contingut contingut-left col-sm-12 col-md-8"> +<section class="formulari-eines contingut-section" id="sect1"> +<div class="traductor-textarea form-group"> +<div class="textarea-desti col-xs-12 col-sm-6"> +<ul> + <li class="form-control second-textarea">Els articles en el <a href="https://developer.mozilla.org/en-US/docs/Glossary">Glossari</a> són ideals per traduir pels nous benvinguts, perquè són curts i senzills.</li> + <li class="form-control second-textarea">Els articles que estan etiquetats amb <a href="https://developer.mozilla.org/en-US/docs/tag/l10n%3Apriority">"|10n:priority"</a> són considerats d'alta prioritat per traduir.</li> + <li class="form-control second-textarea">Si veus texte entre dobles claus, com <code>\{{some-text("more text")}}</code>, aquest no es pot traduir en l'article ni canviar els signes de puntuació. Aquesta és una <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Structures/Macros">macro</a>, que probablement crea una estructura en la pàgina, o té alguna utilitat. És possible que aparegui text sense traduir que es genera per una macro; no et preocupis per ell fins que adquireixis més experiència amb el MDN. (El canvi d'aquest text requereix privilegis especials a causa de les macros que poden ser molt potentes.). Si ets curiós, mira les <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros">macros utilitzades habitualment</a> per veure el tipus de coses que fan.</li> + <li class="form-control second-textarea">Comproba la <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Localize/Localization_projects">pàgina de localització de projectes</a> per trobar més informació sobre la ubicació de la teva localitat.</li> +</ul> + +<section class="content-wrapper" id="content"> +<div class="wrapper "> +<div class="container-fluid"> +<div class="row"> +<div class="contingut contingut-left col-sm-12 col-md-8"> +<section class="formulari-eines contingut-section" id="sect2"> </section> +</div> +</div> +</div> +</div> +</section> + +<p> </p> +</div> +</div> +</section> +</div> +</div> +</div> +</div> +</section> + +<p> </p> diff --git a/files/ca/mdn/contribute/processos/index.html b/files/ca/mdn/contribute/processos/index.html new file mode 100644 index 0000000000..69faa1d6b5 --- /dev/null +++ b/files/ca/mdn/contribute/processos/index.html @@ -0,0 +1,14 @@ +--- +title: Processos de documentació +slug: MDN/Contribute/Processos +tags: + - Landing + - MDN Meta + - Processes +translation_of: MDN/Contribute/Processes +--- +<div>{{MDNSidebar}}</div><div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p>El projecte de documentació MDN és enorme; hi ha una gran nombre de tecnologies que cobrim amb l'ajuda de centenars de col·laboradors de tot el món. Per ajudar-nos a posar ordre al caos, tenim els processos estàndard a seguir quan treballem en tasques específiques relacionades amb la documentació. Aquí trobareu guies per a aquests processos.</p> + +<p>{{LandingPageListSubPages()}}</p> diff --git a/files/ca/mdn/index.html b/files/ca/mdn/index.html new file mode 100644 index 0000000000..38c33fe935 --- /dev/null +++ b/files/ca/mdn/index.html @@ -0,0 +1,30 @@ +--- +title: El projecte MDN +slug: MDN +tags: + - Landing + - MDN Meta +translation_of: MDN +--- +<div>{{MDNSidebar}}</div> + +<p><strong>MDN Web Docs</strong> és una wiki on documentem la Web lliure, les tecnologies de Mozilla i altres temes de desenvolupadors. Qualsevol persona pot afegir i editar contingut. No cal ser programador ni saber molt sobre tecnologia; hi ha moltes tasques diferents que s'han de dur a terme, des de les més senzilles (revisió de text i correcció d'errors tipogràfics) fins les més complexes (escriure la documentació de l'API).</p> + +<div class="summary"> +<p>La missió de MDN Web Docs és proporcionar als <em>desenvolupadors</em> la <em>informació</em> que necessiten per <em>facilitar</em> la creació de projectes a la <em>plataforma web</em>. Us convidem a ajudar !</p> +</div> + +<p>Necessitem la vostra ajuda! És molt fàcil. No us preocupeu per demanar permís o per cometre errors. Per altra banda, no dubteu en conèixer la <a href="/ca/docs/MDN/Community">Comunitat MDN</a>; estem aquí per ajudar-vos! La documentació següent us hauria d'iniciar, però no dubteu a unir-vos als debats a <a href="https://chat.mozilla.org/#/room/#mdn:mozilla.org">MDN Web Docs</a>.</p> + +<ul class="card-grid"> + <li><span><a class="new" href="/ca/docs/MDN/Getting_started" rel="nofollow">Inici ràpid per a nous usuaris</a></span> + + <p>Acabeu d'arribar a MDN i voleu aprendre com ajudar a que sigui millor? Comenceu aquí!</p> + </li> + <li><span><a href="/ca/docs/MDN/Contribute">Ja tinc un nivell avançat</a></span> + <p>Accediu a la nostra guia completa i detallada per a les persones que col·laboren a MDN i obtenir-ne més informació un cop us hi trobeu còmodes.</p> + </li> + <li><span><a class="new" href="/ca/docs/MDN/Promote" rel="nofollow">Feu córrer la veu</a></span> + <p>Si us agrada MDN, ajudeu a fer córrer la veu! Trobeu dissenys, eines i guies per promocionar MDN.</p> + </li> +</ul> diff --git a/files/ca/mdn/kuma/index.html b/files/ca/mdn/kuma/index.html new file mode 100644 index 0000000000..b9c1ddc40d --- /dev/null +++ b/files/ca/mdn/kuma/index.html @@ -0,0 +1,26 @@ +--- +title: 'Kuma: plataforma wiki de MDN' +slug: MDN/Kuma +tags: + - Kuma + - Landing + - MDN Meta +translation_of: MDN/Kuma +--- +<div>{{MDNSidebar}}</div> + +<div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>Kuma és el codi Django que impulsa MDN Web Docs.</span></span></p> + +<p>{{SubpagesWithSummaries}}</p> + +<h2 id="Involucreu-vos_amb_Kuma">Involucreu-vos amb Kuma</h2> + +<p>Per involucrar-vos amb Kuma:</p> + +<ul> + <li>Visiteu el <a href="https://github.com/mozilla/kuma">projecte Kuma en Github</a>.</li> + <li>Consulteu la <a href="https://github.com/mozilla/kuma/blob/master/CONTRIBUTING.md">Guia de contribucions.</a></li> + <li>Si cal, aprofundiu en la <a href="http://kuma.readthedocs.org/en/latest/">documentació completa de Kuma</a>.</li> +</ul> diff --git a/files/ca/mdn/structures/index.html b/files/ca/mdn/structures/index.html new file mode 100644 index 0000000000..e926c505af --- /dev/null +++ b/files/ca/mdn/structures/index.html @@ -0,0 +1,14 @@ +--- +title: Estructures de documents +slug: MDN/Structures +tags: + - Landing + - MDN Meta + - Structures +translation_of: MDN/Structures +--- +<div>{{MDNSidebar}}</div><div>{{IncludeSubnav("/en-US/docs/MDN")}}</div> + +<p>Al llarg de MDN, hi ha diverses estructures de documents que s'utilitzen repetidament, per proporcionar una presentació coherent d'informació en articles MDN. A continuació, es mostren articles que descriuen aquestes estructures, de manera que, com autor de MDN, podeu reconèixer-les, aplicar-les i modificar-les segons correspongui als documents que escriviu, editeu o traduïu.</p> + +<p>{{LandingPageListSubPages()}}</p> diff --git a/files/ca/mdn_at_ten/index.html b/files/ca/mdn_at_ten/index.html new file mode 100644 index 0000000000..5f61d9d876 --- /dev/null +++ b/files/ca/mdn_at_ten/index.html @@ -0,0 +1,37 @@ +--- +title: MDN at 10 +slug: MDN_at_ten +translation_of: MDN_at_ten +--- +<p class="hidden"><span class="seoSummary">Celebra els 10 anys de documentar la teva Web.</span></p> + +<div class="column-container"> +<div class="column-8"> +<h2 id="La_història_de_l'MDN">La història de l'MDN</h2> + +<p>A principis del 2005, un petit grup d'idealistes va presentar un recurs nou, gratis, construït per la comunitat i en línia, per a tots els desenvolupadors Web. La seva brillant, però inconvencional idea es va convertir fins al avui en dia es coneix com Mozilla Developer Network. Deu anys després, la nostra comunitat global és més gran que mai, i junts encara ara estem creant nova documentació, codis d'exemples i recursos d'aprenentatge per a totes les tecnologies Web lliures, incloent CSS, HTML, JavaScript i tota la resta que fa que la Web oberta sigui tant poderosa com és ara.</p> + +<p><a class="learnmore" href="/en-US/docs/MDN_at_ten/History_of_MDN">Llegir més<span class="offscreen">about the history</span></a></p> + + +<h2 id="Contribuir_a_l'MDN">Contribuir a l'MDN</h2> + +<p>Durant deu anys, la comunitat de l'MDN ha estat documentat la Web oberta. Des de corregir simples errors tipogràfics a escriure completes suites per una API completament nova, tothom té alguna cosa que oferir i cap contribució és massa llarga o massa curta. Tenim al voltat de 90,000 pàgines de contingut que s'han escrit o traduït per membres de la nostra excepcional comunitat de Mozillians. Tu pots ésser un d'ells.</p> + +<p><a class="learnmore" href="/en-US/docs/MDN_at_ten/Contributing_to_MDN">Llegir més<span class="offscreen">about contributing</span></a></p> + +<p> </p> + +<p> </p> +</div> + +<div class="column-4">{{TenthCampaignQuote}}</div> + +<h2 id="Subnav">Subnav</h2> + +<ol> + <li><a href="/en-US/docs/MDN_at_ten/">MDN als 10</a></li> + <li><a href="/en-US/docs/MDN_at_ten/History_of_MDN">La història de l'MDN</a></li> + <li><a href="/en-US/docs/MDN_at_ten/Contributing_to_MDN">Contribuir a l'MDN</a></li> +</ol> +</div> diff --git a/files/ca/mozilla/firefox/index.html b/files/ca/mozilla/firefox/index.html new file mode 100644 index 0000000000..46f50448d3 --- /dev/null +++ b/files/ca/mozilla/firefox/index.html @@ -0,0 +1,85 @@ +--- +title: Firefox +slug: Mozilla/Firefox +tags: + - Firefox + - Mozilla + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Firefox +--- +<div>{{FirefoxSidebar}}</div> + +<p><a href="https://www.mozilla.org/firefox/">Firefox</a> is Mozilla's popular Web browser, available for multiple platforms including Windows, macOS, and Linux on the desktop and all Android and iOS mobile devices. With broad compatibility, the latest in Web technologies, and powerful development tools, Firefox is a great choice for both Web developers and end users.</p> + +<p>Firefox is an open source project; much of the code is contributed by our huge community of volunteers. <span class="seoSummary">Here you can learn about how to contribute to the Firefox project and you will also find links to information about the construction of Firefox add-ons, using the developer tools in Firefox, and other topics.</span></p> + +<div class="summary"> +<p>Learn how to create add-ons for <a href="https://www.mozilla.org/firefox/">Firefox</a>, how to develop and build Firefox itself, and how the internals of Firefox and its subprojects work.</p> +</div> + +<ul class="card-grid"> + <li><span>Developer release notes</span> + + <p><a href="/en-US/Firefox/Releases">Developer-focused release notes</a>; learn what new capabilities for both Web sites and add-ons arrive in each version of Firefox.</p> + </li> + <li><span>Project documentation</span> + <p>Get detailed information about <a href="/en-US/docs/Mozilla">the internals of Firefox</a> and its build system, so you can find your way around in the code.</p> + </li> + <li><span>Developer guide</span> + <p>Our <a href="/en-US/docs/Developer_Guide">developer guide</a> provides details on how to get and compile the Firefox source code, how to find your way around, and how to contribute to the project.</p> + </li> +</ul> + +<h2 id="Firefox_channels">Firefox channels</h2> + +<p>Firefox is available in five <strong>channels</strong>.</p> + +<h3 id="Firefox_Nightly">Firefox Nightly</h3> + +<p>Each night we build Firefox from the latest code in <a href="/en-US/docs/mozilla-central">mozilla-central</a>. These builds are for Firefox developers or those who want to try out the very latest cutting edge features while they're still under active development.</p> + +<p><a href="https://nightly.mozilla.org/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Nightly</a></p> + +<h3 id="Firefox_Developer_Edition">Firefox Developer Edition</h3> + +<p>This is a version of Firefox tailored for developers. Every six weeks, we take the features in Firefox Nightly that are stable enough and create a new version of Firefox Developer Edition. We also add some extra features for developers that are only available in this channel.</p> + +<p><a href="/en-US/Firefox/Developer_Edition">Learn more about Firefox Developer Edition</a>.</p> + +<p><a href="https://www.mozilla.org/firefox/developer/" style="width: 280px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Developer Edition</a></p> + +<h3 id="Firefox_Beta">Firefox Beta</h3> + +<p>After spending six weeks in Firefox Developer Edition, we take the features that are stable enough, and create a new version of Firefox Beta. Firefox Beta builds are for Firefox enthusiasts to test what's destined to become the next released Firefox version.</p> + +<p><a href="https://www.mozilla.org/firefox/channel/#beta" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox Beta</a></p> + +<h3 id="Firefox">Firefox</h3> + +<p>After stabilizing for another six weeks in Beta, we're ready to ship the new features to hundreds of millions of users in a new release version of Firefox.</p> + +<p><a href="https://www.mozilla.org/firefox/channel/#firefox" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox</a></p> + +<h3 id="Firefox_Extended_Support_Release_(ESR)">Firefox Extended Support Release (ESR)</h3> + +<p>Firefox ESR is the long-term support edition of Firefox for desktop for use by organizations including schools, universities, businesses and others who need extended support for mass deployments.</p> + +<p><a href="/en-US/Firefox/Firefox_ESR">Learn more about Firefox Extended Support Release</a>.</p> + +<p><a href="https://www.mozilla.org/firefox/organizations/all/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Download Firefox ESR</a></p> + +<h2 id="Contents">Contents</h2> + +<p>{{LandingPageListSubpages}}</p> + +<h2 id="Firefox_profiles">Firefox profiles</h2> + +<p>If you find yourself using multiple Firefox channels—or just multiple configurations—on a regular basis, you should read how to <a href="/en-US/docs/Mozilla/Firefox/Multiple_profiles">use multiple Firefox profiles</a> by turning Firefox's Profile Manager and other profile management tools to your advantage.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="https://mail.mozilla.org/listinfo/firefox-dev">Mailing list</a></li> + <li><a href="https://wiki.mozilla.org/Release_Management/Calendar">Release schedule</a></li> +</ul> diff --git a/files/ca/mozilla/firefox/releases/index.html b/files/ca/mozilla/firefox/releases/index.html new file mode 100644 index 0000000000..85e10ef375 --- /dev/null +++ b/files/ca/mozilla/firefox/releases/index.html @@ -0,0 +1,12 @@ +--- +title: Firefox developer release notes +slug: Mozilla/Firefox/Releases +tags: + - Firefox + - NeedsTranslation + - TopicStub +translation_of: Mozilla/Firefox/Releases +--- +<p>This page provides links to the "Firefox X for developers" articles for each Firefox release. These notes let you see what features were added and bugs eliminated in each version of Firefox.</p> +<div class="multiColumnList"> + {{ListSubpages("",1,0,1)}}</div> diff --git a/files/ca/mozilla/index.html b/files/ca/mozilla/index.html new file mode 100644 index 0000000000..c31f00d459 --- /dev/null +++ b/files/ca/mozilla/index.html @@ -0,0 +1,13 @@ +--- +title: Mozilla +slug: Mozilla +tags: + - NeedsTranslation + - TopicStub +translation_of: Mozilla +--- +<div> + {{draft}}</div> +<p>Això serà d'aquí poc una impressionant pàgina per interns de Mozilla. Per ara, no.</p> +<div> + {{ListSubpages}}</div> diff --git a/files/ca/mozilla/javascript_code_modules/index.html b/files/ca/mozilla/javascript_code_modules/index.html new file mode 100644 index 0000000000..487ba06684 --- /dev/null +++ b/files/ca/mozilla/javascript_code_modules/index.html @@ -0,0 +1,154 @@ +--- +title: JavaScript code modules +slug: Mozilla/JavaScript_code_modules +tags: + - Add-ons + - Extensions + - JavaScript + - Modules + - NeedsTranslation + - TopicStub + - XPCOM +translation_of: Mozilla/JavaScript_code_modules +--- +<div> + {{gecko_minversion_header("1.9")}}</div> +<p>JavaScript code modules let multiple privileged JavaScript scopes share code. For example, a module could be used by Firefox itself as well as by extensions, in order to avoid code duplication.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 id="General_topics">General topics</h2> + <dl> + <dt> + <a href="/en-US/docs/JavaScript_code_modules/Using" title="./Using">Using JavaScript code modules</a></dt> + <dd> + An introduction to how to use JavaScript code modules.</dd> + <dt> + <a href="/en-US/docs/Components.utils.import" title="Components.utils.import">Component.utils.import</a></dt> + <dd> + How to import a JavaScript code module.</dd> + <dt> + <a href="/en-US/docs/Components.utils.unload" title="Components.utils.unload">Component.utils.unload</a> {{gecko_minversion_inline("7.0")}}</dt> + <dd> + How to unload a JavaScript code module.</dd> + <dt> + <a href="/en-US/docs/Code_snippets/Modules" title="Code_snippets/Modules">Code snippets: Modules</a></dt> + <dd> + Examples of how to use code modules.</dd> + <dt> + <a class="external" href="http://wiki.mozilla.org/Labs/JS_Modules">Mozilla Labs JS Modules</a></dt> + <dd> + This page features a list of JS modules, along with download links and documentation, that extension developers can use in their code.</dd> + </dl> + <dl> + </dl> + </td> + <td> + <h2 id="Standard_code_modules">Standard code modules</h2> + <dl> + <dt> + <a href="/en-US/docs/Addons/Add-on_Manager" title="Addons/Add-on_Manager">AddonManager.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Interface to install, manage, and uninstall add-ons.</dd> + <dt> + <a href="/en-US/docs/Addons/Add-on_Repository" title="Addons/Add-on Repository">AddonRepository.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Allows searching of the add-ons repository.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Assert.jsm" title="./Assert.jsm">Assert.jsm</a> {{gecko_minversion_inline("28.0")}}</dt> + <dd> + Implements the <a href="http://wiki.commonjs.org/wiki/Unit_Testing/1.1" title="http://wiki.commonjs.org/wiki/Unit_Testing/1.1">CommonJS Unit Testing specification version 1.1</a>, which provides a basic, standardized interface for performing in-code logical assertions with optional, customizable error reporting.</dd> + <dt> + <a href="/en-US/docs/Mozilla/js-ctypes" title="./ctypes.jsm">ctypes.jsm</a> {{fx_minversion_inline("3.6")}}</dt> + <dd> + Provides an interface that allows JavaScript code to call native libraries without requiring the development of an XPCOM component.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/DeferredTask.jsm" title="./DeferredTask.jsm">DeferredTask.jsm</a> {{gecko_minversion_inline("18.0")}}</dt> + <dd> + Run a task after a delay.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Dict.jsm" title="./Dict.jsm">Dict.jsm</a> {{gecko_minversion_inline("5.0")}}</dt> + <dd> + Provides an API for key/value pair dictionaries.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/DownloadLastDir.jsm" title="./DownloadLastDir.jsm">DownloadLastDir.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Provides the path to the directory into which the last download occurred.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm" title="./Downloads.jsm">Downloads.jsm</a> {{gecko_minversion_inline("23.0")}}</dt> + <dd> + Provides a single entry point to interact with the downloading capabilities of the platform.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/FileUtils.jsm" title="./FileUtils.jsm"><span style="font-weight: bold;">FileUtils.jsm</span></a> {{gecko_minversion_inline("1.9.2")}}</dt> + <dd> + Provides helpers for dealing with files.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Geometry.jsm" title="./Geometry.jsm">Geometry.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Provides routines for performing basic geometric operations on points and rectangles.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/ISO8601DateUtils.jsm" title="./ISO8601DateUtils.jsm">ISO8601DateUtils.jsm</a></dt> + <dd> + Provides routines to convert between JavaScript <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Date" title="JavaScript/ Reference/Global Objects/Date"><code>Date</code></a> objects and ISO 8601 date strings.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Log.jsm">Log.jsm</a> (formerly log4moz) {{gecko_minversion_inline("27.0")}}</dt> + <dd> + Provides a <a href="https://en.wikipedia.org/wiki/Log4j">log4j</a> style API for logging log messages to various endpoints, such as the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a> or a file on disk. This module was formerly</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/NetUtil.jsm" title="./NetUtil.jsm"><span style="font-weight: bold;">NetUtil.jsm</span></a></dt> + <dd> + Provides helpful networking utility functions, including the ability to easily copy data from an input stream to an output stream asynchronously.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/openLocationLastURL.jsm" title="./openLocationLastURL.jsm">openLocationLastURL.jsm</a> {{gecko_minversion_inline("1.9.1.4")}}</dt> + <dd> + Provides access to the last URL opened using the "Open Location" option in the File menu.</dd> + <dt> + <a href="/en-US/docs/JavaScript_OS.File" title="/en-US/docs/JavaScript_OS.File">osfile.jsm</a> {{gecko_minversion_inline("16.0")}}</dt> + <dd> + Provides routines to access files. Read, write, rename, create directories, ...</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/PerfMeasurement.jsm" title="./PerfMeasurement.jsm">PerfMeasurement.jsm</a> {{fx_minversion_inline("4.0")}}</dt> + <dd> + Provides access to low-level hardware and OS performance measurement tools.</dd> + <dt> + <a href="/en-US/docs/Localization_and_Plurals" title="Localization and Plurals">PluralForm.jsm</a></dt> + <dd> + Provides an easy way to get the correct plural forms for the current locale, as well as ways to localize to a specific plural rule.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/PopupNotifications.jsm" title="./PopupNotifications.jsm">PopupNotifications.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Provides an easy way to present non-modal notifications to users.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm" title="./Promise.jsm">Promise.jsm</a> {{gecko_minversion_inline("25.0")}}</dt> + <dd> + Implements the <a class="external" href="https://github.com/promises-aplus/promises-spec/blob/1.0.0/README.md" title="https://github.com/promises-aplus/promises-spec/blob/1.0.0/README.md">Promises/A+</a> proposal as known in April 2013.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm" title="./Services.jsm">Services.jsm</a> {{gecko_minversion_inline("2.0")}}</dt> + <dd> + Provides getters for conveniently obtaining access to commonly-used services.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/source-editor.jsm" title="./source-editor.jsm">source-editor.jsm</a> {{fx_minversion_inline("11.0")}}</dt> + <dd> + The Source Editor is used by developer tools such as the Style Editor; this interface implements the editor and lets you interact with it.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Sqlite.jsm" title="./Sqlite.jsm">Sqlite.jsm</a> {{gecko_minversion_inline("20.0")}}</dt> + <dd> + A Promise-based API to {{ interface("mozIStorage") }}/SQLite.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Task.jsm" title="./Task.jsm">Task.jsm</a> {{gecko_minversion_inline("17.0")}}</dt> + <dd> + Implements a subset of <a class="external" href="http://taskjs.org/" title="http://taskjs.org/">Task.js</a> to make sequential, asynchronous operations simple, using the power of JavaScript's <code>yield</code> operator.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Timer.jsm" title="/en-US/docs/Mozilla/JavaScript_code_modules/Timer.jsm">Timer.jsm </a>{{gecko_minversion_inline("22.0")}}</dt> + <dd> + A pure JS implementation of <code>window.setTimeout</code>.</dd> + <dt> + <a href="/en-US/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm" title="./XPCOMUtils.jsm">XPCOMUtils.jsm</a></dt> + <dd> + Contains utilities for JavaScript components loaded by the JS component loader.</dd> + </dl> + </td> + </tr> + </tbody> +</table> diff --git a/files/ca/mozilla/persona/biblioteques_i_extensions/index.html b/files/ca/mozilla/persona/biblioteques_i_extensions/index.html new file mode 100644 index 0000000000..489ba64299 --- /dev/null +++ b/files/ca/mozilla/persona/biblioteques_i_extensions/index.html @@ -0,0 +1,163 @@ +--- +title: Biblioteques i extensions +slug: Mozilla/Persona/Biblioteques_i_extensions +translation_of: Archive/Mozilla/Persona/Libraries_and_plugins +--- +<p>Vols utilitzar Persona en el teu lloc web o blog? Implementar Persona des de zero <a href="https://developer.mozilla.org/en-US/docs/Persona/Quick_Setup" title="/en-US/docs/Persona/Quick_Setup">és fàcil</a>, però amb les extensions i les biblioteques llistades aquí pots anar més ràpid!</p> +<p>Aquesta pàgina enumera tres tipus de biblioteques:</p> +<ol> + <li><strong>Extensions</strong> que integren Persona en marcs (<em>frameworks</em>) existents y sistemes de gestió de continguts (CMS)</li> + <li><strong>Biblioteques</strong> que són útils en la construcció de noves extensions o en integrar Persona en un lloc des de zero</li> + <li><strong>Tota la resta</strong> de programari relacionat amb Persona, incloent biblioteques para a convertir el vostre domini en un proveïdor d'identitat Persona</li> +</ol> +<p>Aquesta és una llista mantinguda per la comunitat. Si ha creat una biblioteca o una extensió, afegeix-lo a la llista.</p> +<div class="note"> + Aquesta pàgina està en procés de revisió i algunes extensions poden estar desactualitzades. Revisi les extensions abans d'usar-les.</div> +<h2 id="Extensions">Extensions</h2> +<h3 id="Clojure">Clojure</h3> +<ul> + <li>Noir: <a href="https://github.com/tmarble/nongrata" title="https://github.com/tmarble/nongrata">https://github.com/tmarble/nongrata</a></li> + <li>ring / cemerick.friend / cljs: <a href="https://github.com/osbert/persona-kit" title="https://github.com/osbert/persona-kit">https://github.com/osbert/persona-kit</a></li> +</ul> +<h3 id="Cold_Fusion">Cold Fusion</h3> +<ul> + <li>CFML: <a href="https://github.com/gregmoser/cfpersona" title="https://github.com/gregmoser/cfpersona">https://github.com/gregmoser/cfpersona</a></li> +</ul> +<h3 id="Haskell">Haskell</h3> +<ul> + <li>Yesod: <a href="https://github.com/yesodweb/authenticate" title="https://github.com/yesodweb/authenticate">https://github.com/yesodweb/authenticate</a></li> +</ul> +<h3 id="Java">Java</h3> +<ul> + <li>Spring: <a href="https://github.com/webdetails/SpringSecurityBrowserID" title="https://github.com/webdetails/SpringSecurityBrowserID">https://github.com/webdetails/SpringSecurityBrowserID</a></li> + <li>Lutece: <a href="http://dev.lutece.paris.fr/plugins/module-mylutece-persona/" title="https://dev.lutece.paris.fr/plugins/module-mylutece-persona/">http://dev.lutece.paris.fr/plugins/module-mylutece-persona/</a></li> +</ul> +<h3 id="JavaScript">JavaScript</h3> +<ul> + <li>Mootools: <a href="http://mootools.net/forge/p/browserid" title="http://mootools.net/forge/p/browserid">http://mootools.net/forge/p/browserid</a></li> + <li>jQuery: <a href="https://github.com/altryne/browserID-jQuery" title="https://github.com/altryne/browserID-jQuery">https://github.com/altryne/browserID-jQuery</a></li> + <li>Meteor: <a href="https://github.com/vladikoff/meteor-accounts-persona" title="https://github.com/vladikoff/meteor-accounts-persona">https://github.com/vladikoff/meteor-accounts-persona</a></li> +</ul> +<h3 id="Node.js">Node.js</h3> +<ul> + <li>Express: <a href="https://github.com/jbuck/express-persona" title="https://github.com/jbuck/express-persona">https://github.com/jbuck/express-persona</a></li> + <li>Express / Jungles: <a href="https://npmjs.org/package/jungles-auth-persona" title="https://npmjs.org/package/jungles-auth-persona">https://npmjs.org/package/jungles-auth-persona</a></li> + <li>Passport: <a href="https://github.com/jaredhanson/passport-browserid" title="https://github.com/jaredhanson/passport-browserid">https://github.com/jaredhanson/passport-browserid</a></li> + <li>Express / connect - connect-auth: <a href="https://github.com/ciaranj/connect-auth" title="https://github.com/ciaranj/connect-auth">https://github.com/ciaranj/connect-auth</a></li> + <li>Persona + LevelDB session storage: <a href="https://github.com/maxogden/doorknob" title="/en-US/docs/">https://github.com/maxogden/doorknob</a></li> +</ul> +<h3 id="PHP">PHP</h3> +<ul> + <li>CakePHP: <a href="https://github.com/overflow636/ofbid" title="https://github.com/overflow636/ofbid">https://github.com/overflow636/ofbid</a> and <a href="https://github.com/markomarkovic/cakephp-plugin-persona" title="https://github.com/markomarkovic/cakephp-plugin-persona">https://github.com/markomarkovic/cakephp-plugin-persona</a></li> + <li>DokuWiki: <a href="https://github.com/Rudloff/dokuwiki-browserid" title="https://github.com/Rudloff/dokuwiki-browserid">https://github.com/Rudloff/dokuwiki-browserid</a></li> + <li>Dotclear: <a href="http://plugins.dotaddict.org/dc2/details/browserID" title="http://plugins.dotaddict.org/dc2/details/browserID">http://plugins.dotaddict.org/dc2/details/browserID</a></li> + <li>Drupal: <a href="https://drupal.org/project/persona" title="https://drupal.org/project/persona">https://drupal.org/project/persona</a></li> + <li>Elgg: <a href="http://community.elgg.org/plugins/1154520/1.0/persona" title="/en-US/docs/">http://community.elgg.org/plugins/1154520/1.0/persona</a></li> + <li>Joomla: <a href="http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567" title="http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567">http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/18567</a></li> + <li>Midgard MVC: <a href="https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php" title="https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php">https://github.com/midgardproject/midgardmvc_core/blob/master/services/authentication/browserid.php</a></li> + <li>MyBB: <a href="https://github.com/Rudloff/mybb-browserid" title="https://github.com/Rudloff/mybb-browserid">https://github.com/Rudloff/mybb-browserid</a></li> + <li>SPIP: <a href="http://www.spip-contrib.net/BrowserID" title="http://www.spip-contrib.net/BrowserID">http://www.spip-contrib.net/BrowserID</a></li> + <li>Symfony2: <a href="https://github.com/Proxiweb/PersonaBundle" title="https://github.com/Proxiweb/PersonaBundle">https://github.com/Proxiweb/PersonaBundle</a>, <a href="https://github.com/bitgrave/BGPersonaBundle" title="https://github.com/bitgrave/BGPersonaBundle">https://github.com/bitgrave/BGPersonaBundle</a>, <a href="https://github.com/ahilles107/BrowserIDBundle" title="https://github.com/ahilles107/BrowserIDBundle">https://github.com/ahilles107/PersonaBundle</a></li> + <li>Tiki: <a href="http://dev.tiki.org/Mozilla+Persona" title="http://dev.tiki.org/Mozilla+Persona">http://dev.tiki.org/Mozilla+Persona</a></li> + <li>WordPress / bbPress 2: <a href="http://wordpress.org/extend/plugins/browserid/" title="http://wordpress.org/extend/plugins/browserid/">http://wordpress.org/extend/plugins/browserid/</a></li> +</ul> +<h3 id="Python">Python</h3> +<ul> + <li>CherryPy: <a href="https://bitbucket.org/jaraco/jaraco.persona">https://bitbucket.org/jaraco/jaraco.persona</a></li> + <li>Django: <a href="https://github.com/mozilla/django-browserid" title="https://github.com/mozilla/django-browserid">https://github.com/mozilla/django-browserid</a> (see <a href="http://godjango.com/11-browser-id/" title="http://godjango.com/11-browser-id/">screencast</a>)</li> + <li>Django Social Auth: <a href="https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py" title="https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py">https://github.com/omab/django-social-auth/blob/master/social_auth/backends/browserid.py</a></li> + <li>Django 1.5 and Python 3: <a href="https://github.com/mozillaperu/MozTanta-Persona" title="/en-US/docs/">https://github.com/mozillaperu/MozTanta-Persona</a></li> + <li>Flask: <a href="http://pypi.python.org/pypi/Flask-BrowserID" title="http://pypi.python.org/pypi/Flask-BrowserID">http://pypi.python.org/pypi/Flask-BrowserID</a></li> + <li>Google App Engine: <a href="https://github.com/psawaya/BrowserID-GAE" title="https://github.com/psawaya/BrowserID-GAE">https://github.com/psawaya/BrowserID-GAE</a></li> + <li>Pyramid: <a href="http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/" title="http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/">http://www.rfk.id.au/blog/entry/painless-auth-pyramid-browserid/</a></li> + <li>Pyramid: <a href="https://github.com/madjar/pyramid_persona/" title="https://github.com/madjar/pyramid_persona/">https://github.com/madjar/pyramid_persona/</a> (see <a href="http://compiletoi.net/quick-authentication-on-pyramid-with-persona.html" title="http://compiletoi.net/quick-authentication-on-pyramid-with-persona.html">blog post</a>)</li> + <li>Repoze: <a href="https://github.com/mozilla-services/repoze.who.plugins.browserid" title="https://github.com/mozilla-services/repoze.who.plugins.browserid">https://github.com/mozilla-services/repoze.who.plugins.browserid</a></li> + <li>Tornado: <a href="http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app" title="http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app">http://www.peterbe.com/plog/integrate-browserid-in-a-tornado-web-app</a></li> + <li>Twisted: <a href="https://github.com/warner/browserid-cred" title="https://github.com/warner/browserid-cred">https://github.com/warner/browserid-cred</a></li> + <li>web.py: <a href="https://github.com/oscarfroberg/browserid-webpy" title="https://github.com/oscarfroberg/browserid-webpy">https://github.com/oscarfroberg/browserid-webpy</a></li> + <li>WSGI: <a href="https://github.com/ianb/wsgibrowserid" title="https://github.com/ianb/wsgibrowserid">https://github.com/ianb/wsgibrowserid</a></li> +</ul> +<h3 id="Ruby">Ruby</h3> +<ul> + <li>Devise: <a href="https://rubygems.org/gems/devise-browserid" title="https://rubygems.org/gems/devise-browserid">https://rubygems.org/gems/devise-browserid</a></li> + <li>Devise: <a href="https://github.com/denschub/devise_browserid_authenticatable" title="https://github.com/denschub/devise_browserid_authenticatable">https://github.com/denschub/devise_browserid_authenticatable</a></li> + <li>OmniAuth: <a href="https://github.com/intridea/omniauth-browserid" title="https://github.com/intridea/omniauth-browserid">https://github.com/intridea/omniauth-browserid</a></li> + <li>Rails: <a href="http://rubygems.org/gems/browserid-rails" title="http://rubygems.org/gems/browserid-rails">http://rubygems.org/gems/browserid-rails</a></li> + <li>Sinatra: <a href="http://rubygems.org/gems/sinatra-browserid" title="http://rubygems.org/gems/sinatra-browserid">http://rubygems.org/gems/sinatra-browserid</a></li> + <li>Warden / Rack: <a href="https://rubygems.org/gems/warden-browserid" title="/en-US/en-US/docs/">https://rubygems.org/gems/warden-browserid</a></li> +</ul> +<h3 id="Erlang">Erlang</h3> +<ul> + <li>CouchDB: <a href="https://github.com/iriscouch/browserid_couchdb" title="https://github.com/iriscouch/browserid_couchdb">https://github.com/iriscouch/browserid_couchdb</a></li> +</ul> +<h3 id="Altres">Altres</h3> +<ul> + <li>Apache: <a href="https://github.com/mozilla/mod_browserid" title="/Link_Type_Article_Title_Lookup_/_Link_Text_Attachments_URL">https://github.com/mozilla/mod_browserid</a></li> + <li>Cyrus SASL: <a href="https://github.com/ozten/sasl-browserid" title="https://github.com/ozten/sasl-browserid">https://github.com/ozten/sasl-browserid</a></li> + <li>PhoneGap: <a href="https://github.com/couchbaselabs/cordova-browserid" title="https://github.com/couchbaselabs/cordova-browserid">https://github.com/couchbaselabs/cordova-browserid</a></li> +</ul> +<p>¿No veus el teu llenguatge o marc (<em>framework</em>) a la lista? <a class="external" href="http://identity.mozilla.com/post/31008721633/" title="http://identity.mozilla.com/post/31008721633/">LoginRadius</a>, un widget d'autenticació, ofrereix una integració de Persona per a una àmplia varietat de plataformes.</p> +<h2 id="Biblioteques">Biblioteques</h2> +<h3 id="C">C</h3> +<ul> + <li><a href="https://github.com/PADL/gss_browserid" title="https://github.com/PADL/gss_browserid">https://github.com/PADL/gss_browserid</a> (libbrowserid component)</li> +</ul> +<h3 id="Go">Go</h3> +<ul> + <li><a href="https://github.com/elathan/gobrowserid" title="https://github.com/elathan/gobrowserid">https://github.com/elathan/gobrowserid</a></li> +</ul> +<h3 id="Haskell_2">Haskell</h3> +<ul> + <li><a href="http://hackage.haskell.org/package/authenticate" title="http://hackage.haskell.org/package/authenticate">http://hackage.haskell.org/package/authenticate</a></li> +</ul> +<h3 id=".Net">.Net</h3> +<ul> + <li><a href="https://github.com/cvrajeesh/NBrowserID" title="https://github.com/cvrajeesh/NBrowserID">https://github.com/cvrajeesh/NBrowserID</a></li> + <li><a href="http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm" title="http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm">http://www.codeguru.com/csharp/.net/net_asp/using-browserid-authentication-in-asp.net-web-sites.htm</a></li> + <li><a href="https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3" title="https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3">https://github.com/fernandozamoraj/BrowserIdDemoWithMVC3</a> (see <a href="http://fernandozamorajimenez.blogspot.com/2012/04/integrating-browserid-with-mvc3.html" title="http://fernandozamorajimenez.blogspot.com/2012/04/integrating-browserid-with-mvc3.html">blog post</a>)</li> + <li><a href="https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo" title="https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo">https://github.com/sergiotapia/ASP.Net-MVC3-Persona-Demo</a></li> +</ul> +<h3 id="Node.js_2">Node.js</h3> +<ul> + <li><a href="https://github.com/chilts/browserid-verify-node" title="https://github.com/chilts/browserid-verify-node">https://github.com/chilts/browserid-verify-node</a></li> + <li><a href="https://github.com/substack/persona-id" title="https://github.com/substack/persona-id">https://github.com/substack/persona-id</a></li> + <li><a href="https://github.com/lloyd/node-browserid" title="https://github.com/lloyd/node-browserid">https://github.com/lloyd/node-browserid</a></li> +</ul> +<h3 id="Perl">Perl</h3> +<ul> + <li><a href="https://github.com/chilts/Net-BrowserID-Verify" title="https://github.com/chilts/Net-BrowserID-Verify">https://github.com/chilts/Net-BrowserID-Verify</a></li> +</ul> +<h3 id="PHP_2">PHP</h3> +<ul> + <li><a href="https://github.com/Falco20019/php-browseridlib" title="https://github.com/Falco20019/php-browseridlib">https://github.com/Falco20019/php-browseridlib</a></li> + <li><a href="https://github.com/raymondjavaxx/php5-browserid" title="https://github.com/raymondjavaxx/php5-browserid">https://github.com/raymondjavaxx/php5-browserid</a></li> +</ul> +<h3 id="Python_2">Python</h3> +<ul> + <li><a href="https://github.com/mozilla/PyBrowserID" title="https://github.com/mozilla/PyBrowserID">https://github.com/mozilla/PyBrowserID</a></li> +</ul> +<h3 id="Ruby_2">Ruby</h3> +<ul> + <li><a href="https://github.com/chilts/browserid-verify-ruby" title="https://github.com/chilts/browserid-verify-ruby">https://github.com/chilts/browserid-verify-ruby</a></li> +</ul> +<h2 id="Tota_la_resta">Tota la resta</h2> +<h3 id="Perl_2">Perl</h3> +<ul> + <li>Perl/CGI IdP: <a href="https://github.com/benkard/mulkyid" title="https://github.com/benkard/mulkyid">https://github.com/benkard/mulkyid</a></li> +</ul> +<h3 id="Python_3">Python</h3> +<ul> + <li>WSGI IdP: <a href="https://bitbucket.org/djc/persona-totp" title="https://bitbucket.org/djc/persona-totp">https://bitbucket.org/djc/persona-totp</a></li> +</ul> +<h3 id="Ruby_3">Ruby</h3> +<ul> + <li>Rack IdP: <a href="https://rubygems.org/gems/browserid-provider" title="https://rubygems.org/gems/browserid-provider">https://rubygems.org/gems/browserid-provider</a> (see <a href="https://rin.no/category/browserid-2/" title="https://rin.no/category/browserid-2/">blog post</a>)</li> +</ul> +<h3 id="PHP_3">PHP</h3> +<ul> + <li>Symfony2 IdP: <a href="https://github.com/gigablah/GBPersonaProviderBundle" title="https://github.com/gigablah/persona-provider-bundle">https://github.com/gigablah/GBPersonaProviderBundle</a></li> +</ul> +<h3 id="Racket">Racket</h3> +<ul> + <li>web-server module: <a href="https://github.com/cosmez/racket-persona">https://github.com/cosmez/racket-persona</a></li> +</ul> diff --git a/files/ca/mozilla/persona/considerasions_de_seguretat/index.html b/files/ca/mozilla/persona/considerasions_de_seguretat/index.html new file mode 100644 index 0000000000..455645d8ef --- /dev/null +++ b/files/ca/mozilla/persona/considerasions_de_seguretat/index.html @@ -0,0 +1,58 @@ +--- +title: Consideracions de Seguretat +slug: Mozilla/Persona/Considerasions_de_Seguretat +tags: + - Persona +translation_of: Archive/Mozilla/Persona/Security_Considerations +--- +<p><span id="result_box" lang="ca"><span class="hps">Quan</span> <span class="hps">afegeixes</span> <span class="hps">suport per</span> <span class="hps">Persona</span> <span class="hps">al vostre lloc web</span><span>,</span> <span class="hps">ella pren</span> <span class="hps">tantes</span> <span class="hps">mesures de</span> <span class="hps">seguretat</span> <span class="hps">com pot.</span> <span class="hps">No obstant això</span><span>,</span> <span class="hps">algunes</span> <span class="hps">mesures de</span> <span class="hps">seguretat</span> <span class="hps">només</span> <span class="hps">poden</span> <span class="hps">ser manejades</span> <span class="hps">pel teu lloc</span> <span class="hps">web</span><span>.</span> <span class="hps">Aquestes</span> <span class="hps">són</span> <span class="hps">llistades</span> <span class="hps">a continuació</span><span>.</span></span></p> +<h2 id="Essential_practices" name="Essential_practices">Pràctiques essencials</h2> +<h3 id="Verify_assertions_on_your_server" name="Verify_assertions_on_your_server">Verifica les assercions en el servidor</h3> +<p>En utilitzar Persona, es passen les assercions d'identitat a la funció onlogin passat a {{ domxref("navigator.id.watch()") }}. Vostè sempre ha de passar a l'asserció del seu servidor per a la verificació, i només el servidor ha de resoldre la concessió dels permisos d'usuari addicionals basats en el resultat de la verificació:</p> +<pre class="brush:js;">// Inside navigator.id.watch({ ... +onlogin: function(assertion) { + // A user wants to log in! Here you need to: + // 1. Send the assertion to your backend for verification and to create a session. + // 2. Update your UI. +}, +</pre> +<p>Si tracta de verificar l'asserció utilitzant JavaScript executant-se al navegador de l'usuari, algun usuari maliciós podria suplantar la identitat d'un altre usuari legítim injectant codi i subvertint el teu codi JavaScript. Això és possible a causa que no es té control del navegador de l'usuari, on s'executa el codi.</p> +<p>Com esmentem línies a dalt, sempre ha de passar l'asserció al seu servidor per a la verificació. Fins i tot si esteu utilitzant l'API de verificació remota.</p> +<h3 id="Explicitly_specify_the_audience_parameter" name="Explicitly_specify_the_audience_parameter"><span class="short_text" id="result_box" lang="ca"><span class="hps">Especifiqueu</span> <span class="hps">explícitament</span> <span class="hps">el paràmetre</span> <span class="hps">audiència</span></span></h3> +<p>Per verificar l'asserció, ha de realitzar una petició POST a <code>https://verifier.login.persona.org/verify</code>. La petició inclou el paràmetre anomenat audience:</p> +<pre><code>assertion=<ASSERTION>&audience=https://mysite.com:443"</code></pre> +<p>El paràmetre audience és requerit. Sempre ha d'especificar explícitament audience en el seu codi, o a la configuració del seu codi. Específicament:</p> +<ul> + <li>No confiï en la capçalera o header Host enviat pel navegador de l'usuari.</li> + <li>No confiï en paràmetres explícits enviats pel navegador de l'usuari, però generats usant JavaScript, p. e. document.location.</li> +</ul> +<p>Si deixes que el navegador de l'usuari t'enviï el paràmetre audience, un lloc web maliciós pot reutilitzar les assercions del <em>seu</em> lloc web per autenticar-se al <em>vostre</em> lloc web.</p> +<h3 id="Verify_SSL_certificates" name="Verify_SSL_certificates">Verifica els certificats SSL</h3> +<p>Per a verificar una declaració, has de fer un petició POST a <code>https://verifier.login.persona.org/verify</code>. Comprova que la teva petició HTTPS verifiqui el certificat enviat des del servidor contra un certificat arrel fiable. Si no ho fas, un atacant podria presentar-se com <code>verifer.login.persona.org</code> i realitzar verificacions falses.</p> +<p>Revisa que la llibreria que fas servir per fer la comanda verifiqui els certificats correctament, i que has iniciat això amb un(s) certificat(s) arrel apropiat(s).</p> +<p>Per exemple, el <a href="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen" title="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen">mòdul</a><a href="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen" title="http://docs.python.org/release/2.7.3/library/urllib2.html#urllib2.urlopen"> urllib2</a> estàndard de Python 2.7 no valida certificats del servidor. En lloc d'això, recomanem utilitzar els mòduls "<a href="http://pypi.python.org/pypi/requests" title="http://pypi.python.org/pypi/requests">requests</a>" o "<a href="http://pypi.python.org/pypi/urllib3" title="http://pypi.python.org/pypi/urllib3">urllib3</a>" en Python 2.x, o la classe estàndard <code>http.client.HTTPSConnection</code> en Python 3.x. Per Perl, assegura't que fas servir almenys la versió 6.0 de <code>libwww-perl</code>. Depenent del llenguatge, llibreria, i sistema operatiu que estiguis usant, necessitaràs utilitzar algun CA (Certificate Authority) fiable o simplement el CA usat per <code>verifier.login.persona.org</code>.</p> +<h3 id="Implementa_proteccions_CSRF">Implementa proteccions CSRF</h3> +<p>En un atac d'inici de sessió per CSRF (Cross-Site Request Forgery), l'atacant aconsegueix que l'usuari iniciï sessió dins del lloc web fent servir les credencials de l'atacant.</p> +<p>Per exemple: un usuari visita una web maliciosa que conté un element form. L'atribut action del form està configurat per fer una petició HTTP POST a <a href="http://www.google.com/login" title="http://www.google.com/login">http://www.google.com/login</a>, donant-li el username i password de l'atacant. Quan l'usuari envia al form, la petició és enviada a Google, s'inicia sessió i el servidor de Google configura una galeta al navegador de l'usuari. Ara l'usuari sense saber-ho ha iniciat sessió amb el compte Google de l'atacant.</p> +<p>L'atac pot ser usat per reunir informació sensible de l'usuari. Per exemple, <a href="https://www.google.com/history/" title="https://www.google.com/history/">Web</a><a href="https://www.google.com/history/" title="https://www.google.com/history/"> History</a> de Google té la característica de registrar tots els termes de cerca de l'usuari. Si l'usuari inicia sessió dins del compte Google de l'atacant i l'atacant té la característica Web History activada, l'usuari li estarà enviant tota la seva informació a l'atacant.</p> +<p>Els atacs d'inici de sessió CSRF, i defenses potencials en contra d'aquests són documentats amb més detall a <a href="http://www.adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf" title="http://www.adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf">Robust Defenses for Cross-Site Request Forgery</a> (PDF). Aquests atacs no són específics de Persona: la majoria de mecanismes de connexió són potencialment vulnerables a ells.</p> +<p>Hi ha una varietat de tècniques, les quals poden ser usades per protegir un lloc d'atacs de CSRF login, les quals són documentades amb més detall en l'estudi abans esmentat.</p> +<p>Una proposta és crear un identificador secret al servidor, compartit amb el navegador, i requerir al navegador que el proporcioni quan realitzi una comanda d'inici de sessió. Per exemple:</p> +<ol> + <li>Tan aviat com l'usuari visiti el seu lloc, abans que aquest intenti iniciar sessió, creï una sessió per a ell al servidor. Emmagatzemeu l'ID de la sessió en una galeta del navegador.</li> + <li>Al servidor, generi un text aleatori d'almenys 10 caràcters alfanumèrics. Un UUID generat aleatòriament és una bona opció. Això és un token CSRF. Emmagatzemi això en la sessió.</li> + <li>Enviï el CSRF token el navegador a través de JavaScript incrustat o HTML com una variable oculta del formulari.</li> + <li>Assegureu-vos que l'enviament AJAX o la petició POST del formulari inclogui el token CSRF.</li> + <li>Al costat del servidor, abans d'acceptar la declaració, comproveu que el token CSRF enviat concorda amb el prèviament desat per la sessió.</li> +</ol> +<h2 id="Millores">Millores</h2> +<h3 id="Content_Security_Policy_(CSP)" name="Content_Security_Policy_(CSP)">Polítiques de seguretat de continguts (CSP)</h3> +<p><a href="/en-US/docs/Security/CSP" title="Security/CSP">Content Security Policy</a> (CSP) és una capa extra de seguretat que ajuda a detectar i mitigar certs tipus d'atacs, incloent Cross Site Scripting (XSS) i atacs d'injecció de dades. Aquests atacs són usats per a tot, des robatori de dades a desconfiguració del lloc o distribució de malware.<br> + <br> + Si utilitzes CSP al teu lloc, és possible que necessitis modificar les teves polítiques per permetre Persona. Depenent de la teva política, pots necessitar:</p> +<ul> + <li> Eliminar javascript inline: URIs i reemplaçar amb codi carregat des d'un arxiu script addicional. L'arxiu pot buscar elements basant-se en el seu ID, i després agafar l'element configurant {{ domxref("element.onclick", "onclick") }} o cridant a {{ domxref("element.addEventListener()", "addEventListener()") }}.</li> + <li>Permetre <code>https://login.persona.org</code> com a <code>script-src</code> i <code>frame-src </code>perquè l'arxiu pugui carregar el fitxer remot <code>include.js</code> i aquest arxiu pugui comunicar-se amb la implementació de Persona.</li> +</ul> +<p>Un exemple de la configuració d'Apache pot incloure:</p> +<pre><span class="diff-content"><span class="idiff">Header set X-Content-Security-Policy: "default-src 'self'; frame-src 'self' https://login.persona.org ; script-src 'self' https://login.persona.org"</span></span></pre> diff --git a/files/ca/mozilla/persona/criptografia/index.html b/files/ca/mozilla/persona/criptografia/index.html new file mode 100644 index 0000000000..3cb0597fb0 --- /dev/null +++ b/files/ca/mozilla/persona/criptografia/index.html @@ -0,0 +1,21 @@ +--- +title: Criptografia +slug: Mozilla/Persona/Criptografia +tags: + - Persona +translation_of: Archive/Mozilla/Persona/Crypto +--- +<p>El sistema d'identitat de persona utilitza el xifrat de clau pública per assegurar la confiança i seguretat en el procés d'autenticació.</p> +<p>Per què funciona el sistema descrit a <span style="line-height: inherit;"><a href="/ca/docs/Persona/Proveidors_d_Identitat" title="https://developer.mozilla.org/en-US/docs/Mozilla/Persona/Identity_Provider_Overview?redirectlocale=en-US&redirectslug=Persona%2FIdentity_Provider_Overview">Panoràmica de proveïdors d'identitat</a>?</span></p> +<h3 id="Cadena_de_confiança">Cadena de confiança</h3> +<p>El navegador de l'usuari emmagatzema localment petites peces d'informació per a cadascuna de les identitats de l'usuari: una adreça de correu electrònic, un parell de claus, i un certificat de l'IdP (Identity Provider) associat.</p> +<p>El parell de claus de l'usuari és un parell criptogràfic DSA o RSA estàndard que és generat i guardat localment en el navegador de l'usuari. El certificat és signat per l'IdP associat a la identitat de l'usuari escollida. Aquests certificats estan dissenyats per no durar més de 24 hores i poden ser proporcionats de nou quan caduquen, sempre que l'usuari tingui una sessió activa a l'IdP. Els parells de claus mai són compartits entre ordinadors ni entre navegadors.</p> +<p><img alt="" class="internal" src="/@api/deki/files/6299/=Persona_chain_of_trust.png" style="width: 901px; height: 282px;"></p> +<p>Com es descriu a la <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Persona/Protocol_Overview?redirectlocale=en-US&redirectslug=Persona%2FProtocol_Overview" title="https://developer.mozilla.org/en-US/docs/Mozilla/Persona/Protocol_Overview?redirectlocale=en-US&redirectslug=Persona%2FProtocol_Overview">Panoràmica del protocol</a>, el navegador de l'usuari és capaç de generar i signar assercions d'identitat efímeres especifíques per al lloc. Quan es disposa d'aquestes assercions i de la informació del certificat de l'usuari, el lloc és capaç de verificar la identitat d'aquest usuari. L'autenticitat dels certificats ha de ser verificada obtenint la clau pública de l'IdP, la qual és publicada en un document disponible sobre SSL.</p> +<p>D'aquesta manera, la seguretat de Persona depèn de que la clau privada de l'usuari i la clau privada del domini es mantinguin en secret i de que la connexió SSL al IdP sigui segura. Si es trenca la seguretat en qualsevol d'aquests punts, la seguretat de la identitat de l'usuari es pot veure compromesa.</p> +<h3 id="Generant_parells_de_claus_IdP">Generant parells de claus IdP</h3> +<p>Per als IDPs (Identity Providers), el <a href="https://github.com/mozilla/jwcrypto" title="https://github.com/mozilla/jwcrypto">paquet jwcrypto</a> proporciona una eina de línia de comandes, generate-keypair, la qual genera les claus adequades per a l'ús amb Persona. Com que les claus generades ja estan serializadas a JSON, la clau pública és adequada per a la seva inclusió directa al camp de claus públiques de l'arxiu <a href="https://developer.mozilla.org/en-US/docs/BrowserID/.well-known-browserid">/.well-known/browserid</a> de l'IdP.</p> +<h3 id="Certificat_i_format_d'asserció">Certificat i format d'asserció</h3> +<p>Si us plau, consulteu la <a href="https://github.com/mozilla/id-specs/blob/prod/browserid/index.md" title="https://github.com/mozilla/id-specs/blob/prod/browserid/index.md">especificació BrowserID</a> per a informació més detallada, però a grans trets, tant els certificats com les assercions són cadenes amb tres parts: una capçalera, un cos i una signatura criptogràfica. Cada part està codificada separadament en <a href="https://tools.ietf.org/html/rfc4648#section-5" title="https://tools.ietf.org/html/rfc4648#section-5">base64url</a>, i concatenada delimitant cada part amb caràcters ".". El cos no està xifrat, és text pla que es pot llegir si es decodifica en base64url.</p> +<p><img alt="" class="internal" src="/@api/deki/files/6300/=JWT.png" style="width: 595px; height: 111px;"></p> +<p>Els certificats i les assercions són empaquetats junts en una "asserció recolzada" quan l'usuari s'intenta autenticar en un lloc. El paquet és creat concatenant un certificat i una asserció, separats per un "~".</p> diff --git a/files/ca/mozilla/persona/index.html b/files/ca/mozilla/persona/index.html new file mode 100644 index 0000000000..0f1e4db805 --- /dev/null +++ b/files/ca/mozilla/persona/index.html @@ -0,0 +1,152 @@ +--- +title: Persona +slug: Mozilla/Persona +tags: + - Persona +translation_of: Archive/Mozilla/Persona +--- +<div class="callout-box"> + <p><strong>¡Estigues en contacte o rep ajuda!</strong></p> + <p>Segueix <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">el nostre bloc</a>, uneix-te a la <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">nostra llista de correu</a>, o troba'ns a <a class="link-irc" href="irc://irc.mozilla.org/identity" title="irc://irc.mozilla.org/identity">#identity</a> al <a class="link-https" href="https://wiki.mozilla.org/IRC" title="https://wiki.mozilla.org/IRC"> IRC</a>.</p> +</div> +<p><a href="https://login.persona.org/" title="https://login.persona.org/">Mozilla Persona</a> és un sistema per a iniciar sessió en webs des de qualsevol navegador, fàcil d'usar i fàcil d'instalar. Funciona a la <a href="/en-US/docs/persona/Browser_compatibility" title="/en-US/docs/persona/Browser_compatibility">majoria de navegadors</a>, i pots començar-lo a emprar des d'<a href="/en-US/docs/Persona/Quick_Setup" title="/en-US/docs/Persona/Quick_Setup">ara mateix</a>.</p> +<p>Perquè hauries d'emprar Persona a la teva web?</p> +<ol> + <li><strong>Persona elimina completament les contrasenyes específiques de cada lloc web, </strong>alliberant als usuaris i a les webs de la càrrega de crear, gestionar i emmagatzemar de forma segura les contrasenyes.<br> + </li> + <li><strong>Persona és fàcil d'usar.</strong> Amb tan sols dos clics un usuari de Persona pot identificar-se i accedir en una nova web com <a href="http://voo.st" title="http://voo.st">Voost</a> o <a href="http://crossword.thetimes.co.uk/" title="http://crossword.thetimes.co.uk/">The Times Crossword</a>, evitant l'aspror associada a la creació d'un nou compte.<br> + </li> + <li><strong>Persona és fàcil d'implementar</strong><strong>. </strong>Els desenvolupadors poden afegir Persona en una web en menys d'una tarda.<br> + </li> + <li>El millor de tot, és que no hi ha "<strong>lock-in"</strong>. És a dir, no hi ha una dependència de per vida amb Persona, perqué els desenvolupadors reben una adreça de correu verificada per cada un dels seus usuaris, i per una altra banda els usuaris poden usar qualsevol adreça de correu amb el sistema Persona, sigui quin sigui el seu proveïdor de correu.</li> +</ol> +<p>A més, Persona només pot anar a millor: s'ha construit sobre un <strong>protocol obert i descentralitzat, </strong>és a dir, dissenyat per permetre una <strong>integració directa en els navegadors</strong> i un <strong>suport nadiu pels proveïdors de correu</strong>. Les webs que implementin Persona avui experimentaran automàticament aquests avantatges i millores, sense haver de canviar el seu codi.</p> +<div class="note"> + <strong>Nota:</strong> Persona és un desenvolupament molt actiu. Segueix <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">el nostre bloc</a> per aprendre sobre noves característiques i funcionalitats, o uneix-te a la <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">nostra llista de correu</a> i dona'ns també la teva opinió i sugerències!</div> +<h2 id="Emprant_Persona_a_la_teva_web">Emprant Persona a la teva web</h2> +<div class="topicpage-table"> + <div> + <div class="section"> + <h3 id="Com_començar">Com començar</h3> + <dl> + <dt> + <a href="/en-US/docs/Persona/Why_Persona" title="BrowserID/Why_BrowserID">Perquè Persona?</a></dt> + <dd> + Llegeix sobre les raons per implementar Persona a la teva web, i com aquest sistema treballa comparat amb d'altres sistemes d'identificació i autenticació.</dd> + <dt> + <a href="/en-US/docs/Persona/Quick_Setup" title="BrowserID/Quick setup">Configuració ràpida</a></dt> + <dd> + Una passejada ràpida mostrant com integrar Persona a la teva web.</dd> + </dl> + </div> + <div class="section"> + <h3 id="API_de_Persona">API de Persona</h3> + <dl> + <dt> + <a href="/en-US/docs/DOM/navigator.id" title="navigator.id">Guia de l'API de navigator.id</a></dt> + <dd> + Guia de l'objecte <code>navigator.id</code> , que els desenvolupadors poden emprar per a integrar Persona a la seva web.</dd> + <dt> + <a href="/en-US/docs/Persona/Remote_Verification_API" title="BrowserID/Remote_Verification_API">Guia de l'API per a la verificació</a></dt> + <dd> + Guia de l'API per la verificació remota al servidor</dd> + <dd> + <code>https://verifier.login.persona.org/verify</code>.</dd> + </dl> + </div> + </div> + <div> + <div class="section"> + <h3 id="Guies">Guies</h3> + <dl> + <dt> + <a href="/en-US/docs/Persona/Security_Considerations" title="BrowserID/Security considerations">Consideracions de seguretat</a></dt> + <dd> + Bones pràctiques i tècniques per estar segur de que la teva implementació de Persona és segura.</dd> + <dt> + <a href="/en-US/docs/Persona/Browser_compatibility" title="/Browser_compatibility">Navegadors i compatibilitat</a></dt> + <dd> + Aprèn exactament quins navegadors suporten Persona.</dd> + <dt> + <a href="/en-US/docs/Persona/Internationalization" title="Internacionalització i idiomes">Internacionalització</a></dt> + <dd> + Aprèn com Persona manega els diferents idiomes.</dd> + <dt> + <a href="/en-US/docs/Persona/The_implementor_s_guide" title="/Internationalization">La guia de l'implementador</a></dt> + <dd> + Consells d'altres webs que ja han implementat Persona.</dd> + </dl> + </div> + <div class="section"> + <h3 id="Recursos">Recursos</h3> + <dl> + <dt> + <a class="link-https" href="/ca/docs/Persona/Biblioteques_i_extensions" title="https://github.com/mozilla/browserid/wiki/BrowserID-Libraries">Biblioteques i extensions</a></dt> + <dd> + Troba una biblioteca preparada per a usar en el teu llenguatge preferit de programació, el teu framework, bloc o CMS.</dd> + <dt> + <a class="link-https" href="https://github.com/mozilla/browserid-cookbook" title="https://github.com/mozilla/browserid-cookbook">El llibre de cuina de Persona</a></dt> + <dd> + Codis font d'exemple per implementar Persona en C# (MVC3), PHP, Node.JS, i més.</dd> + <dt> + <a href="/en-US/docs/persona/branding" title="persona/branding">Recursos gràfics</a></dt> + <dd> + Botons d'accés i d'altres gràfics per ajudar-te a presentar persona als teus usuaris.</dd> + </dl> + </div> + </div> +</div> +<div class="topicpage-table"> + <div class="section"> + <h2 id="Informació_per_a_proveïdors_d'identitat">Informació per a proveïdors d'identitat</h2> + <p>Si ets un proveïdor de correu o d'un altre servei d'identitat, fes una ullada als enllaços de sota per a aprendre sobre com convertir-te en un proveïdor d'identitat per al sistema Persona.</p> + <dl> + <dt> + <a href="/ca/docs/Persona/Proveidors_d_Identitat" title="IdP">Panoràmica sobre els IdP</a></dt> + <dd> + Una ullada ràpida al tema dels proveïdors d'identitat per a Persona (<strong>Id</strong>entity <strong>P</strong>roviders = IdP).</dd> + <dt> + <a href="/en-US/docs/Persona/Implementing_a_Persona_IdP" title="Guide to Implementing a Persona IdP">Implementant un IdP</a></dt> + <dd> + Una guia detallada de com arribar a ser un IdP.</dd> + <dt> + <a href="/en-US/docs/Persona/.well-known-browserid" title="https://developer.mozilla.org/en-US/docs/Persona/.well-known-browserid">.well-known/browserid</a></dt> + <dd> + Una panoramica de l'estructura i proposit de l'arxiu <code>.well-known/browserid</code>, que usen els IdP per anunciar el seu suport al protocol de Persona.</dd> + </dl> + </div> + <div class="section"> + <h2 id="El_projecte_Persona">El projecte Persona</h2> + <dl> + <dt> + <a href="/en-US/docs/Persona/Glossary" title="navigator.id">Glossari</a></dt> + <dd> + Definicions de la terminologia emprada a BrowserID i Persona.</dd> + <dt> + <a href="/en-US/docs/Persona/FAQ" title="BrowserID/FAQ">Preguntes freqüents</a></dt> + <dd> + Respostes a les preguntes més habituals.</dd> + <dt> + <a href="/en-US/docs/Persona/Protocol_Overview" title="BrowserID/Protocol overview">Panoràmica del protocol</a></dt> + <dd> + Una panoràmica de nivell tècnic mitjà per entendre el protocol base BrowserID.</dd> + <dt> + <a href="/en-US/docs/persona/Crypto" title="MDN">Criptografia</a></dt> + <dd> + Una ullada als elements criptogràfics emprats per Persona i BrowserID.</dd> + <dt> + <a class="link-https" href="https://github.com/mozilla/id-specs/blob/prod/browserid/index.md" title="https://github.com/mozilla/id-specs/blob/master/browserid/index.md">Especificacions</a></dt> + <dd> + Detalls tècnics en profunditat i actualitzats aquí.</dd> + <dt> + <a href="/en-US/docs/Persona/Bootstrapping_Persona" title="Persona/Bootstrapping_Persona">La web de Persona</a></dt> + <dd> + Per tenir Persona funcionant, estem hostetjant tres serveis a <a class="link-https" href="https://login.persona.org" rel="freelink">https://login.persona.org</a>: un proveïdor d'identitat anti-risc (<em>fallback Identity Provider</em>), una implementació portable de les APIs {{ domxref("navigator.id") }}, i un servei de verificació d'identitat.</dd> + <dt> + <a href="https://github.com/mozilla/browserid">El codi font de Persona</a></dt> + <dd> + El codi font de la web de Persona romàn a un repositori de GitHub. Són benvinguts els vostres "pulls"!</dd> + </dl> + </div> +</div> +<p> </p> diff --git a/files/ca/mozilla/persona/pmf/index.html b/files/ca/mozilla/persona/pmf/index.html new file mode 100644 index 0000000000..3084d5fdc5 --- /dev/null +++ b/files/ca/mozilla/persona/pmf/index.html @@ -0,0 +1,58 @@ +--- +title: Preguntes més freqüents +slug: Mozilla/Persona/PMF +tags: + - Persona +translation_of: Archive/Mozilla/Persona/FAQ +--- +<h3 id="Quina_és_la_diferència_entre_Mozilla_Persona_i_BrowserID">Quina és la diferència entre Mozilla Persona i BrowserID?</h3> +<p>Persona és una implementació completa d'un nou sistema d'accés distribuït de Mozilla.</p> +<p>BrowserID és el protocol obert que regeix el funcionament de Persona.</p> +<p>Com una analogia: Persona permet als usuaris iniciar sessió en els llocs que implementen BrowserID. De la mateixa manera, Firefox permet als usuaris navegar per la web implementant HTTP.</p> +<h3 id="Com_es_compara_Persona_amb_OpenID">Com es compara Persona amb OpenID?</h3> +<p>Persona i OpenID tenen objectius molt similars i una arquitectura similar. Ambdós sistemes redueixen el nombre de contrasenyes que un usuari necessita, i tots dos estan dissenyats per ser descentralitzats. Això vol dir que qualsevol domini pot presentar-se com a proveïdor d'identitat sense dependre d'una autoritat central.</p> +<p>Malgrat aquestes similituds, Persona és més fàcil d'usar i més fàcil d'afegir als llocs web. Persona també protegeix millor la privadesa dels usuaris. En concret:</p> +<dl> + <dt> + Persona és més fàcil per als usuaris</dt> + <dd> + Persona identifica els usuaris basant-se en les adreces de correu electrònic, que els usuaris ja coneixen, comprenen i associen naturalment amb les identitats en línia. Amb OpenID, els usuaris es veuen obligats a aprendre un nou nom d'usuari: una URL que no és intuïtiva.</dd> + <dd> + Iniciar sessió mitjançant Persona també és fàcil: després d'haver-se configurat per primera vegada, només son necessaris 2 clics per autenticar-se.</dd> + <dt> + Persona és més fàcil per als desenvolupadors</dt> + <dd> + Persona té una {{ domxref("navigator.id", "API simple") }} que només pren una tarda per entendre i començar a usar.</dd> + <dd> + Les identitats Persona <em>són</em> adreces de correu electrònic, per tant, els llocs web no necessiten demanar als usuaris més informació de contacte durant el registre.</dd> + <dd> + Atès que els usuaris coneixen i entenen la seva adreça de correu electrònic, els desenvolupadors no han de construir pàgines complexes amb botons d'inici de sessió per a tots els proveïdors populars d'OpenID.</dd> + <dt> + Persona protegeix millor la privacitat de l'usuari</dt> + <dd> + Pel seu disseny, OpenID permet als proveïdors d'identitat rastrejar els seus usuaris a la web: cada vegada que un usuari inicia sessió a un lloc web, el seu navegador es redirecciona al proveïdor d'identitat de l'usuari, i després torna a redireccionar-se al lloc. Aquestes redireccions exposen completament al proveïdor d'identitat la informació d'on va l'usuari.</dd> + <dd> + En contrast, el protocol BrowserID mai filtra informació de seguiment cap al proveïdor d'identitat. Més aviat, es comporta d'una manera similar al d'una targeta d'identificació: els usuaris obtenen credencials signades dels seus proveïdors d'identitat, que es poden presentar als llocs web com prova d'identitat. Els llocs web poden comprovar la validesa de les credencials sense haver de revelar la identitat d'un usuari al seu proveïdor d'identitat.</dd> +</dl> +<h3 id="Per_què_Persona_requereix_JavaScript">Per què Persona requereix JavaScript?</h3> +<p>Persona requereix JavaScript, però hi ha alguns usuaris que opten per bloquejar selectivament el JavaScript mitjançant l'ús de complements del navegador com NoScript. Molts d'aquests usuaris estan preocupats per les implicacions de privacitat de tenir habilitat JavaScript, ja que aquest s'utilitza sovint per rastrejar als visitants a través de llocs web.</p> +<p>No obstant això, en el cas de Persona, el JavaScript s'utilitza realment per millorar la privacitat de l'usuari, ja que permet al navegador realitzar operacions criptogràfiques en el costat del client. En fer aquestes operacions en el client, Persona evita la necessitat d'emmagatzemar les claus secretes en un altre lloc que no sigui en el propi navegador de l'usuari.</p> +<h3 id="Persona_garantitza_la_obtenció_d'una_adreça_de_correu_electrònic_vàlida_per_als_meus_usuaris">Persona garantitza la obtenció d'una adreça de correu electrònic vàlida per als meus usuaris?</h3> +<p>No, Persona només garanteix l'associació de l'usuari amb una adreça. Igual que amb qualsevol adreça de correu electrònic en qualsevol sistema d'inici de sessió, és possible que la direcció ja no funcioni o no sigui comprovada regularment per l'usuari. Per a la majoria dels usuaris, l'adreça de correu electrònic serà funcional.</p> +<h3 id="Com_verifica_Persona_l'associació_d'un_usuari_amb_una_adreça">Com verifica Persona l'associació d'un usuari amb una adreça?</h3> +<p>Persona li fa una petició al domini de l'adreça, i aquest és lliure de verificar els seus usuaris de la manera que elegeixi. Si el domini no és un proveïdor d'identitat nadiu, i per tant, no pot verificar els seus propis usuaris, el navegador sol·licita la verificació al proveïdor d'identitat de reserva (<em>fallback</em>) de Persona a <a href="https://login.persona.org" title="https://login.persona.org">https://login.persona.org</a>. Abans de certificar la identitat d'un usuari, el proveïdor d'identitat de reserva prova l'adreça, enviant-li d'un correu electrònic, i demanant-li a l'usuari que faci clic a l'enllaç que aquest conté.</p> +<h3 id="Com_puc_manejar_la_recuperació_d'un_compte_si_els_usuaris_perden_el_control_del_seu_correu_electrònic">Com puc manejar la recuperació d'un compte si els usuaris perden el control del seu correu electrònic?</h3> +<p>La millor manera de fer-ho és permetre als usuaris afegir una adreça de correu electrònic secundària en el seu compte. Veure <a href="/en-US/docs/Persona/The_implementor_s_guide/Adding_extra_email_addresses_with_Persona" title="/en-US/docs/Persona/The_implementor_s_guide/Adding_extra_email_addresses_with_Persona">"Addició d'adreces de correu electrònic addicionals amb Persona"</a>.</p> +<h3 id="Puc_allotjar_jo_mateix_include.js_o_l'he_incloure_des_de_httpslogin.persona.org">Puc allotjar jo mateix include.js, o l'he incloure des de <a class="link-https" href="https://login.persona.org" rel="freelink">https://login.persona.org</a>?</h3> +<p>El codi a <code>include.js</code> encara està subjecte a canvis. Encara no es recomana que s'allotji en cap servidor propi.</p> +<h3 id="Puc_verificar_les_afirmacions_a_nivell_local_o_he_de_fer_servir_el_servei_de_verificació_remot">Puc verificar les afirmacions a nivell local, o he de fer servir el servei de verificació remot?</h3> +<p>Per garantir la privacitat dels usuaris, és important que les assercions d'identitat es verifiquin a nivell local, i no amb el servei de verificació remota. No obstant això, el format de les afirmacions encara està subjecta a canvis, de manera que la verificació local encara no és recomanable. Tot i amb la verificació remota, Persona protegeix a l'usuari de seguiment amb el seu proveïdor d'identitat.</p> +<p>Una vegada que el protocol s'hagi estabilitzat, les biblioteques estaran disponibles per simplificar la verificació local. Seguiu el <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">Blog d'Identity</a> per saber quan és recomanable la verificació local.</p> +<h3 id="Quins_consells_hi_ha_per_a_la_migració_dels_usuaris_que_actualment_utilitzen_altres_mètodes_d'inici_de_sessió">Quins consells hi ha per a la migració dels usuaris que actualment utilitzen altres mètodes d'inici de sessió?</h3> +<p>Malgrat els beneficis de Persona, mai és fàcil de moure tots els usuaris a un nou sistema d'inici de sessió. Convenientment, l'enfocament que fa Persona amb les adreces de correu electrònic fa que sigui fàcil d'usar juntament amb els sistemes d'accés existents, pel que no han de canviar tots alhora.</p> +<p>Un enfocament especial de baixa fricció és suggerir Persona a usuaris que no recordin la contrasenya. En lloc de restablir les contrasenyes, els usuaris només cal que accedeixin amb Persona.</p> +<h3 id="Com_he_d'assenyalar_que_Sign_In_també_permet_la_creació_de_comptes_nous">Com he d'assenyalar que "Sign In" també permet la creació de comptes nous?</h3> +<h3 id="Com_puc_obtenir_informació_sobre_canvis_importants_en_BrowserID_com_APIs_noves_o_obsoletes">Com puc obtenir informació sobre canvis importants en BrowserID, com APIs noves o obsoletes?</h3> +<p>Quan un canvi que trenca la compatibilitat cap enrere o una funció queda obsoleta, s'anuncia a la llista de correu <a href="https://mail.mozilla.org/listinfo/persona-notices" title="https://mail.mozilla.org/listinfo/persona-notices">persona-notices</a>. Subscriu-t'hi.</p> +<p>Per obtenir informació sobre les noves funcions i millores, segueix el <a href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">blog de l'equip identity</a>.</p> +<p>Per a la discussió de desenvolupament, subscriu-te a la llista de correu <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">dev-identity</a>.</p> diff --git a/files/ca/mozilla/persona/proveidors_d_identitat/index.html b/files/ca/mozilla/persona/proveidors_d_identitat/index.html new file mode 100644 index 0000000000..672f0217f4 --- /dev/null +++ b/files/ca/mozilla/persona/proveidors_d_identitat/index.html @@ -0,0 +1,37 @@ +--- +title: Panoràmica dels Proveïdors d'Identitat +slug: Mozilla/Persona/Proveidors_d_Identitat +translation_of: Archive/Mozilla/Persona/Identity_Provider_Overview +--- +<p>Un proveïdor d'identitat Persona (IdP) és un domini que signa i certifica directament la identitat dels seus usuaris. Com les identitats Persona estan basades en direccions de correu electrònic, és un pas natural per a qualsevol domini que ofereixi correu electrònic convertir-se en IdP.</p> +<p>Si vostè té un nom de domini, pot esdevenir un IdP de Persona implementant el suport per al protocol BrowserID.</p> +<h2 id="El_document_de_suport_IdP">El document de suport IdP</h2> +<p>Els dominis anuncien la seva capacitat d'actuar com a IdPs mitjançant la publicació d'un document de suport a <code>/.well-known/browserid</code>. Aquest document formatat amb JSON conté tres valors:</p> +<ul> + <li><code>public-key</code>: La part pública de la clau de xifrat del domini.</li> + <li><code>authentication</code>: La pàgina del domini per demanar als usuaris que iniciïn sessió.</li> + <li><code>provisioning</code>: La pàgina del domini per certificar la identitat dels seus usuaris.</li> +</ul> +<p>Els llocs web utilitzen la clau pública per verificar l'autenticitat de les assercions d'identitat dels usuaris.</p> +<p>Els navegadors utilitzen els valors autenticació i aprovisionament per obtenir la certificació d'identitat dels usuaris.</p> +<p>Per obtenir més informació, incloent com els dominis poden delegar a d'altres IdP, vegeu la <a href="https://developer.mozilla.org/en-US/docs/Persona/.well-known-browserid" title="https://developer.mozilla.org/en-US/docs/BrowserID/.well-known-browserid"><code>/.well-known/browserid</code> documentation</a>.</p> +<h2 id="Com_interactuen_els_navegadors_amb_els_IdPs">Com interactuen els navegadors amb els IdPs</h2> +<p>Per demostrar com els navegadors i els IdPs interactuen, vegem què passa el primer cop que <code>alice@example.com</code> utilitza Persona per iniciar sessió en un lloc web.</p> +<ol> + <li>El navegador d'Alice obté el document de suport de <code>https://example.com/.well-known/browserid</code>.</li> + <li>El navegador d'Alice carrega de manera invisible la pàgina d'aprovisionament d'<code>example.com</code> i li demana que signi una clau pública certificant la identitat d'Alice.</li> + <li>Abans de signar la clau, <code>example.com</code> necessita proves de que l'usuari realment és Alice, així que li indica al navegador que ella necessita autenticar-se.</li> + <li>El navegador d'Alice li mostra a Alice la pàgina d'autenticació d'<code>example.com</code> i ella inicia sessió, establint una nova sessió a <code>example.com</code>.</li> + <li>El navegador d'Alice torna a carregar la pàgina d'aprovisionament i de nou li demana que signi la clau pública que certifica la identitat d'Alice.</li> + <li>La pàgina d'aprovisionament pot verificar la identitat d'Alice per la inspecció de la nova sessió. Satisfeta, signa un certificat que conté la clau pública d'Alice, la seva adreça de correu electrònic, i una data de caducitat del certificat.</li> +</ol> +<p>Durant la vigència del certificat signat, el navegador d'Alice pot crear assercions d'identitat vàlids per <code>alice@example.com</code> cada vegada que vol accedir a un lloc web amb Persona.</p> +<p>Els passos 3-5 poden ser omesos si Alice ja té una sessió vàlida amb <code>example.com</code>, per exemple, si ha iniciat sessió al correu web o a un portal d'intranet.</p> +<h2 id="Com_interactuen_els_llocs_web_amb_els_IdPs">Com interactuen els llocs web amb els IdPs</h2> +<p>Suposem que Alice vol accedir a <a href="http://123done.org/" title="http://123done.org/">123done.org</a>. El seu navegador generara i signara una asserció d'identitat que conté el certificat de més amunt i que presenta com a prova de la seva identitat.</p> +<p>En comparar la signatura de l'asserció d'identitat d'Alice amb la clau pública a l'interior del certificat signat, 123done pot estar segur de que el certificat li ha estat emès a la mateixa persona que ha generat l'asserció d'identitat. No obstant això, 123done encara ha de comprovar que el certificat és vàlid examinant la signatura.</p> +<p>Com que el certificat ha estat emès per a <code>alice@example.com</code>, 123done agafa al document de suport de <code>https://example.com/.well-known/browserid</code>. N'extreu la clau pública i la compara amb la signatura del certificat d'Alice. Si la clau coincideix amb la signatura, 123done sap que el certificat és legítim i pot finalment permetre que que Alice iniciï sessió.</p> +<p>Tingueu en compte que 123done no "ha trucat mai per telèfon a casa" o d'una altra manera ha revelat la identitat d'Alice quan ella ha iniciat sessió. Tan sols ha necessitat demanar un simple document a <code>example.com </code>que a més pot ser guardat a la memòria cau.</p> +<h2 id="Seguretat_i_confiança">Seguretat i confiança</h2> +<p>El protocol BrowserID, i per tant Persona, es basen en tècniques estàndard de criptografia de clau pública.</p> +<p>Pot consultar la nostra documentació sobre els <a href="/en/Persona/Crypto" title="https://developer.mozilla.org/en/Persona/Crypto">conceptes criptogràfics</a> que hi ha darrera de com funciona un IdP de Persona o pots llegir <a href="/en-US/docs/Persona/Implementing_a_Persona_IdP" title="/en-US/docs/Persona/Implementing_a_Persona_IdP">més detalls de com estan implementats els IdPs</a>.</p> diff --git a/files/ca/mozilla/projects/index.html b/files/ca/mozilla/projects/index.html new file mode 100644 index 0000000000..c1e43934a2 --- /dev/null +++ b/files/ca/mozilla/projects/index.html @@ -0,0 +1,14 @@ +--- +title: Projects +slug: Mozilla/Projects +tags: + - Mozilla + - NeedsContent + - NeedsTranslation + - Projects + - TopicStub +translation_of: Mozilla/Projects +--- +<p>{{ draft() }}</p> +<p>Below you'll find links to documentation about various Mozilla projects; these are often parts of Firefox or other products, but may also be used in other projects as well.</p> +<p>{{ LandingPageListSubpages() }}</p> diff --git a/files/ca/mozilla/tech/index.html b/files/ca/mozilla/tech/index.html new file mode 100644 index 0000000000..f9682e62e1 --- /dev/null +++ b/files/ca/mozilla/tech/index.html @@ -0,0 +1,14 @@ +--- +title: Mozilla technologies +slug: Mozilla/Tech +tags: + - Landing + - Mozilla + - NeedsTranslation + - Reference + - TopicStub + - XUL +translation_of: Mozilla/Tech +--- +<p>Mozilla has several technologies used as components of its projects. These are documented here. (flesh out this text).</p> +<p>{{LandingPageListSubpages}}</p> diff --git a/files/ca/rhino/index.html b/files/ca/rhino/index.html new file mode 100644 index 0000000000..67145c37b1 --- /dev/null +++ b/files/ca/rhino/index.html @@ -0,0 +1,19 @@ +--- +title: Rhino +slug: Rhino +tags: + - JavaScript + - NeedsTranslation + - Rhino + - TopicStub +translation_of: Mozilla/Projects/Rhino +--- +<img alt="Image:rhino.jpg" class="internal" src="/@api/deki/files/832/=Rhino.jpg"> +<p><strong>Rhino</strong> is an open-source implementation of <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine.</p> +<h4 id="Rhino_downloads" name="Rhino_downloads">Rhino downloads</h4> +<p>How to <a class="internal" href="/en/RhinoDownload" title="en/RhinoDownload">get source and binaries</a>. </p> +<h4 id="Rhino_documentation" name="Rhino_documentation">Rhino documentation</h4> +<p><a href="/en/Rhino_documentation" title="en/Rhino_documentation">Information on Rhino</a> for script writers and embedders.</p> +<h4 id="Rhino_help" name="Rhino_help">Rhino help</h4> +<p><a href="/en/Rhino/Community" title="en/Rhino/Community">Some resources</a> if you get stuck.</p> +<p>{{ languages( { "ja": "ja/Rhino" } ) }}</p> diff --git a/files/ca/rhino/runtime/index.html b/files/ca/rhino/runtime/index.html new file mode 100644 index 0000000000..9b1a610231 --- /dev/null +++ b/files/ca/rhino/runtime/index.html @@ -0,0 +1,63 @@ +--- +title: El temps d'execució de JavaScript +slug: Rhino/Runtime +translation_of: Mozilla/Projects/Rhino/Runtime +--- +<h2 id="Interpretació"><span id="result_box" lang="ca"><span title="Interpretation">Interpretació</span></span></h2> +<p><span id="result_box" lang="ca"><span title="Beginning with Rhino 1.4 Release 2, an interpretive mode is supported.">A partir de Rhino 1.4 Release 2 , una manera d'interpretació és compatible . </span><span title="When scripts are compiled in interpretive mode, an internal representation of the compiled form is created and stored rather than generating a Java class.">Quan està en la manera de compilar interpretativa , es crea una representació interna de la forma compilada i s'emmagatzema en lloc de generar una classe Java . </span><span title="Execution proceeds by evaluating this compiled form using support routines in Rhino.">Procedeix a l'execució de l'avaluació d'aquesta forma compilada utilitzant rutines de suport de Rhino.</span></span></p> +<h2 id="Compilació_de_Java_bytecodes"><span id="result_box" lang="ca"><span title="Compilation to Java Bytecodes">Compilació de Java bytecodes</span></span></h2> +<p><span id="result_box" lang="ca"><span title="For improved performance, Rhino may compile JavaScript scripts to Java bytecodes.">Per millorar el rendiment, Rhino pot compilar els scripts de JavaScript a codi de bytes de Java . </span><span title="The generated bytecodes in turn depend upon runtime support routines.">Els bytecodes generats al seu torn depenen de les rutines de suport en temps d'execució . </span><span title="Each JavaScript script or function is compiled to a separate class.">Cada seqüència de comandaments o la funció JavaScript es compila en una classe separada .</span><br> + <br> + <span title="Compilation of JavaScript source to class files is supported.">Recull de font estigui habilitat per a arxius de classes és compatible . </span><span title="It is possible to specify the class files as well as the packages to generate into.">És possible especificar els fitxers de classe, així com els paquets de generar en.</span></span></p> +<h2 id="Tipus_i_valors"><span id="result_box" lang="ca"><span title="Types and Values">Tipus i valors</span></span></h2> +<p><span id="result_box" lang="ca"><span title="There are six fundamental types in JavaScript.">Hi ha sis tipus fonamentals de JavaScript . </span><span title="These types are implemented with the following Java types and values:">Aquests tipus s'implementen amb els següents tipus i valors de Java :</span></span></p> +<table class="data"> + <thead> + <tr> + <th><span id="result_box" lang="ca"><span title="JavaScript fundamental type Java type">Tipus fonamental JavaScript</span></span></th> + <th><span id="result_box" lang="ca"><span title="JavaScript fundamental type Java type">tipus Java</span></span></th> + </tr> + </thead> + <tbody> + <tr> + <td><span id="result_box" lang="ca"><span title="Undefined A singleton object defined by Context.getUndefinedType()">Indefinit</span></span></td> + <td><span id="result_box" lang="ca"><span title="Undefined A singleton object defined by Context.getUndefinedType()">Un objecte Singleton definit per Context.getUndefinedType ( )</span></span></td> + </tr> + <tr> + <td>Nul</td> + <td><code>nul</code></td> + </tr> + <tr> + <td><span id="result_box" lang="ca"><span title="Boolean java.lang.Boolean">Boolean</span></span></td> + <td><code>java.lang.Boolean</code></td> + </tr> + <tr> + <td><span id="result_box" lang="ca"><span title="Number java.lang.Number, that is, any of java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Float, or java.lang.Double.">Nombre</span></span></td> + <td><span id="result_box" lang="ca"><span title="Number java.lang.Number, that is, any of java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Float, or java.lang.Double.">java.lang.Number , és a dir , qualsevol java.lang.Byte , java.lang.Short , java.lang.Integer , java.lang.Float o java.lang.Double . </span><span title="Not java.lang.Long, since a double representation of a long may lose precision.">No java.lang.Long , des d'una doble representació d'una llarga pot perdre precisió .</span></span></td> + </tr> + <tr> + <td><span id="result_box" lang="ca"><span title="String java.lang.String">Cadena</span></span></td> + <td><code>java.lang.String</code></td> + </tr> + <tr> + <td>O<span id="result_box" lang="ca"><span title="Object org.mozilla.javascript.Scriptable">bjecte</span></span></td> + <td><code>org.mozilla.javascript.Scriptable</code></td> + </tr> + </tbody> +</table> +<p><span id="result_box" lang="ca"><span title="In addition, ECMA refers to objects that implement [[Call]] as functions.">A més , ECMA es refereix a objectes que implementen [ [ Call ] ] com a funcions. </span><span title="These object types are represented by implementing the Function interface.">Aquests tipus d'objectes es representen mitjançant la implementació de la interfície de funcions .</span><br> + <br> + <span title="Since JavaScript is a dynamically typed language, the static Java type of a JavaScript value is java.lang.Object.">Atès que JavaScript és un llenguatge de tipus dinàmics, del tipus Java estàtica d'un valor Javascript és java.lang.Object.</span><br> + <br> + <span title="The behavior of the JavaScript engine is undefined if a value of any type other than the ones described above is introduced into JavaScript.">El comportament del motor de Javascript és indefinit si un valor de qualsevol tipus diferent de les descrites anteriorment s'introdueix en JavaScript. </span><span title="(This caveat does not apply to scripts that use LiveConnect; the Java values are wrapped and unwrapped as appropriate to conform to the above type constraints.)">(Aquesta advertència no s'aplica a seqüències d'ordres que utilitzen LiveConnect, els valors de Java estan solts i envasats segons sigui apropiat per ajustar-se a les restriccions de tipus més amunt.)</span></span></p> +<h2 id="Accés_a_la_propietat"><span id="result_box" lang="ca"><span title="Property Access">Accés a la propietat</span></span></h2> +<p><span id="result_box" lang="ca"><span title="Properties in JavaScript objects may be accessed using either string or numeric identifiers.">Propietats d'objectes de JavaScript pot accedir utilitzant cordes o identificadors numèrics. </span><span title="Conceptually, all accessors are converted to strings in order to perform the lookup of the property in the object.">Conceptualment, tots d'accés esdevenen cadenes per tal de realitzar la recerca de la propietat en l'objecte. </span><span title="However, this is not the implementation used in practice because a number to string conversion is too expensive to be performed on every array access.">No obstant això, aquesta no és la implementació usada en la pràctica a causa de que un nombre de conversió de cadena és massa car per ser realitzat en cada accés a una matriu.</span></span></p> +<p><span id="result_box" lang="ca"><span title="Instead, every property accessor method in Scriptable (has, get, set, remove, getAttributes, and setAttributes) has overloaded forms that take either a String or an int argument.">En canvi , tots els mètodes d'accés de propietat a</span></span> <a href="apidocs/org/mozilla/javascript/Scriptable.html">Scriptable</a> <span id="result_box" lang="ca"><span title="Instead, every property accessor method in Scriptable (has, get, set, remove, getAttributes, and setAttributes) has overloaded forms that take either a String or an int argument.">(ha , obtenir , establir , eliminar, getAttributes i SetAttributes ) ha sobrecarregat les formes que tenen una cadena o un argument int. </span><span title="It is the responsibility of the caller to invoke the appropriate overloaded form.">És responsabilitat de la persona que truca per invocar la forma sobrecarregada adequada. </span><span title='For example, evaluating the expression obj["3"] will invoke the get(int, Scriptable) method even though the property name was presented in the script as a string.'>Per exemple, l'avaluació de l'expressió obj ["3"] invocarà el mètode get (int , Scriptable) tot i que el nom de la propietat es presenta a la seqüència de comandaments com una cadena. </span><span title="Similarly, values of numbers that do not fix in integers (like 1.1 and 0x100000000) must be converted to strings.">De la mateixa manera, els valors dels nombres que no es fixen en els nombres enters (com 1.1 i 0x100000000) han de ser convertits en cadenes.</span></span></p> +<h2 id="Definició_d'objectes_d'acollida"><span id="result_box" lang="ca"><span title="Defining Host Objects">Definició d'objectes d'acollida</span></span></h2> +<p class="syntaxbox"><span id="result_box" lang="ca"><span title="Host objects are JavaScript objects that provide special access to the host environment.">Objectes host són objectes JavaScript que proporcionen accés especial a l'entorn host. </span><span title="For example, in a browser environment, the Window and Document objects are host objects.">Per exemple, en un entorn de navegador, els objectes Window i document són objectes d'acollida.</span><br> + <br> + <span title="The easiest way to define new host objects is by using ScriptableObject.defineClass().">La manera més fàcil per definir nous objectes d'acollida és mitjançant l'ús de </span></span><a href="apidocs/org/mozilla/javascript/ScriptableObject.html#defineClass(org.mozilla.javascript.Scriptable, java.lang.Class)">ScriptableObject.defineClass()</a>.<span id="result_box" lang="ca"><span title="The easiest way to define new host objects is by using ScriptableObject.defineClass()."> </span><span title="This method defines a set of JavaScript objects using a Java class.">Aquest mètode defineix un conjunt d'objectes de JavaScript usant una classe Java. </span><span title="Several of the examples define host objects this way.">Alguns dels exemples que defineixen els objectes d'acollida d'aquesta manera.</span><br> + <br> + <span title="If the services provided by defineClass are insufficient, try other methods of ScriptableObject and FunctionObject, such as defineProperty and defineFunctionProperties.">Si els serveis prestats per defineClass són insuficients , intenta amb altres mètodes de </span></span><a href="apidocs/org/mozilla/javascript/ScriptableObject.html">ScriptableObject</a><span id="result_box" lang="ca"><span title="If the services provided by defineClass are insufficient, try other methods of ScriptableObject and FunctionObject, such as defineProperty and defineFunctionProperties."> i </span></span><a href="apidocs/org/mozilla/javascript/FunctionObject.html">FunctionObject</a><span id="result_box" lang="ca"><span title="If the services provided by defineClass are insufficient, try other methods of ScriptableObject and FunctionObject, such as defineProperty and defineFunctionProperties.">, com </span></span><code>defineProperty</code><span id="result_box" lang="ca"><span title="If the services provided by defineClass are insufficient, try other methods of ScriptableObject and FunctionObject, such as defineProperty and defineFunctionProperties."> i </span></span><code>defineFunctionProperties.</code></p> +<h2 id="Contextos_i_Temes"><span id="result_box" lang="ca"><span title="Contexts and Threads">Contextos i Temes</span></span></h2> +<p><span id="result_box" lang="ca"><span title="Every thread that executes JavaScript must have an associated Context.">Cada subprocés que executa JavaScript ha de tenir un context associat. </span><span title="Multiple threads (with multiple associated Contexts) may act upon the same set of objects.">Múltiples fils (amb múltiples contextos associats) poden actuar sobre el mateix conjunt d'objectes. </span><span title="Any host objects that are defined are responsible for any sychronization required to run safely from multiple threads.">Tots els objectes d'acollida que es defineixen són responsables de qualsevol sincronització necessària per executar amb seguretat des de diversos subprocessos.</span></span></p> diff --git a/files/ca/tools/index.html b/files/ca/tools/index.html new file mode 100644 index 0000000000..9d23d66c33 --- /dev/null +++ b/files/ca/tools/index.html @@ -0,0 +1,213 @@ +--- +title: Firefox Developer Tools +slug: Tools +tags: + - Developing Mozilla + - Guide + - NeedsTranslation + - Tools + - TopicStub + - Web Development + - 'Web Development:Tools' + - 'l10n:priority' +translation_of: Tools +--- +<div>{{ToolsSidebar}}</div> + +<div class="summary"><span id="result_box" lang="ca"><span>Examinar,</span> <span>editar i</span> <span>depurar</span> <span>HTML</span><span>, CSS</span> <span>i JavaScript</span> <span>a l'escriptori</span> <span>i</span> <span>al mòbil</span></span></div> + +<div class="column-container zone-callout"><a href="https://www.mozilla.org/en-US/firefox/developer/" style="float: right; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Instal.lar Firefox Developer Edition</a> + +<h3 id="What's_new_in_Aurora.3F" name="What's_new_in_Aurora.3F"><span class="short_text" id="result_box" lang="ca"><span>Què hi ha de</span> <span>nou</span> <span>a Firefox</span> <span>Developer</span> <span>Edition</span><span>?</span></span></h3> + +<p><a href="/en-US/Firefox/Developer_Edition">Firefox Developer Edition</a> és una versió del Firefox adaptada per als desenvolupadors, que ofereix les últimes característiques de Firefox i eines de desenvolupament experimentals. L'actual versió de Developer Edition inclou aquestes actualitzacions en les eines de desenvolupament:</p> + +<ul> + <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Work_with_animations#Firefox_40">Millores en la vista d'Animacions</a></li> + <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#Get_help_for_CSS_properties">Obtenir ajuda de MDN per a la sintaxi de les propietats CSS</a></li> + <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Edit_CSS_filters">Filtres d'edició en el Inspector de Pàgina</a></li> + <li><a href="/en-US/docs/Tools/Web_Console#console_API_messages">La Consola Web mostra ara els misstages dels cooperants</a></li> + <li><a href="/en-US/docs/Tools/Network_Monitor#Filtering_by_URL">Filtrar sol.licituds per URL en el Monitor de Xarxa</a></li> + <li><a href="/en-US/docs/Tools/Network_Monitor#Context_menu">Moltes noves opcions del menu contextual en el Monitor de Xarxa</a></li> + <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#Filtering_rules">Regles de filtrat en el Inspector de Pàgina</a></li> +</ul> +</div> + +<div class="column-container zone-callout"><a href="http://mzl.la/devtools" style="float: right; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Comparteix les teves idees</a> + +<h3 id="Share_your_ideas" name="Share_your_ideas">Comparteix les teves idees</h3> + +<p>Demanar noves característiques en les eines de desenvolupament o votar per les idees d'altres desenvolupadors que estan demanant.</p> +</div> + +<p><img alt="" src="https://mdn.mozillademos.org/files/10529/inspector.png" style="display: block; height: 467px; margin-left: auto; margin-right: auto; width: 815px;"></p> + +<div class="column-container"> +<div class="column-half"> +<h2 id="Creating" name="Creating">Creació</h2> + +<p>Eines d'autor per a llocs web i aplicacions web.</p> + +<dl> + <dt><a href="/en-US/docs/Tools/Scratchpad">Bloc de notes (Scratchpad)</a></dt> + <dd><span id="result_box" lang="ca"><span>Un editor</span> <span>de text</span> <span>integrat</span> <span>a Firefox</span> <span>que us</span> <span>permet escriure</span> <span>i executar</span> <span>JavaScript.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Style_Editor">Editor d'Estils</a></dt> + <dd>Veure i editar els estils CSS de la pàgina actual.</dd> + <dt><a href="/en-US/docs/Tools/Shader_Editor">Editor Shader</a></dt> + <dd>Veure i editar vèrtexs i ombrejadors de fragments utilitzats per <a href="/en-US/docs/Web/WebGL">WebGL</a>.</dd> + <dt><a href="/en-US/docs/Tools/Web_Audio_Editor">Web Audio Editor</a></dt> + <dd><span id="result_box" lang="ca"><span>Examinar</span> <span>el gràfic</span> <span>de nodes</span> <span>d'àudio en un</span> <span>context</span> <span>d'àudio,</span> <span>i modificar els seus</span> <span>paràmetres.</span></span></dd> +</dl> +</div> + +<div class="column-half"> +<h2 id="Exploring" name="Exploring">Explorar i depurar</h2> + +<p>Examinar, explorar i depura llocs web i aplicacions web.</p> + +<dl> + <dt><a href="/en-US/docs/Tools/Web_Console">Consola Web</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure els missatges</span> <span>registrats en una</span> <span>pàgina</span> <span>web</span><span>, i interactuar</span> <span>amb</span> <span>la pàgina</span> <span>utilitzant</span> <span>JavaScript.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Page_Inspector">Inspector de Pàgina</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure i</span> <span>modificar la pàgina</span> <span>HTML i</span> <span>CSS.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Debugger">Depurador JavaScript</a></dt> + <dd><span id="result_box" lang="ca"><span>Parar</span><span>, pas a</span> <span>pas</span><span>, examinar</span> <span>i modificar el</span> <span>codi JavaScript</span> <span>que s'executa en</span> <span>una pàgina.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Network_Monitor">Monitor de xarxa</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure</span> <span>les</span> <span>sol·licituds</span> <span>de xarxa</span> que es <span>realitzen</span> <span>quan</span> <span>es carrega</span> <span>una pàgina.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Storage_Inspector">Inspector d'emmagatzematge</a></dt> + <dd><span id="result_box" lang="ca"><span>Inspeccionar les</span> cookies<span>,</span> <span>emmagatzematge local</span><span>,</span> <span>IndexedDB</span> <span>i</span> <span>emmagatzematge</span> <span>de les</span> <span>sessions</span> <span>presents</span> <span>en una pàgina.</span></span></dd> + <dt><a href="/en-US/docs/Tools/GCLI">Barra d'eines de desnvolupador</a></dt> + <dd><span id="result_box" lang="ca"><span>Una interfície</span> <span>de línia d'ordres</span> <span>per a les eines</span> <span>de desenvolupament.</span></span></dd> + <dt><a href="/en-US/docs/Tools/3D_View">Vista 3D</a></dt> + <dd><span id="result_box" lang="ca"><span>Visualització en</span> <span>3D</span> <span>de la pàgina.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Eyedropper">Comptagotes</a></dt> + <dd><span id="result_box" lang="ca"><span>Tria un</span> <span>color</span> <span>de la pàgina.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Working_with_iframes">Treballar amb iframes</a></dt> + <dd><span id="result_box" lang="ca"><span>Com</span> apun<span>tar a un</span> <span>iframe</span> <span>en particular.</span></span></dd> +</dl> +</div> +</div> + +<hr> +<div class="column-container"> +<div class="column-half"> +<h2 id="Mobile" name="Mobile">Mòbil</h2> + +<p><span id="result_box" lang="ca"><span>Eines</span> <span>per al</span> <span>desenvolupament</span> <span>mòbil.</span></span></p> + +<dl> + <dt><a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a></dt> + <dd><span id="result_box" lang="ca"><span>App</span> <span>Manager</span> <span>ha estat substituït</span> <span>per</span></span> <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>.</dd> + <dt><a href="/en-US/docs/Tools/WebIDE">WebIDE</a></dt> + <dd>Substitueix <span lang="ca"> </span> <span id="result_box" lang="ca"><span>a App</span> <span>Manager</span></span><span lang="ca"><span>,</span> <span>disponible a</span> <span>Firefox</span> <span>33</span> <span>en endavant.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Firefox_OS_Simulator">Simulador Firefox OS</a></dt> + <dd><span id="result_box" lang="ca"><span>Executar</span> <span>i depurar</span> <span>l'aplicació</span> <span>Firefox OS</span> <span>a l'escriptori,</span> <span>sense</span> <span>necessitat</span> <span>d'un veritable</span> <span>dispositiu de</span> <span>Firefox</span> <span>OS.</span></span></dd> + <dt><a href="/en-us/docs/Tools/Responsive_Design_View">Visualització sensible al diseny</a></dt> + <dd><span id="result_box" lang="ca"><span>Veureu</span> <span>com el vostre lloc</span> <span>web o aplicació</span> <span>es</span> <span>veu</span> <span>en diferents</span> <span>mides de pantalla</span> <span>sense</span> <span>canviar</span> <span>la mida de la</span> <span>finestra</span> <span>del navegador.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">Depurar Firefox per Android</a></dt> + <dd><span id="result_box" lang="ca"><span>Connectar </span><span>les</span> <span>eines de</span> <span>desenvolupament de Firefox</span> <span>per Android.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Depurar Firefox per Android amb WebIDE</a></dt> + <dd>Per Desktop Firefox 36+ / Android Firefox 35+ <span lang="ca"><span>, hi ha un</span> <span>procés</span> <span>més simple.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Valence">Valence</a></dt> + <dd><span id="result_box" lang="ca"><span>Connectar les</span> <span>eines</span> <span>per a desenvolupadors</span> <span>de Chrome</span> <span>en</span> <span>Android</span> <span>i Safari</span> <span>en iOS</span></span></dd> +</dl> +</div> + +<div class="column-half"> +<h2 id="Performance" name="Performance">Rendiment</h2> + +<p><span id="result_box" lang="ca"><span>Diagnosticar</span> <span>i solucionar</span> <span>problemes</span> <span>de rendiment.</span></span></p> + +<dl> + <dt><a href="/en-US/docs/Tools/Performance">Eina de rendiment</a></dt> + <dd>Analitza la capacitat de resposta general, el rendiment de Javascript i el disseny del lloc.</dd> + <dt><a href="/en-US/docs/Tools/Performance/Frame_rate">Gràfic de velocitat de fotogrames</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure la</span> <span>velocitat</span> <span>de fotogrames</span> <span>del vostre lloc</span><span>.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Performance/Waterfall">Waterfall</a></dt> + <dd><span id="result_box" lang="ca"><span>Esbrinar el que</span> <span>el navegador</span> <span>està</span> <span>fent mentre </span><span>executa</span> <span>el vostre lloc.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Performance/Call_Tree">Arbre de crides</a></dt> + <dd><span id="result_box" lang="ca"><span>Esbrinar on</span> <span>el vostre</span><span> codi</span> <span>JavaScript està</span> invertint mes <span>temps.</span></span></dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Tools/Performance/Flame_Chart">Gràfic de Flama</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure</span> <span>quines funcions</span> <span>estan</span> <span>a la pila</span> <span>al llarg</span> <span>d'un perfil</span> <span>de rendiment.</span></span> .</dd> + <dt><a href="/en-US/docs/Tools/Paint_Flashing_Tool">Eina Paint Flashing</a></dt> + <dd><span id="result_box" lang="ca"><span>Destaquen</span> <span>les</span> <span>parts</span> <span>de la pàgina que</span> <span>es repintan</span> <span>en resposta als</span> <span>esdeveniments.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Web_Console#Reflow_events">Registre d'esdeveniments de reflux</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure</span> <span>esdeveniments de</span> <span>reflux</span> <span>a la consola</span> <span>web.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Network_Monitor#Performance_analysis">Rendiment de la xarxa</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure quant</span> <span>temps</span> triga <span>les</span> <span>parts</span> <span>del vostre lloc</span> <span>han carregar-se</span><span>.</span></span></dd> +</dl> +</div> +</div> + +<hr> + + +<div class="column-container"> +<div class="column-half"> +<h2 id="Debugging_the_browser" name="Debugging_the_browser"><span id="result_box" lang="ca"><span>Depuració</span> <span>del navegador</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Per defecte</span><span>, les eines de</span> <span>desenvolupament estan</span> <span>associades a una</span> <span>pàgina</span> <span>o</span> <span>aplicació web.</span> <span>Però també</span> <span>es</span> <span>pot</span> <span>connectar al</span> <span>navegador</span> com un tot<span>.</span> <span>Això</span> <span>és útil per al</span> <span>navegador i el</span> <span>desenvolupament</span> <span>de complements.</span></span></p> + +<dl> + <dt><a href="/en-US/docs/Tools/Browser_Console">Consola del navegador</a></dt> + <dd><span id="result_box" lang="ca"><span>Veure</span> els <span>missatges</span> <span>registrats</span> <span>i els</span> <span>complements</span> <span>del navegador i</span> <span>executar</span> <span>codi JavaScript</span> <span>en l'àmbit del</span> <span>navegador.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Browser_Toolbox">Caixa d'eines del navegador</a></dt> + <dd><span id="result_box" lang="ca"><span>Fixar</span> <span>les</span> <span>eines</span> <span>de desenvolupament al</span> <span>navegador.</span></span></dd> +</dl> +</div> + +<div class="column-half"> +<h2 id="Extending_the_devtools" name="Extending_the_devtools">Ampliació dels DevTools</h2> + +<p>Les eines de desenvolupament estan dissenyades per a ser extensibles. Els complements del Firefox poden accedir a les eines de desenvolupament i els components que s'utilitzen per estendre les eines existents i afegir noves eines. Amb el protocol de depuració remota podeu implementar els vostres propis clients i servidors de depuració, el que us permet depurar llocs web utilitzant les seves pròpies eines o depurar diferents objectius utilitzant les eines de Firefox.</p> + +<dl> + <dt><a href="/en-US/docs/Tools/Adding_a_panel_to_the_toolbox">Afegir un nou panell per als devtools</a></dt> + <dd><span id="result_box" lang="ca"><span>Escriure</span> <span>un complement</span> <span>que afegeixi un</span> <span>nou panell</span> <span>a la caixa</span> <span>d'eines</span></span>.</dd> + <dt><a href="https://wiki.mozilla.org/Remote_Debugging_Protocol">Protocol de depuració remota</a></dt> + <dd><span id="result_box" lang="ca"><span>Protocol</span> <span>utilitzat</span> <span>per</span> <span>connectar les</span> <span>eines</span> <span>de desenvolupament de </span></span><span lang="ca"><span>Firefox per</span> <span> a</span> <span>un objectiu</span> <span>de depuració</span> <span>com una</span> <span>instància</span> <span>de Firefox o</span> <span>un dispositiu</span> <span>Firefox</span> <span>OS.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Editor">Editor de codi font</a></dt> + <dd><span id="result_box" lang="ca"><span>Un editor</span> <span>de codi</span> <span>integrat</span> <span>a Firefox</span> <span>que pot ser</span> <span>incorporat</span> <span>en el seu</span> <span>complement.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Debugger-API">Interfície de depuració</a></dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>API que permet</span> al <span>codi JavaScript</span> <span>observar</span> <span>l'execució</span> <span>d'un altre</span> <span>codi</span> <span>JavaScript.</span> <span>Les</span> <span>eines de</span> <span>desenvolupament de Firefox</span> <span>utilitzen aquesta</span> <span>API</span> <span>per a implementar el</span> <span>depurador</span> <span>de JavaScript.</span></span></dd> + <dt><a href="/en-US/docs/Tools/Web_Console/Custom_output">Sortida perosnalitzada de la consola web</a></dt> + <dd><span id="result_box" lang="ca"><span>Com estendre</span> <span>i personalitzar</span> <span>la sortida de la</span></span> <a href="/en-US/docs/Tools/Web_Console">Consola Web</a> i la <a href="/en-US/docs/Tools/Browser_Console">Consola del Navegador</a>.</dd> + <dt><a href="/en-US/docs/Tools/Example_add-ons">Exemple de complements de devtools</a></dt> + <dd><span id="result_box" lang="ca"><span>Utilitzeu aquests</span> <span>exemples</span> <span>per a</span> <span>comprendre com</span> <span>implementar un</span> <span>complement de DevTools.</span></span></dd> +</dl> +</div> +</div> + + + +<hr> +<h2 id="More_resources" name="More_resources">M<span id="result_box" lang="ca"><span>és recursos</span></span></h2> + +<p>Aquesta secció enumera els recursos que no són mantinguts per l'equip d'eines de desenvolupament de Mozilla, però que són àmpliament utilitzats pels desenvolupadors web. Hem inclòs alguns complements de Firefox en aquesta llista, però per a la llista completa vegeu en <a href="https://addons.mozilla.org/en-US/firefox/extensions/web-development/">addons.mozilla.org categories en "Desenvolupament Web”</a>.</p> + +<div class="column-container"> +<div class="column-half"> +<dl> + <dt><a href="https://www.getfirebug.com/">Firebug</a></dt> + <dd>Una eina de desenvolupament web molt popular i potent, incloent un depurador de Javascript, visualitzador i editor d'HTML i CSS i monitor de xarxa.</dd> + <dt><a href="/en-US/docs/Tools/Add-ons/DOM_Inspector">DOM Inspector</a></dt> + <dd><span id="result_box" lang="ca"><span>Inspeccionar,</span> <span>revisar</span> <span>i editar el</span> <span>DOM</span> <span>de pàgines</span> <span>web</span> <span>o finestres</span> <span>XUL.</span></span></dd> + <dt><a href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/">Desenvolupament web</a></dt> + <dd><span id="result_box" lang="ca"><span>Afegeix un</span> <span>menú</span> <span>i una barra</span> <span>d'eines al</span> <span>navegador</span> <span>amb</span> <span>diverses</span> <span>eines</span> <span>per a desenvolupament</span> <span>web.</span></span></dd> +</dl> +</div> + +<div class="column-half"> +<dl> + <dt><a href="https://webmaker.org/en-US/tools/">Eines Webmaker</a></dt> + <dd><span id="result_box" lang="ca"><span>Conjunt</span> <span>d'eines</span> <span>desenvolupades</span> <span>per Mozilla</span><span>, dirigides a</span> <span>persones</span> </span> que s'inicien en el<span lang="ca"> <span>desenvolupament</span> <span>web.</span></span></dd> + <dt><a href="http://www.w3.org/Status.html">W3C Validators</a></dt> + <dd><span id="result_box" lang="ca"><span>La pàgina web de</span> <span>W3C</span> <span>alberga una sèrie</span> <span>d'eines</span> <span>per a</span> <span>comprovar</span> <span>la validesa del vostre</span> <span>lloc web,</span> <span>incloent </span></span><a href="http://validator.w3.org/" title="http://validator.w3.org/">HTML</a> i <a href="http://jigsaw.w3.org/css-validator/" title="http://jigsaw.w3.org/css-validator/">CSS</a>.</dd> + <dt><a href="http://www.jshint.com/">JSHint</a></dt> + <dd><span id="result_box" lang="ca"><span>Eina</span> <span>d'anàlisi de</span> <span>codi</span> <span>JavaScript.</span></span></dd> +</dl> +</div> +</div> diff --git a/files/ca/tools/remote_debugging/index.html b/files/ca/tools/remote_debugging/index.html new file mode 100644 index 0000000000..5080988cef --- /dev/null +++ b/files/ca/tools/remote_debugging/index.html @@ -0,0 +1,72 @@ +--- +title: Remote Debugging +slug: Tools/Remote_Debugging +tags: + - NeedsTranslation + - Tools + - TopicStub + - 'l10n:priority' +translation_of: Tools/Remote_Debugging +--- +<div>{{ToolsSidebar}}</div><p>Podeu utilitzar les <a href="https://developer.mozilla.org/en-US/docs/Tools">eines de desenvolupament de Firefox</a> a l'escriptori per depurar els llocs web i les aplicacions web que s'executen en altres navegadors o en temps d'execució. L'altre navegador pot estar en el mateix dispositiu que les eines o en un dispositiu diferent, com ara un telèfon connectat a través d'USB.</p> + +<h2 id="Connexió_de_les_eines_de_desenvolupament">Connexió de les eines de desenvolupament</h2> + +<p>Les instruccions detallades per a la connexió de les eines de desenvolupament són específiques en el temps d'execució.</p> + +<h3 id="Temps_d'execució_basats_en_Gecko">Temps d'execució basats en Gecko</h3> + +<p>En primer lloc, pot connectar-se a les eines de desenvolupament en temps d'execució basats en Gecko com Firefox Desktop , Firefox per a Android, Firefox OS i Thunderbird.</p> + +<dl> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop">Firefox Desktop</a></dt> + <dd> + <p>La depuració remota de Firefox Desktop descriu com connectar-se a Firefox Desktop.</p> + </dd> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">Firefox per Android (abans de Firefox 36)</a></dt> + <dd> + <p>La depuració remota de Firefox per Android descriu com connectar-se a Firefox en un dispositiu Android a través d'USB.</p> + </dd> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Firefox per Android (Firefox 36+)</a></dt> + <dd> + <p>Connectar-se a Firefox per Android des de Firefox 36 en endavant s'ha simplificat, requereix un menor nombre de passos manuals que abans.</p> + </dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Tools/WebIDE">Firefox OS</a></dt> + <dd> + <p>Utilitzeu WebIDE per depurar aplicacions que s'executen a Firefox OS, ja sigui en un dispositiu real o al Firefox OS Simulator.</p> + </dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Thunderbird">Thunderbird</a></dt> + <dd> + <p><span class="short_text" id="result_box" lang="ca"><span>Depurar</span> <span>el codi que</span> <span>s'executa en</span> <span>Thunderbird.</span></span></p> + </dd> +</dl> + +<h3 id="Altres_temps_d'execució">Altres temps d'execució</h3> + +<p>El complement experimental <a href="https://developer.mozilla.org/en-US/docs/Tools/Valence">Valence</a> permet depurar llocs web en temps d'execució que no estan basats en Gecko, com Google Chrome Desktop, Chrome en Android i Safari en iOS.</p> + +<p>Valence està inclos per defecte en in <a href="/en-US/Firefox/Developer_Edition">Firefox Developer Edition</a>.</p> + +<dl> + <dt><a href="/en-US/docs/Tools/Valence">Chrome per Android</a></dt> + <dd> + <p><span id="result_box" lang="ca"><span>Connectar-se a</span> <span>llocs web</span> <span>que s'executen</span> <span>en el navegador</span> <span>Chrome</span> <span>en un dispositiu</span> <span>Android.</span></span></p> + </dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Tools/Remote_Debugging/Chrome_Desktop">Chrome Desktop</a></dt> + <dd> + <p>Connectar-se a llocs web que s'executen en Chrome a l'escriptori.</p> + </dd> + <dt><a href="/en-US/docs/Tools/Valence">Safari on iOS</a></dt> + <dd> + <p>Connectar-se a llocs web que s'executen en Safari en iOS.</p> + </dd> +</dl> diff --git a/files/ca/web/api/canvas_api/index.html b/files/ca/web/api/canvas_api/index.html new file mode 100644 index 0000000000..cb61814e66 --- /dev/null +++ b/files/ca/web/api/canvas_api/index.html @@ -0,0 +1,187 @@ +--- +title: Canvas API +slug: Web/API/Canvas_API +tags: + - API + - Canvas + - Overview + - Reference +translation_of: Web/API/Canvas_API +--- +<div>{{CanvasSidebar}}</div> + +<p class="summary">Afegit en <a href="/en-US/docs/HTML/HTML5">HTML5</a>, l'element HTML<strong> {{HTMLElement("canvas")}} </strong>pot ser usat per dibuixar gràfics a través de scripts en <a href="/en-US/docs/Web/JavaScript">JavaScript</a>. Per exemple, es pot utilitzar per dibuixar gràfics, fer composicions fotogràfiques, crear animacions o, fins i tot, processar o representar vídeos en temps real.</p> + +<p>Les aplicacions de Mozilla van obtenir compatibilitat amb <code><canvas></code> a partir de Gecko 1.8 (és a dir <a href="/en-US/docs/Mozilla/Firefox/Releases/1.5">Firefox 1.5</a>). L'element va ser introduït originalment per Apple per al tauler OS X i Safari. Internet Explorer suporta <code><canvas></code> a partir de la versió 9; per a versions anteriors de IE, una pàgina pot efectivament afegir suport per <code><canvas></code> en incloure un script del projecte Google's <a href="https://github.com/arv/explorercanvas">Explorer Canvas</a>. Google Chrome i Opera 9 també són compatibles amb <code><canvas></code>.</p> + +<p>L'element <code><canvas></code> <span id="result_box" lang="ca"><span>també és utilitzat per</span></span> <a href="/en-US/docs/Web/WebGL">WebGL</a> <span id="result_box" lang="ca"><span>per dibuixar gràfics 3D accelerats per maquinari en pàgines web.</span></span></p> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>Aquest és només un fragment de codi senzill que utilitza el mètode</span></span> {{domxref("CanvasRenderingContext2D.fillRect()")}}.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><canvas id="canvas"></canvas> +</pre> + +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); + +ctx.fillStyle = 'green'; +ctx.fillRect(10, 10, 100, 100); +</pre> + +<p><span id="result_box" lang="ca"><span>Editeu el codi següent i vegeu els canvis actualitzats en directe al llenç:</span></span></p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html"><canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas> +<div class="playable-buttons"> + <input id="edit" type="button" value="Edit" /> + <input id="reset" type="button" value="Reset" /> +</div> +<textarea id="code" class="playable-code"> +ctx.fillStyle = 'green'; +ctx.fillRect(10, 10, 100, 100);</textarea> +</pre> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext("2d"); +var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var edit = document.getElementById('edit'); +var code = textarea.value; + +function drawCanvas() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + eval(textarea.value); +} + +reset.addEventListener('click', function() { + textarea.value = code; + drawCanvas(); +}); + +edit.addEventListener('click', function() { + textarea.focus(); +}) + +textarea.addEventListener('input', drawCanvas); +window.addEventListener('load', drawCanvas); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 360) }}</p> + +<h2 id="Referència">Referència</h2> + +<div class="index"> +<ul> + <li>{{domxref("HTMLCanvasElement")}}</li> + <li>{{domxref("CanvasRenderingContext2D")}}</li> + <li>{{domxref("CanvasGradient")}}</li> + <li>{{domxref("CanvasImageSource")}}</li> + <li>{{domxref("CanvasPattern")}}</li> + <li>{{domxref("ImageBitmap")}}</li> + <li>{{domxref("ImageData")}}</li> + <li>{{domxref("RenderingContext")}}</li> + <li>{{domxref("TextMetrics")}}</li> + <li>{{domxref("OffscreenCanvas")}}{{experimental_inline}}</li> + <li>{{domxref("Path2D")}} {{experimental_inline}}{{domxref("ImageBitmapRenderingContext")}}{{experimental_inline}}</li> +</ul> +</div> + +<p>Les interfícies relacionades amb <code>WebGLRenderingContext</code> estan referenciades en <a href="/en-US/docs/Web/WebGL" title="/en-US/docs/Web/WebGL">WebGL</a>.</p> + +<p>{{domxref("CanvasCaptureMediaStream")}} està relacionat.</p> + +<h2 id="Guies_i_tutorials">Guies i tutorials</h2> + +<dl> + <dt><a href="/en-US/docs/Web/API/Canvas_API/Tutorial">Tutorial Canvas </a></dt> + <dd>Un tutorial complet que abasta tant l'ús bàsic de <code><canvas></code> com les seves funcions avançades.</dd> + <dt><a href="/en-US/Add-ons/Code_snippets/Canvas">Fragments de codi: Canvas</a></dt> + <dd>Alguns fragments de codi orientats a desenvolupadors d'extensions que involucren <code><canvas></code>.</dd> + <dt><a href="/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster">Demostració: Un llançador de rajos bàsic</a></dt> + <dd>Una demostració d'animació de traçat de rajos usant canvas.</dd> + <dt><a href="/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvas">Dibuixar objectes DOM en canvas</a></dt> + <dd>Com dibuixar contingut DOM, com ara elements HTML, dins de canvas.</dd> + <dt><a href="/en-US/docs/Web/API/Canvas_API/Manipulating_video_using_canvas">Manipular vídeo utilitzant canvas</a></dt> + <dd>Combinar {{HTMLElement("video")}} i {{HTMLElement("canvas")}} per manipular dades de vídeo en temps real.</dd> +</dl> + +<h2 id="Recursos">Recursos</h2> + +<h3 id="Genèric">Genèric</h3> + +<ul> + <li><a href="http://joshondesign.com/p/books/canvasdeepdive/title.html">Aprofundint en canvas HTML5</a></li> + <li><a href="http://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html">Manual de Canvas</a></li> +</ul> + +<h3 id="Biblioteques"><span id="result_box" lang="ca"><span title="Libraries + + ">Biblioteques</span></span></h3> + +<ul> + <li><a href="http://fabricjs.com">Fabric.js</a> <span id="result_box" lang="ca"><span title="Fabric.js is an open-source canvas library with SVG parsing capabilities. + ">és una biblioteca de canvas de codi obert amb funcions d'anàlisi de SVG.</span></span></li> + <li><a href="https://github.com/ericdrowell/KineticJS">Kinetic.js</a> <span id="result_box" lang="ca"><span title="Kinetic.js is an open-source canvas library focused on interactivity for desktop and mobile applications. + ">és una biblioteca de </span><span title="Fabric.js is an open-source canvas library with SVG parsing capabilities. + ">canvas</span></span><span lang="ca"><span title="Kinetic.js is an open-source canvas library focused on interactivity for desktop and mobile applications. + "> de codi obert centrada en la interactivitat per a aplicacions d'escriptori i mòbils.</span></span></li> + <li><a href="http://paperjs.org/">Paper.js</a> <span id="result_box" lang="ca"><span title="Paper.js is an open source vector graphics scripting framework that runs on top of the HTML5 Canvas. + ">és un marc de seqüències d'ordres gràfiques de vectors, de codi obert que s'executa a la part superior de Canvas HTML5.</span></span></li> + <li><a href="http://origamijs.com/docs/">Origami.js</a> <span id="result_box" lang="ca"><span title="Origami.js is an open source lightweight canvas library. + ">és una biblioteca de </span><span title="Fabric.js is an open-source canvas library with SVG parsing capabilities. + ">canvas</span></span><span lang="ca"><span title="Origami.js is an open source lightweight canvas library. + "> lleugera de codi obert.</span></span></li> + <li><a href="http://libcanvas.github.com/">libCanvas</a> <span id="result_box" lang="ca"><span title="libCanvas is powerful and lightweight canvas framework. + ">és un marc de canvas potent i lleuger.</span></span></li> + <li><a href="http://processingjs.org">Processing.js</a> és un port del llenguatge de visualització de processament.</li> + <li><a href="https://playcanvas.com/">PlayCanvas</a> <span id="result_box" lang="ca"><span title="PlayCanvas is an open source game engine. + ">és un motor de joc de codi obert.</span></span></li> + <li><a href="http://www.pixijs.com/">Pixi.js</a> <span id="result_box" lang="ca"><span title="PlayCanvas is an open source game engine. + ">és un motor de joc de codi obert.</span></span></li> + <li><a href="http://www.liquidx.net/plotkit/">PlotKit</a> <span id="result_box" lang="ca"><span title="PlotKit is a charting and graphing library. + ">és una biblioteca </span></span> mapes gràfics <span lang="ca"><span title="PlotKit is a charting and graphing library. + "> i gràfics</span></span>.</li> + <li><a class="link-https" href="https://github.com/jeremyckahn/rekapi">Rekapi</a> és una API d'animació d'emmarcat de tecles per Canvas.</li> + <li><a href="http://senchalabs.github.com/philogl/">PhiloGL</a> <span id="result_box" lang="ca"><span title="PhiloGL is a WebGL framework for data visualization, creative coding and game development. + ">és un marc WebGL per a la visualització de dades, codificació creativa i el desenvolupament de jocs</span></span></li> + <li><a href="http://thejit.org/">JavaScript InfoVis Toolkit</a> crea visualitzacions interactives de dades 2D Canvas per la Web.</li> + <li><a href="http://www.createjs.com/easeljs">EaselJS</a> <span id="result_box" lang="ca"><span title="EaselJS is a free/open source library to make it easier to use canvas for games and art + ">és una biblioteca de codi obert/lliure per facilitar l'ús de canvas en jocs i art</span></span></li> + <li><a href="http://scrawl.rikweb.org.uk/">Scrawl-canvas</a> <span id="result_box" lang="ca"><span title="Scrawl-canvas is another open-source javascript library for creating and manipulating 2d canvas elements + ">és una altra biblioteca de codi obert Javascript per crear i manipular elements 2d</span></span> canvas.</li> + <li><a href="https://www.patrick-wied.at/static/heatmapjs/">heatmap.js</a> <span id="result_box" lang="ca"><span title="heatmap.js is an open source library to create canvas based heatmaps">és una biblioteca de codi obert per crear mapes de calor basats en</span></span> canvas.</li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#the-canvas-element', '<canvas>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/WebGL">WebGL</a></li> +</ul> diff --git a/files/ca/web/api/canvas_api/tutorial/animacions_avançades/index.html b/files/ca/web/api/canvas_api/tutorial/animacions_avançades/index.html new file mode 100644 index 0000000000..4aebb46529 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/animacions_avançades/index.html @@ -0,0 +1,380 @@ +--- +title: Animacions avançades +slug: Web/API/Canvas_API/Tutorial/Animacions_avançades +tags: + - Canvas + - Graphics + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Advanced_animations +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_animations", "Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas")}}</div> + +<div class="summary"> +<p>En l'últim capítol vam fer algunes <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations">animacions bàsiques</a> i vam conèixer maneres de fer moure les coses. En aquesta part veurem més d'a prop el moviment en si i afegirem una mica de física per fer que les nostres animacions siguin més avançades.</p> +</div> + +<h2 id="Dibuixar_una_bola">Dibuixar una bola</h2> + +<p>Usarem una bola per als nostres estudis d'animació, així que primer dibuixarem aquesta bola sobre el llenç. El següent codi ens configurarà.</p> + +<pre class="brush: html"><canvas id="canvas" width="600" height="300"></canvas> +</pre> + +<p>Com és habitual, primer necessitem un context de dibuix. Per dibuixar la bola, hem crear un objecte <code>ball</code> que contingui propietats i un mètode <code>draw()</code> per pintar-la sobre el llenç.</p> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); + +var ball = { + x: 100, + y: 100, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +ball.draw();</pre> + +<p>Aquí no hi ha res especial, la bola és en realitat un cercle senzill i es dibuixa amb l'ajuda del mètode {{domxref("CanvasRenderingContext2D.arc()", "arc()")}}.</p> + +<h2 id="Afegir_velocitat">Afegir velocitat</h2> + +<p>Ara que tenim la bola, estem preparats per afegir una animació bàsica tal com hem après en l'<a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations">últim capítol</a> d'aquest tutorial. Novament, {{domxref("window.requestAnimationFrame()")}} ens ajuda a controlar l'animació. La bola es mou en afegir un vector de velocitat a la posició. Per a cada fotograma, també {{domxref("CanvasRenderingContext2D.clearRect", "clear", "", 1)}} el llenç per eliminar cercles antics de fotogrames anteriors.</p> + +<pre class="brush: js; highlight:[8,9,24,25]">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var raf; + +var ball = { + x: 100, + y: 100, + vx: 5, + vy: 2, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +function draw() { + ctx.clearRect(0,0, canvas.width, canvas.height); + ball.draw(); + ball.x += ball.vx; + ball.y += ball.vy; + raf = window.requestAnimationFrame(draw); +} + +canvas.addEventListener('mouseover', function(e) { + raf = window.requestAnimationFrame(draw); +}); + +canvas.addEventListener('mouseout', function(e) { + window.cancelAnimationFrame(raf); +}); + +ball.draw(); +</pre> + +<h2 id="Límits">Límits</h2> + +<p>Sense cap prova de col·lisió de límits, la nostra bola surt ràpidament del llenç. Hem de comprovar si la posició <code>x</code> i <code>y</code> de la bola està fora de les dimensions del llenç i invertir la direcció dels vectors de velocitat. Per fer-ho, afegim les següents comprovacions al mètode <code>draw</code>:</p> + +<pre class="brush: js">if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) { + ball.vy = -ball.vy; +} +if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) { + ball.vx = -ball.vx; +}</pre> + +<h3 id="Primera_demostració">Primera demostració</h3> + +<p>Vegem com es veu en acció fins ara. Movem el ratolí en el llenç per iniciar l'animació.</p> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" style="border: 1px solid" width="600" height="300"></canvas></pre> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var raf; + +var ball = { + x: 100, + y: 100, + vx: 5, + vy: 2, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +function draw() { + ctx.clearRect(0,0, canvas.width, canvas.height); + ball.draw(); + ball.x += ball.vx; + ball.y += ball.vy; + + if (ball.y + ball.vy > canvas.height || + ball.y + ball.vy < 0) { + ball.vy = -ball.vy; + } + if (ball.x + ball.vx > canvas.width || + ball.x + ball.vx < 0) { + ball.vx = -ball.vx; + } + + raf = window.requestAnimationFrame(draw); +} + +canvas.addEventListener('mouseover', function(e) { + raf = window.requestAnimationFrame(draw); +}); + +canvas.addEventListener('mouseout', function(e) { + window.cancelAnimationFrame(raf); +}); + +ball.draw();</pre> +</div> + +<p>{{EmbedLiveSample("First_demo", "610", "310")}}</p> + +<h2 id="Acceleració"><span id="result_box" lang="ca"><span>Acceleració</span></span></h2> + +<p>Per fer el moviment més real, es pots jugar amb la velocitat d'aquesta manera, per exemple:</p> + +<pre class="brush: js">ball.vy *= .99; +ball.vy += .25;</pre> + +<p>Això retarda la velocitat vertical de cada fotograma, de manera que la bola només rebotarà en el sòl al final.</p> + +<div class="hidden"> +<h6 id="Second_demo">Second demo</h6> + +<pre class="brush: html"><canvas id="canvas" style="border: 1px solid" width="600" height="300"></canvas></pre> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var raf; + +var ball = { + x: 100, + y: 100, + vx: 5, + vy: 2, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +function draw() { + ctx.clearRect(0,0, canvas.width, canvas.height); + ball.draw(); + ball.x += ball.vx; + ball.y += ball.vy; + ball.vy *= .99; + ball.vy += .25; + + if (ball.y + ball.vy > canvas.height || + ball.y + ball.vy < 0) { + ball.vy = -ball.vy; + } + if (ball.x + ball.vx > canvas.width || + ball.x + ball.vx < 0) { + ball.vx = -ball.vx; + } + + raf = window.requestAnimationFrame(draw); +} + +canvas.addEventListener('mouseover', function(e) { + raf = window.requestAnimationFrame(draw); +}); + +canvas.addEventListener('mouseout', function(e) { + window.cancelAnimationFrame(raf); +}); + +ball.draw();</pre> +</div> + +<p>{{EmbedLiveSample("Second_demo", "610", "310")}}</p> + +<h2 id="Efecte_cua">Efecte cua</h2> + +<p>Fins ara, hem utilitzat el mètode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect")}} per esborrar fotogrames anteriors. Si reemplacem aquest mètode per un semi-transparent {{domxref("CanvasRenderingContext2D.fillRect", "fillRect")}}, es pot crear fàcilment un efecte cua.</p> + +<pre class="brush: js">ctx.fillStyle = 'rgba(255, 255, 255, 0.3)'; +ctx.fillRect(0, 0, canvas.width, canvas.height);</pre> + +<div class="hidden"> +<h6 id="Third_demo">Third demo</h6> + +<pre class="brush: html"><canvas id="canvas" style="border: 1px solid" width="600" height="300"></canvas></pre> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var raf; + +var ball = { + x: 100, + y: 100, + vx: 5, + vy: 2, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +function draw() { + ctx.fillStyle = 'rgba(255, 255, 255, 0.3)'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ball.draw(); + ball.x += ball.vx; + ball.y += ball.vy; + ball.vy *= .99; + ball.vy += .25; + + if (ball.y + ball.vy > canvas.height || + ball.y + ball.vy < 0) { + ball.vy = -ball.vy; + } + if (ball.x + ball.vx > canvas.width || + ball.x + ball.vx < 0) { + ball.vx = -ball.vx; + } + + raf = window.requestAnimationFrame(draw); +} + +canvas.addEventListener('mouseover', function(e) { + raf = window.requestAnimationFrame(draw); +}); + +canvas.addEventListener('mouseout', function(e) { + window.cancelAnimationFrame(raf); +}); + +ball.draw();</pre> +</div> + +<p>{{EmbedLiveSample("Third_demo", "610", "310")}}</p> + +<h2 id="Afegir_control_al_ratolí">Afegir control al ratolí</h2> + +<p>Per tenir una mica de control sobre la bola, podem fer que segueixi al ratolí usant l'esdeveniment <code><a href="/en-US/docs/Web/Reference/Events/mousemove">mousemove</a></code>, per exemple. L'esdeveniment <code><a href="/en-US/docs/Web/Events/click">click</a></code> allibera la bola i la deixa rebotar de nou.</p> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" style="border: 1px solid" width="600" height="300"></canvas></pre> +</div> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var raf; +var running = false; + +var ball = { + x: 100, + y: 100, + vx: 5, + vy: 1, + radius: 25, + color: 'blue', + draw: function() { + ctx.beginPath(); + ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fillStyle = this.color; + ctx.fill(); + } +}; + +function clear() { + ctx.fillStyle = 'rgba(255, 255, 255, 0.3)'; + ctx.fillRect(0,0,canvas.width,canvas.height); +} + +function draw() { + clear(); + ball.draw(); + ball.x += ball.vx; + ball.y += ball.vy; + + if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) { + ball.vy = -ball.vy; + } + if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) { + ball.vx = -ball.vx; + } + + raf = window.requestAnimationFrame(draw); +} + +canvas.addEventListener('mousemove', function(e) { + if (!running) { + clear(); + ball.x = e.clientX; + ball.y = e.clientY; + ball.draw(); + } +}); + +canvas.addEventListener('click', function(e) { + if (!running) { + raf = window.requestAnimationFrame(draw); + running = true; + } +}); + +canvas.addEventListener('mouseout', function(e) { + window.cancelAnimationFrame(raf); + running = false; +}); + +ball.draw(); +</pre> + +<p><span id="result_box" lang="ca"><span>Moure la bola amb el ratolí i allibera-la amb un clic.</span></span></p> + +<p>{{EmbedLiveSample("Adding_mouse_control", "610", "310")}}</p> + +<h2 id="Escapada">Escapada</h2> + +<p>Aquest breu capítol només explica algunes tècniques per crear animacions més avançades. Hi ha molts més! Què tal afegir una paleta, alguns maons, i convertir aquesta demostració en un joc <a href="http://en.wikipedia.org/wiki/Breakout_%28video_game%29">Escapada</a>? Consulta la nostra àrea de <a href="https://developer.mozilla.org/en-US/docs/Games">desenvolupament de jocs</a> per veure més articles relacionats amb els jocs.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{domxref("window.requestAnimationFrame()")}}</li> + <li><a href="/en-US/docs/Games/Techniques/Efficient_animation_for_web_games">Animació eficient per a jocs web</a></li> +</ul> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_animations", "Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/animacions_bàsiques/index.html b/files/ca/web/api/canvas_api/tutorial/animacions_bàsiques/index.html new file mode 100644 index 0000000000..e4a3751d1e --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/animacions_bàsiques/index.html @@ -0,0 +1,335 @@ +--- +title: Animacions bàsiques +slug: Web/API/Canvas_API/Tutorial/Animacions_bàsiques +tags: + - Canvas + - Graphics + - HTML + - HTML5 + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Basic_animations +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}</div> + +<div class="summary"> +<p>Atès que estem usant Javascript per controlar els elements {{HTMLElement("canvas")}}, també és molt fàcil fer animacions (interactives). En aquest capítol veurem com fer algunes animacions bàsiques.</p> +</div> + +<p>Probablement, la major limitació és que, una vegada que es dibuixa una forma, aquesta es manté així. Si necessitem moure-la, hem de tornar a dibuixar-la i tot el que s'ha dibuixat abans. Es necessita molt temps per tornar a dibuixar quadres complexos i el rendiment depèn en gran manera de la velocitat de l'equip en el qual s'està executant.</p> + +<h2 id="Basic_animation_steps" name="Basic_animation_steps">Passos bàsics d'animació</h2> + +<p>Aquests són els passos que s'han de seguir per dibuixar un marc:</p> + +<ol> + <li><strong>Esborrar el llenç</strong><br> + A menys que les formes que es dibuixin omplin el llenç complet (per exemple, una imatge de fons), és necessari esborrar qualsevol forma que s'hi hagi dibuixat prèviament. La manera més fàcil de fer-ho, és usant el mètode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}.</li> + <li><strong>Guardar l'estat del llenç</strong><br> + Si es canvia qualsevol configuració (com ara estils, transformacions, etc.) que afectin a l'estat del llenç i ens volem assegurar que l'estat original s'utilitza cada vegada que es dibuixa un marc, hem de guardar aquest estat original.</li> + <li><strong>Dibuixar formes animades</strong><br> + El pas on es fa la representació del marc real.</li> + <li><strong>Restaurar l'estat del llenç</strong><br> + Si s'ha guardat l'estat, ho hem de restaurar abans de dibuixar un nou marc.</li> +</ol> + +<h2 id="Controlling_an_animation" name="Controlling_an_animation">Controlar una animació</h2> + +<p>Les formes es dibuixen al llenç usant els mètodes de canvas directament o cridant a les funcions personalitzades. En circumstàncies normals, només veiem que aquests resultats apareixen en el llenç quan el script acaba d'executar-se. Per exemple, no és possible fer una animació des d'un bucle <code>for</code>.</p> + +<p>Això significa que necessitem una forma d'executar les nostres funcions de dibuix durant un període de temps. Hi ha dues maneres de controlar una animació com aquesta.</p> + +<h3 id="Actualitzacions_programades">Actualitzacions programades</h3> + +<p>Primer estan les funcions {{domxref("window.setInterval()")}}, {{domxref("window.setTimeout()")}} i {{domxref("window.requestAnimationFrame()")}}, que es poden utilitzar per cridar a una funció específica durant un període de temps determinat.</p> + +<dl> + <dt>{{domxref("WindowTimers.setInterval", "setInterval(function, delay)")}}</dt> + <dd>Inicia repetidament l'execució de la funció especificada per la funció, cada mil·lisegons de retard.</dd> + <dt>{{domxref("WindowTimers.setTimeout", "setTimeout(function, delay)")}}</dt> + <dd>Executa la funció especificada per la <code>function</code> en mil·lisegons de <code>delay</code>.</dd> + <dt>{{domxref("Window.requestAnimationFrame()", "requestAnimationFrame(callback)")}}</dt> + <dd>Li diu al navegador que desitja realitzar una animació i sol·licita al navegador que cridi a una funció especifica per actualitzar una animació abans del proper repintat.</dd> +</dl> + +<p>Si no es vol cap interacció amb l'usuari, es pot utilitzar la funció <code>setInterval()</code> que executa repetidament el codi proporcionat. Si volguéssim fer un joc, podríem usar esdeveniments de teclat o ratolí per controlar l'animació i usar <code>setTimeout()</code>. En establir {{domxref("EventListener")}}s, capturem qualsevol interacció de l'usuari i s'executan les nostres funcions d'animació</p> + +<div class="note"> +<p>En els exemples següents, utilitzarem el mètode {{domxref("window.requestAnimationFrame()")}} per controlar l'animació. El mètode <code>requestAnimationFrame</code> proporciona una manera fluïda i eficient per a l'animació, cridant al marc d'animació quan el sistema estigui preparat per pintar el marc. El nombre de crides retornades és generalment 60 vegades per segon i pot reduir-se a una taxa més baixa quan s'executa en les pestanyes de fons. Per a més informació sobre el bucle d'animació, especialment per a jocs, veure l'article <a href="/en-US/docs/Games/Anatomy">Anatomia d'un videojoc</a> en la nostra <a href="/en-US/docs/Games">Zona de desenvolupament de jocs</a>.</p> +</div> + +<h2 id="Un_sistema_solar_animat"><span id="result_box" lang="ca"><span>Un sistema solar animat</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Aquest exemple anima un petit model del nostre sistema solar.</span></span></p> + +<pre class="brush: js">var sun = new Image(); +var moon = new Image(); +var earth = new Image(); +function init() { + sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png'; + moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png'; + earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png'; + window.requestAnimationFrame(draw); +} + +function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + ctx.globalCompositeOperation = 'destination-over'; + ctx.clearRect(0, 0, 300, 300); // clear canvas + + ctx.fillStyle = 'rgba(0, 0, 0, 0.4)'; + ctx.strokeStyle = 'rgba(0, 153, 255, 0.4)'; + ctx.save(); + ctx.translate(150, 150); + + // Earth + var time = new Date(); + ctx.rotate(((2 * Math.PI) / 60) * time.getSeconds() + ((2 * Math.PI) / 60000) * time.getMilliseconds()); + ctx.translate(105, 0); + ctx.fillRect(0, -12, 50, 24); // Shadow + ctx.drawImage(earth, -12, -12); + + // Moon + ctx.save(); + ctx.rotate(((2 * Math.PI) / 6) * time.getSeconds() + ((2 * Math.PI) / 6000) * time.getMilliseconds()); + ctx.translate(0, 28.5); + ctx.drawImage(moon, -3.5, -3.5); + ctx.restore(); + + ctx.restore(); + + ctx.beginPath(); + ctx.arc(150, 150, 105, 0, Math.PI * 2, false); // Earth orbit + ctx.stroke(); + + ctx.drawImage(sun, 0, 0, 300, 300); + + window.requestAnimationFrame(draw); +} + +init(); +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="300" height="300"></canvas></pre> +</div> + +<p>{{EmbedLiveSample("An_animated_solar_system", "310", "310", "https://mdn.mozillademos.org/files/202/Canvas_animation1.png")}}</p> + +<h2 id="Un_rellotge_animat"><span id="result_box" lang="ca"><span>Un rellotge animat</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Aquest exemple dibuixa un rellotge animat que mostra l'hora actual.</span></span></p> + +<pre class="brush: js">function clock() { + var now = new Date(); + var ctx = document.getElementById('canvas').getContext('2d'); + ctx.save(); + ctx.clearRect(0, 0, 150, 150); + ctx.translate(75, 75); + ctx.scale(0.4, 0.4); + ctx.rotate(-Math.PI / 2); + ctx.strokeStyle = 'black'; + ctx.fillStyle = 'white'; + ctx.lineWidth = 8; + ctx.lineCap = 'round'; + + // Hour marks + ctx.save(); + for (var i = 0; i < 12; i++) { + ctx.beginPath(); + ctx.rotate(Math.PI / 6); + ctx.moveTo(100, 0); + ctx.lineTo(120, 0); + ctx.stroke(); + } + ctx.restore(); + + // Minute marks + ctx.save(); + ctx.lineWidth = 5; + for (i = 0; i < 60; i++) { + if (i % 5!= 0) { + ctx.beginPath(); + ctx.moveTo(117, 0); + ctx.lineTo(120, 0); + ctx.stroke(); + } + ctx.rotate(Math.PI / 30); + } + ctx.restore(); + + var sec = now.getSeconds(); + var min = now.getMinutes(); + var hr = now.getHours(); + hr = hr >= 12 ? hr - 12 : hr; + + ctx.fillStyle = 'black'; + + // write Hours + ctx.save(); + ctx.rotate(hr * (Math.PI / 6) + (Math.PI / 360) * min + (Math.PI / 21600) *sec); + ctx.lineWidth = 14; + ctx.beginPath(); + ctx.moveTo(-20, 0); + ctx.lineTo(80, 0); + ctx.stroke(); + ctx.restore(); + + // write Minutes + ctx.save(); + ctx.rotate((Math.PI / 30) * min + (Math.PI / 1800) * sec); + ctx.lineWidth = 10; + ctx.beginPath(); + ctx.moveTo(-28, 0); + ctx.lineTo(112, 0); + ctx.stroke(); + ctx.restore(); + + // Write seconds + ctx.save(); + ctx.rotate(sec * Math.PI / 30); + ctx.strokeStyle = '#D40000'; + ctx.fillStyle = '#D40000'; + ctx.lineWidth = 6; + ctx.beginPath(); + ctx.moveTo(-30, 0); + ctx.lineTo(83, 0); + ctx.stroke(); + ctx.beginPath(); + ctx.arc(0, 0, 10, 0, Math.PI * 2, true); + ctx.fill(); + ctx.beginPath(); + ctx.arc(95, 0, 10, 0, Math.PI * 2, true); + ctx.stroke(); + ctx.fillStyle = 'rgba(0, 0, 0, 0)'; + ctx.arc(0, 0, 3, 0, Math.PI * 2, true); + ctx.fill(); + ctx.restore(); + + ctx.beginPath(); + ctx.lineWidth = 14; + ctx.strokeStyle = '#325FA2'; + ctx.arc(0, 0, 142, 0, Math.PI * 2, true); + ctx.stroke(); + + ctx.restore(); + + window.requestAnimationFrame(clock); +} + +window.requestAnimationFrame(clock);</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> +</div> + +<p>{{EmbedLiveSample("An_animated_clock", "180", "180", "https://mdn.mozillademos.org/files/203/Canvas_animation2.png")}}</p> + +<h2 id="Un_panorama_en_bucle">Un panorama en bucle</h2> + +<p>En aquest exemple, es desplaça una imatge panoràmica d'esquerra a dreta. Estem usant <a href="http://commons.wikimedia.org/wiki/File:Capitan_Meadows,_Yosemite_National_Park.jpg">una imatge del Parc Nacional Yosemite</a>, que hem pres de Wikipedia, però es pot usar qualsevol imatge que sigui més gran que el llenç.</p> + +<pre class="brush: js">var img = new Image(); + +// User Variables - customize these to change the image being scrolled, its +// direction, and the speed. + +img.src = 'https://mdn.mozillademos.org/files/4553/Capitan_Meadows,_Yosemite_National_Park.jpg'; +var CanvasXSize = 800; +var CanvasYSize = 200; +var speed = 30; // lower is faster +var scale = 1.05; +var y = -4.5; // vertical offset + +// Main program + +var dx = 0.75; +var imgW; +var imgH; +var x = 0; +var clearX; +var clearY; +var ctx; + +img.onload = function() { + imgW = img.width * scale; + imgH = img.height * scale; + + if (imgW > CanvasXSize) { + // image larger than canvas + x = CanvasXSize - imgW; + } + if (imgW > CanvasXSize) { + // image width larger than canvas + clearX = imgW; + } else { + clearX = CanvasXSize; + } + if (imgH > CanvasYSize) { + // image height larger than canvas + clearY = imgH; + } else { + clearY = CanvasYSize; + } + + // get canvas context + ctx = document.getElementById('canvas').getContext('2d'); + + // set refresh rate + return setInterval(draw, speed); +} + +function draw() { + ctx.clearRect(0, 0, clearX, clearY); // clear the canvas + + // if image is <= Canvas Size + if (imgW <= CanvasXSize) { + // reset, start from beginning + if (x > CanvasXSize) { + x = -imgW + x; + } + // draw additional image1 + if (x > 0) { + ctx.drawImage(img, -imgW + x, y, imgW, imgH); + } + // draw additional image2 + if (x - imgW > 0) { + ctx.drawImage(img, -imgW * 2 + x, y, imgW, imgH); + } + } + + // image is > Canvas Size + else { + // reset, start from beginning + if (x > (CanvasXSize)) { + x = CanvasXSize - imgW; + } + // draw aditional image + if (x > (CanvasXSize-imgW)) { + ctx.drawImage(img, x - imgW + 1, y, imgW, imgH); + } + } + // draw image + ctx.drawImage(img, x, y,imgW, imgH); + // amount to move + x += dx; +} +</pre> + +<p>A continuació un {{HTMLElement("canvas")}} en què es desplaça la imatge. Hem de tenir en compte que l'amplada i l'alçada especificades aquí, han de coincidir amb els valors de les variables <code>CanvasXZSize</code> i <code>CanvasYSize</code> en el codi JavaScript.</p> + +<pre class="brush: html"><canvas id="canvas" width="800" height="200"></canvas></pre> + +<p>{{EmbedLiveSample("A_looping_panorama", "830", "230")}}</p> + +<h2 id="Other_examples" name="Other_examples">Altres exemples</h2> + +<dl> + <dt><a href="/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster" title="/en-US/docs/Web/Guide/HTML/A_basic_ray-caster">Una roda de raigs bàsica</a></dt> + <dd>Un bon exemple de com fer animacions usant els controls del teclat.</dd> + <dt><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Advanced_animations">Animacions avançades</a></dt> + <dd>En el proper capítol veurem algunes tècniques avançades d'animació i física.</dd> +</dl> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Web/API/Canvas_API/Tutorial/Advanced_animations")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/aplicar_estils_i_colors/index.html b/files/ca/web/api/canvas_api/tutorial/aplicar_estils_i_colors/index.html new file mode 100644 index 0000000000..9adcc2d5f4 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/aplicar_estils_i_colors/index.html @@ -0,0 +1,733 @@ +--- +title: Aplicar estils i colors +slug: Web/API/Canvas_API/Tutorial/Aplicar_estils_i_colors +tags: + - Canvas + - Graphics + - HTML + - HTML5 + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}</div> + +<div class="summary"> +<p>En el capítol sobre <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes">dibuixar formes</a>, hem utilitzat només els estils de línia i de farciment predeterminats. Aquí explorarem les opcions de canvas que tenim a la nostra disposició per fer els nostres dibuixos una mica més atractius. Aprendreu com afegir diferents colors, estils de línies, gradients, patrons i ombres als vostres dibuixos.</p> +</div> + +<h2 id="Colors" name="Colors">Colors</h2> + +<p>Fins ara només hem vist mètodes del context de dibuix. Si volem aplicar colors a una forma, hi ha dues propietats importants que podem utilitzar: <code>fillStyle</code> i <code>strokeStyle</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle = color")}}</dt> + <dd>Estableix l'estil utilitzat per emplenar formes.</dd> + <dt>{{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle = color")}}</dt> + <dd>Estableix l'estil per als contorns de les formes.</dd> +</dl> + +<p><code>color</code> és una cadena que representa un {{cssxref("<color>")}} CSS, un objecte degradat o un objecte patró. Veurem els objectes de degradat i patró més endavant. Per defecte, el traç i el color del farciment estan establerts en negre (valor de color CSS <code>#000000</code>).</p> + +<div class="note"> +<p><strong>Nota:</strong> Quan es defineix la propietat <code>strokeStyle</code> i/o <code>fillStyle</code>, el nou valor es converteix en el valor predeterminat per a totes les formes que s'estan dibuixant a partir d'aquest moment. Per a cada forma que desitgeu en un color diferent, haureu de tornar a assignar la propietat <code>fillStyle</code> o <code>strokeStyle</code>.</p> +</div> + +<p>Les cadenes vàlides que podeu introduir han de ser, segons l'especificació, valors de {{cssxref("<color>")}} CSS. Cadascun dels següents exemples descriu el mateix color.</p> + +<pre class="brush: js">// these all set the fillStyle to 'orange' + +ctx.fillStyle = 'orange'; +ctx.fillStyle = '#FFA500'; +ctx.fillStyle = 'rgb(255, 165, 0)'; +ctx.fillStyle = 'rgba(255, 165, 0, 1)'; +</pre> + +<h3 id="A_fillStyle_example" name="A_fillStyle_example">Un exemple de <code>fillStyle</code></h3> + +<p>En aquest exemple, una vegada més, usem dos bucles <code>for</code> per dibuixar una graella de rectangles, cadascun en un color diferent. La imatge resultant hauria de ser similar a la captura de pantalla. Aquí no succeeix res espectacular. Utilitzem les dues variables <code>i</code> i <code>j</code> per generar un color RGB únic per a cada quadrat, i només modifiquen els valors vermell i verd. El canal blau té un valor fix. Modificant els canals, es poden generar tot tipus de paletes. En augmentar els passos, es pot aconseguir alguna cosa que se sembli a les paletes de color que utilitza Photoshop.</p> + +<pre class="brush: js;highlight[5,6]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + for (var i = 0; i < 6; i++) { + for (var j = 0; j < 6; j++) { + ctx.fillStyle = 'rgb(' + Math.floor(255 - 42.5 * i) + ', ' + + Math.floor(255 - 42.5 * j) + ', 0)'; + ctx.fillRect(j * 25, i * 25, 25, 25); + } + } +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>The result looks like this:</p> + +<p>{{EmbedLiveSample("A_fillStyle_example", 160, 160, "https://mdn.mozillademos.org/files/5417/Canvas_fillstyle.png")}}</p> + +<h3 id="A_strokeStyle_example" name="A_strokeStyle_example">Un exemple de <code>strokeStyle</code></h3> + +<p>Aquest exemple és similar a l'anterior, però usa la propietat <code>strokeStyle</code> per canviar els colors dels contorns de les formes. Usem el mètode <code>arc()</code> per dibuixar cercles en lloc de quadrats.</p> + +<pre class="brush: js;highlight[5,6]"> function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + for (var i = 0; i < 6; i++) { + for (var j = 0; j < 6; j++) { + ctx.strokeStyle = 'rgb(0, ' + Math.floor(255 - 42.5 * i) + ', ' + + Math.floor(255 - 42.5 * j) + ')'; + ctx.beginPath(); + ctx.arc(12.5 + j * 25, 12.5 + i * 25, 10, 0, Math.PI * 2, true); + ctx.stroke(); + } + } + } +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat és així:</span></span></p> + +<p>{{EmbedLiveSample("A_strokeStyle_example", "180", "180", "https://mdn.mozillademos.org/files/253/Canvas_strokestyle.png")}}</p> + +<h2 id="Transparency" name="Transparency">Transparència</h2> + +<p>A més de dibuixar formes opaques al llenç, també podem dibuixar formes semitransparents (o translúcides). Això es fa, ja sigui configurant la propietat <code>globalAlpha</code> o assignant un color semitransparent a l'estil de traç i/o d'ompliment.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha = transparencyValue")}}</dt> + <dd>Aplica el valor de transparència especificat a totes les formes futures dibuixades en el llenç. El valor ha d'estar entre 0,0 (totalment transparent) a 1.0 (totalment opac). Aquest valor és 1.0 (totalment opac) per defecte.</dd> +</dl> + +<p>La propietat <code>globalAlpha</code> pot ser útil si voleu dibuixar moltes formes al llenç amb una transparència similar, però en general, és més útil establir la transparència en formes individuals quan establiu els seus colors.</p> + +<p>Atès que les propietats <code>strokeStyle</code> and <code>fillStyle</code> accepten valors de color CSS rgba, podem utilitzar la notació següent per assignar un color transparent a ells.</p> + +<pre class="brush: js">// Assignar colors transparents a l'estil de traç i ompliment + +ctx.strokeStyle = 'rgba(255, 0, 0, 0.5)'; +ctx.fillStyle = 'rgba(255, 0, 0, 0.5)'; +</pre> + +<p>La funció <code>rgba()</code> és similar a la funció <code>rgb()</code> però té un paràmetre addicional. L'últim paràmetre estableix el valor de transparència d'aquest color en particular. El rang vàlid se situa de nou entre 0.0 (totalment transparent) i 1.0 (completament opac).</p> + +<h3 id="A_globalAlpha_example" name="A_globalAlpha_example">Un exemple de <code>globalAlpha</code></h3> + +<p>En aquest exemple, dibuixarem un fons de quatre quadrats de colors diferents. A més d'això, dibuixarem un conjunt de cercles semitransparents. La propietat <code>globalAlpha</code> s'estableix en 0.2 que s'utilitzarà per a totes les formes des d'aquest punt. Cada pas en el bucle <code>for</code> dibuixa un conjunt de cercles amb un radi creixent. El resultat final és un gradient radial. En superposar cada vegada més cercles un damunt de l'altre, reduïm efectivament la transparència dels cercles que ja s'han dibuixat. En augmentar el recompte de passos i, en efecte, dibuixar més cercles, el fons desapareixeria completament del centre de la imatge.</p> + +<pre class="brush: js;highlight[15]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + // draw background + ctx.fillStyle = '#FD0'; + ctx.fillRect(0, 0, 75, 75); + ctx.fillStyle = '#6C0'; + ctx.fillRect(75, 0, 75, 75); + ctx.fillStyle = '#09F'; + ctx.fillRect(0, 75, 75, 75); + ctx.fillStyle = '#F30'; + ctx.fillRect(75, 75, 75, 75); + ctx.fillStyle = '#FFF'; + + // set transparency value + ctx.globalAlpha = 0.2; + + // Draw semi transparent circles + for (i = 0; i < 7; i++) { + ctx.beginPath(); + ctx.arc(75, 75, 10 + 10 * i, 0, Math.PI * 2, true); + ctx.fill(); + } +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_globalAlpha_example", "180", "180", "https://mdn.mozillademos.org/files/232/Canvas_globalalpha.png")}}</p> + +<h3 id="An_example_using_rgba()" name="An_example_using_rgba()">Un exemple usant <code>rgba()</code></h3> + +<p>En aquest segon exemple, fem alguna cosa semblant a l'anterior, però en comptes de dibuixar cercles un damunt de l'altre, dibuixem petits rectangles amb opacitat creixent. L'ús de <code>rgba()</code> dóna una mica més de control i flexibilitat, perquè podem definir l'estil d'emplenament i traç individualment.</p> + +<pre class="brush: js;highlight[16]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // Draw background + ctx.fillStyle = 'rgb(255, 221, 0)'; + ctx.fillRect(0, 0, 150, 37.5); + ctx.fillStyle = 'rgb(102, 204, 0)'; + ctx.fillRect(0, 37.5, 150, 37.5); + ctx.fillStyle = 'rgb(0, 153, 255)'; + ctx.fillRect(0, 75, 150, 37.5); + ctx.fillStyle = 'rgb(255, 51, 0)'; + ctx.fillRect(0, 112.5, 150, 37.5); + + // Draw semi transparent rectangles + for (var i = 0; i < 10; i++) { + ctx.fillStyle = 'rgba(255, 255, 255, ' + (i + 1) / 10 + ')'; + for (var j = 0; j < 4; j++) { + ctx.fillRect(5 + i * 14, 5 + j * 37.5, 14, 27.5); + } + } +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("An_example_using_rgba()", "180", "180", "https://mdn.mozillademos.org/files/246/Canvas_rgba.png")}}</p> + +<h2 id="Line_styles" name="Line_styles">Estils de línia</h2> + +<p>Hi ha diverses propietats que ens permeten donar estil a les línies.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth = value")}}</dt> + <dd>Estableix l'amplària de les línies dibuixades en el futur.</dd> + <dt>{{domxref("CanvasRenderingContext2D.lineCap", "lineCap = type")}}</dt> + <dd>Estableix l'aparença dels extrems de les línies.</dd> + <dt>{{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin = type")}}</dt> + <dd>Estableix l'aparença de les "cantonades" on s'uneixen les línies.</dd> + <dt>{{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit = value")}}</dt> + <dd>Estableix un límit en la mitra, quan dues línies s'uneixen en un angle agut, per permetre-li controlar el grossor de la unió.</dd> + <dt>{{domxref("CanvasRenderingContext2D.getLineDash", "getLineDash()")}}</dt> + <dd>Retorna la matriu de patró de guió de la línia actual que conté un nombre parell de nombres no negatius.</dd> + <dt>{{domxref("CanvasRenderingContext2D.setLineDash", "setLineDash(segments)")}}</dt> + <dd>Estableix el patró de guió de línia actual.</dd> + <dt>{{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset = value")}}</dt> + <dd>Especifica on iniciar una matriu de guions en una línia.</dd> +</dl> + +<p>Obtindreu una millor comprensió del que fan, en mirar els exemples a continuació.</p> + +<h3 id="A_lineWidth_example" name="A_lineWidth_example">Un exemple de <code>lineWidth</code></h3> + +<p>Aquesta propietat estableix el gruix de la línia actual. Els valors han de ser nombres positius. Per defecte, aquest valor es fixa en 1.0 unitats.</p> + +<p>L'amplada de la línia és el gruix del traç centrat en la trajectòria indicada. En altres paraules, l'àrea que es dibuixa s'estén a la meitat de l'amplària de línia a cada costat de la trajectòria. Com que les coordenades del llenç no fan referència directa als píxels, s'ha de tenir especial cura per obtenir línies horitzontals i verticals nítides.</p> + +<p>En el següent exemple, es dibuixen 10 línies rectes amb amplades de línia creixents. La línia en l'extrem esquerre té 1.0 unitats d'ample. No obstant això, les línies de grossor més a l'esquerra i totes les altres d'ample imparell no apareixen nítides a causa del posicionament de la trajectòria.</p> + +<pre class="brush: js;highlight[4]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + for (var i = 0; i < 10; i++) { + ctx.lineWidth = 1 + i; + ctx.beginPath(); + ctx.moveTo(5 + i * 14, 5); + ctx.lineTo(5 + i * 14, 140); + ctx.stroke(); + } +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_lineWidth_example", "180", "180", "https://mdn.mozillademos.org/files/239/Canvas_linewidth.png")}}</p> + +<p>L'obtenció de línies nítides requereix entendre com es tracen les trajectòries. En les imatges següents, la graella representa la graella de coordenades del llenç. Els quadrats entre les línies de la graella són píxels reals en pantalla. En la primera imatge de graella que apareix a continuació, s'emplena un rectangle de (2,1) a (5,5). Tota l'àrea entre ells (vermell clar) cau en els límits de píxels, per la qual cosa el rectangle emplenat resultant tindrà vores nítides.</p> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/201/Canvas-grid.png"></p> + +<p>Si es considera una trajectòria de (3,1) a (3,5) amb un gruix de línia <code>1.0</code>, s'acaba amb la situació en la segona imatge. L'àrea real a emplenar (blau fosc) només s'estén fins a la meitat dels píxels a cada costat de la trajectòria. S'ha de representar una aproximació d'això, la qual cosa significa que aquests píxels estan ombrejats parcialment, i dóna com a resultat que tota l'àrea (blau clar i blau fosc) s'ompli amb un color la meitat de fosc que el color de traç real. Això és el que succeeix amb la línia d'ample <code>1.0</code> en el codi d'exemple anterior<span style="display: none;"> </span>.</p> + +<p>Per arreglar això, s'ha de ser molt precís en la creació de la trajectòria. Sabent que una línia a <code>1.0</code> d'ample s'estendrà mitja unitat a cada costat de la trajectòria, creant la trajectòria de (3.5,1) a (3.5,5) resulta que la situació, en la tercera imatge, la línia d'ample <code>1.0</code> acaba completa i omplint, precisament, una sola línia vertical de píxels.</p> + +<div class="note"> +<p><strong>Nota:</strong> Hem de tenir en compte que en el nostre exemple de línia vertical, la posició Y encara fa referència a una posició sencera de la graella; si no fos així, veuríem píxels amb una cobertura parcial en els punts finals (però també, hem de tenir en compte que aquest comportament depèn de l'estil actual de <code>lineCap</code>, el valor predeterminat del qual és <code>butt</code>; és possible que desitgem calcular traços uniformes amb coordenades de mig píxel per a línies d'ample imparell, establint l'estil <code>lineCap</code> a estil <code>square</code>, de manera que el límit exterior del traç al voltant del punt final s'ampliï automàticament per cobrir tot el píxel exactament).</p> + +<p>Tinguem en compte, també, que només es veuran afectats els extrems d'inici i fi d'una trajectòria: si es tanca una trajectòria amb <code>closePath()</code>, no hi ha un punt d'inici i final; en el seu lloc, tots els extrems de la trajectòria es connecten al segment anterior i següent utilitzant, la configuració actual de l'estil <code>lineJoin</code>, el valor predeterminat del qual és <code>miter</code>, amb l'efecte d'estendre automàticament els límits exteriors dels segments connectats al seu punt d'intersecció, de manera que el traç representat cobreixi exactament els píxels complets centrats en cada punt final, si aquests segments connectats són horitzontals i/o verticals). Vegeu les dues seccions següents per a les demostracions d'aquests estils de línia addicionals..</p> +</div> + +<p>Per a les línies d'ample parell, cada meitat acaba sent una quantitat sencera de píxels, per la qual cosa es desitjable una trajectòria que estigui entre els píxels (és a dir, (3,1) a (3,5)), en lloc de baixar per la mitad dels píxels</p> + +<p>Tot i que és lleugerament dolorós quan inicialment es treballa amb gràfics 2D escalables, si ens fixem en la graella de píxels i la posició de les trajectòries, ens hem d'assegurar que els dibuixos es vegin correctes, independentment de l'escalat o qualsevol altra transformació. Una línia vertical de 1.0 d'ample dibuixada en la posició correcta, es convertirà en una línia nítida de 2 píxels quan s'ampliï per 2, i apareixerà en la posició correcta.</p> + +<h3 id="A_lineCap_example" name="A_lineCap_example">Un exemple de <code>lineCap</code></h3> + +<p>La propietat <code>lineCap</code> determina com es dibuixen els punts finals de cada línia. Hi ha tres valors possibles per a aquesta propietat i aquests són: <code>butt</code>, <code>round</code> i <code>square</code>. Per defecte, aquesta propietat està configurada com a <code>butt</code>.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/236/Canvas_linecap.png" style="float: right; height: 190px; width: 190px;"></p> + +<dl> + <dt><code>butt</code></dt> + <dd>Els extrems de les línies es quadren en els punts finals.</dd> + <dt><code>round</code></dt> + <dd>Els extrems de les línies són arrodonits.</dd> + <dt><code>square</code></dt> + <dd>Els extrems de les línies es quadren en afegir una caixa amb un ample igual i la meitat de l'alçada del gruix de la línia.</dd> +</dl> + +<p>En aquest exemple, dibuixarem tres línies, cadascuna amb un valor diferent per a la propietat <code>lineCap</code>. També afegim dues guies per veure les diferències exactes entre les tres. Cadascuna d'aquestes línies comença i acaba exactament en aquestes guies.</p> + +<p>La línia de l'esquerra utilitza l'opció predeterminada <code>butt</code>. Notarem que està dibuixada completament al ras amb les guies. La segona s'estableix, utilitzant l'opció <code>round</code>. Això afegeix un semicercle al extrem que té un radi de la meitat de l'ample de la línia. La línia de la dreta utilitza l'opció <code>square</code>. Això afegeix una caixa amb un ample igual i la meitat de l'alçada del gruix de la línia.</p> + +<pre class="brush: js;highlight[18]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + var lineCap = ['butt', 'round', 'square']; + + // Draw guides + ctx.strokeStyle = '#09f'; + ctx.beginPath(); + ctx.moveTo(10, 10); + ctx.lineTo(140, 10); + ctx.moveTo(10, 140); + ctx.lineTo(140, 140); + ctx.stroke(); + + // Draw lines + ctx.strokeStyle = 'black'; + for (var i = 0; i < lineCap.length; i++) { + ctx.lineWidth = 15; + ctx.lineCap = lineCap[i]; + ctx.beginPath(); + ctx.moveTo(25 + i * 50, 10); + ctx.lineTo(25 + i * 50, 140); + ctx.stroke(); + } +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_lineCap_example", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}</p> + +<h3 id="A_lineJoin_example" name="A_lineJoin_example">Un exemple de <code>lineJoin</code></h3> + +<p>La propietat <code>lineJoin</code> determina com s'uneixen dos segments de connexió (de línies, arcs o corbes) amb longituds diferents de zero en una forma (els segments degenerats amb longituds zero, que els punts finals i punts de control especificats estan exactament en la mateixa posició, s'ometen).</p> + +<p>Hi ha tres possibles valors per a aquesta propietat: <code>round</code>, <code>bevel</code> i <code>miter</code>. Per defecte aquesta propietat s'estableix a <code>miter</code>. Hem de tenir en compte que la configuració <code>lineJoin</code> no té cap efecte si els dos segments connectats tenen la mateixa direcció, ja que en aquest cas no s'afegirà cap àrea d'unió.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/237/Canvas_linejoin.png" style="float: right; height: 190px; width: 190px;"></p> + +<dl> + <dt><code>round</code></dt> + <dd>Arrodoneix les cantonades d'una forma emplenant un sector addicional del disc centrat en el punt final comú dels segments connectats. El radi per a aquestes cantonades arrodonides és igual a la meitat de l'amplada de la línia.</dd> + <dt><code>bevel</code></dt> + <dd>Emplena un àrea triangular addicional entre el punt final comú dels segments connectats i les cantonades rectangulars exteriors separades de cada segment..</dd> + <dt><code>miter</code></dt> + <dd>Els segments connectats s'uneixen estenent les seves vores exteriors per connectar-se en un sol punt, amb l'efecte d'emplenar un àrea addicional en forma de rombe. Aquest ajust s'efectua mitjançant la propietat <code>miterLimit</code>, que s'explica a continuació.</dd> +</dl> + +<p>L'exemple següent dibuixa tres trajectòries diferents, demostrant cadascuna d'aquestes tres configuracions de la propietat <code>lineJoin</code>; la sortida es mostra a dalt..</p> + +<pre class="brush: js;highlight[6]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + var lineJoin = ['round', 'bevel', 'miter']; + ctx.lineWidth = 10; + for (var i = 0; i < lineJoin.length; i++) { + ctx.lineJoin = lineJoin[i]; + ctx.beginPath(); + ctx.moveTo(-5, 5 + i * 40); + ctx.lineTo(35, 45 + i * 40); + ctx.lineTo(75, 5 + i * 40); + ctx.lineTo(115, 45 + i * 40); + ctx.lineTo(155, 5 + i * 40); + ctx.stroke(); + } +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_lineJoin_example", "180", "180", "https://mdn.mozillademos.org/files/237/Canvas_linejoin.png")}}</p> + +<h3 id="A_demo_of_the_miterLimit_property" name="A_demo_of_the_miterLimit_property"><span id="result_box" lang="ca"><span>Una demostració de la propietat</span></span> <code>miterLimit</code></h3> + +<p>Com s'ha vist en l'exemple anterior, en unir dues línies amb l'opció <code>miter</code>, les vores exteriors de les dues línies d'unió s'estenen fins al punt on es troben. En el cas de línies que tenen angles grans entre si, aquest punt no està lluny del punt de connexió interior. No obstant això, a mesura que els angles entre cada línia disminueixen, la distància (longitud de miter) entre aquests punts augmenta exponencialment.</p> + +<p>La propietat <code>miterLimit</code> determina quant lluny es pot col·locar el punt de connexió exterior des del punt de connexió interior. Si dues línies excedeixen aquest valor, es dibuixa una unió bisellada. S'ha de tenir en compte que la longitud màxima de miter és el producte de l'amplada de línia mesurat en el sistema de coordenades actual, pel valor d'aquesta propietat <code>miterLimit</code> (el valor per defecte és 10.0 en HTML {{HTMLElement("canvas")}}), per la qual cosa <code>miterLimit</code> pot ajustar-se independentment de l'escala de visualització actual o de qualsevol transformació afí de les trajectòries: només influeix en la forma efectiva de les vores de la línia representada.</p> + +<p>Més exactament, el límit de miter és la proporció màxima permesa de la longitud de l'extensió (en el llenç HTML, es mesura entre la cantonada exterior de les vores unides de la línia i el punt final comú dels segments de connexió especificats en la trajectòria) a la meitat de l'ample de la línia. La seva definició equival a la relació màxima permesa entre la distància dels punts interiors i exteriors de la unió de les vores i l'amplada total de la línia. Llavors, aixó és igual a la cosecant de la meitat de l'angle intern mínim dels segments de connexió per sota dels quals no es representarà cap unió miter, sinó només una unió bisellada:</p> + +<ul> + <li><code>miterLimit</code> = <strong>max</strong> <code>miterLength</code> / <code>lineWidth</code> = 1 / <strong>sin</strong> ( <strong>min</strong> <em>θ</em> / 2 )</li> + <li>El límit de miter predeterminat de 10.0 llevarà tots els miters per a angles aguts per sota d'uns 11 graus.</li> + <li>Un límit de miter igual a √2 ≈ 1.4142136 (arrodonit cap amunt) separarà els miters de tots els angles aguts, mantenint les unions de miter solament per als angles obtusos o rectes.</li> + <li>Un límit de miter igual a 1.0 és vàlid, però desactivarà tots els miters.</li> + <li>Els valors inferiors a 1.0 no són vàlids per al límit de miter.</li> +</ul> + +<p>Aquí tenim una petita demostració en la qual es pot configura <code>miterLimit</code> dinàmicament i veure com aquest afecta a les formes en el llenç. Les línies blaves mostren on es troben els punts d'inici i fi per a cadascuna de les línies en el patró de zig-zag.</p> + +<p>Si s'especifica un valor de <code>miterLimit</code> inferior a 4.2, en aquesta demostració, cap de les cantonades visibles s'unirà amb una extensió de miter, només hi haurà un petit bisell prop de les línies blaves; amb un <code>miterLimit</code> superior a 10, la majoria de les cantonades d'aquesta demostració haurien d'unir-se amb un miter allunyat de les línies blaves, i l'alçada del qual disminuiria entre les cantonades, d'esquerra a dreta perquè es connectarien amb angles creixents ; amb valors intermedis, les cantonades del costat esquerre només s'uneixen amb un bisell prop de les línies blaves, i les cantonades del costat dret amb una extensió de miter (també amb una altçada decreixent).</p> + +<pre class="brush: js;highlight[18]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // Clear canvas + ctx.clearRect(0, 0, 150, 150); + + // Draw guides + ctx.strokeStyle = '#09f'; + ctx.lineWidth = 2; + ctx.strokeRect(-5, 50, 160, 50); + + // Set line styles + ctx.strokeStyle = '#000'; + ctx.lineWidth = 10; + + // check input + if (document.getElementById('miterLimit').value.match(/\d+(\.\d+)?/)) { + ctx.miterLimit = parseFloat(document.getElementById('miterLimit').value); + } else { + alert('Value must be a positive number'); + } + + // Draw lines + ctx.beginPath(); + ctx.moveTo(0, 100); + for (i = 0; i < 24 ; i++) { + var dy = i % 2 == 0 ? 25 : -25; + ctx.lineTo(Math.pow(i, 1.5) * 2, 75 + dy); + } + ctx.stroke(); + return false; +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><table> + <tr> + <td><canvas id="canvas" width="150" height="150"></canvas></td> + <td>Change the <code>miterLimit</code> by entering a new value below and clicking the redraw button.<br><br> + <form onsubmit="return draw();"> + <label>Miter limit</label> + <input type="text" size="3" id="miterLimit"/> + <input type="submit" value="Redraw"/> + </form> + </td> + </tr> +</table></pre> + +<pre class="brush: js">document.getElementById('miterLimit').value = document.getElementById('canvas').getContext('2d').miterLimit; +draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_demo_of_the_miterLimit_property", "400", "180", "https://mdn.mozillademos.org/files/240/Canvas_miterlimit.png")}}</p> + +<h3 id="Ús_de_guions_de_línia">Ús de guions de línia</h3> + +<p>El mètode <code>setLineDash</code> i la propietat <code>lineDashOffset</code> especifiquen el patró de guió per a les línies. El mètode <code>setLineDash</code> accepta una llista de nombres que especifica distàncies per dibuixar alternativament una línia i un buit i la propietat <code>lineDashOffset</code> estableix un desplaçament on començar el patró</p> + +<p>En aquest exemple estem creant un efecte de formigues marxant. És una tècnica d'animació que es troba sovint en les eines de selecció de programes gràfics d'ordinador. Ajuda a l'usuari a distingir la vora de selecció del fons de la imatge, animant la vora. Més endavant, en aquest tutorial, podeu aprendre com fer-ho i altres <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations">animacions bàsiques</a>.</p> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="110" height="110"></canvas></pre> +</div> + +<pre class="brush: js;highlight[6]">var ctx = document.getElementById('canvas').getContext('2d'); +var offset = 0; + +function draw() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.setLineDash([4, 2]); + ctx.lineDashOffset = -offset; + ctx.strokeRect(10, 10, 100, 100); +} + +function march() { + offset++; + if (offset > 16) { + offset = 0; + } + draw(); + setTimeout(march, 20); +} + +march();</pre> + +<p>{{EmbedLiveSample("Using_line_dashes", "120", "120", "https://mdn.mozillademos.org/files/9853/marching-ants.png")}}</p> + +<h2 id="Gradients" name="Gradients">Gradients</h2> + +<p>Igual que qualsevol altre programa normal de dibuix , podem emplenar i traçar formes usant, gradients lineals i radials. Es crea un objecte {{domxref("CanvasGradient")}} utilitzant un dels mètodes següents. A continuació, podem assignar aquest objecte a les propietats <code>fillStyle</code> o <code>strokeStyle</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.createLinearGradient", "createLinearGradient(x1, y1, x2, y2)")}}</dt> + <dd>Crea un objecte de degradat lineal amb un punt inicial de (<code>x1</code>, <code>y1</code>) i un punt final de (<code>x2</code>, <code>y2</code>).</dd> + <dt>{{domxref("CanvasRenderingContext2D.createRadialGradient", "createRadialGradient(x1, y1, r1, x2, y2, r2)")}}</dt> + <dd>Crea un degradat radial. Els paràmetres representen dos cercles, un amb el seu centre en (<code>x1</code>, <code>y1</code>) i un radi de <code>r1</code>, i l'altre amb el seu centre en (<code>x2</code>, <code>y2</code>) amb un radi de <code>r2</code>.</dd> +</dl> + +<p>Per exemple:</p> + +<pre class="brush: js">var lineargradient = ctx.createLinearGradient(0, 0, 150, 150); +var radialgradient = ctx.createRadialGradient(75, 75, 0, 75, 75, 100); +</pre> + +<p>Una vegada s'ha creat un objecte <code>CanvasGradient</code> se li pot assignar colors usant el mètode <code>addColorStop()</code>.</p> + +<dl> + <dt>{{domxref("CanvasGradient.addColorStop", "gradient.addColorStop(position, color)")}}</dt> + <dd>Crea una nova parada de color en l'objecte <code>gradient</code>. <code>position</code> és un nombre entre 0.0 i 1.0 i defineix la posició relativa del color en el degradat, i l'argument <code>color</code>, ha de ser una cadena que representi un {{cssxref("<color>")}} CSS, indicant el color que el gradient ha d'aconseguir en aquest desplaçament en la transició.</dd> +</dl> + +<p>Es pot afegir tantes parades de color, a un gardient, com es necessiti. A continuació, es mostra un gradient lineal molt simple de blanc a negre.</p> + +<pre class="brush: js">var lineargradient = ctx.createLinearGradient(0, 0, 150, 150); +lineargradient.addColorStop(0, 'white'); +lineargradient.addColorStop(1, 'black'); +</pre> + +<h3 id="A_createLinearGradient_example" name="A_createLinearGradient_example"><span id="result_box" lang="ca"><span>Un exemple</span></span> de <code>createLinearGradient</code></h3> + +<p>En aquest exemple, es crearà dos gradientss diferents. Com es podrà veure aquí, tant les propietats <code>strokeStyle</code> com <code>fillStyle</code> poden acceptar un objecte <code>canvasGradient</code> com a entrada vàlida.</p> + +<pre class="brush: js;highlight[5,11]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // Create gradients + var lingrad = ctx.createLinearGradient(0, 0, 0, 150); + lingrad.addColorStop(0, '#00ABEB'); + lingrad.addColorStop(0.5, '#fff'); + lingrad.addColorStop(0.5, '#26C000'); + lingrad.addColorStop(1, '#fff'); + + var lingrad2 = ctx.createLinearGradient(0, 50, 0, 95); + lingrad2.addColorStop(0.5, '#000'); + lingrad2.addColorStop(1, 'rgba(0, 0, 0, 0)'); + + // assign gradients to fill and stroke styles + ctx.fillStyle = lingrad; + ctx.strokeStyle = lingrad2; + + // draw shapes + ctx.fillRect(10, 10, 130, 130); + ctx.strokeRect(50, 50, 50, 50); + +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>El primer és un gradient de fons. Com es veu, s'assignen dos colors a la mateixa posició. Això es fa per fer transicions de color molt nítides, en aquest cas del blanc al verd. No importa en quina ordre es defineixin les parades de color, però en aquest cas especial, ho fa de forma significativa. Si es mantenen les tasques en l'ordre en què es desitja que apareguin, això no serà un problema.</p> + +<p>En el segon gradient, no s'assigna el color inicial (a la posició 0.0), ja que no és estrictament necessari, perquè automàticament assumirà el color de la següent parada de color. Per tant, l'assignació del color negre en la posició 0.5, automàticament fa que el gradient, des de l'inici fins a aquest punt, sigui negre.</p> + +<p>{{EmbedLiveSample("A_createLinearGradient_example", "180", "180", "https://mdn.mozillademos.org/files/235/Canvas_lineargradient.png")}}</p> + +<h3 id="A_createRadialGradient_example" name="A_createRadialGradient_example"><span id="result_box" lang="ca"><span>Un exemple</span></span> de <code>createRadialGradient</code></h3> + +<p>En aquest exemple, definim quatre gradients radials diferents. Com que tenim el control sobre els punts d'inici i de tancament del gradient, podem aconseguir efectes més complexos del que normalment tindríem en els gradients radials "clàssics" que veiem, per exemple, en Photoshop (és a dir, un gradient amb un únic punt central, on el gradient s'expandeix cap a l'exterior en forma circular).</p> + +<pre class="brush: js;highlight[5,10,15,20]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // Create gradients + var radgrad = ctx.createRadialGradient(45, 45, 10, 52, 50, 30); + radgrad.addColorStop(0, '#A7D30C'); + radgrad.addColorStop(0.9, '#019F62'); + radgrad.addColorStop(1, 'rgba(1, 159, 98, 0)'); + + var radgrad2 = ctx.createRadialGradient(105, 105, 20, 112, 120, 50); + radgrad2.addColorStop(0, '#FF5F98'); + radgrad2.addColorStop(0.75, '#FF0188'); + radgrad2.addColorStop(1, 'rgba(255, 1, 136, 0)'); + + var radgrad3 = ctx.createRadialGradient(95, 15, 15, 102, 20, 40); + radgrad3.addColorStop(0, '#00C9FF'); + radgrad3.addColorStop(0.8, '#00B5E2'); + radgrad3.addColorStop(1, 'rgba(0, 201, 255, 0)'); + + var radgrad4 = ctx.createRadialGradient(0, 150, 50, 0, 140, 90); + radgrad4.addColorStop(0, '#F4F201'); + radgrad4.addColorStop(0.8, '#E4C700'); + radgrad4.addColorStop(1, 'rgba(228, 199, 0, 0)'); + + // draw shapes + ctx.fillStyle = radgrad4; + ctx.fillRect(0, 0, 150, 150); + ctx.fillStyle = radgrad3; + ctx.fillRect(0, 0, 150, 150); + ctx.fillStyle = radgrad2; + ctx.fillRect(0, 0, 150, 150); + ctx.fillStyle = radgrad; + ctx.fillRect(0, 0, 150, 150); +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>En aquest cas, hem desplaçat lleugerament el punt d'inici des del punt final per aconseguir un efecte 3D esfèric. Lo millor es tractar d'evitar que els cercles interns i externs se superposin, ja que això genera efectes estranys que són difícils de predir.</p> + +<p>L'última parada de color en cadascun dels quatre gradients, utilitza un color completament transparent. Si es desitja tenir una bona transició, d'aquesta a la parada de color anterior, tots dos colors han de ser iguals. Això no és molt obvi del codi, perquè utilitza dos mètodes de color CSS diferents com a demostració, però en el primer gradient <code>#019F62 = rgba(1,159,98,1)</code>.</p> + +<p>{{EmbedLiveSample("A_createRadialGradient_example", "180", "180", "https://mdn.mozillademos.org/files/244/Canvas_radialgradient.png")}}</p> + +<h2 id="Patterns" name="Patterns">Patrons</h2> + +<p>En un dels exemples de la pàgina anterior, hem utilitzat una sèrie de bucles per crear un patró d'imatges. Hi ha, però, un mètode molt més senzill: el mètode <code>createPattern()</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.createPattern", "createPattern(image, type)")}}</dt> + <dd>Crea i retorna un nou objecte de patró canvas. <code>image</code> es un {{domxref("CanvasImageSource")}} (és a dir, un {{domxref("HTMLImageElement")}}, altre llenç, un element {{HTMLElement("video")}} o similar. <code>type</code> és una cadena que indica com utilitzar la imatge.</dd> +</dl> + +<p>Type, especifica com utilitzar la imatge per crear el patró, i ha de ser un dels següents valors de cadena:</p> + +<dl> + <dt><code>repeat</code></dt> + <dd>Teixeix la imatge en ambdues direccions vertical i horitzontal.</dd> + <dt><code>repeat-x</code></dt> + <dd>Teixeix la imatge horitzontalment però no verticalment.</dd> + <dt><code>repeat-y</code></dt> + <dd>Teixeix la imatge verticalment però no horitzontalment.</dd> + <dt><code>no-repeat</code></dt> + <dd>No teixeix la imatge. S'utilitza només una vegada.</dd> +</dl> + +<p>S'utilitzar aquest mètode per crear un objecte {{domxref("CanvasPattern")}} que és molt similar als mètodes de gradient que hem vist anteriorment. Una vegada que s'ha creat un patró, se li pot assignar les propietats <code>fillStyle</code> o <code>strokeStyle</code>. Per exemple:</p> + +<pre class="brush: js">var img = new Image(); +img.src = 'someimage.png'; +var ptrn = ctx.createPattern(img, 'repeat'); +</pre> + +<div class="note"> +<p><strong>Nota:</strong> Igual que amb el mètode <code>drawImage()</code>, ens hem d'assegurar que la imatge que utilitzem s'hagi carregat abans de cridar a aquest mètode o que el patró es dibuixi incorrectament.</p> +</div> + +<h3 id="A_createPattern_example" name="A_createPattern_example"><span id="result_box" lang="ca"><span>Un exemple</span></span> de <code>createPattern</code></h3> + +<p>En aquest últim exemple, crearem un patró per assignar a la propietat <code>fillStyle</code>. L'únic que cal esmentar, és l'ús del controlador <code>onload</code> de la imatge. Això és per assegurar-se de que la imatge es carregui abans que s'assigni el patró.</p> + +<pre class="brush: js;highlight[10]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // create new image object to use as pattern + var img = new Image(); + img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png'; + img.onload = function() { + + // create pattern + var ptrn = ctx.createPattern(img, 'repeat'); + ctx.fillStyle = ptrn; + ctx.fillRect(0, 0, 150, 150); + + } +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat és així:</span></span></p> +</div> + +<p>{{EmbedLiveSample("A_createPattern_example", "180", "180", "https://mdn.mozillademos.org/files/222/Canvas_createpattern.png")}}</p> + +<h2 id="Ombres_(Shadows)">Ombres (Shadows)</h2> + +<p>L'ús d'ombres implica només quatre propietats:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX = float")}}</dt> + <dd>Indica la distància horitzontal que l'ombra ha d'estendre's des de l'objecte. Aquest valor no es veu afectat per la matriu de transformació. El valor predeterminat és 0.</dd> + <dt>{{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY = float")}}</dt> + <dd>Indica la distància vertical que l'ombra ha d'estendre's des de l'objecte. Aquest valor no es veu afectat per la matriu de transformació. El valor predeterminat és 0.</dd> + <dt>{{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur = float")}}</dt> + <dd>Indica la grandària de l'efecte de desenfocament; aquest valor no es correspon a un nombre de píxels i no es veu afectat per la matriu de transformació actual. El valor per defecte és 0.</dd> + <dt>{{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor = color")}}</dt> + <dd>Un valor de color CSS estàndard, que indica el color de l'efecte d'ombra; per defecte, és negre completament transparent.</dd> +</dl> + +<p>Les propietats <code>shadowOffsetX</code> i <code>shadowOffsetY</code> indiquen fins a on ha d'estendre's l'ombra des de l'objecte en les direccions X i Y; aquests valors no es veuen afectats per la matriu de transformació actual. Utilitzar valors negatius per fer que l'ombra s'estengui cap amunt o cap a l'esquerra, i valors positius perquè l'ombra s'estengui cap avall o cap a la dreta. Tots dos són 0 per defecte.</p> + +<p>La propietat <code>shadowBlur</code> indica la grandària de l'efecte de desenfocament; aquest valor no es correspon a un nombre de píxels i no es veu afectat per la matriu de transformació actual. El valor per defecte és 0.</p> + +<p>La propietat <code>shadowColor</code> és un valor de color CSS estàndard, que indica el color de l'efecte d'ombra; per defecte, és negre completament transparent.</p> + +<div class="note"> +<p><strong>Nota:</strong> Les ombres només es dibuixen per a <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing">operacions de composició</a> de <code>fonts</code>.</p> +</div> + +<h3 id="Un_exemple_de_text_ombrejat"><span id="result_box" lang="ca"><span>Un exemple de text ombrejat</span></span></h3> + +<p><span id="result_box" lang="ca"><span>Aquest exemple dibuixa una cadena de text amb un efecte d'ombra</span></span>.</p> + +<pre class="brush: js;highlight[4,5,6,7]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + ctx.shadowOffsetX = 2; + ctx.shadowOffsetY = 2; + ctx.shadowBlur = 2; + ctx.shadowColor = 'rgba(0, 0, 0, 0.5)'; + + ctx.font = '20px Times New Roman'; + ctx.fillStyle = 'Black'; + ctx.fillText('Sample String', 5, 30); +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="80"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_shadowed_text_example", "180", "100", "https://mdn.mozillademos.org/files/2505/shadowed-string.png")}}</p> + +<p>Veurem la propietat <code>font</code> i el mètode <code>fillText</code> en el següent capítol sobre com <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_text">dibuixar text</a>.</p> + +<h2 id="Regles_de_farciment_del_llenç">Regles de farciment del llenç</h2> + +<p>Quan s'utilitza <code>fill</code> (o {{domxref("CanvasRenderingContext2D.clip", "clip")}} i {{domxref("CanvasRenderingContext2D.isPointInPath", "isPointinPath")}}) es pot proporcionar opcionalment un algorisme de regles de farciment per determinar si un punt està dins o fora d'una trajectòria i, per tant, si s'emplena o no. Això és útil quan una trajectòria es creua o es nia.<br> + <br> + Dos valors són possibles:</p> + +<ul> + <li><code><strong>"nonzero</strong></code>": La <a class="external external-icon" href="http://en.wikipedia.org/wiki/Nonzero-rule">regla de direcció de traçat distint de zero</a>, que és la regla per defecte.</li> + <li><code><strong>"evenodd"</strong></code>: La <a class="external external-icon" href="http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule">regla de direcció de traçat parell-imparell</a>.</li> +</ul> + +<p>En aquest exemple estem usant la regla <code>evenodd</code>.</p> + +<pre class="brush: js;highlight[6]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + ctx.beginPath(); + ctx.arc(50, 50, 30, 0, Math.PI * 2, true); + ctx.arc(50, 50, 15, 0, Math.PI * 2, true); + ctx.fill('evenodd'); +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="100" height="100"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("Canvas_fill_rules", "110", "110", "https://mdn.mozillademos.org/files/9855/fill-rule.png")}}</p> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_shapes", "Web/API/Canvas_API/Tutorial/Drawing_text")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/composició/index.html b/files/ca/web/api/canvas_api/tutorial/composició/index.html new file mode 100644 index 0000000000..e556e911d4 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/composició/index.html @@ -0,0 +1,113 @@ +--- +title: Composició i retall +slug: Web/API/Canvas_API/Tutorial/Composició +tags: + - Canvas + - Graphics + - HTML + - HTML5 + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Compositing +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}</div> + +<div class="summary"> +<p>En tots els nostres <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Transformations">exemples anteriors</a>, les formes sempre s'han dibuixat una damunt de l'altra. Això és més que adequat per a la majoria de les situacions, però limita l'ordre en què es construeixen formes compostes. No obstant això, podem canviar aquest comportament establint la propietat <code>globalCompositeOperation</code>. A més, la propietat <code>clip</code> permet ocultar parts de formes no desitjades.</p> +</div> + +<h2 id="globalCompositeOperation" name="globalCompositeOperation"><code>globalCompositeOperation</code></h2> + +<p>No només podem dibuixar noves formes darrere de les formes existents, sinó que també, podem utilitzar-ho per emmascarar certes àrees, esborrar seccions del llenç (no limitades a rectangles, com ho fa el mètode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}) i molt més.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation = type")}}</dt> + <dd>Estableix el tipus d'operació de composició que s'aplicarà en dibuixar noves formes, on el tipus és una cadena que identifica quina de les dotze operacions de composició ha d'utilitzar-se.</dd> +</dl> + +<p>Veure <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing/Example">exemples de composició</a> per al codi dels següents exemples.</p> + +<p>{{EmbedLiveSample("Compositing_example", 750, 6750, "" ,"Web/API/Canvas_API/Tutorial/Compositing/Example")}}</p> + +<h2 id="Clipping_paths" name="Clipping_paths">Trajectòries de retall</h2> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/209/Canvas_clipping_path.png" style="float: right;">Una trajectòria de retall és com una forma de llenç normal, però actua com una màscara per ocultar parts no desitjades de formes. Això es visualitza en la imatge de la dreta. La forma d'estel vermell és la nostre trajectòria de retall. Tot el que queda fora d'aquesta trajectòria no es dibuixarà en el llenç.</p> + +<p>Si comparem les trajectòries de retall amb la propietat <code>globalCompositeOperation</code>, que hem vist anteriorment, veiem dos modes de composició que aconsegueixen més o menys el mateix efecte en <code>source-in</code> i <code>source-atop</code>. Les diferències més importants entre les dues, són que les trajectòries de retall mai es dibuixen realment al llenç i la trajectòria de retall mai es veu afectada per l'addició de noves formes. Això fa que les trajectòries de retall siguin ideals per dibuixar múltiples formes en un àrea restringida</p> + +<p>En el capítol sobre <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes">dibuixar formes</a>, només s'ha esmentat els mètodes <code>stroke()</code> i <code>fill()</code>, però hi ha un tercer mètode que es pot utilitzar amb les trajectòries, anomenat <code>clip()</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.clip", "clip()")}}</dt> + <dd>Converteix la trajectòria que s'està construint, en la trajectòria de retall actual.</dd> +</dl> + +<p>Utilitzar <code>clip()</code> en lloc de <code>closePath()</code> per tancar una trajectòria i convertir-la en una trajectòria de retall en lloc de traçar o emplenar la trajectòria.</p> + +<p>Per defecte, l'element {{HTMLElement("canvas")}}, té una trajectòria de retall de la mateixa grandària que el propi llenç. En altres paraules, no es produeix cap retall.</p> + +<h3 id="A_clip_example" name="A_clip_example">Un exemple de <code>clip</code></h3> + +<p>En aquest exemple, utilitzarem un trajectòria de retall circular per restringir el dibuix d'un conjunt d'estels aleatòries a una regió en particular.</p> + +<pre class="brush: js;highlight[9]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + ctx.fillRect(0, 0, 150, 150); + ctx.translate(75, 75); + + // Crea una trajectòria de retall circular + ctx.beginPath(); + ctx.arc(0, 0, 60, 0, Math.PI * 2, true); + ctx.clip(); + + // dibuixa el fons + var lingrad = ctx.createLinearGradient(0, -75, 0, 75); + lingrad.addColorStop(0, '#232256'); + lingrad.addColorStop(1, '#143778'); + + ctx.fillStyle = lingrad; + ctx.fillRect(-75, -75, 150, 150); + + // dibuixa els estels + for (var j = 1; j < 50; j++) { + ctx.save(); + ctx.fillStyle = '#fff'; + ctx.translate(75 - Math.floor(Math.random() * 150), + 75 - Math.floor(Math.random() * 150)); + drawStar(ctx, Math.floor(Math.random() * 4) + 2); + ctx.restore(); + } + +} + +function drawStar(ctx, r) { + ctx.save(); + ctx.beginPath(); + ctx.moveTo(r, 0); + for (var i = 0; i < 9; i++) { + ctx.rotate(Math.PI / 5); + if (i % 2 === 0) { + ctx.lineTo((r / 0.525731) * 0.200811, 0); + } else { + ctx.lineTo(r, 0); + } + } + ctx.closePath(); + ctx.fill(); + ctx.restore(); +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>En les primeres línies de codi, dibuixem un rectangle negre de la grandària del llenç com a fons, després traslladem l'origen al centre. A continuació, creem la trajectòria de retall circular, dibuixant un arc i cridem <code>clip()</code>. Les trajectòries de retall també formen part de l'estat de guardat del llenç. Si haguéssim volgut mantenir la trajectòria de retall original, podríem haver guardat l'estat del llenç abans de crear el nou.</p> + +<p>Tot el que es dibuixa després de crear la trajectòria de retall, només apareixerà dins d'aquesta trajectòria. Es pot veure això clarament, en el gradient lineal que es dibuixa a continuació. Després d'això, es dibuixa un conjunt de 50 estels posicionats aleatòriament i escalats, usant la funció personalitzada <code>drawStar()</code>. De nou, els estels, només apareixen dins de la trajectòria de retall definida.</p> + +<p>{{EmbedLiveSample("A_clip_example", "180", "180", "https://mdn.mozillademos.org/files/208/Canvas_clip.png")}}</p> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/dibuixar_text/index.html b/files/ca/web/api/canvas_api/tutorial/dibuixar_text/index.html new file mode 100644 index 0000000000..37b730176a --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/dibuixar_text/index.html @@ -0,0 +1,165 @@ +--- +title: Dibuixar text +slug: Web/API/Canvas_API/Tutorial/Dibuixar_text +tags: + - Canvas + - Graphics + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Drawing_text +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}</div> + +<div class="summary"> +<p>Després d'haver vist com <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors">aplicar estils i colors</a> en el capítol anterior, ara veurem com dibuixar text sobre canvas.</p> +</div> + +<h2 id="Dibuixar_text">Dibuixar text</h2> + +<p>El context de representació de canvas proporciona dos mètodes per representar el text:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.fillText", "fillText(text, x, y [, maxWidth])")}}</dt> + <dd>Omple un text donat en la posició donada (x, y). Opcionalment amb ample màxim per dibuixar.</dd> + <dt>{{domxref("CanvasRenderingContext2D.strokeText", "strokeText(text, x, y [, maxWidth])")}}</dt> + <dd>Traça un text donat en la posició donada (x, y). Opcionalment amb ample màxim per dibuixar.</dd> +</dl> + +<h3 id="Un_exemple_de_fillText">Un exemple de <code>fillText</code></h3> + +<p><span class="short_text" id="result_box" lang="ca"><span>El text s'omple usant l'actual</span></span> <code>fillStyle</code>.</p> + +<pre class="brush: js;highlight[4]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + ctx.font = '48px serif'; + ctx.fillText('Hello world', 10, 50); +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="300" height="100"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_fillText_example", 310, 110)}}</p> + +<h3 id="Un_exemple_de_strokeText">Un exemple de <code>strokeText</code></h3> + +<p><span class="short_text" id="result_box" lang="ca"><span>El text s'omple usant l'actual</span></span> <code>strokeStyle</code>.</p> + +<pre class="brush: js;highlight[4]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + ctx.font = '48px serif'; + ctx.strokeText('Hello world', 10, 50); +}</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="300" height="100"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_strokeText_example", 310, 110)}}</p> + +<h2 id="Estil_de_text">Estil de text</h2> + +<p>En els exemples anteriors ja hem fet ús de la propietat <code>font</code> per fer el text una mica més gran que la grandària predeterminada. Hi ha algunes propietats més que permeten ajustar la forma en què el text es mostra en el llenç:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.font", "font = value")}}</dt> + <dd>L'estil de text actual que s'utilitza en dibuixar text. Aquesta cadena utilitza la mateixa sintaxi que la propietat <a href="/en-US/docs/Web/CSS">CSS</a> {{cssxref("font")}}. La font predeterminada és 10px sans-serif.</dd> + <dt>{{domxref("CanvasRenderingContext2D.textAlign", "textAlign = value")}}</dt> + <dd>Configuració de l'alineació del text. Valors possibles: <code>start</code>, <code>end</code>, <code>left</code>, <code>right</code> o <code>center</code>. El valor predeterminat és <code>start</code>.</dd> + <dt>{{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline = value")}}</dt> + <dd>Configuració d'alineació de la línia de base. Valors possibles: <code>top</code>, <code>hanging</code>, <code>middle</code>, <code>alphabetic</code>, <code>ideographic</code>, <code>bottom</code>. El valor predeterminat és <code>alphabetic</code>.</dd> + <dt>{{domxref("CanvasRenderingContext2D.direction", "direction = value")}}</dt> + <dd>Direccionalitat. Valors possibles: <code>ltr</code>, <code>rtl</code>, <code>inherit</code>. El valor predeterminat és <code>inherit</code>.</dd> +</dl> + +<p>Aquestes propietats poden ser familiars, si heu treballat abans amb CSS.</p> + +<p>El següent diagrama del <a class="external" href="http://www.whatwg.org/" title="http://www.whatwg.org/">WHATWG</a> mostra les diverses línies de base compatibles amb la propietat <code>textBaseline</code>.<img alt="La part superior del quadrat em està aproximadament en la part superior dels glifos en una font, la línia de base penjant és on alguns glifos com आ estan ancorats, el mitjà està a mig camí entre la part superior del quadrat em i la part inferior del quadrat em,la línia de base alfabètica és on ancoren caràcters com Á, ÿ, +f i Ω, la línia de base ideográfica és on glifos com 私 i 達 estan ancorats, i la part inferior del quadrat em està aproximadament en la part inferior dels glifos en una font. La part superior i inferior del quadre delimitador pot estar lluny d'aquestes línies de base, a causa que els glifos s'estenen molt més allà del quadrat em." src="http://www.whatwg.org/specs/web-apps/current-work/images/baselines.png"></p> + +<h3 id="Un_exemple_de_textBaseline">Un exemple de textBaseline</h3> + +<p>Editeu el codi següent i vegeu els canvis actualitzats en directe en el llenç:</p> + +<pre class="brush: js;highlight[2]">ctx.font = '48px serif'; +ctx.textBaseline = 'hanging'; +ctx.strokeText('Hello world', 0, 100); +</pre> + +<div class="hidden"> +<h6 id="Playable_code" name="Playable_code">Playable code</h6> + +<pre class="brush: html"><canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas> +<div class="playable-buttons"> + <input id="edit" type="button" value="Edit" /> + <input id="reset" type="button" value="Reset" /> +</div> +<textarea id="code" class="playable-code"> +ctx.font = "48px serif"; +ctx.textBaseline = "hanging"; +ctx.strokeText("Hello world", 0, 100);</textarea> +</pre> + +<pre class="brush: js">var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var edit = document.getElementById('edit'); +var code = textarea.value; + +function drawCanvas() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + eval(textarea.value); +} + +reset.addEventListener('click', function() { + textarea.value = code; + drawCanvas(); +}); + +edit.addEventListener('click', function() { + textarea.focus(); +}) + +textarea.addEventListener('input', drawCanvas); +window.addEventListener('load', drawCanvas); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 360) }}</p> + +<h2 id="Mesures_avançades_de_text">Mesures avançades de text</h2> + +<p>En el cas de necessitar obtenir més detalls sobre el text, el següent mètode permet mesurar-ho.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.measureText", "measureText()")}}</dt> + <dd>Retorna un objecte {{domxref("TextMetrics")}} que conté l'amplada, en píxels, que serà el text especificat quan es dibuixi en l'estil de text actual.</dd> +</dl> + +<p>El següent fragment de codi mostra com es pot mesurar un text i obtenir la seva amplada</p> + +<pre class="brush: js;highlight[3]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + var text = ctx.measureText('foo'); // TextMetrics object + text.width; // 16; +} +</pre> + +<h2 id="Notes_específiques_de_Gecko"><span class="s3gt_translate_tooltip_variant" id="s3gt_translate_tooltip_variant_to_id_0">Notes específiques de Gecko</span></h2> + +<p>En Gecko (el motor de representació de Firefox, Firefox OS i altres aplicacions basades en Mozilla), es van implementar algunes <a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#Prefixed_APIs">APIs prefixades</a> en versions anteriors per dibuixar text en un llenç. Ara estan desaprovades i eliminades, ja no es garanteix el seu funcionament.</p> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Applying_styles_and_colors", "Web/API/Canvas_API/Tutorial/Using_images")}}</p> + +<div class="s3gt_translate_tooltip_mini_box" id="s3gt_translate_tooltip_mini" style="position: absolute; left: 348px; top: 2154px;"> +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_logo" title="Traducir texto seleccionado"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_sound" title="Reproducir"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_copy" title="Copy text to Clipboard"> </div> +</div> diff --git a/files/ca/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/ca/web/api/canvas_api/tutorial/drawing_shapes/index.html new file mode 100644 index 0000000000..6e8162ac44 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -0,0 +1,579 @@ +--- +title: Dibuix de formes amb canvas +slug: Web/API/Canvas_API/Tutorial/Drawing_shapes +tags: + - Canvas + - Graphics + - HTML + - HTML Canvas + - HTML5 + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}</div> + +<div class="summary"> +<p>Ara que hem configurat el nostre <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage">entorn canvas</a>, podem entrar en els detalls de com dibuixar sobre el llenç. Al final d'aquest article, haureu après a dibuixar rectangles, triangles, línies, arcs i corbes, proporcionant-vos familiaritat amb algunes de les formes bàsiques. Treballar amb camins és essencial a l'hora de dibuixar objectes sobre el llenç i veurem com fer-ho.</p> +</div> + +<h2 id="La_graella">La graella</h2> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/224/Canvas_default_grid.png" style="float: right; height: 220px; width: 220px;">Abans de poder començar a dibuixar, hem de parlar sobre la graella canvas o <strong>coordinar l'espai</strong>. El nostre esquelet HTML de la pàgina anterior tenia un element canvas amb 150 píxels d'amplada i 150 píxels d'alçada. A la dreta, veureu aquest llenç amb la graella predeterminada superposada. Normalment, una unitat de la graella correspon a 1 píxel sobre el llenç. L'origen d'aquesta graella es posiciona a la cantonada <em>superior esquerra</em> a la coordenada (0,0). Tots els elements es col·loquen en relació amb aquest origen. Per tant, la posició de la cantonada superior esquerra del quadrat blau es converteix en x pixels des de l'esquerra i y pixels des de la part superior, en la coordenada (x,y). Més endavant, en aquest tutorial veurem com podem traduir l'origen a una posició diferent, girar la graella i fins i tot escalar-la, però de moment ens quedarem amb el valor predeterminat.</p> + +<h2 id="Dibuixar_rectangles">Dibuixar rectangles</h2> + +<p>A diferència de {{Glossary("SVG")}}, {{HTMLElement("canvas")}} només suporta una forma primitiva: rectangles. Totes les altres formes han de crear-se combinant una o més trajectòries, llistes de punts connectats per línies. Afortunadament, tenim una gran varietat de funcions de dibuix de trajectòria que permeten compondre formes molt complexes.</p> + +<p>Primer vegem el rectangle. Hi ha tres funcions que dibuixen rectangles en canvas:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, width, height)")}}</dt> + <dd>Dibuixa un rectangle ple.</dd> + <dt>{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, width, height)")}}</dt> + <dd>Dibuixa un contorn rectangular.</dd> + <dt>{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, width, height)")}}</dt> + <dd>Esborra l'àrea rectangular especificada, fent-la completament transparent</dd> +</dl> + +<p>Cadascuna d'aquestes tres funcions pren els mateixos paràmetres. <code>x</code> i <code>y</code> indiquen la posició en el llenç (relativa a l'origen) de la cantonada superior esquerra del rectangle. <code>width</code> i <code>height</code> proporcionen la grandària del rectangle</p> + +<p>A sota hi ha la funció <code>draw()</code> de la pàgina anterior, però ara fa ús d'aquestes tres funcions.</p> + +<h3 id="Exemple_de_forma_rectangular">Exemple de forma rectangular</h3> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + ctx.fillRect(25, 25, 100, 100); + ctx.clearRect(45, 45, 60, 60); + ctx.strokeRect(50, 50, 50, 50); + } +}</pre> + +<p><span id="result_box" lang="ca"><span>La sortida d'aquest exemple es mostra a continuació</span></span>.</p> + +<p>{{EmbedLiveSample("Rectangular_shape_example", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}</p> + +<p>La funció <code>fillRect()</code> dibuixa un quadrat negre de 100 píxels a cada costat. La funció <code>clearRect()</code> esborra un quadrat de 60x60 píxels del centre, i a continuació es crida a <code>strokeRect()</code> per crear un contorn rectangular de 50x50 píxels dins del quadrat buidat.</p> + +<p>A les properes pàgines veurem dos mètodes alternatius per <code>clearRect()</code>, i també veurem com canviar l'estil de color i traç de les formes representades.</p> + +<p>A diferència de les funcions de trajectòria, que veurem en la següent secció, les tres funcions rectangulars dibuixen immediatament al llenç.</p> + +<h2 id="Dibuixar_trajectories">Dibuixar trajectories</h2> + +<p>Les úniques altres formes primitives són les <em>trajectòries</em>. Una trajectòria és una llista de punts, connectats per segments de línies que poden ser de diferents formes, corbes o no, de diferent amplària i de diferent color. Un trajectòria, o fins i tot una subtrajecte, pot ser tancada. Per fer formes utilitzant trajectòries, es prenen alguns passos addicionals:</p> + +<ol> + <li>Primer, crea la trajectòria.</li> + <li>A continuació, utilitzar <a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#Paths">ordres de dibuix</a> per dibuixar en la trajectòria.</li> + <li>Després, tancar la trajectòria.</li> + <li>Una vegada que s'ha creat la trajectòria, podeu traçar o omplir la trajectòria per representar-la</li> +</ol> + +<p>A continuació, es detallen les funcions que s'utilitzen per realitzar aquests passos:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}</dt> + <dd>Crea una trajectòria nova. Una vegada creada, les futures ordres de dibuix s'aplican a la trajectòria i són utilitzades per construir-la.</dd> + <dt><a href="/en-US/docs/Web/API/CanvasRenderingContext2D#Paths">Mètodes de trajectòria</a></dt> + <dd>Mètodes per establir diferentes trajectòries d'objectes.</dd> + <dt>{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}</dt> + <dd>Afegeix una línia recta a la trajectòria, anant a l'inici de la subruta actual.</dd> + <dt>{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}</dt> + <dd>Dibuixa la forma traçant el seu contorn.</dd> + <dt>{{domxref("CanvasRenderingContext2D.fill", "fill()")}}</dt> + <dd>Dibuixa una forma sòlida emplenant l'àrea de contingut de la trajectòria.</dd> +</dl> + +<p>El primer pas per crear una trajectòria és cridar a <code>beginPath()</code>. Internament, les trajectòries s'emmagatzemen com una llista de subtrayectes (línies, arcs, etc.) que formen una forma. Cada vegada que es crida a aquest mètode, la llista es reinicia i podem començar a dibuixar noves formes.</p> + +<div class="note"><strong>Nota:</strong> Quan la trajectòria actual està buida, com immediatament després de cridar <code>beginPath()</code>, o en un llenç recentment creat, la primera ordre de construcció de la trajectòria sempre es tractarà com <code>moveTo()</code>, independentment del que realment sigui. Per aquesta raó, gairebé sempre voldreu establir específicament la seva posició inicial després de restablir una trajectòria.</div> + +<p>El segon pas és cridar als mètodes que realment especifiquen les trajectòries que s'han de dibuixar. Ho veurem en breu.</p> + +<p>El tercer, i com a pas opcional, és cridar <code>closePath()</code>. Aquest mètode intenta tancar la forma, dibuixant una recta des del punt actual fins al començament. Si la forma ja s'ha tancat o només hi ha un punt a la llista, aquesta funció no fa res.</p> + +<div class="note"><strong>Nota:</strong> Quan crideu <code>fill()</code>, totes les formes obertes es tanquen automàticament, de manera que no heu de cridar <code>closePath()</code>. Aquest <strong>no</strong> és el cas quan es crida <code>stroke()</code>.</div> + +<h3 id="Dibuixar_un_triangle">Dibuixar un triangle</h3> + +<p>Per exemple, el codi per dibuixar un triangle es veuria així:</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="100" height="100"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + ctx.beginPath(); + ctx.moveTo(75, 50); + ctx.lineTo(100, 75); + ctx.lineTo(100, 25); + ctx.fill(); + } +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat és així</span></span>:</p> + +<p>{{EmbedLiveSample("Drawing_a_triangle", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}</p> + +<h3 id="Moure_el_llapis">Moure el llapis</h3> + +<p>Una funció molt útil, que en realitat no dibuixa res però es converteix en part de la llista de trajectòries descrita anteriorment, és la funció <code>moveTo()</code>. Probablement el millor sigui pensar en això com aixecar un bolígraf o un llapis d'un lloc en un tros de paper i col·locar-ho en el següent.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}</dt> + <dd>Mou el llapis a les coordenades especificades per <code>x</code> i <code>y</code>.</dd> +</dl> + +<p>Quan s'inicialitza el llenç o es crida <code>beginPath()</code> normalment voldreu utilitzar la funció <code>moveTo()</code> per col·locar el punt de partida en un altre lloc. També podrieu utilitzar <code>moveTo()</code> per dibuixar trajectòries no connectades. Feu un cop d'ull a la cara somrient d'a baix</p> + +<p>Proveu-ho vosaltres mateixos, podeu utilitzar el fragment de codi que es mostra a continuació. Simplement enganxeu-lo a la funció <code>draw()</code> que vam veure anteriorment.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight:[8,10,12]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + ctx.beginPath(); + ctx.arc(75, 75, 50, 0, Math.PI * 2, true); // Outer circle + ctx.moveTo(110, 75); + ctx.arc(75, 75, 35, 0, Math.PI, false); // Mouth (clockwise) + ctx.moveTo(65, 65); + ctx.arc(60, 65, 5, 0, Math.PI * 2, true); // Left eye + ctx.moveTo(95, 65); + ctx.arc(90, 65, 5, 0, Math.PI * 2, true); // Right eye + ctx.stroke(); + } +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat és així</span></span>:</p> + +<p>{{EmbedLiveSample("Moving_the_pen", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}</p> + +<p>Si voleu veure les línies de connexió, podeu eliminar les línies que criden <code>moveTo()</code>.</p> + +<div class="note"> +<p><strong>Nota:</strong> Per obtenir més informació sobre la funció <code>arc()</code>, vegeu {{anch("Arcs")}} a continuació.</p> +</div> + +<h3 id="Línies">Línies</h3> + +<p>Per dibuixar línies rectes, utilitzeu el mètode <code>lineTo()</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}</dt> + <dd>Dibuixa una línia des de la posició del dibuix actual fins a la posició especificada per <code>x</code> i <code>y</code>.</dd> +</dl> + +<p>Aquest mètode pren dos arguments, <code>x</code> i <code>y</code>, que són les coordenades del punt final de la línia. El punt de partida depèn de les trajectòries prèviament traçades, on el punt final de la trajectòria anterior és el punt de partida de la següent, etc. El punt de partida també es pot canviar utilitzant el mètode <code>moveTo()</code>.</p> + +<p>L'exemple següent dibuixa dos triangles, un omplert i un altre delineat.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[9,10,16,17]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + // Filled triangle + ctx.beginPath(); + ctx.moveTo(25, 25); + ctx.lineTo(105, 25); + ctx.lineTo(25, 105); + ctx.fill(); + + // Stroked triangle + ctx.beginPath(); + ctx.moveTo(125, 125); + ctx.lineTo(125, 45); + ctx.lineTo(45, 125); + ctx.closePath(); + ctx.stroke(); + } +} +</pre> + +<p>Això comença cridant <code>beginPath()</code> per iniciar una nova trajectòria de forma. Seguidament, utilitzem el mètode <code>moveTo()</code> per moure el punt de partida a la posició desitjada. A continuació, es dibuixen dues línies que formen dues cares del triangle.</p> + +<p>{{EmbedLiveSample("Lines", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}</p> + +<p>Notareu la diferència entre el triangle emplenat i traçat. Això és, com es va esmentar anteriorment, perquè les formes es tanquen automàticament quan s'omple una trajectòria, però no quan es tracen. Si deixem de costat <code>closePath()</code> per al triangle traçat, només s'haurien dibuixat dues línies, no un triangle complet.</p> + +<h3 id="Arcs">Arcs</h3> + +<p>Per dibuixar arcs o cercles, utilitzem els mètodes <code>arc()</code> o <code>arcTo()</code>.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, radius, startAngle, endAngle, anticlockwise)")}}</dt> + <dd>Dibuixa un arc que està centrat en la posició (<em>x, y</em>) amb un radi <em>r</em> que comença en <em>startAngle</em> i acaba en <em>endAngle</em> que va en la direcció donada, indicada per el <em>sentit antihorari</em> (predeterminat en <em>sentit horari</em>)</dd> + <dt>{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, radius)")}}</dt> + <dd>Dibuixa un arc amb els punts de control i radi donats, connectats al punt anterior per una línia recta.</dd> +</dl> + +<p>Vegem amb més detall el mètode <code>arc</code>, que pren sis paràmetres: <code>x</code> i <code>y</code> són les coordenades del centre del cercle en el qual s'ha de dibuixar l'arc. <code>radius</code> és autoexplicatiu. Els paràmetres <code>startAngle</code> i <code>endAngle</code> defineixen els punts inicial i final de l'arc en radiants, al llarg de la corba del cercle. Aquests es mesuren des de l'eix x. El paràmetre <code>anticlockwise</code> és un valor booleà, que quan és <code>true</code>, dibuixa l'arc en sentit contrari a les agulles del rellotge; en cas contrari, l'arc es dibuixa en sentit horari.</p> + +<div class="note"> +<p><strong>Nota</strong>: Els angles en la funció <code>arc</code> es mesuren en radiants, no en graus. Per convertir graus a radiants es pot utilitzar la següent expressió Javascript: <code>radians = (Math.PI/180)*graus</code>.</p> +</div> + +<p>El següent exemple és una mica més complex que el que hem vist anteriorment. Dibuixa 12 arcs diferents, tots amb diferents angles i omplerts.</p> + +<p>Els dos <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for">bucles (loops) </a><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for"><code>for</code></a> són per recórrer les files i columnes dels arcs. Per a cada arc, iniciem una nova trajectòria cridant <code>beginPath()</code>. En el codi, cadascun dels paràmetres de l'arc es troba en una variable per a major claredat, però no necessàriament ho fareu en la vida real.</p> + +<p>Les coordenades <code>x</code> i <code>y</code> han de ser suficientment clares. <code>radius</code> i <code>startAngle</code> són fixes. <code>endAngle</code> comença a 180 graus (mig cercle) en la primera columna i s'incrementa per passos de 90 graus, culminant en un cercle complet en l'última columna</p> + +<p>La instrucció per al paràmetre <code>clockwise</code> (sentit horari), resulti en la primera i la tercera fila que es dibuixin com a arcs en sentit horari i la segona i quarta fila com a arcs en sentit antihorari. Finalment, la sentència <code>if</code> fa que la meitat superior traci els arcs i la meitat inferior ompli els arcs.</p> + +<div class="note"> +<p><strong>Nota:</strong> Aquest exemple requereix un llenç una mica més gran que els altres, en aquesta pàgina: 150 x 200 píxels.</p> +</div> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="200"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[16]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + for (var i = 0; i < 4; i++) { + for (var j = 0; j < 3; j++) { + ctx.beginPath(); + var x = 25 + j * 50; // x coordinate + var y = 25 + i * 50; // y coordinate + var radius = 20; // Arc radius + var startAngle = 0; // Starting point on circle + var endAngle = Math.PI + (Math.PI * j) / 2; // End point on circle + var anticlockwise = i % 2 !== 0; // clockwise or anticlockwise + + ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise); + + if (i > 1) { + ctx.fill(); + } else { + ctx.stroke(); + } + } + } + } +} +</pre> + +<p>{{EmbedLiveSample("Arcs", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}</p> + +<h3 id="Corbes_bézier_i_quadràtiques">Corbes bézier i quadràtiques</h3> + +<p>El següent tipus de trajectòries disponibles són les <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">corbes de Bézier</a>, disponibles en varietats cúbiques i quadràtiques. Aquests s'utilitzen generalment per dibuixar formes orgàniques complexes.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}</dt> + <dd>Dibuixa una corba Bézier quadràtica des de la posició actual del llapis fins al punt final especificat per <code>x</code> i <code>y</code>, utilitzant els punts de control especificats per <code>cp1x</code> i <code>cp1y</code>.</dd> + <dt>{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}</dt> + <dd>Dibuixa una corba Bézier cúbica des de la posició actual del llapis fins al punt final especificat per <code>x</code> i <code>y</code>, utilitzant els punts de control especificats per (<code>cp1x</code>, <code>cp1y</code>) i (cp2x, cp2y).</dd> +</dl> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/223/Canvas_curves.png" style="float: right; height: 190px; width: 190px;">La millor manera de descriure la diferència entre aquestes dues opcions és usant la imatge de la dreta. Una corba Bézier quadràtica té un punt inicial i un punt final (punts blaus) i només un <strong>punt de control</strong> (indicat pel punt vermell), mentre que una corba Bézier cúbica utilitza dos punts de control.</p> + +<p>Els paràmetres <code>x</code> i <code>y</code> de tots dos mètodes són les coordenades del punt final. <code>cp1x</code> i <code>cp1y</code> són les coordenades del primer punt de control, i <code>cp2x</code> i <code>cp2y</code> són les coordenades del segon punt de control.</p> + +<p>L'ús de corbes de Bézier cúbiques i quadràtiques pot ser tot un repte, perquè a diferència del programari de dibuix vectorial com Adobe Illustrator, no tenim respostes visuals directes sobre el que estem fent. Això fa que sigui bastant difícil dibuixar formes complexes. En el següent exemple, dibuixarem algunes formes orgàniques senzilles, però si teniu el temps i, sobretot paciència, es poden crear formes molt més complexes.</p> + +<p>No hi ha res molt difícil en aquests exemples. En tots dos casos veiem una successió de corbes dibuixades que finalment donen com a resultat una forma completa.</p> + +<h4 id="Corbes_de_Bezier_quadràtiques">Corbes de Bezier quadràtiques</h4> + +<p>Aquest exemple usa múltiples corbes de Bézier quadràtiques per representar un globus de diàleg .</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[9,10,11,12,13,14]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + // Quadratric curves example + ctx.beginPath(); + ctx.moveTo(75, 25); + ctx.quadraticCurveTo(25, 25, 25, 62.5); + ctx.quadraticCurveTo(25, 100, 50, 100); + ctx.quadraticCurveTo(50, 120, 30, 125); + ctx.quadraticCurveTo(60, 120, 65, 100); + ctx.quadraticCurveTo(125, 100, 125, 62.5); + ctx.quadraticCurveTo(125, 25, 75, 25); + ctx.stroke(); + } +} +</pre> + +<p>{{EmbedLiveSample("Quadratic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}</p> + +<h4 id="Corbes_de_Bezier_cúbiques">Corbes de Bezier cúbiques</h4> + +<p><span id="result_box" lang="ca"><span>Aquest exemple dibuixa un cor utilitzant corbes Bézier cúbiques</span></span>.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[9,10,11,12,13,14]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + // Cubic curves example + ctx.beginPath(); + ctx.moveTo(75, 40); + ctx.bezierCurveTo(75, 37, 70, 25, 50, 25); + ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5); + ctx.bezierCurveTo(20, 80, 40, 102, 75, 120); + ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5); + ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25); + ctx.bezierCurveTo(85, 25, 75, 37, 75, 40); + ctx.fill(); + } +} +</pre> + +<p>{{EmbedLiveSample("Cubic_Bezier_curves", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}</p> + +<h3 id="Rectangles">Rectangles</h3> + +<p>A més dels tres mètodes que vam veure en {{anch("Drawing rectangles")}}, que dibuixen formes rectangulars directament al llenç, també està el mètode <code>rect()</code>, que afegeix una trajectòria rectangular a una trajectòria actualment oberta.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.rect", "rect(x, y, width, height)")}}</dt> + <dd>Dibuixa un rectangle a la cantonada superior esquerra especificada per (<code>x</code>, <code>y</code>) amb <code>width</code> i <code>height</code> especificats.</dd> +</dl> + +<p>Quan s'executa aquest mètode, el mètode <code>moveTo()</code> es crida automàticament amb els paràmetres (0,0). En altres paraules, la posició actual del llapis es restableix automàticament a les coordenades predeterminades.</p> + +<h3 id="Fer_combinacions">Fer combinacions</h3> + +<p>Fins ara, cada exemple d'aquesta pàgina només ha utilitzat un tipus de funció de trajectòria per forma. No obstant això, no hi ha limitació en el nombre o tipus de trajectòries que podeu utilitzar per crear una forma. Així, en aquest últim exemple, combinem totes les funcions de trajectòria per crear un conjunt de personatges de joc molt famosos.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + roundedRect(ctx, 12, 12, 150, 150, 15); + roundedRect(ctx, 19, 19, 150, 150, 9); + roundedRect(ctx, 53, 53, 49, 33, 10); + roundedRect(ctx, 53, 119, 49, 16, 6); + roundedRect(ctx, 135, 53, 49, 33, 10); + roundedRect(ctx, 135, 119, 25, 49, 10); + + ctx.beginPath(); + ctx.arc(37, 37, 13, Math.PI / 7, -Math.PI / 7, false); + ctx.lineTo(31, 37); + ctx.fill(); + + for (var i = 0; i < 8; i++) { + ctx.fillRect(51 + i * 16, 35, 4, 4); + } + + for (i = 0; i < 6; i++) { + ctx.fillRect(115, 51 + i * 16, 4, 4); + } + + for (i = 0; i < 8; i++) { + ctx.fillRect(51 + i * 16, 99, 4, 4); + } + + ctx.beginPath(); + ctx.moveTo(83, 116); + ctx.lineTo(83, 102); + ctx.bezierCurveTo(83, 94, 89, 88, 97, 88); + ctx.bezierCurveTo(105, 88, 111, 94, 111, 102); + ctx.lineTo(111, 116); + ctx.lineTo(106.333, 111.333); + ctx.lineTo(101.666, 116); + ctx.lineTo(97, 111.333); + ctx.lineTo(92.333, 116); + ctx.lineTo(87.666, 111.333); + ctx.lineTo(83, 116); + ctx.fill(); + + ctx.fillStyle = 'white'; + ctx.beginPath(); + ctx.moveTo(91, 96); + ctx.bezierCurveTo(88, 96, 87, 99, 87, 101); + ctx.bezierCurveTo(87, 103, 88, 106, 91, 106); + ctx.bezierCurveTo(94, 106, 95, 103, 95, 101); + ctx.bezierCurveTo(95, 99, 94, 96, 91, 96); + ctx.moveTo(103, 96); + ctx.bezierCurveTo(100, 96, 99, 99, 99, 101); + ctx.bezierCurveTo(99, 103, 100, 106, 103, 106); + ctx.bezierCurveTo(106, 106, 107, 103, 107, 101); + ctx.bezierCurveTo(107, 99, 106, 96, 103, 96); + ctx.fill(); + + ctx.fillStyle = 'black'; + ctx.beginPath(); + ctx.arc(101, 102, 2, 0, Math.PI * 2, true); + ctx.fill(); + + ctx.beginPath(); + ctx.arc(89, 102, 2, 0, Math.PI * 2, true); + ctx.fill(); + } +} + +// A utility function to draw a rectangle with rounded corners. + +function roundedRect(ctx, x, y, width, height, radius) { + ctx.beginPath(); + ctx.moveTo(x, y + radius); + ctx.lineTo(x, y + height - radius); + ctx.arcTo(x, y + height, x + radius, y + height, radius); + ctx.lineTo(x + width - radius, y + height); + ctx.arcTo(x + width, y + height, x + width, y + height-radius, radius); + ctx.lineTo(x + width, y + radius); + ctx.arcTo(x + width, y, x + width - radius, y, radius); + ctx.lineTo(x + radius, y); + ctx.arcTo(x, y, x, y + radius, radius); + ctx.stroke(); +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>La imatge resultant és així:</span></span></p> + +<p>{{EmbedLiveSample("Making_combinations", 160, 160, "https://mdn.mozillademos.org/files/9849/combinations.png")}}</p> + +<p>No anem a repassar això detalladament, ja que en realitat és sorprenentment senzill. La cosa més important a destacar és l'ús de la propietat <code>fillStyle</code> en el context del dibuix, i l'ús d'una funció d'utilitat (en aquest cas <code>roundedRect()</code>). L'ús de funcions d'utilitat per als bits del dibuix sovint pot ser molt útil i reduir la quantitat de codi que necessiteu, així com la seva complexitat.</p> + +<p>Tornarem a fer un cop d'ull a <code>fillStyle</code>, en més detall, més endavant en aquest tutorial. Aquí, tot el que fem és usar-ho per canviar el color d'emplenament de les trajectòries del color predeterminat de negre a blanc, i viceversa .</p> + +<h2 id="Objectes_Path2D">Objectes Path2D</h2> + +<p>Com hem vist en l'últim exemple, pot haver-hi una sèrie de trajectories i ordres de dibuix per dibuixar objectes sobre el llenç. Per simplificar el codi i millorar el rendiment, l'objecte {{domxref("Path2D")}} disponible en versions recents dels navegadors, permet emmagatzemar en la memòria cau o gravar aquestes ordres de dibuix. Podeu reproduir les vostres trajectòries ràpidament.<br> + Vegem com podem construir un objecte <code>Path2D</code>:</p> + +<dl> + <dt>{{domxref("Path2D.Path2D", "Path2D()")}}</dt> + <dd>El constructor <code><strong>Path2D()</strong></code> retorna un objecte <code>Path2D</code> recentment instanciat, opcionalment amb una altra trajectòria com a argument (crea una còpia), o opcionalment amb una cadena consistent en dades de <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths">trajectòria SVG</a>.</dd> +</dl> + +<pre class="brush: js">new Path2D(); // empty path object +new Path2D(path); // copy from another Path2D object +new Path2D(d); // path from SVG path data</pre> + +<p>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#Paths">mètodes de trajectòria</a> com <code>moveTo</code>, <code>rect</code>, <code>arc</code> o <code>quadraticCurveTo</code>, etc., que hem conegut anteriorment, estan disponibles en els objectes <code>Path2D</code>.</p> + +<p>L'API de <code>Path2D</code> també afegeix una forma de combinar trajectòries utilitzant el mètode <code>addPath</code>. Això pot ser útil quan es desitja construir objectes a partir de diversos components, per exemple.</p> + +<dl> + <dt>{{domxref("Path2D.addPath", "Path2D.addPath(path [, transform])")}}</dt> + <dd>Afegeix una trajectòria a la trajectòria actual amb una matriu de transformació opcional.</dd> +</dl> + +<h3 id="Exemple_de_Path2D">Exemple de Path2D</h3> + +<p>En aquest exemple, estem creant un rectangle i un cercle. Tots dos s'emmagatzemen com un objecte <code>Path2D</code>, de manera que estan disponibles per al seu ús posterior. Amb la nova API <code>Path2D</code>, es van actualitzar diversos mètodes per acceptar opcionalment un objecte <code>Path2D</code> que s'utilitzarà en comptes de la trajectòria actual. Aquí, <code>stroke</code> i <code>fill</code> s'utilitzen amb un argument de trajectòria per dibuixar tots dos objectes sobre el llenç, per exemple.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="130" height="100"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[6,9]">function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + var rectangle = new Path2D(); + rectangle.rect(10, 10, 50, 50); + + var circle = new Path2D(); + circle.moveTo(125, 35); + circle.arc(100, 35, 25, 0, 2 * Math.PI); + + ctx.stroke(rectangle); + ctx.fill(circle); + } +} +</pre> + +<p>{{EmbedLiveSample("Path2D_example", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}</p> + +<h3 id="Ús_de_trajectòries_SVG">Ús de trajectòries SVG</h3> + +<p>Una altra característica poderosa de la nova API <code>Path2D</code> de canvas és l'ús de <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths">dades de trajectòria SVG</a> per inicialitzar trajectòries en el seu llenç. Això podria permetre-li passar les dades de trajectòria i reutilitzar-les tant en SVG com en canvas.</p> + +<p>La trajectòria es mourà al punt (<code>M10 10</code>) i després es mourà horitzontalment 80 punts a la dreta (<code>h 80</code>), després 80 punts cap avall (<code>v 80</code>), després 80 punts a l'esquerra (<code>h -80</code>), i després de tornada al principi (<code>z</code>). Podeu veure aquest exemple a la pàgina <a href="/en-US/docs/Web/API/Path2D.Path2D#Using_SVG_paths">constructor</a> <a href="/en-US/docs/Web/API/Path2D.Path2D#Using_SVG_paths"><code>Path2D</code></a>.</p> + +<pre class="brush: js;">var p = new Path2D('M10 10 h 80 v 80 h -80 Z');</pre> + +<div>{{PreviousNext("Web/API/Canvas_API/Tutorial/Basic_usage", "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors")}}</div> diff --git a/files/ca/web/api/canvas_api/tutorial/index.html b/files/ca/web/api/canvas_api/tutorial/index.html new file mode 100644 index 0000000000..92ed58549b --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/index.html @@ -0,0 +1,63 @@ +--- +title: Canvas tutorial +slug: Web/API/Canvas_API/Tutorial +tags: + - Canvas + - Graphics + - Guide + - HTML + - HTML5 + - Intermediate + - NeedsTranslation + - TopicStub + - Web +translation_of: Web/API/Canvas_API/Tutorial +--- +<div>{{CanvasSidebar}}</div> + +<div><a href="/en-US/docs/HTML/Canvas" title="HTML/Canvas"><img alt="" src="https://mdn.mozillademos.org/files/257/Canvas_tut_examples.jpg" style="float: right; height: 450px; width: 200px;"></a></div> + +<div class="summary"> +<p><a href="/en-US/docs/Web/HTML/Element/canvas" title="HTML/Canvas"><strong><code><canvas></code></strong></a> is an <a href="/en-US/docs/Web/HTML" title="HTML">HTML</a> element which can be used to draw graphics using scripting (usually <a href="/en-US/docs/Glossary/JavaScript" title="JavaScript">JavaScript</a>). This can, for instance, be used to draw graphs, make photo composition or simple (and <a href="/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster" title="A_Basic_RayCaster">not so simple</a>) animations. The images on this page show examples of <a href="/en-US/docs/Web/HTML/Element/canvas" title="HTML/Canvas"><strong><code><canvas></code></strong></a> implementations which will be created in this tutorial.</p> +</div> + +<p><span class="seoSummary">This tutorial describes how to use the <code><canvas></code> element to draw 2D graphics, starting with the basics. The examples provided should give you some clear ideas what you can do with canvas and will provide code snippets that may get you started in building your own content.</span></p> + +<p>First introduced in WebKit by Apple for the OS X Dashboard, <code><canvas></code> has since been implemented in browsers. Today, all major browsers support it.</p> + +<h2 id="Before_you_start" name="Before_you_start">Before you start</h2> + +<p>Using the <code><canvas></code> element is not very difficult, but you do need a basic understanding of <a href="/en-US/docs/Web/HTML" title="HTML">HTML</a> and <a href="/en-US/docs/Web/JavaScript" title="JavaScript">JavaScript</a>. The <code><canvas></code> element is not supported in some older browsers, but is supported in recent versions of all major browsers. The default size of the canvas is 300 px × 150 px (width × height). But custom sizes can be defined using the HTML <code>height</code> and <code>width</code> property. In order to draw graphics on the canvas we use a JavaScript context object, which creates graphics on the fly.</p> + +<h2 id="In_this_tutorial" name="In_this_tutorial">In this tutorial</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage" title="Canvas_tutorial/Basic_usage">Basic usage</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes" title="Canvas_tutorial/Drawing_shapes">Drawing shapes</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors" title="Canvas_tutorial/Applying_styles_and_colors">Applying styles and colors</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_text">Drawing text</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Using_images" title="Canvas_tutorial/Using_images">Using images</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Transformations" title="Canvas_tutorial/Transformations">Transformations</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing" title="Canvas_tutorial/Compositing">Compositing and clipping</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations" title="Canvas_tutorial/Basic_animations">Basic animations</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Advanced_animations">Advanced animations</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas">Pixel manipulation</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility">Hit regions and accessibility</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Optimizing_canvas" title="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Optimizing_canvas">Optimizing the canvas</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Finale">Finale</a></li> +</ul> + +<h2 id="See_also" name="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Canvas_API" title="HTML/Canvas">Canvas topic page</a></li> + <li><a class="external" href="http://visitmix.com/labs/ai2canvas/" title="http://visitmix.com/labs/ai2canvas/">Adobe Illustrator to Canvas plug-in</a></li> + <li><a class="external" href="http://www.html5canvastutorials.com/" title="http://www.html5canvastutorials.com/">HTML5CanvasTutorials</a></li> + <li><a class="external" href="http://creativejs.com/2011/08/31-days-of-canvas-tutorials/" title="http://creativejs.com/2011/08/31-days-of-canvas-tutorials/">31 days of canvas tutorials</a></li> +</ul> + +<h2 id="A_note_to_contributors">A note to contributors</h2> + +<p>Due to an unfortunate technical error that occurred the week of June 17, 2013, we lost the history of this tutorial, including attributions to all past contributors to its content. We apologize for this, and hope you'll forgive this unfortunate mishap.</p> + +<div>{{ Next("Web/API/Canvas_API/Tutorial/Basic_usage") }}</div> diff --git a/files/ca/web/api/canvas_api/tutorial/manipular_píxels_amb_canvas/index.html b/files/ca/web/api/canvas_api/tutorial/manipular_píxels_amb_canvas/index.html new file mode 100644 index 0000000000..d792e62ef0 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/manipular_píxels_amb_canvas/index.html @@ -0,0 +1,307 @@ +--- +title: Manipular píxels amb canvas +slug: Web/API/Canvas_API/Tutorial/Manipular_píxels_amb_canvas +tags: + - Canvas + - Graphics + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}</div> + +<div class="summary"> +<p>Fins ara no hem mirat els píxels reals del nostre llenç. Amb l'objecte <code>ImageData</code> podem llegir i escriure directament una matriu de dades per manipular dades de píxels. També veurem com es pot controlar el suavitzat de la imatge (anti-aliasing) i com guardar imatges del vostre llenç.</p> +</div> + +<h2 id="Lobjecte_ImageData">L'objecte <code>ImageData</code></h2> + +<p>L'objecte {{domxref("ImageData")}} representa les dades de píxels subjacents d'un àrea d'un objecte canvas. Conté els següents atributs de només lectura:</p> + +<dl> + <dt><code>width</code></dt> + <dd>L'amplada de la imatge en píxels.</dd> + <dt><code>height</code></dt> + <dd>L'alçada de la imatge en píxels.</dd> + <dt><code>data</code></dt> + <dd>Un {{jsxref("Uint8ClampedArray")}} representa una matriu unidimensional que conté les dades en l'ordre RGBA, amb valors enters entre <code>0</code> i <code>255</code> (inclosos).</dd> +</dl> + +<p>La propietat <code>data</code> retorna un {{jsxref("Uint8ClampedArray")}} al que es pot accedir per veure les dades de píxel en brut; cada píxel està representat per quatre valors d'un byte (vermell, verd, blau i alfa, en aquest ordre; és a dir, format "RGBA"). Cada component de color està representat per un nombre enter entre 0 i 255. A cada component se li assigna un índex consecutiu dins de la matriu, el component vermell del píxel esquerre superior és l'índex 0 dins de la matriu. Els píxels es segueixen d'esquerra a dreta, a després cap avall, a través de la matriu.</p> + +<p>El {{jsxref("Uint8ClampedArray")}} conté <code>height</code> × <code>width</code> × 4 bytes de dades, <span id="result_box" lang="ca"><span>amb valors d'índex que van des de 0 fins a</span></span> (<code>height</code>×<code>width</code>×4)-1.</p> + +<p><span id="result_box" lang="ca"><span>Per exemple, per llegir el valor del component blau del píxel a la columna 200, fila 50 de la imatge, fariem el següent:</span></span></p> + +<pre class="brush: js notranslate">blueComponent = imageData.data[((50 * (imageData.width * 4)) + (200 * 4)) + 2];</pre> + +<p>Si se li dóna un conjunt de coordenades (X i Y), es pot acabar fent alguna cosa com això:</p> + +<pre class="brush: js notranslate">var xCoord = 50; +var yCoord = 100; +var canvasWidth = 1024; + +function getColorIndicesForCoord(x, y, width) { + var red = y * (width * 4) + x * 4; + return [red, red + 1, red + 2, red + 3]; +} + +var colorIndices = getColorIndicesForCoord(xCoord, yCoord, canvasWidth); + +var redIndex = colorIndices[0]; +var greenIndex = colorIndices[1]; +var blueIndex = colorIndices[2]; +var alphaIndex = colorIndices[3]; + +var redForCoord = imageData.data[redIndex]; +var greenForCoord = imageData.data[greenIndex]; +var blueForCoord = imageData.data[blueIndex]; +var alphaForCoord = imageData.data[alphaIndex]; +</pre> + +<p>O, si ES6 is apropiat:</p> + +<pre class="brush: js notranslate">const xCoord = 50; +const yCoord = 100; +const canvasWidth = 1024; + +const getColorIndicesForCoord = (x, y, width) => { + const red = y * (width * 4) + x * 4; + return [red, red + 1, red + 2, red + 3]; +}; + +const colorIndices = getColorIndicesForCoord(xCoord, yCoord, canvasWidth); + +const [redIndex, greenIndex, blueIndex, alphaIndex] = colorIndices; +</pre> + +<p><span lang="ca"><span>També es pot accedir a la mida de la matriu de píxels en bytes llegint l'atribut </span></span><code>Uint8ClampedArray.length</code>:</p> + +<pre class="brush: js notranslate">var numBytes = imageData.data.length; +</pre> + +<h2 id="Crear_un_objecte_ImageData">Crear un objecte <code>ImageData</code></h2> + +<p>Per crear un nou objecte <code>ImageData</code> en blanc, hem d'utilitzar el mètode {{domxref("CanvasRenderingContext2D.createImageData", "createImageData()")}}. Hi ha dues versions del mètode <code>createImageData()</code>:</p> + +<pre class="brush: js notranslate">var myImageData = ctx.createImageData(width, height);</pre> + +<p>Crea un nou objecte <code>ImageData</code> amb les dimensions especificades. Tots els píxels estan predefinits en negre transparent.</p> + +<p>També podem crear un nou objecte <code>ImageData</code> amb les mateixes dimensions que l'objecte especificat amb <code>anotherImageData</code>. Els píxels del nou objecte, estan tots predefinits en negre transparent. <strong>Això no copia les dades de la imatge!</strong></p> + +<pre class="brush: js notranslate">var myImageData = ctx.createImageData(anotherImageData);</pre> + +<h2 id="Obtenir_les_dades_de_píxels_per_a_un_context">Obtenir les dades de píxels per a un context</h2> + +<p>Per obtenir un objecte <code>ImageData</code> que contingui una còpia de les dades de píxel per a un context de llenç, podem utilitzar el mètode<code>getImageData()</code>:</p> + +<pre class="brush: js notranslate">var myImageData = ctx.getImageData(left, top, width, height);</pre> + +<p>Aquest mètode retorna un objecte <code>ImageData</code> que representa les dades de píxel per a l'àrea del llenç, les cantonades del qual estan representades pels punts (<code>left</code>,<code>top</code>), (<code>left+width</code>, <code>top</code>), (<code>left</code>, <code>top+height</code>) i (<code>left+width</code>, <code>top+height</code>). Les coordenades s'especifiquen en unitats d'espai en coordenades canvas.</p> + +<div class="note"> +<p><strong>Nota</strong>: Qualsevol píxel fora del llenç es retorna com a negre transparent en l'objecte <code>ImageData</code> resultant.</p> +</div> + +<p>Aquest mètode també es demostra a l'article <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Manipulating_video_using_canvas">Manipulant vídeo usant canvas</a>.</p> + +<h3 id="Un_selector_de_colors">Un selector de colors</h3> + +<p>En aquest exemple estem usant el mètode <a href="/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData">getImageData() </a>per mostrar el color sota el cursor del ratolí. Per a això, necessitem la posició actual del ratolí amb <code>layerX</code> i <code>layerY</code>, llavors busquem les dades de píxels en aquesta posició en la matriu de píxels que <a href="/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData">getImageData()</a> ens proporciona. Finalment, utilitzem les dades de la matriu per establir un color de fons i un text en el <code><div></code> per mostrar el color.</p> + +<div class="hidden"> +<pre class="brush: html; notranslate"><canvas id="canvas" width="300" height="227" style="float:left"></canvas> +<div id="color" style="width:200px;height:50px;float:left"></div> +</pre> +</div> + +<pre class="brush: js; notranslate">var img = new Image(); +img.crossOrigin = 'anonymous'; +img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg'; +var canvas = document.getElementById('canvas'); +var ctx = canvas.getContext('2d'); +img.onload = function() { + ctx.drawImage(img, 0, 0); + img.style.display = 'none'; +}; +var color = document.getElementById('color'); +function pick(event) { + var x = event.layerX; + var y = event.layerY; + var pixel = ctx.getImageData(x, y, 1, 1); + var data = pixel.data; + var rgba = 'rgba(' + data[0] + ', ' + data[1] + + ', ' + data[2] + ', ' + (data[3] / 255) + ')'; + color.style.background = rgba; + color.textContent = rgba; +} +canvas.addEventListener('mousemove', pick); +</pre> + +<p>{{ EmbedLiveSample('A_color_picker', 610, 240) }}</p> + +<h2 id="Pintar_dades_de_píxels_en_un_context">Pintar dades de píxels en un context</h2> + +<p>Utilitzem el mètode<a href="/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData"> putImageData() </a>per pintar dades de píxels en un context:</p> + +<pre class="brush: js notranslate">ctx.putImageData(myImageData, dx, dy); +</pre> + +<p>Els paràmetres <code>dx</code> i <code>dy</code> indiquen les coordenades del dispositiu, dins del context en el que es pinta la cantonada superior esquerra de les dades de píxels que es vol dibuixar.</p> + +<p>Per exemple, per pintar tota la imatge representada per <code>myImageData</code> en la cantonada superior esquerra del context, simplement fem el següent:</p> + +<pre class="brush: js notranslate">ctx.putImageData(myImageData, 0, 0); +</pre> + +<h3 id="Escalat_de_grisos_i_inversió_de_colors">Escalat de grisos i inversió de colors</h3> + +<p>En aquest exemple, iterem sobre tots els píxels per canviar els seus valors, després posem la matriu de píxels modificada, de nou, al llenç, utilitzant <a href="/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData">putImageData()</a>. La funció <em>invert</em>, simplement, resta cada color del valor màxim 255. La funció <em>grayscale</em>, simplement, utilitza la mitjana de vermell, verd i blau. També es pot utilitzar una mitjana ponderada, donada per la fórmula <code>x = 0.299r + 0.587g + 0.114b</code>, per exemple. Vegeu <a href="http://en.wikipedia.org/wiki/Grayscale">Escala de grisos (Grayscale)</a> a Wikipedia per obtenir més informació.</p> + +<div class="hidden"> +<pre class="brush: html; notranslate"><canvas id="canvas" width="300" height="227"></canvas> +<div> + <input id="grayscalebtn" value="Grayscale" type="button"> + <input id="invertbtn" value="Invert" type="button"> +</div> +</pre> +</div> + +<pre class="brush: js notranslate">var img = new Image(); +img.crossOrigin = 'anonymous'; +img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg'; +img.onload = function() { + draw(this); +}; + +function draw(img) { + var canvas = document.getElementById('canvas'); + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + img.style.display = 'none'; + var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var data = imageData.data; + + var invert = function() { + for (var i = 0; i < data.length; i += 4) { + data[i] = 255 - data[i]; // red + data[i + 1] = 255 - data[i + 1]; // green + data[i + 2] = 255 - data[i + 2]; // blue + } + ctx.putImageData(imageData, 0, 0); + }; + + var grayscale = function() { + for (var i = 0; i < data.length; i += 4) { + var avg = (data[i] + data[i + 1] + data[i + 2]) / 3; + data[i] = avg; // red + data[i + 1] = avg; // green + data[i + 2] = avg; // blue + } + ctx.putImageData(imageData, 0, 0); + }; + + var invertbtn = document.getElementById('invertbtn'); + invertbtn.addEventListener('click', invert); + var grayscalebtn = document.getElementById('grayscalebtn'); + grayscalebtn.addEventListener('click', grayscale); +} +</pre> + +<p>{{ EmbedLiveSample('Grayscaling_and_inverting_colors', 330, 270) }}</p> + +<h2 id="Ampliació_i_suavitzat">Ampliació i suavitzat</h2> + +<p>Amb l'ajuda del mètode {{domxref("CanvasRenderingContext2D.drawImage", "drawImage()")}} un segon llenç i la propietat {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}}, podem ampliar la nostra imatge i veure els detalls.</p> + +<p>Obtenim la posició del ratolí, retallem una imatge de 5 píxels a l'esquerra i a dalt a 5 píxels a la dreta i a baix. A continuació, la copiem a un altre llenç i canviem la grandària de la imatge a la grandària que volguem. En el llenç de zoom, canviem la grandària de un retall de 10×10 píxels del llenç original a 200×200.</p> + +<pre class="brush: js notranslate">zoomctx.drawImage(canvas, + Math.abs(x - 5), Math.abs(y - 5), + 10, 10, 0, 0, 200, 200);</pre> + +<p>Atès que el suavitzat (anti-aliasing) està habilitat per defecte, és possible que vulguem deshabilitar el suavitzat per veure els píxels clars. Alternant la casella de verificació es pot veure l'efecte de la propietat <code>imageSmoothingEnabled</code> (necessita prefixos per a diferents navegadors).</p> + +<h6 class="hidden" id="Zoom_example">Zoom example</h6> + +<div class="hidden"> +<pre class="brush: html; notranslate"><canvas id="canvas" width="300" height="227"></canvas> +<canvas id="zoom" width="300" height="227"></canvas> +<div> +<label for="smoothbtn"> + <input type="checkbox" name="smoothbtn" checked="checked" id="smoothbtn"> + Enable image smoothing +</label> +</div> +</pre> +</div> + +<pre class="brush: js notranslate">var img = new Image(); +img.crossOrigin = 'anonymous'; +img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg'; +img.onload = function() { + draw(this); +}; + +function draw(img) { + var canvas = document.getElementById('canvas'); + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + img.style.display = 'none'; + var zoomctx = document.getElementById('zoom').getContext('2d'); + + var smoothbtn = document.getElementById('smoothbtn'); + var toggleSmoothing = function(event) { + zoomctx.imageSmoothingEnabled = this.checked; + zoomctx.mozImageSmoothingEnabled = this.checked; + zoomctx.webkitImageSmoothingEnabled = this.checked; + zoomctx.msImageSmoothingEnabled = this.checked; + }; + smoothbtn.addEventListener('change', toggleSmoothing); + + var zoom = function(event) { + var x = event.layerX; + var y = event.layerY; + zoomctx.drawImage(canvas, + Math.abs(x - 5), + Math.abs(y - 5), + 10, 10, + 0, 0, + 200, 200); + }; + + canvas.addEventListener('mousemove', zoom); +}</pre> + +<p>{{ EmbedLiveSample('Zoom_example', 620, 490) }}</p> + +<h2 id="Guardar_imatges">Guardar imatges</h2> + +<p>El {{domxref("HTMLCanvasElement")}} proporciona un mètode <code>toDataURL()</code>, que és útil quan es guarden imatges. Retorna un <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs">URI de dades</a> que conté una representació de la imatge en el format especificat pel paràmetre <code>type</code> (per defecte en <a class="external external-icon" href="https://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a>). La imatge retornada té una resolució de 96 dpi.</p> + +<dl> + <dt>{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/png')")}}</dt> + <dd>Configuració per defecte. Crea una imatge PNG.</dd> + <dt>{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/jpeg', quality)")}}</dt> + <dd>Crea una imatge JPG. Opcionalment, pot proporcionar una qualitat en el rang de 0 a 1, sent una d'elles la millor qualitat i amb 0 gairebé no recognoscible, però, petita en grandària d'arxiu.</dd> +</dl> + +<p>Una vegada que s'hagi generat un URI de dades des del llenç, es podrà utilitzar com a font de qualsevol {{HTMLElement("image")}} o posar-ho en un hipervíncle amb un <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download">atribut de descàrrega</a> per guardar-ho en el disc, per exemple.</p> + +<p>També es pot crear un {{domxref("Blob")}} des del llenç.</p> + +<dl> + <dt>{{domxref("HTMLCanvasElement.toBlob", "canvas.toBlob(callback, type, encoderOptions)")}}</dt> + <dd>Crea un objecte <code>Blob,</code> representant la imatge continguda en el llenç.</dd> +</dl> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{domxref("ImageData")}}</li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Manipulating_video_using_canvas">Manipular vídeo usant canvas</a></li> + <li><a href="https://codepo8.github.io/canvas-images-and-pixels/">Canvas, imatges i pixels – per Christian Heilmann</a></li> +</ul> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/transformacions/index.html b/files/ca/web/api/canvas_api/tutorial/transformacions/index.html new file mode 100644 index 0000000000..2958d40498 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/transformacions/index.html @@ -0,0 +1,290 @@ +--- +title: Transformacions +slug: Web/API/Canvas_API/Tutorial/Transformacions +tags: + - Canvas + - Graphics + - Guide + - HTML + - HTML5 + - Intermediate + - Web +translation_of: Web/API/Canvas_API/Tutorial/Transformations +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Using_images", "Web/API/Canvas_API/Tutorial/Compositing")}}</div> + +<div class="summary">Anteriorment en aquest tutorial hem après sobre la graella de canvas i l'<strong>espai de coordenades</strong>. Fins ara, només usàvem la graella per defecte i canviàvem la grandària del llenç per a les nostres necessitats. Amb les transformacions, hi ha formes més poderoses de traslladar l'origen a una posició diferent, girar la graella i fins i tot escalar-la.</div> + +<h2 id="Saving_and_restoring_state" name="Saving_and_restoring_state">Guardar i restaurar l'estat</h2> + +<p>Abans de veure els mètodes de transformació, vegem altres dos mètodes que són indispensables una vegada que comencem a generar dibuixos cada vegada més complexos.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.save", "save()")}}</dt> + <dd>Guarda tot l'estat del llenç.</dd> + <dt>{{domxref("CanvasRenderingContext2D.restore", "restore()")}}</dt> + <dd>Restaura l'estat del llenç guardat més recent.</dd> +</dl> + +<p>Els estats del llenç s'emmagatzemen en una pila. Cada vegada que es crida al mètode <code>save()</code> l'estat del dibuix actual es mou a la pila. L'estat d'un dibuix consisteix de</p> + +<ul> + <li>Les transformacions que s'han aplicat (i.e. <code>translate</code>, <code>rotate</code> i <code>scale</code> – vegeu a continuació).</li> + <li>Els valors actuals dels següents atributs: {{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle")}}, {{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle")}}, {{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha")}}, {{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth")}}, {{domxref("CanvasRenderingContext2D.lineCap", "lineCap")}}, {{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin")}}, {{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit")}}, {{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset")}}, {{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX")}}, {{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY")}}, {{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur")}}, {{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor")}}, {{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation")}}, {{domxref("CanvasRenderingContext2D.font", "font")}}, {{domxref("CanvasRenderingContext2D.textAlign", "textAlign")}}, {{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline")}}, {{domxref("CanvasRenderingContext2D.direction", "direction")}}, {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}}.</li> + <li>La <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing#Clipping_paths">trajectòria de retall</a> actual, que veurem a la següent secció.</li> +</ul> + +<p>Es pot cridar al mètode <code>save()</code> tantes vegades com es vulgui. Cada vegada que es crida al mètode <code>restore()</code> l'últim estat desat s'elimina de la pila i es restauren tots les configuracions guardades.</p> + +<h3 id="A_save_and_restore_canvas_state_example" name="A_save_and_restore_canvas_state_example">Un exemple de <code>save</code> i <code>restore</code> de l'estat del llenç</h3> + +<p>Aquest exemple intenta il·lustrar com funciona la pila d'estats del dibuix en dibuixar un conjunt de rectangles consecutius.</p> + +<pre class="brush: js; highlight:[5,10,15,18]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + ctx.fillRect(0, 0, 150, 150); // Dibuixa un rectangle amb la configuració per defecte + ctx.save(); // Guarda el estat predeterminat + + ctx.fillStyle = '#09F'; // Es fan canvis a la configuració + ctx.fillRect(15, 15, 120, 120); // Es dibuixa un rectangle amb la nova configuració + + ctx.save(); // Es guarda el estat actual + ctx.fillStyle = '#FFF'; // Es fan canvis a la configuració + ctx.globalAlpha = 0.5; + ctx.fillRect(30, 30, 90, 90); // Es dibuixa un rectangle amb la nova configuració + + ctx.restore(); // Es restaura el estat anterior + ctx.fillRect(45, 45, 60, 60); // Es dibuixa un rectangle amb la configuració restaurada + + ctx.restore(); // Es restaura el estat original + ctx.fillRect(60, 60, 30, 30); // Es dibuixa un rectangle amb la configuració restaurada</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>El primer pas és dibuixar un gran rectangle amb la configuració predeterminada. A continuació guardem aquest estat i fem canvis en el color de farcit. Després dibuixem el segon rectangle blau i més petit i guardem l'estat. De nou canviem algunes configuracions de dibuix i dibuixem el tercer rectangle blanc semitransparent.</p> + +<p>Fins ara, això és bastant similar al que hem fet en les seccions anteriors. No obstant això, una vegada que cridem a la primera instrucció <code>restore()</code> l'estat del dibuix superior s'elimina de la pila i es restaura la configuració. Si no haguéssim guardat l'estat usant <code>save()</code>, hauríem de canviar el color de farcit i la transparència manualment, per tornar a l'estat anterior. Això seria fàcil per a dues propietats, però si tenim més que això, el nostre codi es faria molt llarg, molt ràpid.</p> + +<p>Quan es crida a la segona instrucció <code>restore()</code>, es restaura l'estat original (el que hem configurat abans de la primera crida <code>save</code>) i l'últim rectangle es dibuixa de nou en negre.</p> + +<p>{{EmbedLiveSample("A_save_and_restore_canvas_state_example", "180", "180", "https://mdn.mozillademos.org/files/249/Canvas_savestate.png")}}</p> + +<h2 id="Translating" name="Translating">Traslladar</h2> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/234/Canvas_grid_translate.png" style="float: right;">El primer dels mètodes de transformació que veurem és <code>translate()</code>. Aquest mètode s'utilitza per moure el llenç i el seu origen a un punt diferent de la graella.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.translate", "translate(x, y)")}}</dt> + <dd>Mou el llenç i el seu origen en la graella. <code>x</code> indica la distància horitzontal a moure, i <code>y</code> indica quanta distància s'ha de moure la graella verticalment.</dd> +</dl> + +<p>És una bona idea guardar l'estat del llenç abans de fer qualsevol transformació. En la majoria dels casos, és més fàcil cridar al mètode <code>restore</code>, que haver de fer una traslació inversa per tornar a l'estat original. També, si estem trasladant dins d'un bucle i no guardem i restaurem l'estat del llenç, pot ser que acabem perdent part del dibuix, ja que es va dibuixar fora de la vora del llenç.</p> + +<h3 id="A_translate_example" name="A_translate_example">Un exemple de <code>translate</code></h3> + +<p>Aquest exemple demostra alguns dels beneficis de traslladar l'origen del llenç. Sense el mètode <code>translate()</code>, tots els rectangles es dibuixarien en la mateixa posició (0,0). El mètode <code>translate()</code>, també ens dóna la llibertat de col·locar el rectangle en qualsevol lloc del llenç, sense haver d'ajustar manualment les coordenades en la funció <code>fillRect()</code>. Això fa que sigui una mica més fàcil d'entendre i usar.</p> + +<p>En la funció <code>draw()</code>, cridem a la funció <code>fillRect()</code> nou vegades, usant dos bucles <code>for</code>. En cada bucle, el llenç es trasllada, es dibuixa el rectangle i el llenç torna al seu estat original. Observem com la crida a <code>fillRect()</code> usa les mateixes coordenades cada vegada, confiant en <code>translate()</code> per ajustar la posició del dibuix.</p> + +<pre class="brush: js; highlight:[7]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + for (var i = 0; i < 3; i++) { + for (var j = 0; j < 3; j++) { + ctx.save(); + ctx.fillStyle = 'rgb(' + (51 * i) + ', ' + (255 - 51 * i) + ', 255)'; + ctx.translate(10 + j * 50, 10 + i * 50); + ctx.fillRect(0, 0, 25, 25); + ctx.restore(); + } + } +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_translate_example", "160", "160", "https://mdn.mozillademos.org/files/9857/translate.png")}}</p> + +<h2 id="Rotating" name="Rotating">Girar</h2> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/233/Canvas_grid_rotate.png" style="float: right;">El segon mètode de transformació és <code>rotate()</code>. Se usa per girar el llenç al voltant de l'origen actual.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.rotate", "rotate(angle)")}}</dt> + <dd>Gira el llenç en sentit horari, al voltant de l'origen actual pel nombre d'<code>angle</code> de radiants.</dd> +</dl> + +<p>El punt central de gir és sempre l'origen del llenç. Per canviar el punt central, necessitarem moure el llenç usant el mètode <code>translate()</code>.</p> + +<h3 id="A_rotate_example" name="A_rotate_example">Un exemple de <code>rotate</code></h3> + +<p>En aquest exemple, usarem el mètode <code>rotate()</code> para girar primer un rectangle des de l'origen del llenç, i després des del centre del rectangle mateix amb l'ajuda de <code>translate()</code>.</p> + +<div class="note"> +<p><strong>Recordatori</strong>: Els angles estan en radiants, no en graus. Per fer la conversació, estem usant: <code>radians = (Math.PI/180)*degrees</code>.</p> +</div> + +<pre class="brush: js; highlight:[9, 23]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // <span class="s3gt_translate_tooltip_variant" id="s3gt_translate_tooltip_variant_to_id_0">rectangles esquerra, giren a partir d'origen del llenç</span> + ctx.save(); + // rect blau + ctx.fillStyle = '#0095DD'; + ctx.fillRect(30, 30, 100, 100); + ctx.rotate((Math.PI / 180) * 25); + // grey rect + ctx.fillStyle = '#4D4E53'; + ctx.fillRect(30, 30, 100, 100); + ctx.restore(); + + // <span class="s3gt_translate_tooltip_variant" id="s3gt_translate_tooltip_variant_to_id_0">rectangles drets, giren des del centre del rectangle</span> + // dibuixa rect blau + ctx.fillStyle = '#0095DD'; + ctx.fillRect(150, 30, 100, 100); + + ctx.translate(200, 80); // trasllada al rectangle central + // x = x + 0.5 * width + // y = y + 0.5 * height + ctx.rotate((Math.PI / 180) * 25); // gira + ctx.translate(-200, -80); // traslladar de nou + + // dibuixa rect gris + ctx.fillStyle = '#4D4E53'; + ctx.fillRect(150, 30, 100, 100); +} +</pre> + +<p>Per girar el rectangle al voltant del seu propi centre, traslladem el llenç al centre del rectangle, després girem el llenç i tornem a traslladar el llenç a 0,0, i a continuació dibuixem el rectangle.</p> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="300" height="200"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_rotate_example", "310", "210", "https://mdn.mozillademos.org/files/9859/rotate.png")}}</p> + +<h2 id="Scaling" name="Scaling">Escalar</h2> + +<p>El següent mètode de transformació és l'escalat. Ho usem per augmentar o disminuir les unitats en la graella del llenç. Això es pot utilitzar per dibuixar formes i mapes de bits reduïts o ampliats.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.scale", "scale(x, y)")}}</dt> + <dd>Escala les unitats del llenç, per x horitzontalment i per y verticalment. Tots dos paràmetres són nombres reals. Els valors inferiors a 1.0 redueixen la grandària de la unitat i els valors superiors a 1.0 augmenten la grandària de la unitat. Els valors a 1.0 deixen les unitats de la mateixa grandària.</dd> +</dl> + +<p>Usant nombres negatius es pot fer la replica d'eixos (per exemple, usant <code>translate(0,canvas.height); scale(1,-1);</code> tindrem el conegut sistema de coordenades cartesianes, amb l'origen en la cantonada inferior esquerra).</p> + +<p>Per defecte, una unitat en el llenç és exactament un píxel. Si apliquem, per exemple, un factor d'escala de 0.5, la unitat resultant es convertirà en 0.5 píxels i per tant les formes es dibuixaran a meitat de la seva grandària. De manera similar, si s'ajusta el factor d'escala a 2.0, la grandària de la unitat augmentarà i una unitat ara es converteix en dos píxels. Això dona com a resultat que les formes es dibuixin dues vegades més grans.</p> + +<h3 id="A_scale_example" name="A_scale_example">Un exemple de <code>scale</code></h3> + +<p><span class="s3gt_translate_tooltip_variant" id="s3gt_translate_tooltip_variant_to_id_0">En aquest últim exemple, dibuixarem formes amb diferents factors d'escala.</span></p> + +<pre class="brush: js; highlight:[6,11]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + // <span class="short_text" id="result_box" lang="ca"><span>dibuixar un rectangle senzill, però escalar-lo</span></span>. + ctx.save(); + ctx.scale(10, 3); + ctx.fillRect(1, 10, 10, 10); + ctx.restore(); + + // mirror horizontally + ctx.scale(-1, 1); + ctx.font = '48px serif'; + ctx.fillText('MDN', -135, 120); +} + +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="150" height="150"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("A_scale_example", "160", "160", "https://mdn.mozillademos.org/files/9861/scale.png")}}</p> + +<h2 id="Transforms" name="Transforms">Transformar</h2> + +<p>Finalment, els següents mètodes de transformació permeten modificar directament la matriu de transformació.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.transform", "transform(a, b, c, d, e, f)")}}</dt> + <dd>Multiplica la matriu de transformació actual amb la matriu descrita pels seus arguments. La matriu de transformació és descrita per: <math><semantics><mrow><mo>[</mo><mtable columnalign="center center center" rowspacing="0.5ex"><mtr><mtd><mi>a</mi></mtd><mtd><mi>c</mi></mtd><mtd><mi>e</mi></mtd></mtr><mtr><mtd><mi>b</mi></mtd><mtd><mi>d</mi></mtd><mtd><mi>f</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable><mo>]</mo></mrow><annotation encoding="TeX">\left[ \begin{array}{ccc} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{array} \right]</annotation></semantics></math></dd> +</dl> + +<dl> + <dd>Si qualsevol dels arguments és <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity">Infinity</a></code>, la matriu de transformació ha de ser marcada com a infinita en lloc que el mètode llanci una excepció.</dd> +</dl> + +<p>Els paràmetres d'aquesta funció són:</p> + +<dl> + <dt><code>a (m11)</code></dt> + <dd>Escalat horitzontal.</dd> + <dt><em><code>b (m12)</code></em></dt> + <dd>Desviació Horizontal.</dd> + <dt><code>c (m21)</code></dt> + <dd>Desviació Vertical.</dd> + <dt><code>d (m22)</code></dt> + <dd>Escalat Vertical.</dd> + <dt><code>e (dx)</code></dt> + <dd>Moviment Horizontal.</dd> + <dt><code>f (dy)</code></dt> + <dd>Moviment Vertical.</dd> + <dt>{{domxref("CanvasRenderingContext2D.setTransform", "setTransform(a, b, c, d, e, f)")}}</dt> + <dd>Reinicia la transformació actual a la matriu d'identitat i, a continuació, invoca el mètode <code>transform()</code> amb els mateixos arguments. Això, bàsicament, desfà la transformació actual, i després estableix la transformació especificada, tot en un sol pas.</dd> + <dt>{{domxref("CanvasRenderingContext2D.resetTransform", "resetTransform()")}}</dt> + <dd>Reinicia la transformació actual a la matriu d'identitat. Això és el mateix que cridar: <code>ctx.setTransform(1, 0, 0, 1, 0, 0);</code></dd> +</dl> + +<h3 id="Exemple_de_transform_i_setTransform">Exemple de <code>transform</code> i <code>setTransform</code></h3> + +<pre class="brush: js; highlight:[12,15]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + + var sin = Math.sin(Math.PI / 6); + var cos = Math.cos(Math.PI / 6); + ctx.translate(100, 100); + var c = 0; + for (var i = 0; i <= 12; i++) { + c = Math.floor(255 / 12 * i); + ctx.fillStyle = 'rgb(' + c + ', ' + c + ', ' + c + ')'; + ctx.fillRect(0, 0, 100, 10); + ctx.transform(cos, sin, -sin, cos, 0, 0); + } + + ctx.setTransform(-1, 0, 0, 1, 100, 100); + ctx.fillStyle = 'rgba(255, 128, 255, 0.5)'; + ctx.fillRect(0, 50, 100, 100); +} +</pre> + +<div class="hidden"> +<pre class="brush: html"><canvas id="canvas" width="200" height="250"></canvas></pre> + +<pre class="brush: js">draw();</pre> +</div> + +<p>{{EmbedLiveSample("Example_for_transform_and_setTransform", "230", "280", "https://mdn.mozillademos.org/files/255/Canvas_transform.png")}}</p> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Using_images", "Web/API/Canvas_API/Tutorial/Compositing")}}</p> + +<div class="s3gt_translate_tooltip_mini_box" id="s3gt_translate_tooltip_mini" style="position: absolute; left: 224px; top: 1401px; opacity: 0;"> +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_logo" title="Traducir texto seleccionado"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_sound" title="Reproducir"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_copy" title="Copy text to Clipboard"> </div> +</div> diff --git a/files/ca/web/api/canvas_api/tutorial/using_images/index.html b/files/ca/web/api/canvas_api/tutorial/using_images/index.html new file mode 100644 index 0000000000..6d568024ee --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/using_images/index.html @@ -0,0 +1,339 @@ +--- +title: Usar imatges +slug: Web/API/Canvas_API/Tutorial/Using_images +tags: + - Advanced + - Canvas + - Graphics + - HTML + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Using_images +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Transformations" )}}</div> + +<div class="summary"> +<p>Fins ara hem creat les nostres pròpies <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes">formes</a> i <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors">aplicat estils</a> a elles. Una de les característiques més interessants de {{HTMLElement("canvas")}} és la capacitat d'usar imatges. Aquestes poden ser usades per fer composicions fotogràfiques dinàmiques o com a telons de fons de gràfics, per sprites en jocs, etcètera. Les imatges externes es poden utilitzar en qualsevol format compatible amb el navegador, com PNG, GIF o JPEG. Fins i tot es pot utilitzar la imatge produïda per altres elements de canvas a la mateixa pàgina que la font!</p> +</div> + +<p> Importar imatges en un llenç és bàsicament un procés de dos passos:</p> + +<ol> + <li>Obtenir una referència a un objecte {{domxref("HTMLImageElement")}} o a un altre element de canvas com a font. També és possible utilitzar imatges proporcionant una URL.</li> + <li>Dibuixi la imatge en el llenç usant la funció <code>drawImage()</code>.</li> +</ol> + +<p>Feu un cop d'ull a com fer això.</p> + +<h2 id="Obtenir_imatges_per_dibuixar">Obtenir imatges per dibuixar</h2> + +<p>L'API de canvas pot utilitzar qualsevol dels següents tipus de dades com a font d'imatge:</p> + +<dl> + <dt>{{domxref("HTMLImageElement")}}</dt> + <dd>Aquestes són imatges creades usant el constructor <code>Image()</code>, així com qualsevol element {{HTMLElement("img")}}.</dd> + <dt>{{domxref("SVGImageElement")}}</dt> + <dd>Aquestes són imatges incrustades usant l'element {{SVGElement("image")}}.</dd> + <dt>{{domxref("HTMLVideoElement")}}</dt> + <dd>L'ús d'un element HTML {{HTMLElement("video")}} com a font d'imatge, pren el marc actual del vídeo i ho utilitza com a imatge.</dd> + <dt>{{domxref("HTMLCanvasElement")}}</dt> + <dd>Es pot utilitzar un altre element {{HTMLElement("canvas")}} com la seva font d'imatge</dd> +</dl> + +<p>Aquestes fonts es refereixen col·lectivament pel tipus {{domxref("CanvasImageSource")}}.</p> + +<p>Hi ha diverses maneres d'obtenir imatges per usar-les en un llenç.</p> + +<h3 id="Usar_imatges_de_la_mateixa_pàgina">Usar imatges de la mateixa pàgina</h3> + +<p>Es pot obtenir una referència a les imatges en la mateixa pàgina que el llenç utilitzant una de les següents opcions:</p> + +<ul> + <li>La col·lecció {{domxref("document.images")}}.</li> + <li>El mètode {{domxref("document.getElementsByTagName()")}}.</li> + <li>Si es coneix l'ID de la imatge específica que es desitja utilitzar, es pot usar {{domxref("document.getElementById()")}} per recuperar aquesta imatge específica.</li> +</ul> + +<h3 id="Usar_imatges_d'altres_dominis">Usar imatges d'altres dominis</h3> + +<p>Usant l'atribut {{htmlattrxref("crossorigin", "img")}} d'un element {{HTMLElement("img")}} (reflectit per la propietat {{domxref("HTMLImageElement.crossOrigin")}} property), es pot sol·licitar permís per carregar una imatge d'un altre domini per usar-la cridant a <code>drawImage()</code>. Si el domini d'allotjament permet l'accés de domini creuat a la imatge, la imatge es pot utilitzar en el llenç sense corrompre's; en cas contrari, usar la imatge <a href="https://developer.mozilla.org/en-US/docs/HTML/CORS_Enabled_Image#What_is_a_.22tainted.22_canvas.3F">corromprà el llenç</a>.</p> + +<h3 id="Usar_altres_elements_de_canvas">Usar altres elements de canvas</h3> + +<p>Igual que amb les imatges normals, accedim a altres elements de canvas usant el mètode {{domxref("document.getElementsByTagName()")}} o {{domxref("document.getElementById()")}}. Hem d'estar segurs d'haver dibuixat alguna cosa en el llenç font abans d'usar-ho en el llenç de destinació.</p> + +<p>Un dels usos més pràctics d'això seria usar un segon element de canvas com a vista en miniatura de l'altre canvas més gran.</p> + +<h3 id="Crear_una_imatge_des_de_zero">Crear una imatge des de zero</h3> + +<p>Una altra opció és crear nous {{domxref("HTMLImageElement")}} en un script. Per fer-ho, hem d'utilitzar el constructor adequat <code>Image()</code>:</p> + +<pre class="brush: js">var img = new Image(); // Create new img element +img.src = 'myImage.png'; // Set source path +</pre> + +<p>Quan s'executa aquest script, la imatge comença a carregar-se.</p> + +<p>Si intentem cridar <code>drawImage()</code> abans que la imatge s'hagi acabat de carregar, no farà res (o, en navegadors antics, fins i tot pot arribar a produir una excepció). Per tant, ens hem d'assegurar d'utilitzar l'esdeveniment <em>load</em> per no intentar-ho abans de que la imatge es carregui:</p> + +<pre class="brush: js">var img = new Image(); // Create new img element +img.addEventListener('load', function() { + // execute drawImage statements here +}, false); +img.src = 'myImage.png'; // Set source path +</pre> + +<p>Si només s'utilitza una imatge externa, això pot ser un bon enfocament, però una vegada que es necessiti rastrejar més d'una, es necessitarà recórrer a una mica més intel·ligent. Està fora de l'abast d'aquest tutorial examinar tàctiques de precàrrega d'imatges, però cal tenir-ho en ment.</p> + +<h3 id="Incrustar_una_imatge_mitjançant_dades_URL">Incrustar una imatge mitjançant dades: URL</h3> + +<p>Una altra forma possible d'incloure imatges és a través de les <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs">dades: url</a>. Les URLs de dades permeten definir completament una imatge com una cadena de caràcters codificats en Base64, directament en el codi.</p> + +<pre class="brush: js">var img = new Image(); // Create new img element +img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw=='; +</pre> + +<p>Un avantatge de les URL de dades és que la imatge resultant està disponible immediatament sense un altre viatge d'anada i tornada al servidor. Un altre avantatge potencial és que també és possible encapsular en un sol arxiu tots els nostres arxius <a href="/en-US/docs/Web/CSS" title="/en-US/docs/Web/CSS">CSS</a>, <a href="/en-US/docs/Web/JavaScript" title="/en-US/docs/Web/JavaScript">JavaScript</a>, <a href="/en-US/docs/Web/HTML" title="/en-US/docs/Web/HTML">HTML</a> i imatges, fent-los més portàtils a altres ubicacions.</p> + +<p>Alguns desavantatges d'aquest mètode són que la imatge no està emmagatzemada a la memòria cau, i per a imatges més grans la url codificada pot arribar a ser bastant llarga.</p> + +<h3 id="Usar_marcs_d'un_vídeo">Usar marcs d'un vídeo</h3> + +<p>També es pot utilitzar marcs d'un vídeo, presentat per un element {{HTMLElement("video")}} (fins i tot si el vídeo no és visible). Per exemple, si tenim un element {{HTMLElement("video")}} amb l'ID "myvideo", es pot fer:</p> + +<pre class="brush: js">function getMyVideo() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + return document.getElementById('myvideo'); + } +} +</pre> + +<p>Això retorna l'objecte {{domxref("HTMLVideoElement")}} per al vídeo, que, com s'ha explicat anteriorment, és un dels objectes que es pot utilitzar com <code>CanvasImageSource</code>.</p> + +<h2 id="Dibuixar_imatges">Dibuixar imatges</h2> + +<p>Una vegada que tenim una referència al nostre objecte d'imatge font podem usar el mètode <code>drawImage()</code> para representar-la en el llenç. Com veurem més endavant el mètode <code>drawImage()</code> està sobrecarregat i té diverses variants. En la seva forma més bàsica, es veu així:</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y)")}}</dt> + <dd>Dibuixa el <code>CanvasImageSource</code> especificat pel paràmetre <code>image</code> en les coordenades (<code>x</code>, <code>y</code>).</dd> +</dl> + +<div class="note"> +<p>Les imatges SVG han d'especificar un amplada i una alçada en l'element arrel <svg>.</p> +</div> + +<h3 id="Exemple_Un_gràfic_de_línia_senzilla">Exemple: Un gràfic de línia senzilla</h3> + +<p>En el següent exemple, utilitzarem una imatge externa com a fons per un petit gràfic de línia. L'ús de fons pot fer que el script sigui considerablement més petit perquè evitem la necessitat de codi per generar el fons. En aquest exemple, només estem utilitzant una imatge, per la qual cosa s'utilitza el controlador d'esdeveniments <code>load</code> de l'objecte image per executar les sentències de dibuix. El mètode <code>drawImage()</code> col·loca el fons en la coordenada (0,0), que és la cantonada superior esquerra del llenç.</p> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="180" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js;highlight[5]">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + var img = new Image(); + img.onload = function() { + ctx.drawImage(img, 0, 0); + ctx.beginPath(); + ctx.moveTo(30, 96); + ctx.lineTo(70, 66); + ctx.lineTo(103, 76); + ctx.lineTo(170, 15); + ctx.stroke(); + }; + img.src = 'https://mdn.mozillademos.org/files/5395/backdrop.png'; +}</pre> + +<p><span class="s3gt_translate_tooltip_variant" id="s3gt_translate_tooltip_variant_to_id_0">El gràfic resultant és el següent</span>:</p> + +<p>{{EmbedLiveSample("Example_A_simple_line_graph", 220, 160, "https://mdn.mozillademos.org/files/206/Canvas_backdrop.png")}}</p> + +<h2 id="Escalar">Escalar</h2> + +<p>La segona variant del mètode <code>drawImage()</code> afegeix dos nous paràmetres i ens permet col·locar imatges a escala en el llenç.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y, width, height)")}}</dt> + <dd>Això afegeix els paràmetres <code>width</code> i <code>height</code>, que indiquen la grandària al que s'ha d'escalar la imatge en dibuixar-la sobre el llenç.</dd> +</dl> + +<h3 id="Exemple_Mosaic_d'una_imatge">Exemple: Mosaic d'una imatge</h3> + +<p>En aquest exemple, usarem una imatge com a fons de pantalla i la repetirem diverses vegades sobre el llenç. Això es fa, simplement, fent un bucle i col·locant les imatges escalades en diferents posicions. En el codi següent, el primer cicle de bucle itera sobre les files. El segon cicle <code>for</code> itera sobre les columnes. La imatge s'escala a un terç de la seva grandària original, que és de 50x38 píxels.</p> + +<div class="note"> +<p><strong>Nota</strong>: Les imatges poden tornar-se borroses en augmentar l'escala o granuloses si es redueixen massa. Escalar és millor no fer-ho, si tenim una mica de text que ha de seguir sent llegible.</p> +</div> + +<div class="hidden"> +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> +</div> + +<pre class="brush: js">function draw() { + var ctx = document.getElementById('canvas').getContext('2d'); + var img = new Image(); + img.onload = function() { + for (var i = 0; i < 4; i++) { + for (var j = 0; j < 3; j++) { + ctx.drawImage(img, j * 50, i * 38, 50, 38); + } + } + }; + img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg'; +}</pre> + +<p>El llenç resultant es veu així:</p> + +<p>{{EmbedLiveSample("Example_Tiling_an_image", 160, 160, "https://mdn.mozillademos.org/files/251/Canvas_scale_image.png")}}</p> + +<h2 id="Retallar">Retallar</h2> + +<p>La tercera i última variant del mètode <code>drawImage()</code> té vuit paràmetres a més de la font d'imatge. Ens permet retallar una secció de la imatge font, després escalar-la i dibuixar-la en el llenç.</p> + +<dl> + <dt>{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)")}}</dt> + <dd>Donada una <code>image</code>, aquesta funció pren l'àrea de la imatge font especificada pel rectangle, la cantonada superior esquerra de la qual és (<code>sx</code>, <code>sy</code>) i l'amplada de la qual i l'alçada són <code>sWidth</code> i <code>sHeight</code> i la dibuixa en el llenç, col·locant-la sobre el llenç a (<code>dx</code>, <code>dy</code>) i escalant-la a la grandària especificada per <code>dWidth</code> i <code>dHeight</code>.</dd> +</dl> + +<p><img alt="" class="internal" src="https://mdn.mozillademos.org/files/225/Canvas_drawimage.jpg" style="float: right; height: 290px; width: 300px;">Per entendre realment què fa això, pot ajudar, mirar la imatge a la dreta. Els primers quatre paràmetres defineixen la ubicació i la grandària del retall en la imatge font. Els últims quatre paràmetres defineixen el rectangle en el qual dibuixar la imatge sobre el llenç de destinació.</p> + +<p>El retallar pot ser una eina útil quan es desitja fer composicions. Es pot tenir tots els elements en un sol arxiu d'imatge i usar aquest mètode per compondre un dibuix complet. Per exemple, si es vol fer una gràfic, tenint una imatge PNG que contingui tot el text necessari en un sol arxiu i depenent de les dades, es podria canviar l'escala del gràfic amb bastant facilitat. Un altre avantatge és que no es necessita carregar cada imatge individualment, la qual cosa millora el rendiment de la càrrega.</p> + +<h3 id="Exemple_Enquadrar_una_imatge">Exemple: Enquadrar una imatge</h3> + +<p>En aquest exemple, usarem el mateix rinoceront que en l'exemple anterior, però li retallarem el cap i el compondrem en un marc d'imatge. La imatge del marc és una imatge PNG de 24 bits que inclou una ombra. A causa que les imatges PNG de 24 bits inclouen un canal alfa complet de 8 bits, a diferència de les imatges GIF i PNG de 8 bits, es poden col·locar en qualsevol fons sense que preocupi el color mat.</p> + +<pre class="brush: html"><html> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + <div style="display:none;"> + <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227"> + <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150"> + </div> + </body> +</html> +</pre> + +<pre class="brush: js">function draw() { + var canvas = document.getElementById('canvas'); + var ctx = canvas.getContext('2d'); + + // Draw slice + ctx.drawImage(document.getElementById('source'), + 33, 71, 104, 124, 21, 20, 87, 104); + + // Draw frame + ctx.drawImage(document.getElementById('frame'), 0, 0); +}</pre> + +<p>Aquesta vegada hem pres un enfocament diferent per carregar les imatges. En lloc de carregar-les creant nous objectes {{domxref("HTMLImageElement")}}, les incloem com a etiquetes {{HTMLElement("img")}} directament en el nostre codi font HTML i recuperem les imatges d'aquestes . Les imatges s'oculten de la sortida, establint la propietat CSS {{cssxref("display")}} a <em>none</em> per a aquestes imatges.</p> + +<p>{{EmbedLiveSample("Example_Framing_an_image", 160, 160, "https://mdn.mozillademos.org/files/226/Canvas_drawimage2.jpg")}}</p> + +<p>El propi script és molt senzill. Cada {{HTMLElement("img")}} se li assigna un atribut ID, la qual cosa facilita la selecció dels mateixos mitjançant {{domxref("document.getElementById()")}}. A continuació, simplement usem <code>drawImage()</code> per retallar el rinoceront de la primera imatge i escalar-lo en el llenç, després dibuixem el marc en la part superior usant una segona crida a <code>drawImage()</code>.</p> + +<h2 id="Exemple_de_galeria_d'art">Exemple de galeria d'art</h2> + +<p>En l'últim exemple d'aquest capítol, construirem una petita galeria d'art. La galeria consisteix en una taula que conté diverses imatges. Quan es carrega la pàgina, s'insereix un element {{HTMLElement("canvas")}} per a cada imatge i es dibuixa un marc al seu voltant.</p> + +<p>En aquest cas, cada imatge té una amplada i alçada fixa, igual que el marc que es dibuixa al seu al voltant. Es pot millorar el script (seqüència de comandaments) perquè usi l'amplada i l'alçada de la imatge, perquè el marc s'adapti perfectament al seu voltant.</p> + +<p>El següent codi ha de ser autoexplicatiu. Recorrem el contenidor {{domxref("document.images")}} i afegim nous elements canvas. Probablement l'única cosa que cal tenir en compte, per a aquells que no estan tan familiaritzats amb el DOM, és l'ús del mètode {{domxref("Node.insertBefore")}}. <code>insertBefore()</code> és un mètode del node pare (una cel·la de taula) de l'element (image) en que previament inserirem un nou node (l'element canvas).</p> + +<pre class="brush: html"><html> + <body onload="draw();"> + <table> + <tr> + <td><img src="https://mdn.mozillademos.org/files/5399/gallery_1.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5401/gallery_2.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5403/gallery_3.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5405/gallery_4.jpg"></td> + </tr> + <tr> + <td><img src="https://mdn.mozillademos.org/files/5407/gallery_5.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5409/gallery_6.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5411/gallery_7.jpg"></td> + <td><img src="https://mdn.mozillademos.org/files/5413/gallery_8.jpg"></td> + </tr> + </table> + <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150"> + </body> +</html> +</pre> + +<p><span id="result_box" lang="ca"><span>I aquí hi ha una mica de CSS per fer que les coses es vegin bé</span></span>:</p> + +<pre class="brush: css">body { + background: 0 -100px repeat-x url(https://mdn.mozillademos.org/files/5415/bg_gallery.png) #4F191A; + margin: 10px; +} + +img { + display: none; +} + +table { + margin: 0 auto; +} + +td { + padding: 15px; +} +</pre> + +<p>Javascript ho lliga tot junt, per dibuixar les imatges emmarcades:</p> + +<pre class="brush: js">function draw() { + + // Loop through all images + for (var i = 0; i < document.images.length; i++) { + + // Don't add a canvas for the frame image + if (document.images[i].getAttribute('id') != 'frame') { + + // Create canvas element + canvas = document.createElement('canvas'); + canvas.setAttribute('width', 132); + canvas.setAttribute('height', 150); + + // Insert before the image + document.images[i].parentNode.insertBefore(canvas,document.images[i]); + + ctx = canvas.getContext('2d'); + + // Draw image to canvas + ctx.drawImage(document.images[i], 15, 20); + + // Add frame + ctx.drawImage(document.getElementById('frame'), 0, 0); + } + } +}</pre> + +<p>{{EmbedLiveSample("Art_gallery_example", 725, 400)}}</p> + +<h2 id="Controlar_el_comportament_d'escalat_de_la_imatge">Controlar el comportament d'escalat de la imatge</h2> + +<p>Com es va esmentar anteriorment, l'escalat d'imatges pot donar com a resultat objectes borrosos o bloquejats a causa del procés d'escalat. Es pot utilitzar la propietat {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} del context de dibuix, per controlar l'ús d'algoritmes de suavitzat d'imatge en escalar imatges dins del seu context. Per defecte, això és <code>true</code>, la qual cosa significa que les imatges se suavitzaran en escalar-les. Aquesta característica es pot deshabilitar d'aquesta manera:</p> + +<pre class="brush: js">ctx.mozImageSmoothingEnabled = false; +ctx.webkitImageSmoothingEnabled = false; +ctx.msImageSmoothingEnabled = false; +ctx.imageSmoothingEnabled = false; +</pre> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial/Drawing_text", "Web/API/Canvas_API/Tutorial/Transformations")}}</p> diff --git a/files/ca/web/api/canvas_api/tutorial/ús_bàsic/index.html b/files/ca/web/api/canvas_api/tutorial/ús_bàsic/index.html new file mode 100644 index 0000000000..fb15a62d81 --- /dev/null +++ b/files/ca/web/api/canvas_api/tutorial/ús_bàsic/index.html @@ -0,0 +1,158 @@ +--- +title: Ús bàsic de canvas +slug: Web/API/Canvas_API/Tutorial/Ús_bàsic +tags: + - Canvas + - Graphics + - HTML + - Intermediate + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Basic_usage +--- +<div>{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial", "Web/API/Canvas_API/Tutorial/Drawing_shapes")}}</div> + +<div class="summary"> +<p>Comencem aquest tutorial consultant l'element {{HTMLElement("canvas")}} {{Glossary("HTML")}}. Al final d'aquesta pàgina, sabreu com configurar un context 2D de canvas i haureu dibuixat un primer exemple en el vostre navegador.</p> +</div> + +<h2 id="L'element_<canvas>">L'element <code><canvas></code></h2> + +<pre class="brush: html"><canvas id="tutorial" width="150" height="150"></canvas> +</pre> + +<p>A primera vista, {{HTMLElement("canvas")}} s'assembla l'element {{HTMLElement("img")}} amb l'única diferència clara, que no té els atributs <code>src</code> i <code>alt</code>. De fet, l'element <code><canvas></code> només té dos atributs, {{htmlattrxref("width", "canvas")}} i {{htmlattrxref("height", "canvas")}}. Aquests són opcionals i també es poden establir utilitzant les <a href="/en-US/docs/Web/API/HTMLCanvasElement">properties</a> {{Glossary("DOM")}} . Quan no s'especifiquen els atributs <code>width</code> i <code>height</code>, inicialment canvas tindrà <strong>300 píxels</strong> d'amplada i <strong>150 píxels</strong> d'alçada. L'element es pot dimensionar arbitràriament per {{Glossary("CSS")}}, però durant la representació, la imatge s'escala per adaptar-se a la seva grandària de disseny: si el dimensionament CSS no respecta la relació inicial de canvas, apareixerà distorsionada</p> + +<div class="note"> +<p><strong>Nota:</strong> Si les vostres representacions semblen distorsionades, intenteu especificar els atributs <code>width</code> i <code>height</code>, explícitament, en els atributs <code><canvas></code> i no utilitzeu CSS.</p> +</div> + +<p>L'atribut <a href="/en-US/docs/Web/HTML/Global_attributes/id"><code>id</code></a> no és específic de l'element <code><canvas></code>, però és un dels <a href="/en-US/docs/Web/HTML/Global_attributes">atributs HTML global</a> que es pot aplicar a qualsevol element HTML (com <code><a href="/en-US/docs/Web/HTML/Global_attributes/class">class</a></code>, per exemple). Sempre és una bona idea proporcionar un <code>id</code>, perquè això fa que sigui molt més fàcil identificar-lo en un script.</p> + +<p>L'element <code><canvas></code> se li pot donar estil com qualsevol imatge normal ({{cssxref("margin")}}, {{cssxref("border")}}, {{cssxref("background")}}…). Aquestes regles, no obstant això, no afecten al dibuix real sobre el llenç. Veurem com això es fa en un <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors">capítol dedicat</a> d'aquest tutorial. Quan no s'apliquen regles d'estil al llenç, inicialment, serà totalment transparent.</p> + +<div id="section_2"> +<h3 id="Contingut_alternatiu">Contingut alternatiu</h3> + +<p>L'element <code><canvas></code> difereix d'una etiqueta {{HTMLElement("img")}} com per els elements {{HTMLElement("video")}}, {{HTMLElement("audio")}} o {{HTMLElement("picture")}}, és fàcil definir algun contingut alternatiu, que es mostri en navegadors antics que no ho suportin, com ara en versions d'Internet Explorer anteriors a la versió 9 o navegadors textuals. Sempre haureu de proporcionar contingut alternatiu perquè els navegadors ho mostrin.</p> + +<p>Proporcionar contingut alternatiu és molt senzill: simplement inseriu el contingut alternatiu dins de l'element <code><canvas></code>. Els navegadors que no suporten <code><canvas></code> ignoraran el contenidor i mostraran el contingut alternatiu dins del mateix. Els navegadors que suporten <code><canvas></code> ignoraran el contingut dins del contenidor, i simplement mostraran el llenç, normalment.</p> + +<p>Per exemple, podríem proporcionar una descripció de text del contingut del llenç o proporcionar una imatge estàtica del contingut presentat dinàmicament. Això pot semblar-se a això:</p> + +<pre class="brush: html"><canvas id="stockGraph" width="150" height="150"> + current stock price: $3.15 + 0.15 +</canvas> + +<canvas id="clock" width="150" height="150"> + <img src="images/clock.png" width="150" height="150" alt=""/> +</canvas> +</pre> + +<p>Dir-li a l'usuari que utilitzi un navegador diferent que suporti canvas no ajuda als usuaris que no poden llegir canvas en absolut, per exemple. Proporcionar un text alternatiu útil o un DOM secundari, ajuda a <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility">fer canvas més accessible</a>.</p> + +<h3 id="Etiqueta_<canvas>_obligatoria">Etiqueta <code></canvas></code> obligatoria</h3> + +<p>Com a conseqüència de la manera en què es proporciona una solució alternativa, a diferència de l'element {{HTMLElement("img")}}, l'element {{HTMLElement("canvas")}} <strong>requereix</strong> l'etiqueta de tancament (<code></canvas></code>). Si aquesta etiqueta no està present, la resta del document es consideraria contingut alternatiu i no es mostraria.</p> + +<p>Si no es necessita un contingut alternatiu, un simple <code><canvas id="foo" ...></canvas></code> és totalment compatible amb tots els navegadors que suporten canvas.</p> + +<h2 id="El_context_de_representació">El context de representació</h2> + +<p>L'element {{HTMLElement("canvas")}} crea una superfície de dibuix de grandària fixa que exposa un o més <strong>contextos de representació</strong>, que s'utilitzen per crear i manipular el contingut mostrat. En aquest tutorial, ens centrem en el context de representació 2D. Altres contextos poden proporcionar diferents tipus de representació; per exemple, <a href="https://developer.mozilla.org/en-US/docs/Web/WebGL">WebGL</a> utilitza un context 3D basat en <a href="http://www.khronos.org/opengles/">OpenGL</a> ÉS.Other contexts may provide different types of rendering; for example, <a href="/en-US/docs/Web/WebGL" title="/en-US/docs/Web/WebGL">WebGL</a> uses a 3D context based on <a class="external" href="http://www.khronos.org/opengles/" rel="external" title="http://en.wikipedia.org/wiki/OpenGL_ES">OpenGL ES</a>.</p> + +<p>El llenç està inicialment en blanc. Per mostrar alguna cosa, un script, primer necessita accedir al context de representació i dibuixar en ell. L'element {{HTMLElement("canvas")}} té un mètode anomenat {{domxref("HTMLCanvasElement.getContext", "getContext()")}}, utilitzat per obtenir el context de representació i les seves funcions de dibuix. <code>getContext()</code> pren un paràmetre, el tipus de context. Per als gràfics 2D, com els que es detallen en aquest tutorial, heu d'especificar <code>"2d"</code> per obtenir un {{domxref("CanvasRenderingContext2D")}}.</p> + +<pre class="brush: js">var canvas = document.getElementById('tutorial'); +var ctx = canvas.getContext('2d'); +</pre> + +<p>La primera línia del script recupera el node en el DOM, que representa l'element {{HTMLElement("canvas")}} cridant el mètode {{domxref("document.getElementById()")}}. Un cop tingueu el node d'element, podeu accedir al context del dibuix mitjançant el mètode <code>getContext()</code>.</p> + +<div id="section_5"> +<h2 id="Comprovació_del_suport">Comprovació del suport</h2> + +<p>El contingut alternatiu es mostra en navegadors que no admeten {{HTMLElement("canvas")}}. Les seqüències d'ordres, també poden comprovar la compatibilitat mitjançant programació, simplement provant la presència del mètode <code>getContext()</code>. El nostre fragment de codi de dalt es converteix en una cosa així:</p> + +<pre class="brush: js">var canvas = document.getElementById('tutorial'); + +if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + // drawing code here +} else { + // canvas-unsupported code here +} +</pre> +</div> +</div> + +<h2 id="Una_plantilla_esquelet">Una plantilla esquelet</h2> + +<p>Aquí teniu una plantilla minimalista, que usarem com a punt de partida per a exemples posteriors.</p> + +<div class="note"> +<p><strong>Nota:</strong> no és una bona pràctica incrustar un script dins d'HTML. Ho fem aquí per mantenir l'exemple concís.</p> +</div> + +<pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"/> + <title>Canvas tutorial</title> + <script type="text/javascript"> + function draw() { + var canvas = document.getElementById('tutorial'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + } + } + </script> + <style type="text/css"> + canvas { border: 1px solid black; } + </style> + </head> + <body onload="draw();"> + <canvas id="tutorial" width="150" height="150"></canvas> + </body> +</html> +</pre> + +<p>El script inclou una funció anomenada <code>draw()</code>, que s'executa una vegada que la pàgina acaba de carregar-se; això es fa escoltant l'esdeveniment {{event("load")}} en el document. Aquesta funció, o una similar, també pot ser cridada usant {{domxref("WindowTimers.setTimeout", "window.setTimeout()")}}, {{domxref("WindowTimers.setInterval", "window.setInterval()")}}, o qualsevol altre controlador d'esdeveniments, sempre que la pàgina s'hagi carregat primer.</p> + +<p>Així és com es veuria una plantilla en acció. Com es mostra aquí, inicialment està en blanc.</p> + +<p>{{EmbedLiveSample("A_skeleton_template", 160, 160)}}</p> + +<h2 id="Un_exemple_senzill">Un exemple senzill</h2> + +<p>Per començar, feu un cop d'ull a un exemple senzill que dibuixa dos rectangles que es creuen, un dels quals té una transparència alfa. Explorarem com funciona això amb més detall en exemples posteriors.</p> + +<pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"/> + <script type="application/javascript"> + function draw() { + var canvas = document.getElementById('canvas'); + if (canvas.getContext) { + var ctx = canvas.getContext('2d'); + + ctx.fillStyle = 'rgb(200, 0, 0)'; + ctx.fillRect(10, 10, 50, 50); + + ctx.fillStyle = 'rgba(0, 0, 200, 0.5)'; + ctx.fillRect(30, 30, 50, 50); + } + } + </script> + </head> + <body onload="draw();"> + <canvas id="canvas" width="150" height="150"></canvas> + </body> +</html> +</pre> + +<p>Aquest exemple es veu així:</p> + +<p>{{EmbedLiveSample("A_simple_example", 160, 160, "https://mdn.mozillademos.org/files/228/canvas_ex1.png")}}</p> + +<p>{{PreviousNext("Web/API/Canvas_API/Tutorial", "Web/API/Canvas_API/Tutorial/Drawing_shapes")}}</p> diff --git a/files/ca/web/api/index.html b/files/ca/web/api/index.html new file mode 100644 index 0000000000..d90573a587 --- /dev/null +++ b/files/ca/web/api/index.html @@ -0,0 +1,8 @@ +--- +title: Web API Interfaces +slug: Web/API +translation_of: Web/API +--- +<p>En escriure codi per a la web utilitzant JavaScript, hi ha una gran quantitat d'APIs disponibles. A continuació es mostra una llista de totes les interfícies (és a dir, tipus d'objectes) que vostè pot utilitzar quan desenvolupi la seva aplicació o lloc web.</p> + +<div>{{APIListAlpha}}</div> diff --git a/files/ca/web/api/webgl_api/index.html b/files/ca/web/api/webgl_api/index.html new file mode 100644 index 0000000000..d2d59703ec --- /dev/null +++ b/files/ca/web/api/webgl_api/index.html @@ -0,0 +1,276 @@ +--- +title: 'L''API WebGL: Gràfics 2D i 3D al web' +slug: Web/API/WebGL_API +tags: + - Avançat + - Gràfics + - Media + - WebGL +translation_of: Web/API/WebGL_API +--- +<div>{{WebGLSidebar}}</div> + +<div class="summary"> +<p>WebGL (Web Graphics Library) és una API Javascript per renderitzar gràfics interactius 3D i 2D en qualsevol navegador web compatible sense la utilització d'extensions. WebGL ho porta a terme introduint una API que s'adapta molt a OpenGL ES 2.0 i que pot utilitzar-se en elements {{HTMLElement("canvas")}} d'HTML5.</p> +</div> + +<p><a href="/en-US/Firefox" title="Firefox 4 for developers">Firefox</a> 4+, <a href="http://www.google.com/chrome/" title="http://www.google.com/chrome/">Google Chrome</a> 9+, <a href="http://www.opera.com/" title="http://www.opera.com/">Opera</a> 12+, <a href="http://www.apple.com/safari/" title="http://www.apple.com/fr/safari/">Safari </a>5.1+ i <a href="http://windows.microsoft.com/en-us/internet-explorer/browser-ie" title="http://windows.microsoft.com/en-us/internet-explorer/download-ie">Internet Explorer</a> 11+, suporten WebGL; malgrat això, el dispositiu de l'usuari ha de disposar de maquinari que suporti aquestes característiques.</p> + +<p>L'element {{HTMLElement("canvas")}} s'utilitza també en <a href="/en-US/docs/Web/API/Canvas_API">Canvas 2D</a> per realitzar gràfics 2D en pàgines web.</p> + +<h2 id="Referència">Referència</h2> + +<h3 id="Interfícies_estàndard">Interfícies estàndard</h3> + +<div class="index"> +<ul> + <li>{{domxref("WebGLRenderingContext")}}</li> + <li>{{domxref("WebGL2RenderingContext")}} {{experimental_inline}}</li> + <li>{{domxref("WebGLActiveInfo")}}</li> + <li>{{domxref("WebGLBuffer")}}</li> + <li>{{domxref("WebGLContextEvent")}}</li> + <li>{{domxref("WebGLFramebuffer")}}</li> + <li>{{domxref("WebGLProgram")}}</li> + <li>{{domxref("WebGLQuery")}} {{experimental_inline}}</li> + <li>{{domxref("WebGLRenderbuffer")}}</li> + <li>{{domxref("WebGLSampler")}} {{experimental_inline}}</li> + <li>{{domxref("WebGLShader")}}</li> + <li>{{domxref("WebGLShaderPrecisionFormat")}}</li> + <li>{{domxref("WebGLSync")}} {{experimental_inline}}</li> + <li>{{domxref("WebGLTexture")}}</li> + <li>{{domxref("WebGLTransformFeedback")}} {{experimental_inline}}</li> + <li>{{domxref("WebGLUniformLocation")}}</li> + <li>{{domxref("WebGLVertexArrayObject")}} {{experimental_inline}}</li> +</ul> +</div> + +<h3 id="Extensions">Extensions</h3> + +<div class="index"> +<ul> + <li>{{domxref("ANGLE_instanced_arrays")}}</li> + <li>{{domxref("EXT_blend_minmax")}}</li> + <li>{{domxref("EXT_color_buffer_float")}}</li> + <li>{{domxref("EXT_color_buffer_half_float")}}</li> + <li>{{domxref("EXT_disjoint_timer_query")}}</li> + <li>{{domxref("EXT_frag_depth")}}</li> + <li>{{domxref("EXT_sRGB")}}</li> + <li>{{domxref("EXT_shader_texture_lod")}}</li> + <li>{{domxref("EXT_texture_filter_anisotropic")}}</li> + <li>{{domxref("OES_element_index_uint")}}</li> + <li>{{domxref("OES_standard_derivatives")}}</li> + <li>{{domxref("OES_texture_float")}}</li> + <li>{{domxref("OES_texture_float_linear")}}</li> + <li>{{domxref("OES_texture_half_float")}}</li> + <li>{{domxref("OES_texture_half_float_linear")}}</li> + <li>{{domxref("OES_vertex_array_object")}}</li> + <li>{{domxref("WEBGL_color_buffer_float")}}</li> + <li>{{domxref("WEBGL_compressed_texture_astc")}}</li> + <li>{{domxref("WEBGL_compressed_texture_atc")}}</li> + <li>{{domxref("WEBGL_compressed_texture_etc")}}</li> + <li>{{domxref("WEBGL_compressed_texture_etc1")}}</li> + <li>{{domxref("WEBGL_compressed_texture_pvrtc")}}</li> + <li>{{domxref("WEBGL_compressed_texture_s3tc")}}</li> + <li>{{domxref("WEBGL_compressed_texture_s3tc_srgb")}}</li> + <li>{{domxref("WEBGL_debug_renderer_info")}}</li> + <li>{{domxref("WEBGL_debug_shaders")}}</li> + <li>{{domxref("WEBGL_depth_texture")}}</li> + <li>{{domxref("WEBGL_draw_buffers")}}</li> + <li>{{domxref("WEBGL_lose_context")}}</li> +</ul> +</div> + +<h3 id="Events">Events</h3> + +<ul> + <li>{{Event("webglcontextlost")}}</li> + <li>{{Event("webglcontextrestored")}}</li> + <li>{{Event("webglcontextcreationerror")}}</li> +</ul> + +<h3 id="Constants_i_tipus">Constants i tipus</h3> + +<ul> + <li><a href="/en-US/docs/Web/API/WebGL_API/Constants">WebGL constants</a></li> + <li><a href="/en-US/docs/Web/API/WebGL_API/Types">WebGL types</a></li> +</ul> + +<h3 id="WebGL_2">WebGL 2</h3> + +<p>WebGL 2 és una actualització important de WebGL a la que s'accedeix mitjançant la interfície {{domxref("WebGL2RenderingContext")}}. Està basat en OpenGL ES 3.0 i algunes de les seves millores són:</p> + +<ul> + <li><a href="/en-US/docs/Web/API/WebGL2RenderingContext/texImage3D">Textures 3D</a>,</li> + <li><a href="/en-US/docs/Web/API/WebGLSampler">Objectes Sampler</a>,</li> + <li><a href="/en-US/docs/Web/API/WebGL2RenderingContext#Uniform_buffer_objects">Objectes Uniform Buffer</a>,</li> + <li><a href="/en-US/docs/Web/API/WebGLSync">Objectes Sync</a>,</li> + <li><a href="/en-US/docs/Web/API/WebGLQuery">Objectes Query</a>,</li> + <li><a href="/en-US/docs/Web/API/WebGLTransformFeedback">Objectes Transform Feedback</a>,</li> + <li>Algunes extensions que ara formen part de WebGL 2: <a href="/en-US/docs/Web/API/WebGLVertexArrayObject">Objectes Vertex Array</a>, <a href="/en-US/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced">instanciació</a>, <a href="/en-US/docs/Web/API/WebGL2RenderingContext/drawBuffers">múltiples objectius de render</a>, <a href="/en-US/docs/Web/API/EXT_frag_depth">profunditat dels fragment</a>s.</li> +</ul> + +<p>Vegeu també l'entrada al blog <a href="https://hacks.mozilla.org/2017/01/webgl-2-lands-in-firefox/">"WebGL 2 aterra en el Firefox"</a> i <a href="http://webglsamples.org/WebGL2Samples/">webglsamples.org/WebGL2Samples</a> per unes quantes demostracions.</p> + +<h2 id="Guies_i_tutorials">Guies i tutorials</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/WebGL_API/Tutorial">Tutorial de WebGL</a>: Una guia de conceptes bàsics de WebGL per a novells. Un bon lloc per on començar si no tens experiència prèvia en WebGL.</li> + <li><a href="/en-US/docs/Web/API/WebGL_API/WebGL_best_practices">Bones pràctiques en WebGL</a>: Consells i suggeriments per millorar el teu contingut WebGL content.</li> + <li><a href="/en-US/docs/Web/API/WebGL_API/Using_Extensions">Utilitzant extensions</a>: Com utilitzar les extensions que estan disponibles a WebGL.</li> +</ul> + +<h3 id="Tutorials_avançats">Tutorials avançats</h3> + +<ul> + <li><a href="/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection">Projecció model vista de WebGL</a>: Una explicació detallada de les tres matrius bàsiques que s'utilitzen habitualment per representar una vista d'objectes 3D: Les matrius de model, vista i projecció.</li> + <li><a href="/en-US/docs/Web/API/WebGL_API/Matrix_math_for_the_web">Matemàtiques de matrius per a web</a>: Una útil guia sobre com les matrius de transformació 3D funcionen, i es poden utilitzar al web — tant per càlculs WebGL com per transformacions en CSS3.</li> +</ul> + +<h2 id="Recursos">Recursos</h2> + +<ul> + <li><a href="https://www.youtube.com/embed/H4c8t6myAWU/?feature=player_detailpage">WebGL cru: Una introducció a WebGL</a> Una conferència d'en Nick Desaulniers que introdueix els conceptes bàsics de WebGL. Aquest és un bon lloc de partida si mai has realitzat programació de gràfics a baix nivell.</li> + <li><a href="http://www.khronos.org/webgl/" title="http://www.khronos.org/webgl/">Web de WebGL de Khronos</a> La web principal de WebGL al grup Khronos.</li> + <li><a href="http://learningwebgl.com/blog/?page_id=1217" title="http://learningwebgl.com/blog/">Aprenent WebGL</a> Un lloc amb tutorials sobre com utilitzar WebGL.</li> + <li><a href="http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/" title="http://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/">Fonaments de WebGL</a> Un tutorial bàsic sobre els fonaments de WebGL.</li> + <li><a href="http://webglplayground.net" title="http://webglplayground.net">Pati d'esbarjo de WebGL</a> Una eina online per crear i compartir projectes WebGL. Bona per fer prototips ràpids i experimentar.</li> + <li><a href="http://www.webglacademy.com" title="http://www.webglacademy.com">Acadèmia de WebGL</a> Un editor HTML/JavaScript amb tutorials per aprendre els conceptes bàsics de la programació WebGL.</li> + <li><a href="http://webglstats.com/">Estadístiques WebGL Stats</a> Un lloc web amb estadístiques sobre les capacitats WebGL dels navegadors en diferents plataformes.</li> +</ul> + +<h3 id="Llibraries">Llibraries</h3> + +<ul> + <li><a class="link-https" href="https://github.com/toji/gl-matrix" title="https://github.com/toji/gl-matrix">glMatrix</a> Llibreria JavaScript de matrius i vectors per produir aplicacions WebGL d'alt rendiment</li> + <li><a href="http://sylvester.jcoglan.com/" title="http://sylvester.jcoglan.com/">Sylvester</a> Una llibreria de codi obert per manipular vectors i matrius. No optimitzada per WebGL però extremadament robusta.</li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebGL')}}</td> + <td>{{Spec2('WebGL')}}</td> + <td>Definició inicial. Basat en OpenGL ES 2.0</td> + </tr> + <tr> + <td>{{SpecName('WebGL2')}}</td> + <td>{{Spec2('WebGL2')}}</td> + <td>Ampliació de WebGL 1. Basat en OpenGL ES 3.0.</td> + </tr> + <tr> + <td>{{SpecName('OpenGL ES 2.0')}}</td> + <td>{{Spec2('OpenGL ES 2.0')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('OpenGL ES 3.0')}}</td> + <td>{{Spec2('OpenGL ES 3.0')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_de_navegadors">Compatibilitat de navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>9</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>11</td> + <td>12</td> + <td>5.1</td> + </tr> + <tr> + <td>WebGL 2</td> + <td>56</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("51")}}</td> + <td>{{CompatNo}}</td> + <td>43</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome per Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>25</td> + <td>{{CompatVersionUnknown}}</td> + <td>4</td> + <td>{{CompatNo}}</td> + <td>12</td> + <td>8.1</td> + </tr> + <tr> + <td>WebGL 2</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Notes_de_compatibilitat">Notes de compatibilitat</h3> + +<p>A més del navegador, la pròpia GPU ha de suportar la característica. Per exemple, la compressió de textures S3 (S3TC) només està disponible en tauletes basades en el chipset Tegra. La majoria de navegadors fan disponible el context WebGL a través del nom de context <code>webgl</code>, però els navegadors antics el fan disponible a través del nom <code>experimental-webgl</code> també. La versió <a href="/en-US/docs/Web/API/WebGL2RenderingContext">WebGL 2</a> és totalment retro compatible i utilitza el nom <code>webgl2</code>.</p> + +<h3 id="Notes_sobre_Gecko">Notes sobre Gecko</h3> + +<h4 id="Debugant_i_testant_WebGL">Debugant i testant WebGL</h4> + +<p>Començant amb Gecko 10.0 {{geckoRelease("10.0")}}, hi ha dues preferències disponibles que et permeten controlar les capacitats WebGL per testar:</p> + +<dl> + <dt><code>webgl.min_capability_mode</code></dt> + <dd>Una propietat booleana que, quan és certa, habilita un mode de capacitats mínimes. Quan aquest mode està actiu, WebGL està configurat per suportar només el conjunt mínim de funcionalitats que marca l'especificació de WebGL. Això permet comprovar que el codi WebGL funcionarà en qualsevol dispositiu o navegador, independentment de les capacitats d'aquest. És <code>false</code> per defecte.</dd> + <dt><code>webgl.disable_extensions</code></dt> + <dd>Una propietat booleana que, quan és certa, desactiva totes les extensions WebGL. És <code>false</code> per defecte.</dd> +</dl> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Canvas_API">Canvas</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/getSupportedExtensions#Browser_compatibility">Informació de compatibilitat sobre les extensions de WebGL</a></li> +</ul> diff --git a/files/ca/web/api/window/index.html b/files/ca/web/api/window/index.html new file mode 100644 index 0000000000..5731c6fb02 --- /dev/null +++ b/files/ca/web/api/window/index.html @@ -0,0 +1,477 @@ +--- +title: Window +slug: Web/API/Window +tags: + - API + - DOM + - Interface + - JavaScript + - NeedsTranslation + - Reference + - TopicStub + - Window +translation_of: Web/API/Window +--- +<p>{{APIRef}}</p> + +<p><span class="seoSummary">The <code>window</code> object represents a window containing a DOM document; the <code>document</code> property points to the <a href="/en-US/docs/DOM/document">DOM document</a> loaded in that window.</span> A window for a given document can be obtained using the {{Domxref("document.defaultView")}} property.</p> + +<p>This section provides a brief reference for all of the methods, properties, and events available through the DOM <code>window</code> object. The <code>window</code> object implements the <code>Window</code> interface, which in turn inherits from the <code><a href="http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView">AbstractView</a></code> interface. Some additional global functions, namespaces, objects, interfaces, and constructors, not typically associated with the window, but available on it, are listed in the <a href="/en-US/docs/JavaScript/Reference">JavaScript Reference</a> and <a href="/en-US/docs/Web/API/Document_Object_Model" title="/en-US/docs/Web/API/Document_Object_Model">DOM Reference</a>.</p> + +<p>In a tabbed browser, such as Firefox, each tab contains its own <code>window</code> object (and if you're writing an extension, the browser window itself is a separate window too - see <a href="/en-US/docs/Working_with_windows_in_chrome_code#Content_windows">Working with windows in chrome code</a> for more information). That is, the <code>window</code> object is not shared between tabs in the same window. Some methods, namely {{Domxref("window.resizeTo")}} and {{Domxref("window.resizeBy")}} apply to the whole window and not to the specific tab the <code>window</code> object belongs to. Generally, anything that can't reasonably pertain to a tab pertains to the window instead.</p> + +<p>{{InheritanceDiagram}}</p> + +<h2 id="Properties">Properties</h2> + +<p><em>This interface inherits properties from the {{domxref("EventTarget")}} interface and implements properties from the {{domxref("WindowOrWorkerGlobalScope")}} and {{domxref("WindowEventHandlers")}} mixins.</em></p> + +<p>Note that properties which are objects (e.g.,. for overriding the prototype of built-in elements) are listed in a separate section below.</p> + +<dl> + <dt>{{domxref("Window.closed")}} {{Non-standard_inline}}{{readOnlyInline}}</dt> + <dd>This property indicates whether the current window is closed or not.</dd> + <dt>{{domxref("Window.console")}} {{ReadOnlyInline}}</dt> + <dd>Returns a reference to the console object which provides access to the browser's debugging console.</dd> + <dt>{{domxref("Window.content")}} and Window._content {{Non-standard_inline}} {{obsolete_inline}}{{ReadOnlyInline}}</dt> + <dd>Returns a reference to the content element in the current window. Since Firefox 57 (initially Nightly-only), both versions are only available from chrome (privileged) code, and not available to the web anymore.</dd> + <dt>{{domxref("Window.controllers")}}{{non-standard_inline}}{{ReadOnlyInline}}</dt> + <dd>Returns the XUL controller objects for the current chrome window.</dd> + <dt>{{domxref("Window.crypto")}} {{readOnlyInline}}</dt> + <dd>Returns the browser crypto object.</dd> + <dt>{{domxref("Window.defaultStatus")}} {{Obsolete_inline("gecko23")}}</dt> + <dd>Gets/sets the status bar text for the given window.</dd> + <dt>{{domxref("Window.devicePixelRatio")}} {{non-standard_inline}}{{ReadOnlyInline}}</dt> + <dd>Returns the ratio between physical pixels and device independent pixels in the current display.</dd> + <dt>{{domxref("Window.dialogArguments")}} {{Fx_minversion_inline(3)}} {{ReadOnlyInline}}</dt> + <dd>Gets the arguments passed to the window (if it's a dialog box) at the time {{domxref("window.showModalDialog()")}} was called. This is an {{Interface("nsIArray")}}.</dd> + <dt>{{domxref("Window.directories")}} {{obsolete_inline}}</dt> + <dd>Synonym of {{domxref("window.personalbar")}}</dd> + <dt>{{domxref("Window.document")}} {{ReadOnlyInline}}</dt> + <dd>Returns a reference to the document that the window contains.</dd> + <dt>{{domxref("Window.frameElement")}} {{readOnlyInline}}</dt> + <dd>Returns the element in which the window is embedded, or null if the window is not embedded.</dd> + <dt>{{domxref("Window.frames")}} {{readOnlyInline}}</dt> + <dd>Returns an array of the subframes in the current window.</dd> + <dt>{{domxref("Window.fullScreen")}} {{gecko_minversion_inline("1.9")}}</dt> + <dd>This property indicates whether the window is displayed in full screen or not.</dd> + <dt>{{domxref("Window.globalStorage")}} {{gecko_minversion_inline("1.8.1")}} {{Non-standard_inline}} {{Obsolete_inline("gecko13")}}</dt> + <dd>Unsupported since Gecko 13 (Firefox 13). Use {{domxref("Window.localStorage")}} instead.<br> + Was: Multiple storage objects that are used for storing data across multiple pages.</dd> + <dt>{{domxref("Window.history")}} {{ReadOnlyInline}}</dt> + <dd>Returns a reference to the history object.</dd> + <dt>{{domxref("Window.innerHeight")}} {{readOnlyInline}}</dt> + <dd>Gets the height of the content area of the browser window including, if rendered, the horizontal scrollbar.</dd> + <dt>{{domxref("Window.innerWidth")}} {{readOnlyInline}}</dt> + <dd>Gets the width of the content area of the browser window including, if rendered, the vertical scrollbar.</dd> + <dt>{{domxref("Window.isSecureContext")}} {{readOnlyInline}}</dt> + <dd>Indicates whether a context is capable of using features that require secure contexts.</dd> + <dt>{{domxref("Window.length")}} {{readOnlyInline}}</dt> + <dd>Returns the number of frames in the window. See also {{domxref("window.frames")}}.</dd> + <dt>{{domxref("Window.location")}}</dt> + <dd>Gets/sets the location, or current URL, of the window object.</dd> + <dt>{{domxref("Window.locationbar")}} {{ReadOnlyInline}}</dt> + <dd>Returns the locationbar object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.localStorage")}} {{readOnlyInline}}{{gecko_minversion_inline("1.9.1")}}</dt> + <dd>Returns a reference to the local storage object used to store data that may only be accessed by the origin that created it.</dd> + <dt>{{domxref("Window.menubar")}} {{ReadOnlyInline}}</dt> + <dd>Returns the menubar object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.messageManager")}} {{gecko_minversion_inline("2.0")}}</dt> + <dd>Returns the <a href="/en-US/docs/The_message_manager">message manager</a> object for this window.</dd> + <dt>{{domxref("Window.mozAnimationStartTime")}} {{ReadOnlyInline}}{{gecko_minversion_inline("2.0")}} {{Deprecated_inline}}</dt> + <dd>The time in milliseconds since epoch at which the current animation cycle began.</dd> + <dt>{{domxref("Window.mozInnerScreenX")}} {{ReadOnlyInline}}{{non-standard_inline}}{{gecko_minversion_inline("1.9.2")}}</dt> + <dd>Returns the horizontal (X) coordinate of the top-left corner of the window's viewport, in screen coordinates. This value is reported in CSS pixels. See <code>mozScreenPixelsPerCSSPixel</code> in {{interface("nsIDOMWindowUtils")}} for a conversion factor to adapt to screen pixels if needed.</dd> + <dt>{{domxref("Window.mozInnerScreenY")}} {{ReadOnlyInline}} {{non-standard_inline}}{{gecko_minversion_inline("1.9.2")}}</dt> + <dd>Returns the vertical (Y) coordinate of the top-left corner of the window's viewport, in screen coordinates. This value is reported in CSS pixels. See <code>mozScreenPixelsPerCSSPixel</code> for a conversion factor to adapt to screen pixels if needed.</dd> + <dt>{{domxref("Window.mozPaintCount")}} {{non-standard_inline}}{{ReadOnlyInline}} {{gecko_minversion_inline("2.0")}}</dt> + <dd>Returns the number of times the current document has been rendered to the screen in this window. This can be used to compute rendering performance.</dd> + <dt>{{domxref("Window.name")}}</dt> + <dd>Gets/sets the name of the window.</dd> + <dt>{{domxref("Window.navigator")}} {{readOnlyInline}}</dt> + <dd>Returns a reference to the navigator object.</dd> + <dt>{{domxref("Window.opener")}}</dt> + <dd>Returns a reference to the window that opened this current window.</dd> + <dt>{{domxref("Window.orientation")}}{{non-standard_inline}}{{deprecated_inline}}{{readOnlyInline}}</dt> + <dd>Returns the orientation in degrees (in 90 degree increments) of the viewport relative to the device's natural orientation.</dd> + <dt>{{domxref("Window.outerHeight")}} {{readOnlyInline}}</dt> + <dd>Gets the height of the outside of the browser window.</dd> + <dt>{{domxref("Window.outerWidth")}} {{readOnlyInline}}</dt> + <dd>Gets the width of the outside of the browser window.</dd> + <dt>{{domxref("Window.scrollX","Window.pageXOffset")}} {{readOnlyInline}}</dt> + <dd>An alias for {{domxref("window.scrollX")}}.</dd> + <dt>{{domxref("Window.scrollY","Window.pageYOffset")}}{{readOnlyInline}}</dt> + <dd>An alias for {{domxref("window.scrollY")}}</dd> + <dt>{{domxref("Window.sessionStorage")}} {{readOnlyInline}}</dt> + <dd>Returns a reference to the session storage object used to store data that may only be accessed by the origin that created it.</dd> + <dt>{{domxref("Window.parent")}} {{readOnlyInline}}</dt> + <dd>Returns a reference to the parent of the current window or subframe.</dd> + <dt>{{domxref("Window.performance")}} {{readOnlyInline}}</dt> + <dd>Returns a {{domxref("Performance")}} object, which includes the {{domxref("Performance.timing", "timing")}} and {{domxref("Performance.navigation", "navigation")}} attributes, each of which is an object providing <a href="/en-US/docs/Navigation_timing">performance-related</a> data. See also <a href="/en-US/docs/Web/API/Navigation_timing_API/Using_Navigation_Timing">Using Navigation Timing</a> for additional information and examples.</dd> + <dt>{{domxref("Window.personalbar")}} {{readOnlyInline}}</dt> + <dd>Returns the personalbar object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.pkcs11")}} {{obsolete_inline(29)}}</dt> + <dd>Formerly provided access to install and remove PKCS11 modules.</dd> + <dt>{{domxref("Window.returnValue")}} {{Fx_minversion_inline(3)}}</dt> + <dd>The return value to be returned to the function that called {{domxref("window.showModalDialog()")}} to display the window as a modal dialog.</dd> + <dt>{{domxref("Window.screen")}} {{readOnlyInline}}</dt> + <dd>Returns a reference to the screen object associated with the window.</dd> + + <dt>{{domxref("Window.screenX")}} {{readOnlyInline}}</dt> + <dd>Returns the horizontal distance of the left border of the user's browser from the left side of the screen.</dd> + <dt>{{domxref("Window.screenY")}} {{readOnlyInline}}</dt> + <dd>Returns the vertical distance of the top border of the user's browser from the top side of the screen.</dd> + <dt>{{domxref("Window.scrollbars")}} {{readOnlyInline}}</dt> + <dd>Returns the scrollbars object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.scrollMaxX")}}{{non-standard_inline}}{{ReadOnlyInline}}</dt> + <dd>The maximum offset that the window can be scrolled to horizontally, that is the document width minus the viewport width.</dd> + <dt>{{domxref("Window.scrollMaxY")}}{{non-standard_inline}}{{ReadOnlyInline}}</dt> + <dd>The maximum offset that the window can be scrolled to vertically (i.e., the document height minus the viewport height).</dd> + <dt>{{domxref("Window.scrollX")}} {{readOnlyInline}}</dt> + <dd>Returns the number of pixels that the document has already been scrolled horizontally.</dd> + <dt>{{domxref("Window.scrollY")}} {{readOnlyInline}}</dt> + <dd>Returns the number of pixels that the document has already been scrolled vertically.</dd> + <dt>{{domxref("Window.self")}} {{ReadOnlyInline}}</dt> + <dd>Returns an object reference to the window object itself.</dd> + <dt>{{domxref("Window.sessionStorage")}} {{Fx_minversion_inline("2.0")}}</dt> + <dd>Returns a storage object for storing data within a single page session.</dd> + <dt>{{domxref("Window.sidebar")}} {{non-standard_inline}}{{ReadOnlyInline}}</dt> + <dd>Returns a reference to the window object of the sidebar.</dd> + <dt>{{domxref("Window.speechSynthesis")}} {{ReadOnlyInline}}</dt> + <dd>Returns a {{domxref("SpeechSynthesis")}} object, which is the entry point into using <a href="/en-US/docs/Web/API/Web_Speech_API">Web Speech API</a> speech synthesis functionality.</dd> + <dt>{{domxref("Window.status")}}</dt> + <dd>Gets/sets the text in the statusbar at the bottom of the browser.</dd> + <dt>{{domxref("Window.statusbar")}} {{readOnlyInline}}</dt> + <dd>Returns the statusbar object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.toolbar")}} {{readOnlyInline}}</dt> + <dd>Returns the toolbar object, whose visibility can be toggled in the window.</dd> + <dt>{{domxref("Window.top")}} {{readOnlyInline}}</dt> + <dd>Returns a reference to the topmost window in the window hierarchy. This property is read only.</dd> + <dt>{{domxref("Window.visualViewport")}} {{readOnlyInline}}</dt> + <dd>Returns a {{domxref("VisualViewport")}} object which represents the visual viewport for a given window.</dd> + <dt>{{domxref("Window.window")}} {{ReadOnlyInline}}</dt> + <dd>Returns a reference to the current window.</dd> + <dt><code>window[0]</code>,<code> window[1]</code>, etc.</dt> + <dd>Returns a reference to the <code>window</code> object in the frames. See {{domxref("Window.frames")}} for more details.</dd> +</dl> + +<h3 id="Properties_implemented_from_elsewhere">Properties implemented from elsewhere</h3> + +<dl> + <dt>{{domxref("WindowOrWorkerGlobalScope.caches")}} {{readOnlyinline}}</dt> + <dd>Returns the {{domxref("CacheStorage")}} object associated with the current context. This object enables functionality such as storing assets for offline use, and generating custom responses to requests.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.indexedDB")}} {{readonlyInline}}</dt> + <dd>Provides a mechanism for applications to asynchronously access capabilities of indexed databases; returns an {{domxref("IDBFactory")}} object.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.isSecureContext")}} {{readOnlyinline}}</dt> + <dd>Returns a boolean indicating whether the current context is secure (<code>true</code>) or not (<code>false</code>).</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.origin")}} {{readOnlyinline}}</dt> + <dd>Returns the global object's origin, serialized as a string. (This does not yet appear to be implemented in any browser.)</dd> +</dl> + +<h2 id="Methods">Methods</h2> + +<p><em>This interface inherits methods from the {{domxref("EventTarget")}} interface and implements methods from {{domxref("WindowOrWorkerGlobalScope")}} and {{domxref("EventTarget")}}.</em></p> + +<dl> + <dt>{{domxref("Window.alert()")}}</dt> + <dd>Displays an alert dialog.</dd> + + <dt>{{domxref("Window.back()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>Moves back one in the window history.</dd> + <dt>{{domxref("Window.blur()")}}</dt> + <dd>Sets focus away from the window.</dd> + <dt>{{domxref("Window.cancelAnimationFrame()")}} {{experimental_inline}}</dt> + <dd>Enables you to cancel a callback previously scheduled with {{domxref("Window.requestAnimationFrame")}}.</dd> + <dt>{{domxref("Window.cancelIdleCallback()")}} {{experimental_inline}}</dt> + <dd>Enables you to cancel a callback previously scheduled with {{domxref("Window.requestIdleCallback")}}.</dd> + <dt>{{domxref("Window.captureEvents()")}} {{Deprecated_inline}}</dt> + <dd>Registers the window to capture all events of the specified type.</dd> + <dt>{{domxref("Window.clearImmediate()")}}</dt> + <dd>Cancels the repeated execution set using <code>setImmediate</code>.</dd> + <dt>{{domxref("Window.close()")}}</dt> + <dd>Closes the current window.</dd> + <dt>{{domxref("Window.confirm()")}}</dt> + <dd>Displays a dialog with a message that the user needs to respond to.</dd> + <dt>{{domxref("Window.disableExternalCapture()")}} {{obsolete_inline(24)}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.dispatchEvent()")}}</dt> + <dd>Used to trigger an event.</dd> + <dt>{{domxref("Window.dump()")}} {{Non-standard_inline}}</dt> + <dd>Writes a message to the console.</dd> + <dt>{{domxref("Window.enableExternalCapture()")}} {{obsolete_inline(24)}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.find()")}}</dt> + <dd>Searches for a given string in a window.</dd> + <dt>{{domxref("Window.focus()")}}</dt> + <dd>Sets focus on the current window.</dd> + <dt>{{domxref("Window.forward()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>Moves the window one document forward in the history.</dd> + <dt>{{domxref("Window.getAttention()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>Flashes the application icon.</dd> + <dt>{{domxref("Window.getAttentionWithCycleCount()")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.getComputedStyle()")}}</dt> + <dd>Gets computed style for the specified element. Computed style indicates the computed values of all CSS properties of the element.</dd> + <dt>{{domxref("Window.getDefaultComputedStyle()")}} {{Non-standard_inline}}</dt> + <dd>Gets default computed style for the specified element, ignoring author stylesheets.</dd> + <dt>{{domxref("Window.getSelection()")}}</dt> + <dd>Returns the selection object representing the selected item(s).</dd> + <dt>{{domxref("Window.home()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>Returns the browser to the home page.</dd> + <dt>{{domxref("Window.matchMedia()")}} {{gecko_minversion_inline("6.0")}}</dt> + <dd>Returns a {{domxref("MediaQueryList")}} object representing the specified media query string.</dd> + <dt>{{domxref("Window.maximize()")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.minimize()")}} (top-level XUL windows only)</dt> + <dd>Minimizes the window.</dd> + <dt>{{domxref("Window.moveBy()")}}</dt> + <dd>Moves the current window by a specified amount.</dd> + <dt>{{domxref("Window.moveTo()")}}</dt> + <dd>Moves the window to the specified coordinates.</dd> + <dt>{{domxref("Window.open()")}}</dt> + <dd>Opens a new window.</dd> + <dt>{{domxref("Window.openDialog()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>Opens a new dialog window.</dd> + <dt>{{domxref("Window.postMessage()")}} {{Fx_minversion_inline(3)}}</dt> + <dd>Provides a secure means for one window to send a string of data to another window, which need not be within the same domain as the first.</dd> + <dt>{{domxref("Window.print()")}}</dt> + <dd>Opens the Print Dialog to print the current document.</dd> + <dt>{{domxref("Window.prompt()")}}</dt> + <dd>Returns the text entered by the user in a prompt dialog.</dd> + <dt>{{domxref("Window.releaseEvents()")}} {{Non-standard_inline}} {{Deprecated_inline}}</dt> + <dd>Releases the window from trapping events of a specific type.</dd> + <dt>{{domxref("Window.requestAnimationFrame()")}} {{gecko_minversion_inline("2.0")}}</dt> + <dd>Tells the browser that an animation is in progress, requesting that the browser schedule a repaint of the window for the next animation frame.</dd> + <dt>{{domxref("Window.requestIdleCallback()")}} {{experimental_inline}}</dt> + <dd>Enables the scheduling of tasks during a browser's idle periods.</dd> + <dt>{{domxref("Window.resizeBy()")}}</dt> + <dd>Resizes the current window by a certain amount.</dd> + <dt>{{domxref("Window.resizeTo()")}}</dt> + <dd>Dynamically resizes window.</dd> + <dt>{{domxref("Window.restore()")}} {{Non-standard_inline}} {{obsolete_inline}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.routeEvent()")}} {{obsolete_inline(24)}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.scroll()")}}</dt> + <dd>Scrolls the window to a particular place in the document.</dd> + <dt>{{domxref("Window.scrollBy()")}}</dt> + <dd>Scrolls the document in the window by the given amount.</dd> + <dt>{{domxref("Window.scrollByLines()")}} {{Non-standard_inline}}</dt> + <dd>Scrolls the document by the given number of lines.</dd> + <dt>{{domxref("Window.scrollByPages()")}} {{Non-standard_inline}}</dt> + <dd>Scrolls the current document by the specified number of pages.</dd> + <dt>{{domxref("Window.scrollTo()")}}</dt> + <dd>Scrolls to a particular set of coordinates in the document.</dd> + <dt>{{domxref("Window.setCursor()")}} {{Non-standard_inline}} (top-level XUL windows only)</dt> + <dd>Changes the cursor for the current window</dd> + <dt>{{domxref("Window.setImmediate()")}}</dt> + <dd>Executes a function after the browser has finished other heavy tasks</dd> + <dt>{{domxref("Window.setResizable()")}} {{Non-standard_inline}}</dt> + <dd>Toggles a user's ability to resize a window.</dd> + <dt>{{domxref("Window.sizeToContent()")}} {{Non-standard_inline}}</dt> + <dd>Sizes the window according to its content.</dd> + <dt>{{domxref("Window.stop()")}}</dt> + <dd>This method stops window loading.</dd> + <dt>{{domxref("Window.updateCommands()")}} {{Non-standard_inline}}</dt> + <dd>Updates the state of commands of the current chrome window (UI).</dd> +</dl> + +<h3 id="Methods_implemented_from_elsewhere">Methods implemented from elsewhere</h3> + +<dl> + <dt>{{domxref("EventTarget.addEventListener()")}}</dt> + <dd>Register an event handler to a specific event type on the window.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.atob()")}}</dt> + <dd>Decodes a string of data which has been encoded using base-64 encoding.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.btoa()")}}</dt> + <dd>Creates a base-64 encoded ASCII string from a string of binary data.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.clearInterval()")}}</dt> + <dd>Cancels the repeated execution set using {{domxref("WindowOrWorkerGlobalScope.setInterval()")}}.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.clearTimeout()")}}</dt> + <dd>Cancels the delayed execution set using {{domxref("WindowOrWorkerGlobalScope.setTimeout()")}}.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.createImageBitmap()")}}</dt> + <dd>Accepts a variety of different image sources, and returns a {{domxref("Promise")}} which resolves to an {{domxref("ImageBitmap")}}. Optionally the source is cropped to the rectangle of pixels originating at <em>(sx, sy)</em> with width sw, and height sh.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.fetch()")}}</dt> + <dd>Starts the process of fetching a resource from the network.</dd> + <dt>{{domxref("EventTarget.removeEventListener")}}</dt> + <dd>Removes an event listener from the window.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.setInterval()")}}</dt> + <dd>Schedules a function to execute every time a given number of milliseconds elapses.</dd> + <dt>{{domxref("WindowOrWorkerGlobalScope.setTimeout()")}}</dt> + <dd>Schedules a function to execute in a given amount of time.</dd> +</dl> + +<h3 id="Obsolete_methods">Obsolete methods</h3> + +<dl> + <dt>{{domxref("Window.showModalDialog()")}} {{obsolete_inline}}</dt> + <dd>Displays a modal dialog. <strong>This method was removed completely in Chrome 43, and Firefox 55.</strong></dd> +</dl> + +<h2 id="Event_handlers">Event handlers</h2> + +<p>These are properties of the window object that can be set to establish event handlers for the various things that can happen in the window that might be of interest.</p> + +<p><em>This interface inherits event handlers from the {{domxref("EventTarget")}} interface and implements event handlers from {{domxref("WindowEventHandlers")}}.</em></p> + +<div class="note"> +<p><strong>Note:</strong> Starting in {{Gecko("9.0")}}, you can now use the syntax <code>if ("onabort" in window)</code> to determine whether or not a given event handler property exists. This is because event handler interfaces have been updated to be proper web IDL interfaces. See <a href="/en-US/docs/DOM/DOM_event_handlers">DOM event handlers</a> for details.</p> +</div> + +<dl> + <dt>{{domxref("GlobalEventHandlers.onabort")}}</dt> + <dd>Called when the loading of a resource has been aborted, such as by a user canceling the load while it is still in progress</dd> + <dt>{{domxref("WindowEventHandlers.onafterprint")}}</dt> + <dd>Called when the print dialog box is closed. See {{event("afterprint")}} event.</dd> + <dt>{{domxref("WindowEventHandlers.onbeforeprint")}}</dt> + <dd>Called when the print dialog box is opened. See {{event("beforeprint")}} event.</dd> + <dt>{{domxref("Window.onbeforeinstallprompt")}}</dt> + <dd>An event handler property dispatched before a user is prompted to save a web site to a home screen on mobile.</dd> + <dt>{{domxref("WindowEventHandlers.onbeforeunload")}}</dt> + <dd>An event handler property for before-unload events on the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onblur")}}</dt> + <dd>Called after the window loses focus, such as due to a popup.</dd> + <dt>{{domxref("GlobalEventHandlers.onchange")}}</dt> + <dd>An event handler property for change events on the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onclick")}}</dt> + <dd>Called after the ANY mouse button is pressed & released</dd> + <dt>{{domxref("GlobalEventHandlers.ondblclick")}}</dt> + <dd>Called when a double click is made with ANY mouse button.</dd> + <dt>{{domxref("GlobalEventHandlers.onclose")}}</dt> + <dd>Called after the window is closed</dd> + <dt>{{domxref("GlobalEventHandlers.oncontextmenu")}}</dt> + <dd>Called when the RIGHT mouse button is pressed</dd> + <dt>{{domxref("Window.ondevicelight")}}</dt> + <dd>An event handler property for any ambient light levels changes</dd> + <dt>{{domxref("Window.ondevicemotion")}} {{gecko_minversion_inline("6.0")}}</dt> + <dd>Called if accelerometer detects a change (For mobile devices)</dd> + <dt>{{domxref("Window.ondeviceorientation")}} {{gecko_minversion_inline("6.0")}}</dt> + <dd>Called when the orientation is changed (For mobile devices)</dd> + <dt>{{domxref("Window.ondeviceorientationabsolute")}} {{non-standard_inline}} Chrome only</dt> + <dd>An event handler property for any device orientation changes.</dd> + <dt>{{domxref("Window.ondeviceproximity")}}</dt> + <dd>An event handler property for device proximity event</dd> + <dt>{{domxref("GlobalEventHandlers.onerror")}}</dt> + <dd>Called when a resource fails to load OR when an error occurs at runtime. See {{event("error")}} event.</dd> + <dt>{{domxref("GlobalEventHandlers.onfocus")}}</dt> + <dd>Called after the window receives or regains focus. See {{event("focus")}} events.</dd> + <dt>{{domxref("WindowEventHandlers.onhashchange")}} {{gecko_minversion_inline("1.9.2")}}</dt> + <dd>An event handler property for {{event('hashchange')}} events on the window; called when the part of the URL after the hash mark ("#") changes.</dd> + <dt>{{domxref("Window.onappinstalled")}}</dt> + <dd>Called when the page is installed as a webapp. See {{event('appinstalled')}} event.</dd> + <dt>{{domxref("Window.ongamepadconnected")}}</dt> + <dd>Represents an event handler that will run when a gamepad is connected (when the {{event('gamepadconnected')}} event fires).</dd> + <dt>{{domxref("Window.ongamepaddisconnected")}}</dt> + <dd>Represents an event handler that will run when a gamepad is disconnected (when the {{event('gamepaddisconnected')}} event fires).</dd> + <dt>{{domxref("Window.oninput")}}</dt> + <dd>Called when the value of an <input> element changes</dd> + <dt>{{domxref("GlobalEventHandlers.onkeydown")}}</dt> + <dd>Called when you begin pressing ANY key. See {{event("keydown")}} event.</dd> + <dt>{{domxref("GlobalEventHandlers.onkeypress")}}</dt> + <dd>Called when a key (except Shift, Fn, and CapsLock) is in pressed position. See {{event("keypress")}} event.</dd> + <dt>{{domxref("GlobalEventHandlers.onkeyup")}}</dt> + <dd>Called when you finish releasing ANY key. See {{event("keyup")}} event.</dd> + <dt>{{domxref("WindowEventHandlers.onlanguagechange")}}</dt> + <dd>An event handler property for {{event("languagechange")}} events on the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onload")}}</dt> + <dd>Called after all resources and the DOM are fully loaded. WILL NOT get called when the page is loaded from cache, such as with back button.</dd> + <dt>{{domxref("WindowEventHandlers.onmessage")}}</dt> + <dd>Is an {{domxref("EventHandler")}} representing the code to be called when the {{event("message")}} event is raised.</dd> + <dt>{{domxref("GlobalEventHandlers.onmousedown")}}</dt> + <dd>Called when ANY mouse button is pressed.</dd> + <dt>{{domxref("GlobalEventHandlers.onmousemove")}}</dt> + <dd>Called continously when the mouse is moved inside the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onmouseout")}}</dt> + <dd>Called when the pointer leaves the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onmouseover")}}</dt> + <dd>Called when the pointer enters the window</dd> + <dt>{{domxref("GlobalEventHandlers.onmouseup")}}</dt> + <dd>Called when ANY mouse button is released</dd> + <dt>{{domxref("Window.onmozbeforepaint")}} {{gecko_minversion_inline("2.0")}}</dt> + <dd>An event handler property for the <code>MozBeforePaint</code> event, which is sent before repainting the window if the event has been requested by a call to the {{domxref("Window.mozRequestAnimationFrame()")}} method.</dd> + <dt>{{domxref("WindowEventHandlers.onoffline")}}</dt> + <dd>Called when network connection is lost. See {{event("offline")}} event.</dd> + <dt>{{domxref("WindowEventHandlers.ononline")}}</dt> + <dd>Called when network connection is established. See {{event("online")}} event.</dd> + <dt>{{domxref("WindowEventHandlers.onpagehide")}}</dt> + <dd>Called when the user navigates away from the page, before the onunload event. See {{event("pagehide")}} event.</dd> + <dt>{{domxref("WindowEventHandlers.onpageshow")}}</dt> + <dd>Called after all resources and the DOM are fully loaded. See {{event("pageshow")}} event.</dd> + <dt>{{domxref("Window.onpaint")}}</dt> + <dd>An event handler property for paint events on the window.</dd> + <dt>{{domxref("WindowEventHandlers.onpopstate")}} {{gecko_minversion_inline("2.0")}}</dt> + <dd>Called when a back putton is pressed.</dd> + <dt>{{domxref("Window.onrejectionhandled")}} {{experimental_inline}}</dt> + <dd>An event handler for handled {{jsxref("Promise")}} rejection events.</dd> + <dt>{{domxref("GlobalEventHandlers.onreset")}}</dt> + <dd>Called when a form is reset</dd> + <dt>{{domxref("GlobalEventHandlers.onresize")}}</dt> + <dd>Called continuously as you are resizing the window.</dd> + <dt>{{domxref("GlobalEventHandlers.onscroll")}}</dt> + <dd>Called when the scroll bar is moved via ANY means. If the resource fully fits in the window, then this event cannot be invoked</dd> + <dt>{{domxref("GlobalEventHandlers.onwheel")}}</dt> + <dd>Called when the mouse wheel is rotated around any axis</dd> + <dt>{{domxref("GlobalEventHandlers.onselect")}}</dt> + <dd>Called after text in an input field is selected</dd> + <dt>{{domxref("GlobalEventHandlers.onselectionchange")}}</dt> + <dd>Is an {{domxref("EventHandler")}} representing the code to be called when the {{event("selectionchange")}} event is raised.</dd> + <dt>{{domxref("WindowEventHandlers.onstorage")}}</dt> + <dd>Called when there is a change in session storage or local storage. See {{event("storage")}} event</dd> + <dt>{{domxref("GlobalEventHandlers.onsubmit")}}</dt> + <dd>Called when a form is submitted</dd> + <dt>{{domxref("WindowEventHandlers.onunhandledrejection")}} {{experimental_inline}}</dt> + <dd>An event handler for unhandled {{jsxref("Promise")}} rejection events.</dd> + <dt>{{domxref("WindowEventHandlers.onunload")}}</dt> + <dd>Called when the user navigates away from the page.</dd> + <dt>{{domxref("Window.onuserproximity")}}</dt> + <dd>An event handler property for user proximity events.</dd> + <dt>{{domxref("Window.onvrdisplayconnect")}}</dt> + <dd>Represents an event handler that will run when a compatible VR device has been connected to the computer (when the {{event("vrdisplayconnected")}} event fires).</dd> + <dt>{{domxref("Window.onvrdisplaydisconnect")}}</dt> + <dd>Represents an event handler that will run when a compatible VR device has been disconnected from the computer (when the {{event("vrdisplaydisconnected")}} event fires).</dd> + <dt>{{domxref("Window.onvrdisplayactivate")}}</dt> + <dd>Represents an event handler that will run when a display is able to be presented to (when the {{event("vrdisplayactivate")}} event fires), for example if an HMD has been moved to bring it out of standby, or woken up by being put on.</dd> + <dt>{{domxref("Window.onvrdisplaydeactivate")}}</dt> + <dd>Represents an event handler that will run when a display can no longer be presented to (when the {{event("vrdisplaydeactivate")}} event fires), for example if an HMD has gone into standby or sleep mode due to a period of inactivity.</dd> + <dt>{{domxref("Window.onvrdisplayblur")}}</dt> + <dd>Represents an event handler that will run when presentation to a display has been paused for some reason by the browser, OS, or VR hardware (when the {{event("vrdisplayblur")}} event fires) — for example, while the user is interacting with a system menu or browser, to prevent tracking or loss of experience.</dd> + <dt>{{domxref("Window.onvrdisplayfocus")}}</dt> + <dd>Represents an event handler that will run when presentation to a display has resumed after being blurred (when the {{event("vrdisplayfocus")}} event fires).</dd> + <dt>{{domxref("Window.onvrdisplaypresentchange")}}</dt> + <dd>represents an event handler that will run when the presenting state of a VR device changes — i.e. goes from presenting to not presenting, or vice versa (when the {{event("vrdisplaypresentchange")}} event fires).</dd> +</dl> + +<h2 id="Constructors">Constructors</h2> + +<p>See also the <a href="/en-US/docs/DOM/DOM_Reference" title="/en-US/docs/DOM/DOM_Reference">DOM Interfaces</a>.</p> + +<dl> + <dt>{{domxref("DOMParser")}}</dt> + <dd><code>DOMParser</code> can parse XML or HTML source stored in a string into a DOM <a href="https://developer.mozilla.org/en-US/docs/DOM/document" title="document">Document</a>. <code>DOMParser</code> is specified in <a href="https://w3c.github.io/DOM-Parsing/" title="http://html5.org/specs/dom-parsing.html">DOM Parsing and Serialization</a>.</dd> + <dt>{{domxref("Window.GeckoActiveXObject")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Image")}}</dt> + <dd>Used for creating an {{domxref("HTMLImageElement")}}.</dd> + <dt>{{domxref("Option")}}</dt> + <dd>Used for creating an {{domxref("HTMLOptionElement")}}</dd> + <dt>{{domxref("Window.QueryInterface")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.XMLSerializer")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Worker")}}</dt> + <dd>Used for creating a <a href="/en-US/docs/DOM/Using_web_workers">Web worker</a></dd> + <dt>{{domxref("Window.XPCNativeWrapper")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> + <dt>{{domxref("Window.XPCSafeJSObjectWrapper")}}</dt> + <dd>{{todo("NeedsContents")}}</dd> +</dl> + +<h2 id="Interfaces">Interfaces</h2> + +<p>See <a href="/en-US/docs/DOM/DOM_Reference" title="/en-US/docs/DOM/DOM_Reference">DOM Reference</a></p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Working_with_windows_in_chrome_code">Working with windows in chrome code</a></li> +</ul> diff --git a/files/ca/web/api/window/sidebar/index.html b/files/ca/web/api/window/sidebar/index.html new file mode 100644 index 0000000000..280b5dcce3 --- /dev/null +++ b/files/ca/web/api/window/sidebar/index.html @@ -0,0 +1,56 @@ +--- +title: Window.sidebar +slug: Web/API/Window/sidebar +tags: + - DOM + - NeedsTranslation + - Non-standard + - Property + - Reference + - TopicStub + - Window +translation_of: Web/API/Window/sidebar +--- +<div>{{APIRef}} {{Non-standard_header}}</div> + +<p>Returns a sidebar object, which contains several methods for registering add-ons with the browser.</p> + +<h2 id="Notes" name="Notes">Notes</h2> + +<p>The sidebar object returned has the following methods:</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Method</th> + <th>Description (SeaMonkey)</th> + <th>Description (Firefox)</th> + </tr> + <tr> + <td><code>addPanel(<var>title</var>, <var>contentURL</var>, "")</code></td> + <td>Adds a sidebar panel.</td> + <td rowspan="2">Obsolete since Firefox 23 (only present in SeaMonkey).<br> + End users can use the "load this bookmark in the sidebar" option instead. Also see <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Creating_a_Firefox_sidebar">Creating a Firefox sidebar.</a></td> + </tr> + <tr> + <td><code>addPersistentPanel(<var>title</var>, <var>contentURL</var>, "")</code></td> + <td>Adds a sidebar panel, which is able to work in the background.</td> + </tr> + <tr> + <td><code>AddSearchProvider(<em>descriptionURL)</em></code></td> + <td colspan="2">Installs a search provider (OpenSearch). <a href="/en-US/docs/Web/API/Window/sidebar/Adding_search_engines_from_Web_pages#Installing_OpenSearch_plugins" title="Adding_search_engines_from_web_pages">Adding OpenSearch search engines </a>contains more details. Added in Firefox 2.</td> + </tr> + <tr> + <td><code>addSearchEngine(<var>engineURL</var>, <var>iconURL</var>, <var>suggestedTitle</var>, <var>suggestedCategory</var>)</code> {{Obsolete_inline(44)}}</td> + <td colspan="2">Installs a search engine (Sherlock). <a href="/en-US/docs/Web/API/Window/sidebar/Adding_search_engines_from_Web_pages#Installing_Sherlock_plugins" title="Adding_search_engines_from_web_pages">Adding Sherlock search engines </a>contains more details.</td> + </tr> + <tr> + <td><code>IsSearchProviderInstalled(<em>descriptionURL)</em></code></td> + <td colspan="2">Indicates if a specific search provider (OpenSearch) is installed.</td> + </tr> + </tbody> +</table> + +<h2 id="Specification" name="Specification">Specification</h2> + +<p>Mozilla-specific. Not part of any standard.</p> diff --git a/files/ca/web/css/_colon_active/index.html b/files/ca/web/css/_colon_active/index.html new file mode 100644 index 0000000000..ee066e1a03 --- /dev/null +++ b/files/ca/web/css/_colon_active/index.html @@ -0,0 +1,166 @@ +--- +title: ':active' +slug: 'Web/CSS/:active' +tags: + - CSS + - CSS Pseudo-class + - Layout + - Reference + - Web +translation_of: 'Web/CSS/:active' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> CSS <code>:active</code> representa un element (com un botó) que està sent activat per l'usuari. Quan s'usa un ratolí, l'"activació" normalment comença quan l'usuari pressiona el botó primari del ratolí i acaba quan es deixa anar. La pseudo-classe <code>:active</code> s'usa comunament en elements {{HTMLElement("a")}} i {{HTMLElement("button")}}, però també pot usar-se en altres elements.</p> + +<pre class="brush: css no-line-numbers">/* Selects any <a> that is being activated */ +a:active { + color: red; +}</pre> + +<p>Els estils definits per la pseudo-class <code>:active</code> seran anul·lats per qualsevol pseudo-class subsegüent relacionada amb l'enllaç ({{cssxref(":link")}}, {{cssxref(":hover")}} o {{cssxref(":visited")}}) que tingui almenys la mateixa especificitat. Per donar un estil apropiat als enllaços, poseu la regla <code>:active</code> després de totes les altres regles relacionades amb els enllaços, tal com ho defineix l'ordre <em>LVHA-order</em>: <code>:link</code> — <code>:visited</code> — <code>:hover</code> — <code>:active</code>.</p> + +<div class="note"><strong>Nota:</strong> En sistemes amb ratolins de múltiples botons, CSS 3 especifica que la pseudo-class <code>:active</code> només s'ha d'aplicar al botó primari; en ratolins destres, normalment és el botó més a l'esquerra.</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<div id="example"> +<h3 id="HTML">HTML</h3> + +<pre class="brush: html;"><a href="#">This link will turn lime while you click on it.</a> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css;">a:link { color: blue; } /* Unvisited links */ +a:visited { color: purple; } /* Visited links */ +a:hover { <span class="st">background: yellow</span>; } /* User hovers */ +a:active { color: lime; } /* Active links */</pre> +</div> + +<h3 id="Resultat">Resultat</h3> + +<div>{{EmbedLiveSample('Example')}}</div> + +<h2 id="Especificacions"><span>Especificacions</span></h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#selector-active', ':active')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#active-pseudo', ':active')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#useraction-pseudos', ':active')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':active')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#anchor-pseudo-classes', ':active')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>4.0</td> + <td>5.0</td> + <td>1.0</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport en elements no</span></span> <code><a></code></td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>8.0</td> + <td>7.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport en elements no</span></span> <code><a></code></td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}} [1]</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Per defecte, Safari Mobile no utilitza l'estat {{cssxref(":active")}} a menys que hi hagi un controlador d'esdeveniments <a href="/en-US/docs/Web/Reference/Events/touchstart"><code>touchstart</code></a> en l'element rellevant o en el {{HTMLElement("body")}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Enllaços relacionats amb pseudo-classes: {{cssxref(":link")}}, {{cssxref(":visited")}} i {{cssxref(":hover")}}.</li> +</ul> diff --git a/files/ca/web/css/_colon_any-link/index.html b/files/ca/web/css/_colon_any-link/index.html new file mode 100644 index 0000000000..30d729e862 --- /dev/null +++ b/files/ca/web/css/_colon_any-link/index.html @@ -0,0 +1,78 @@ +--- +title: ':any-link' +slug: 'Web/CSS/:any-link' +tags: + - CSS + - Experimental + - Layout + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:any-link' +--- +<div>{{CSSRef}}{{SeeCompatTable}}</div> + +<p>La <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classe CSS</a> <strong><code>:any-link</code></strong> representa un element que actua com a àncora font d'un hiperenllaç, independentment de si s'ha visitat. En altres paraules, coincideix amb cada element {{HTMLElement("a")}}, {{HTMLElement("area")}} o {{HTMLElement("link")}} que té un atribut <code>href</code>. D'aquesta manera, es correspont amb tots els elements que coincideixen amb {{cssxref(":link")}} o {{cssxref(":visited")}}.</p> + +<pre class="brush: css no-line-numbers language-css"><code class="language-css"><span class="selector token"><span class="pseudo-class token">/* </span></span></code> Selecciona qualsevol element que coincideixi amb <code class="language-css"><span class="selector token"><span class="pseudo-class token">:link o :visited */ +:-any-link</span> </span><span class="punctuation token">{</span> + <span class="property token">color</span><span class="punctuation token">:</span> green<span class="punctuation token">;</span> +<span class="punctuation token">}</span></code></pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><a href="https://example.com">External link</a><br> +<a href="#">Internal target link</a><br> +<a>Placeholder link (won't get styled)</a></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">a:any-link { + border: 1px solid blue; + color: orange; +} + +/* WebKit browsers */ +a:-webkit-any-link { + border: 1px solid blue; + color: orange; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS4 Selectors", "#the-any-link-pseudo", ":any-link")}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si voleu contribuir a les dades, consulteu <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i envieu-nos una sol·licitud d'extracció.</p> + +<p>{{Compat("css.selectors.any-link")}}</p> diff --git a/files/ca/web/css/_colon_any/index.html b/files/ca/web/css/_colon_any/index.html new file mode 100644 index 0000000000..fa4bcea79c --- /dev/null +++ b/files/ca/web/css/_colon_any/index.html @@ -0,0 +1,197 @@ +--- +title: ':any' +slug: 'Web/CSS/:any' +tags: + - CSS + - Experimental + - Pseudo-class + - Reference +translation_of: 'Web/CSS/:is' +--- +<div>{{CSSRef}}{{SeeCompatTable}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes" title="CSS/Pseudo-classes">pseudo-classe</a> <strong><code>:any()</code></strong> permet crear un selector que contingui múltiples opcions, algun dels quals seran aparellats. Aquesta és una alternativa més senzilla que repetir un selector sencer diverses vegades perquè un element dins d'ell varia.</p> + +<pre class="brush: css no-line-numbers">/* Select any h2 inside a section, article, aside, or nav */ +/* Currently supported with -moz- and -webkit- prefixes */ +:-moz-any(section, article, aside, nav) h2 { + font-size: 4.5rem; +} + +:-webkit-any(section, article, aside, nav) h2 { + font-size: 4.5rem; +} +</pre> + +<div class="note"><strong>Nota : </strong>Aquesta pseudo-classe està en curs de ser estandarditzada en <em><a href="http://dev.w3.org/csswg/selectors4/#matches">CSS Selectors Level 4</a></em> sota el nom <code>:matches()</code>. És probable que la sintaxi i el nom de <em><code>:-vendor-any()</code></em> seran canviats perquè es reflecteixi en un futur proper.</div> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Examples" name="Examples">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt><code>selector</code></dt> + <dd>Un selector. Això pot ser un selector simple o un selector múltiple compost de <a href="http://www.w3.org/TR/css3-selectors/#simple-selectors">selectors simples CSS 3</a> i pot incloure el combinador descendent.</dd> +</dl> + +<div class="note"><strong>Nota:</strong> Els selectors <strong>no</strong> poden contenir pseudo-elements i l'únic combinador permès és el combinador descendent.</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Per</span> <span>exemple</span><span>, el següent</span> <span>CSS</span></span>:</p> + +<pre class="brush: css">/* 3 deep (or more) unordered lists use a square */ +ol ol ul, ol ul ul, ol menu ul, ol dir ul, +ol ol menu, ol ul menu, ol menu menu, ol dir menu, +ol ol dir, ol ul dir, ol menu dir, ol dir dir, +ul ol ul, ul ul ul, ul menu ul, ul dir ul, +ul ol menu, ul ul menu, ul menu menu, ul dir menu, +ul ol dir, ul ul dir, ul menu dir, ul dir dir, +menu ol ul, menu ul ul, menu menu ul, menu dir ul, +menu ol menu, menu ul menu, menu menu menu, menu dir menu, +menu ol dir, menu ul dir, menu menu dir, menu dir dir, +dir ol ul, dir ul ul, dir menu ul, dir dir ul, +dir ol menu, dir ul menu, dir menu menu, dir dir menu, +dir ol dir, dir ul dir, dir menu dir, dir dir dir { + list-style-type: square; +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Pot</span> <span>substituir-se per</span></span>:</p> + +<pre class="brush: css">/* 3 deep (or more) unordered lists use a square */ +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) ul, +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) menu, +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) dir { + list-style-type: square; +}</pre> + +<p>No obstant això, no utilitzeu el següent: (Veure <a href="#Issues_with_performance_and_specificity">la secció sobre el rendiment </a>més endavant.)</p> + +<pre class="brush: css">:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) :-moz-any(ul, menu, dir) { + list-style-type: square; +}</pre> + +<h2 id="Notes" name="Notes">Notes</h2> + +<p>Aquesta propietat és particularment útil quan es tracta de<a href="https://developer.mozilla.org/en-US/docs/Sections_and_Outlines_of_an_HTML5_document"> seccions i encapçalaments</a> en HTML5. Des {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}} i {{HTMLElement("nav")}} es poden niar, sense <code>:any()</code> , l'estil d'aquests perquè coincideixin entre si pot ser difícil.</p> + +<p>Per exemple, sense <code>:any()</code>, donar estil a tot els elements {{HTMLElement("h1")}} a diferents profunditats podria ser molt complicat:</p> + +<pre class="brush: css">/* Level 0 */ +h1 { + font-size: 30px; +} +/* Level 1 */ +section h1, article h1, aside h1, nav h1 { + font-size: 25px; +} +/* Level 2 */ +section section h1, section article h1, section aside h1, section nav h1, +article section h1, article article h1, article aside h1, article nav h1, +aside section h1, aside article h1, aside aside h1, aside nav h1, +nav section h1, nav article h1, nav aside h1, nav nav h1, { + font-size: 20px; +} +/* Level 3 */ +/* ... don't even think about it*/ +</pre> + +<p>Usant <code>:-any()</code>, és molt més fàcil:</p> + +<pre class="brush: css">/* Level 0 */ +h1 { + font-size: 30px; +} +/* Level 1 */ +:-moz-any(section, article, aside, nav) h1 { + font-size: 25px; +} +/* Level 2 */ +:-moz-any(section, article, aside, nav) +:-moz-any(section, article, aside, nav) h1 { + font-size: 20px; +} +/* Level 3 */ +:-moz-any(section, article, aside, nav) +:-moz-any(section, article, aside, nav) +:-moz-any(section, article, aside, nav) h1 { + font-size: 15px; +}</pre> + +<h3 id="Issues_with_performance_and_specificity" name="Issues_with_performance_and_specificity"><span class="short_text" id="result_box" lang="ca"><span>Problemes</span> <span>amb</span> <span>el rendiment</span> <span>i</span> <span>l'especificitat</span></span></h3> + +<p><a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=561154" title="https://bugzilla.mozilla.org/show_bug.cgi?id=561154">Bug 561154</a> registra un problema amb Gecko en el qual l'especificitat de: <code>:-moz-any()</code> és incorrecta. La implementació actual (com Firefox 12) posa: <code>:-moz-any()</code> en la categoria de regles universals, la qual cosa significa que usar-ho com el selector dret serà més lent que usar un ID, una classe o una etiqueta com el selector dret.</p> + +<p>Per exemple:</p> + +<pre class="brush: css">.a > :-moz-any(.b, .c) +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>és</span> <span>més</span> <span>lent que</span><span>:</span></span></p> + +<pre class="brush: css">.a > .b, .a > .c +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>i</span> <span>el següent és</span> més <span>ràpid</span><span>:</span></span></p> + +<pre class="brush: css">:-moz-any(.a, .d) > .b, :-moz-any(.a, .d) > .c +</pre> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatGeckoDesktop("2")}}{{property_prefix("-moz")}}</td> + <td>12.0 (534.30){{property_prefix("-webkit")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>5<br> + {{property_prefix("-webkit")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}{{property_prefix("-webkit")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>5<br> + {{property_prefix("-webkit")}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/_colon_checked/index.html b/files/ca/web/css/_colon_checked/index.html new file mode 100644 index 0000000000..1f0915eefc --- /dev/null +++ b/files/ca/web/css/_colon_checked/index.html @@ -0,0 +1,252 @@ +--- +title: ':checked' +slug: 'Web/CSS/:checked' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:checked' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="https://developer.mozilla.org/en-US/docs/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>:checked</code></strong> representa qualsevol <strong>radio </strong>(<code><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio"><input type="radio"></a></code>), <strong>checkbox </strong>(<code><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox"><input type="checkbox"></a></code>) o <strong>option</strong> ({{HTMLElement("option")}} en un element {{HTMLElement("select")}}) que està marcat o commutat a un estat on (activat).</p> + +<pre class="brush: css no-line-numbers">/* Matches any checked/selected radio, checkbox, or option */ +:checked { + margin-left: 25px; + border: 1px solid blue; +} +</pre> + +<p>L'usuari pot activar aquest estat marcant/seleccionant un element o desactivar-ho desmarcant/deseleccionant l'element.</p> + +<div class="note"> +<p><strong>Nota:</strong> Com que els navegadors sovint tracten <code><option></code>s com a <a href="/en-US/docs/Web/CSS/Replaced_element">elements reemplaçats</a>, el grau en què poden ser dissenyats amb la pseudo-class <code>:checked</code> varia d'un navegador a un altre.</p> +</div> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Basic_example">Basic example</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div> + <input type="radio" name="my-input" id="yes"> + <label for="yes">Yes</label> + + <input type="radio" name="my-input" id="no"> + <label for="yes">No</label> +</div> + +<div> + <input type="checkbox" name="my-checkbox" id="opt-in"> + <label for="opt-in">Check me!</label> +</div> + +<select name="my-select" id="fruit"> + <option value="opt1">Apples</option> + <option value="opt2">Grapes</option> + <option value="opt3">Pears</option> +</select> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">div, +select { + margin: 8px; +} + +/* Labels for checked inputs */ +input:checked + label { + color: red; +} + +/* Radio element, when checked */ +input[type="radio"]:checked { + box-shadow: 0 0 0 3px orange; +} + +/* Checkbox element, when checked */ +input[type="checkbox"]:checked { + box-shadow: 0 0 0 3px hotpink; +} + +/* Option elements, when selected */ +option:checked { + box-shadow: 0 0 0 3px lime; + color: red; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample("Basic_example")}}</p> + +<h3 id="Alternar_elements_amb_una_casella_de_selecció_oculta">Alternar elements amb una casella de selecció oculta</h3> + +<p>En aquest exemple s'utilitza la pseudo-class <code>:checked</code> per permetre a l'usuari que alterni el contingut en funció de l'estat d'una casella de selecció (checkbox), tot sense utilitzar <a href="/en-US/docs/Web/JavaScript">JavaScript</a>.</p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><input type="checkbox" id="expand-toggle" /> + +<table> + <thead> + <tr><th>Column #1</th><th>Column #2</th><th>Column #3</th></tr> + </thead> + <tbody> + <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> + <tr><td>[cell text]</td><td>[cell text]</td><td>[cell text]</td></tr> + <tr><td>[cell text]</td><td>[cell text]</td><td>[cell text]</td></tr> + <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> + <tr class="expandable"><td>[more text]</td><td>[more text]</td><td>[more text]</td></tr> + </tbody> +</table> + +<label for="expand-toggle" id="expand-btn">Toggle hidden rows</label> +</pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">/* Oculta la casella de selecció (checkbox) */ +#expand-toggle { + display: none; +} + +/* Oculta el contingut expandible per defecte */ +.expandable { + visibility: collapse; + background: #ddd; +} + +/* Estil del botó */ +#expand-btn { + display: inline-block; + margin-top: 12px; + padding: 5px 11px; + background-color: #ff7; + border: 1px solid; + border-radius: 3px; +} + +/* <span id="result_box" lang="ca"><span>Mostra el contingut ocult quan es marca la casella de selecció</span></span> */ +#expand-toggle:checked ~ * .expandable { + visibility: visible; +} + +/* Estil del botó quan està marcada la casella de selecció */ +#expand-toggle:checked ~ #expand-btn { + background-color: #ccc; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample("Toggling_elements_with_a_hidden_checkbox", "auto", 220)}}</p> + +<h3 id="Using_hidden_radioboxes_in_order_to_store_some_CSS_boolean_values" name="Using_hidden_radioboxes_in_order_to_store_some_CSS_boolean_values"><span id="result_box" lang="ca"><span>Galeria d'imatges</span></span></h3> + +<p>Podeu utilitzar la pseudo-class <code>:checked</code> per construir una galeria d'imatges amb imatges de grandària completa que només es mostrin quan l'usuari faci clic a una miniatura. Vegeu <a class="internal" href="/@api/deki/files/6268/=css-checked-gallery.zip" title="css-checked-gallery.zip">aquesta demostració</a> com un possible exemple.</p> + +<div class="note"><strong>Nota:</strong> Per a un efecte anàleg, però basat en la pseudo-classe <a class="internal" href="/en-US/docs/CSS/:hover" title="CSS/:hover"><code>:hover</code></a> i sense caixes de ràdio (radioboxes) ocultes, vegeu <a class="internal" href="/@api/deki/files/6247/=css-gallery.zip" title="css-gallery.zip">aquesta demostració,</a> presa de la pàgina de referència <a class="internal" href="/en-US/docs/CSS/:hover" title="CSS/:hover">:hover</a>.</div> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', '#selector-checked', ':checked') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', '#selector-checked', ':checked') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Defineix</span> <span>la semàntica</span> <span>respecte</span> <span>HTML</span><span>.</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#checked', ':checked') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Basic UI', '#pseudo-checked', ':checked') }}</td> + <td>{{ Spec2('CSS3 Basic UI') }}</td> + <td>Enllaç a Selectors Level 3.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#checked', ':checked') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>classe,</span> <span>però no</span> <span>la semàntica</span> <span>associada</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop(1.0) }}</td> + <td>9.0</td> + <td>9.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile(1.0) }}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<p> </p> diff --git a/files/ca/web/css/_colon_default/index.html b/files/ca/web/css/_colon_default/index.html new file mode 100644 index 0000000000..1cec2992e7 --- /dev/null +++ b/files/ca/web/css/_colon_default/index.html @@ -0,0 +1,145 @@ +--- +title: ':default' +slug: 'Web/CSS/:default' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:default' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classe</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>:default</code></strong> representa qualsevol element de formulari que sigui el predeterminat entre un grup d'elements relacionats.</p> + +<p>Aquest selector es pot utilitzar en els elements {{htmlelement("button")}}, <code><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox"><input type="checkbox"></a></code>, <code><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio"><input type="radio"></a></code> i {{htmlelement("option")}}.</p> + +<pre class="brush: css no-line-numbers">/* Selects any default <input> */ +input:default { + background-color: lime; +}</pre> + +<p>Els elements agrupats que permeten seleccions múltiples també poden tenir múltiples valors predeterminats, és a dir, poden tenir diversos elements seleccionats inicialment. En aquest cas, <em>tots</em> els valors predeterminats es representen utilitzant la pseudo-classe <code>:default</code>. Per exemple, podeu aplicar un estil a les caselles de selecció predeterminades d'un grup de caselles de selecció.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="radio" name="season" id="spring"> +<label for="spring">Spring</label> + +<input type="radio" name="season" id="summer" checked> +<label for="spring">Summer</label> + +<input type="radio" name="season" id="fall"> +<label for="spring">Fall</label> + +<input type="radio" name="season" id="winter"> +<label for="spring">Winter</label> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input:default { + box-shadow: 0 0 2px 1px coral; +} + +input:default + label { + color: coral; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-default', ':default')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-default', ':default')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica HTML associada i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#default-pseudo', ':default')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Basic UI', '#pseudo-default', ':default')}}</td> + <td>{{Spec2('CSS3 Basic UI')}}</td> + <td><span id="result_box" lang="ca"><span>Definició inicial, però sense la semàntica associada</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>10.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/_colon_dir/index.html b/files/ca/web/css/_colon_dir/index.html new file mode 100644 index 0000000000..75ce09caef --- /dev/null +++ b/files/ca/web/css/_colon_dir/index.html @@ -0,0 +1,105 @@ +--- +title: ':dir()' +slug: 'Web/CSS/:dir' +tags: + - CSS + - CSS Pseudo-class + - Experimental + - Reference +translation_of: 'Web/CSS/:dir' +--- +<div>{{CSSRef}}{{SeeCompatTable}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:dir()</code></strong> coincideix amb elements basats en la direccionalidad del text contingut en ells</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol element amb text de dreta a esquerr</span></span>a */ +:dir(rtl) { + background-color: red; +}</pre> + +<p>La pseudo-class <code>:dir()</code> utilitza només el valor <em>semàntic</em> de la direccionalitat, és a dir, el definit en el mateix document. No té en compte la direccionalitat de l'<em>estil</em>, és a dir, la direccionalitat establerta per les propietats CSS com {{cssxref("direction")}}.</p> + +<div class="note"> +<p><strong>Nota:</strong> Tingueu en compte que el comportament de la pseudo-class <code>:dir()</code> no és equivalent als <a href="/en-US/docs/Web/CSS/Attribute_selectors">selectors d'atribut</a> <code>[dir=…]</code>. Aquest últim coincideix amb l'atribut HTML {{htmlattrxref("dir")}}, i ignora els elements que no ho tenen, fins i tot si hereten una direcció del seu pare. (De la mateixa manera, <code>[dir=rtl]</code> i <code>[dir=ltr]</code> no coincideixen amb el valor <code>auto</code>.) En canvi, <code>:dir()</code> coincideix amb el valor calculat pel {{glossary("user agent")}}, fins i tot si s'hereta.</p> +</div> + +<div class="note"> +<p><strong>Nota:</strong> En HTML, la direcció està determinada per l'atribut {{htmlattrxref("dir")}}. Altres tipus de document poden tenir mètodes diferents.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La pseudo-class <code>:dir()</code> requereix un paràmetre, que representa la direccionalitat de text que voleu orientar.</p> + +<h3 id="Parametres">Parametres</h3> + +<dl> + <dt><code>ltr</code></dt> + <dd>Direcciona els elements d'esquerra a dreta.</dd> + <dt><code>rtl</code></dt> + <dd>Direcciona els elements de dreta a esquerra.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush:html;"><div dir="rtl"> + <span>test1</span> + <div dir="ltr">test2 + <div dir="auto">עִבְרִית</div> + </div> +</div> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">:dir(ltr) { + background-color: yellow; +} + +:dir(rtl) { + background-color: powderblue; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Example') }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#selector-ltr', ':dir(ltr)')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense camvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#the-dir-pseudo', ':dir()')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{Compat("css.selectors.dir")}}</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>pseudo-classes relacionades amb el llenguatge: {{cssxref(":lang")}}, {{cssxref(":dir")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_disabled/index.html b/files/ca/web/css/_colon_disabled/index.html new file mode 100644 index 0000000000..ded833befe --- /dev/null +++ b/files/ca/web/css/_colon_disabled/index.html @@ -0,0 +1,182 @@ +--- +title: ':disabled' +slug: 'Web/CSS/:disabled' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:disabled' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:disabled</code></strong> representa qualsevol element deshabilitat. Un element queda deshabilitat si no es pot activar (seleccionar, fer clic, teclejar, etc.) o acceptar l'enfocament. L'element també té un estat habilitat, en el qual es pot activar o acceptar l'enfocament.</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol</span></span> <input> <span class="short_text" id="result_box" lang="ca"><span>deshabilitat</span></span> */ +input:disabled { + background: #ccc; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>Aquest exemple mostra un formulari d'enviament bàsic. Utilitza l'esdeveniment <a href="/en-US/docs/Web/JavaScript">JavaScript</a> {{event("change")}} per permetre que l'usuari habiliti/deshabiliti els camps de facturació.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><form action="#"> + <fieldset id="shipping"> + <legend>Shipping address</legend> + <input type="text" placeholder="Name"> + <input type="text" placeholder="Address"> + <input type="text" placeholder="Zip Code"> + </fieldset> + <br> + <fieldset id="billing"> + <legend>Billing address</legend> + <label for="billing_is_shipping">Same as shipping address:</label> + <input type="checkbox" id="billing-checkbox" checked> + <br> + <input type="text" placeholder="Name" disabled> + <input type="text" placeholder="Address" disabled> + <input type="text" placeholder="Zip Code" disabled> + </fieldset> +</form> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input[type="text"]:disabled { + background: #ccc; +} +</pre> + +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush: js">// Wait for the page to finish loading +document.addEventListener('DOMContentLoaded', function () { + // Attach `change` event listener to checkbox + document.getElementById('billing-checkbox').onchange = toggleBilling; +}, false); + +function toggleBilling() { + // Select the billing text fields + var billingItems = document.querySelectorAll('#billing input[type="text"]'); + + // Toggle the billing text fields + for (var i = 0; i < billingItems.length; i++) { + billingItems[i].disabled = !billingItems[i].disabled; + } +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 300, 250)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-disabled', ':disabled')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-disabled', ':disabled')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Defineix la semàntica d'HTML i els formularis.</td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#enableddisabled', ':disabled')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Basic UI', '#pseudo-classes', ':disabled')}}</td> + <td>{{Spec2('CSS3 Basic UI')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Enllaços a Selectors Nivell 3</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#enableddisabled', ':disabled')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>class,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>9.0</td> + <td>9.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Internet Explorer no reconeix <code>:disabled</code> en l'element {{HTMLElement("fieldset")}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li> + <p>{{Cssxref(":enabled")}}</p> + </li> +</ul> diff --git a/files/ca/web/css/_colon_empty/index.html b/files/ca/web/css/_colon_empty/index.html new file mode 100644 index 0000000000..0c9743ad81 --- /dev/null +++ b/files/ca/web/css/_colon_empty/index.html @@ -0,0 +1,135 @@ +--- +title: ':empty' +slug: 'Web/CSS/:empty' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:empty' +--- +<div>{{ CSSRef() }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:empty</code> </strong> representa qualsevol element que no tingui fills. Els fills poden ser nodes d'elements o text (inclosos els espais en blanc). Els comentaris o les instruccions de processament no afecten si un element es considera buit o no.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <div> que no contingui cap contingut</span></span> */ +div:empty { + background: lime; +}</pre> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div class="box"><!-- I will be lime. --></div> +<div class="box">I will be pink.</div> +<div class="box"> + <!-- I will be pink because of the whitespace around this comment. --> +</div></pre> + +<h3 id="CSS">CSS</h3> + +<div class="hidden"> +<pre class="brush: css">body { + display: flex; + justify-content: space-around; +}</pre> +</div> + +<pre class="brush: css">.box { + background: pink; + height: 80px; + width: 80px; +} + +.box:empty { + background: lime; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Examples', 300, 80)}}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#empty-pseudo', ':empty') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#empty-pseudo', ':empty') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1") }}</td> + <td>9.5</td> + <td>10.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/_colon_enabled/index.html b/files/ca/web/css/_colon_enabled/index.html new file mode 100644 index 0000000000..0b6d579968 --- /dev/null +++ b/files/ca/web/css/_colon_enabled/index.html @@ -0,0 +1,155 @@ +--- +title: ':enabled' +slug: 'Web/CSS/:enabled' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:enabled' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:enabled</code></strong> representa qualsevol element habilitat. Un element està habilitat si es pot activar (seleccionar, fer clic en, teclejar, etc.) o acceptar l'enfocament. L'element també té un estat de deshabilitat, en el qual no es pot activar o acceptar l'enfocament.</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol</span></span> <input> habilitat */ +input:enabled { + color: blue; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>El següent exemple fa que el color del text i botó {{htmlElement("input")}} sigui verd quan està habilitat, i gris quan està deshabilitat. Això ajuda a l'usuari a comprendre amb quins elements pot interactuar.</p> + +<div id="Enabled_Disabled_Inputs_Example"> +<h3 id="HTML">HTML</h3> + +<pre class="brush:html"><form action="url_of_form"> + <label for="FirstField">First field (enabled):</label> + <input type="text" id="FirstField" value="Lorem"><br> + + <label for="SecondField">Second field (disabled):</label> + <input type="text" id="SecondField" value="Ipsum" disabled="disabled"><br> + + <input type="button" value="Submit"> +</form></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush:css;">input:enabled { + color: #2b2; +} + +input:disabled { + color: #aaa; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 550, 95)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-enabled', ':enabled')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-enabled', ':enabled')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Defineix la semàntica per a HTML i formularis.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#enableddisabled', ':enabled')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap canvi</span></span> .</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Basic UI', '#pseudo-classes', ':enabled')}}</td> + <td>{{Spec2('CSS3 Basic UI')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Enllaços a selectors Nivell 3.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#enableddisabled', ':enabled')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Defineix la pseudo-class, però no la semàntica associada.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>9.0</td> + <td>9.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":disabled")}}</li> +</ul> +</div> diff --git a/files/ca/web/css/_colon_first-child/index.html b/files/ca/web/css/_colon_first-child/index.html new file mode 100644 index 0000000000..7a226ce95e --- /dev/null +++ b/files/ca/web/css/_colon_first-child/index.html @@ -0,0 +1,203 @@ +--- +title: ':first-child' +slug: 'Web/CSS/:first-child' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:first-child' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:first-child</code></strong> <span id="result_box" lang="ca"><span>representa el primer element entre un grup d'elements germans.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <p> que sigui el primer element entre els seus germans</span></span> */ +p:first-child { + color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels Selectores Nivell 4, això ja no és necessari.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div> + <p>This text is selected!</p> + <p>This text isn't selected.</p> +</div> + +<div> + <h2>This text isn't selected: it's not a `p`.</h2> + <p>This text isn't selected.</p> +</div> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">p:first-child { + color: lime; + background-color: black; + padding: 5px; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p><span>{{EmbedLiveSample('Basic_example', 500, 200)}}</span></p> + +<h3 id="Disseny_d'una_llista"><span class="short_text" id="result_box" lang="ca"><span>Disseny d'una llista</span></span></h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><ul> + <li>Item 1</li> + <li>Item 2</li> + <li>Item 3 + <ul> + <li>Item 3.1</li> + <li>Item 3.2</li> + <li>Item 3.3</li> + </ul> + </li> +</ul></pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">ul li { + color: blue; +} + +ul li:first-child { + color: red; + font-weight: bold; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p><span>{{EmbedLiveSample('Styling_a_list')}}</span></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#first-child-pseudo', ':first-child')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare</span></span>.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#first-child-pseudo', ':first-child')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#first-child', ':first-child')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>7<sup>[1]</sup></td> + <td>{{CompatOpera(9.5)}}</td> + <td>4</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("51")}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>7<sup>[1]</sup></td> + <td>{{CompatOperaMobile(10)}}</td> + <td>3.1</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatGeckoMobile("51")}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Internet Explorer 7 no actualitza els estils quan s'afegeixen elements dinàmicament. A Internet Explorer 8, si un element s'insereix de forma dinàmica fent clic en un enllaç, l'estil del primer fill no s'aplica fins que l'enllaç no ha perdut el focus.</p> + +<p>[2] Veure {{bug(1300374)}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":first-of-type")}}, {{cssxref(":last-child")}}, {{cssxref(":nth-child")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_first-of-type/index.html b/files/ca/web/css/_colon_first-of-type/index.html new file mode 100644 index 0000000000..8b2551b725 --- /dev/null +++ b/files/ca/web/css/_colon_first-of-type/index.html @@ -0,0 +1,159 @@ +--- +title: ':first-of-type' +slug: 'Web/CSS/:first-of-type' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:first-of-type' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:first-of-type</code></strong> <span id="result_box" lang="ca"><span>representa el primer element d'aquest tipus entre un grup d'elements germans.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <p> que sigui el primer element d'aquest tipus entre els seus germans</span></span> */ +p:first-of-type { + color: red; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span class="alt-edited">Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels Selectores Nivell 4, això ja no és necessari.</span></span></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Disseny_del_primer_paràgraf"><span class="short_text" id="result_box" lang="ca"><span>Disseny del primer paràgraf</span></span></h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><h2>Heading</h2> +<p>Paragraph 1</p> +<p>Paragraph 2</p></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">p:first-of-type { + color: red; + font-style: italic; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Styling_the_first_paragraph')}}</p> + +<h3 id="Elements_niats">Elements niats</h3> + +<p>Aquest exemple mostra com es poden orientar els elements niats. Tingueu en compte que el <a href="/en-US/docs/Web/CSS/Universal_selectors">selector universal</a> (<code>*</code>) està implicat quan no s'escriu cap selector senzill.</p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><article> + <div>This `div` is first!</div> + <div>This <span>nested `span` is first</span>!</div> + <div>This <em>nested `em` is first</em>, but this <em>nested `em` is last</em>!</div> + <div>This <span>nested `span` gets styled</span>!</div> + <b>This `b` qualifies!</b> + <div>This is the final `div`.</div> +</article> +</pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">article :first-of-type { + background-color: pink; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Nested_elements', 500)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#first-of-type-pseudo', ':first-of-type')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#first-of-type-pseudo', ':first-of-type')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":first-child")}}, {{Cssxref(":last-of-type")}}, {{Cssxref(":nth-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_first/index.html b/files/ca/web/css/_colon_first/index.html new file mode 100644 index 0000000000..f71aa1953b --- /dev/null +++ b/files/ca/web/css/_colon_first/index.html @@ -0,0 +1,147 @@ +--- +title: ':first' +slug: 'Web/CSS/:first' +tags: + - '@page' + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:first' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:first</code></strong> , utilitzada amb la regla at (<a href="/en-US/docs/Web/CSS/At-rule">at-rule</a>) {{cssxref("@page")}}, representa la primera pàgina d'un document imprès.</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona la primera pàgina en imprimir.</span></span> */ +@page :first { + margin-left: 50%; + margin-top: 50%; +}</pre> + +<div class="note"> +<p><strong>Nota:</strong> No poden canviar totes les propietats CSS amb aquesta pseudo-class. Només es poden canviar els marges, {{cssxref("orphans")}}, {{cssxref("widows")}}, i els salts de pàgina del document. A més, només es poden utilitzar unitats de <a href="/en-US/docs/Web/CSS/length#Absolute_length_units">longitud absoluta</a> en definir els marges. Totes les altres propietats seran ignorades.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>First Page.</p> +<p>Second Page.</p> +<button>Print!</button> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">@page :first { + margin-left: 50%; + margin-top: 50%; +} + +p { + page-break-after: always; +} +</pre> + +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush: js">document.querySelector("button").onclick = function(){ window.print() } +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>Premeu el botó "Print!" per imprimir l'exemple. Les paraules en la primera pàgina han d'estar en algun lloc al voltant del centre, mentre que altres pàgines tindran els seus continguts en la posició per defecte.</p> + +<p>{{ EmbedLiveSample('Example', '80%', '150px') }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Paged Media', '#left-right-first', ':first')}}</td> + <td>{{Spec2('CSS3 Paged Media')}}</td> + <td>Cap canvi</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'page.html#page-selectors', ':first')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + <td>9.2</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref("@page")}}</li> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres pseudo-class relacionades amb la pàgina:</span></span> {{Cssxref(":left")}}, {{Cssxref(":right")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_focus-within/index.html b/files/ca/web/css/_colon_focus-within/index.html new file mode 100644 index 0000000000..ae6393853d --- /dev/null +++ b/files/ca/web/css/_colon_focus-within/index.html @@ -0,0 +1,146 @@ +--- +title: ':focus-within' +slug: 'Web/CSS/:focus-within' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:focus-within' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:focus-within</code></strong> representa un element que ha rebut focus o <em>conté</em> un element que ha rebut focus. En altres paraules, representa un element que està aparellat amb la pseudo-class {{cssxref(":focus")}} o té un descendent que està aparellat amb <code>:focus</code>. (Això inclou descendents en <a href="/en-US/docs/Web/Web_Components/Shadow_DOM">arbres d'ombres</a>.)</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona un <div> quan un dels seus descendents està enfocat</span></span> */ +div:focus-within { + background: cyan; +}</pre> + +<p>Aquest selector és útil, per fer un exemple comú, per a ressaltar un contenidor complet {{htmlElement("form")}} quan l'usuari se centra en un dels seus camps {{htmlElement("input")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>En aquest exemple, el formulari rebrà estils de color especials quan l'entrada de text rep el focus.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>Try typing into this form.</p> + +<form> + <label for="given_name">Given Name:</label> + <input id="given_name" type="text"> + <br> + <label for="family_name">Family Name:</label> + <input id="family_name" type="text"> +</form></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">form { + border: 1px solid; + color: gray; + padding: 4px; +} + +form:focus-within { + background: #ff8; + color: black; +} + +input { + margin: 4px; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 500, 150)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS4 Selectors", "#the-focus-within-pseudo", ":focus-within")}}</td> + <td>{{Spec2("CSS4 Selectors")}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("60")}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop("52.0")}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("47")}}</td> + <td>10.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("60")}}</td> + <td>{{CompatChrome("60")}}</td> + <td>{{CompatGeckoMobile("52.0")}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("47")}}</td> + <td>10.3</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Aquesta característica encara no està implementada. Consulteu la <a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/11725071-implement-focus-within-from-selectors-4">sol·licitud de millora relacionada</a>.</p> + +<p>[2] Aquesta característica es va implementar al {{bug("1176997")}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":focus")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_focus/index.html b/files/ca/web/css/_colon_focus/index.html new file mode 100644 index 0000000000..eb3b9ec2b9 --- /dev/null +++ b/files/ca/web/css/_colon_focus/index.html @@ -0,0 +1,144 @@ +--- +title: ':focus' +slug: 'Web/CSS/:focus' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:focus' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:focus</code></strong> representa un element (com ara una entrada de formulari) que ha rebut el focus. Generalment, s'activa quan l'usuari fa clic o toca un element o el selecciona amb la tecla "tab" del teclat.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <input> quan s'enfoca */ +input:focus { + color: red; +}</pre> + +<div class="note"> +<p><strong>Nota:</strong> Aquesta pseudo-class s'aplica només a l'element enfocat. Utilitzeu {{cssxref(":focus-within")}} si voleu seleccionar un element que contingui un element enfocat.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input class="red-input" value="I'll be red when focused."><br> +<input class="blue-input" value="I'll be blue when focused."></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">.red-input:focus { + background: yellow; + color: red; +} + +.blue-input:focus { + background: yellow; + color: blue; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#selector-focus', ':focus')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Defineix</span> <span>la semàntica</span> <span>específica</span> <span>d'HTML.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#focus-pseudo', ':focus')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':focus')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':focus')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>8.0</td> + <td>7.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>8.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":focus-within")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_fullscreen/index.html b/files/ca/web/css/_colon_fullscreen/index.html new file mode 100644 index 0000000000..f1a7bad43f --- /dev/null +++ b/files/ca/web/css/_colon_fullscreen/index.html @@ -0,0 +1,241 @@ +--- +title: ':fullscreen' +slug: 'Web/CSS/:fullscreen' +tags: + - CSS + - Experimental + - Full-screen + - Pseudo-class + - Reference +translation_of: 'Web/CSS/:fullscreen' +--- +<div>{{CSSRef}} {{SeeCompatTable}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:fullscreen</code></strong> <span id="result_box" lang="ca"><span>representa un element que es mostra quan el navegador està en <a href="/en-US/docs/Web/API/Fullscreen_API">mode de pantalla completa (</a></span></span><a href="/en-US/docs/Web/API/Fullscreen_API">fullscreen mode)</a>.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <div> que es mostri en mode de pantalla completa</span></span> */ +/* <span id="result_box" lang="ca"><span>S'ha implementat a Firefox, WebKit / Chrome i Edge / IE amb prefixos;</span> <span>Edge també és compatible amb la versió no prefixada</span></span> */ +div:-moz-full-screen { + background-color: pink; +} + +div:-webkit-full-screen { + background-color: pink; +} + +div:fullscreen { + background-color: pink; +}</pre> + +<div class="note"> +<p><strong>Note</strong>: L'especificació del W3C utilitza la paraula única <code>:fullscreen</code>, - sense guió -, però ambdues implementacions experimentals de WebKit i Gecko utilitzen una variant prefixada amb dues paraules separades per un guió: <code>:-webkit-full-screen</code> i <code>:-moz-full-screen</code>, respectivament. Microsoft Edge i Internet Explorer utilitzen la convenció estàndard: <code>:fullscreen</code> i <code>:-ms-fullscreen</code>, respectivament.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div id="fullscreen"> + <h1>:fullscreen Demo</h1> + <p>This text will become big and red when the browser is in fullscreen mode.</p> + <button id="fullscreen-button">Enter Fullscreen</button> +</div> +</pre> + +<div class="hidden"> +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush: js">var fullscreenButton = document.getElementById("fullscreen-button"); +var fullscreenDiv = document.getElementById("fullscreen"); +var fullscreenFunc = fullscreenDiv.requestFullscreen; + +if (!fullscreenFunc) { + ['mozRequestFullScreen', + 'msRequestFullscreen', + 'webkitRequestFullScreen'].forEach(function (req) { + fullscreenFunc = fullscreenFunc || fullscreenDiv[req]; + }); +} + +function enterFullscreen() { + fullscreenFunc.call(fullscreenDiv); +} + +fullscreenButton.addEventListener('click', enterFullscreen); +</pre> + +<h3 id="CSS_específic_del_navegador"><span class="short_text" id="result_box" lang="ca"><span>CSS específic del navegador</span></span></h3> + +<pre class="brush: css">#fullscreen:-moz-full-screen { + padding: 42px; + background-color: pink; + border: 2px solid #f00; + font-size: 200%; +} +#fullscreen:-webkit-full-screen { + padding: 42px; + background-color: pink; + border: 2px solid #f00; + font-size: 200%; +} + +#fullscreen:-moz-full-screen > h1 { + color: red; +} +#fullscreen:-webkit-full-screen > h1 { + color: red; +} + +#fullscreen:-moz-full-screen > p { + color: darkred; +} +#fullscreen:-webkit-full-screen > p { + color: darkred; +} + +#fullscreen:-moz-full-screen > button { + display: none; +} +#fullscreen:-webkit-full-screen > button { + display: none; +} +</pre> +</div> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">#fullscreen:fullscreen { + padding: 42px; + background-color: pink; + border:2px solid #f00; + font-size: 200%; +} + +#fullscreen:fullscreen > h1 { + color: red; +} + +#fullscreen:fullscreen > p { + color: darkred; +} + +#fullscreen:fullscreen > button { + display: none; +} +</pre> + +<h3 id="Resultats">Resultats</h3> + +<p>{{ LiveSampleLink('Example', "Feu clic aquí per provar aquest exemple.") }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fullscreen', '#:fullscreen-pseudo-class', ':fullscreen')}}</td> + <td>{{Spec2('Fullscreen')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>15.0 {{property_prefix("-webkit")}}<sup>[1]</sup></td> + <td>12</td> + <td>{{CompatGeckoDesktop("9.0")}}{{property_prefix("-moz")}}<sup>[1]</sup><br> + {{CompatGeckoDesktop("47.0")}}<sup>[2]</sup></td> + <td>11 {{property_prefix("-ms")}}<sup>[3]</sup></td> + <td>{{CompatUnknown}}</td> + <td>6.0 {{property_prefix("-webkit")}}<sup>[1]</sup></td> + </tr> + <tr> + <td>Seleccionar tots els elements en la pila de la pantalla completa</td> + <td>{{CompatUnknown}}</td> + <td>12</td> + <td>{{CompatGeckoDesktop(43)}}</td> + <td>11</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("9.0")}}<br> + {{CompatGeckoDesktop("47.0")}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Seleccionar tots els elements en la pila de la pantalla completa</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("43")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Tant les versions prefixades de WebKit com Gecko</span> tenen un guió entre <em>full</em> i <em>screen,</em> però la proposta de W3C utilitza una sola paraula: <code>:fullscreen</code>, <code>:-webkit-full-screen</code>, <code>:-moz-full-screen</code>.</span></p> + +<p>[2]<em> </em>Gecko 47.0 {{geckoRelease("47.0")}} implementa la pseudo-classe sense prefix darrere de la preferència <code>full-screen-api.unprefix.enabled</code>, per defecte a <code>false</code>.</p> + +<p>[3] Internet Explorer utilitza el prefix <code>-ms</code> però no té un guió entre full i screen: <code>:-ms-fullscreen</code>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Fullscreen_API">Ùs del mode de pantalla completa</a></li> + <li>{{cssxref("::backdrop")}}</li> + <li>DOM API: {{ domxref("Element.requestFullscreen()") }}, {{ domxref("Document.exitFullscreen()") }}, {{ domxref("Document.fullscreen") }}, {{ domxref("Document.fullscreenElement") }}</li> + <li>Atribut {{HTMLAttrXRef("allowfullscreen", "iframe")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_hover/index.html b/files/ca/web/css/_colon_hover/index.html new file mode 100644 index 0000000000..7d6cf260d5 --- /dev/null +++ b/files/ca/web/css/_colon_hover/index.html @@ -0,0 +1,178 @@ +--- +title: ':hover' +slug: 'Web/CSS/:hover' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:hover' +--- +<div>{{ CSSRef }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:hover</code></strong> coincideix quan l'usuari interactua amb un element amb un dispositiu apuntador, però no necessàriament ho activa. Generalment s'activa quan l'usuari es desplaça sobre un element amb el cursor (punter de ratolí).</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol element <a> quan "es deplaça"</span></span> */ +a:hover { + color: orange; +}</pre> + +<p>Els estils definits per la pseudo-class <code>:active</code> seran anul·lats per qualsevol pseudo-class subsegüent relacionada amb l'enllaç ({{ cssxref(":link") }}, {{ cssxref(":visited") }} o {{ cssxref(":active") }}) que tinguin almenys la mateixa especificitat. Per donar estil els enllaços adequadament, poseu la regla <code>:hover</code> després de les regles <code>:link</code> i <code>:visited</code> però abans d'una regla <code>:active</code> segons el definit per l'<em>ordre LVHA</em>: <code>:link</code> — <code>:visited</code> — <code>:hover</code> — <code>:active</code>.</p> + +<div class="note"><strong>Nota</strong>: La pseudo-class <code>:hover</code> és problemàtica en les pantalles tàctils. Depenent del navegador, la pseudo-class <code>:hover</code> pot ser que mai coincideixi, només coincidir per un moment després de tocar un element o bé continuarà coincidint fins i tot després que l'usuari hagi deixat de tocar i fins que l'usuari toqui un altre element. Els desenvolupadors web han d'assegurar-se que el contingut sigui accessible en dispositius amb capacitats de desplaçaments limitats o inexistents.</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><a href="#">Try hovering over this link.</a></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">a { + background-color: powderblue; + transition: background-color .5s; +} + +a:hover { + background-color: gold; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample("Basic_example")}}</p> + +<h3 id="Galeria_d'imatges"><span class="short_text" id="result_box" lang="ca"><span>Galeria d'imatges</span></span></h3> + +<p>Podeu utilitzar la pseudo-class <code>:hover</code> per construir una galeria d'imatges amb imatges en grandària real que es mostrin només quan el ratolí es mogui sobre una miniatura. Vegeu <a href="/@api/deki/files/6247/=css-gallery.zip">aquesta demostració</a> per a un possible exemple.</p> + +<div class="note"><strong>Nota:</strong> Per a un efecte anàleg, però basat en la pseudo-class <a class="internal" href="/en/CSS/%3Achecked" title="en/CSS/:checked"><code>:checked</code></a> (aplicada a les caixes de ràdio (radioboxes) ocultes), vegeu <a class="internal" href="/@api/deki/files/6268/=css-checked-gallery.zip" title="css-checked-gallery.zip">aquesta demostració</a> , presa de la pàgina de referència <a class="internal" href="/en-US/docs/Web/CSS/:checked" title="en/CSS/:checked">:checked</a>.</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', 'scripting.html#selector-hover', ':hover') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td> </td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#the-hover-pseudo', ':hover') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Es permet a <code>:hover</code> ser aplicat a qualsevol pseudo-element.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':hover') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap canvi</span> <span>significatiu</span></span> .</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':hover') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>per elements <a></td> + <td>0.2</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop(1.0) }}</td> + <td>4.0</td> + <td>4.0</td> + <td>2.0.4 (419)<br> + <span style="font-size: small;">various bugs before</span></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>per a tots</span> <span>els</span> <span>elements</span></span></td> + <td>0.2</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop(1.0) }}</td> + <td>7.0<sup>[1][2]</sup></td> + <td>7.0</td> + <td>2.0.4 (419)<br> + <span style="font-size: small;">various bugs before</span></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca">per pseudo-element</span></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop(28) }}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}<sup>[3]</sup></td> + </tr> + </tbody> +</table> +</div> + +<p>[1] En IE8-11, en passar per sobre d'un element i després desplaçar-se cap amunt/cap baix sense moure el punter, deixarà l'element en estat <code>:hover</code> fins que es mogui el punter. Veure <a href="https://connect.microsoft.com/IE/feedbackdetail/view/926665">IE bug 926665</a>.</p> + +<p>[2] En IE9 (i possiblement abans), si un {{HTMLElement("table")}} té un pare amb un no-<code>auto</code> {{cssxref("width")}} i {{cssxref("overflow-x")}}<code>: auto;</code>, i {{HTMLElement("table")}} té prou contingut per desbordar horitzontalment el seu pare i si hi ha estils {{cssxref(":hover")}} establerts en elements de la taula i, a continuació, passen per sobre d'aquests elements faran que augmenti l'alçada de {{HTMLElement("table")}}. <a href="http://jsbin.com/diwiqe">Aquí hi ha una demostració en viu que activa l'error.</a> Una solució provisional per a l'errada és establir <code>min-height: 0%;</code> en l'element pare de la taula (i la unitat <code>%</code> ha de ser especificada; <code>0</code> i <code>0px</code> no funcionen). Hi va haver un error creat com <a href="http://bugs.jquery.com/ticket/10854">jQuery ticket #10854</a>, però s'ha tancat perquè no es considera un error de jQuery.</p> + +<p>[3] A partir de Safari Mobile per a iOS 7.1.2, en tocar un <a href="/en-US/docs/Web/Events/click#Safari_Mobile">element que es pot fer clic</a> fa que l'element entri en l'estat <code>:hover</code>. L'element romandrà a l'estat <code>:hover</code> fins que un element diferent hagi entrat en l'estat <code>:hover</code>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="https://code.google.com/p/chromium/issues/detail?id=370155">Chromium bug #370155: No feu <code>:hover</code> en tocar de cop en llocs que estableixen una finestra de visualització mòbil.</a></li> + <li><a href="https://code.google.com/p/chromium/issues/detail?id=306581">Chromium bug #306581: Mostra inmediatament els estats hover i active al tocar quan la pàgina no es pot desplaçar.</a></li> +</ul> diff --git a/files/ca/web/css/_colon_in-range/index.html b/files/ca/web/css/_colon_in-range/index.html new file mode 100644 index 0000000000..a8fd5171be --- /dev/null +++ b/files/ca/web/css/_colon_in-range/index.html @@ -0,0 +1,110 @@ +--- +title: ':in-range' +slug: 'Web/CSS/:in-range' +tags: + - CSS + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:in-range' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:in-range</code></strong> representa un element {{htmlelement("input")}} en què el seu valor actual està dins dels límits de rang especificats pels atributs {{htmlattrxref("min", "input")}} i {{htmlattrxref("max","input")}}.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <input>, però només quan té un rang especificat, i el seu valor està dins d'aquest rang */ +input:in-range { + background-color: rgba(0, 255, 0, 0.25); +}</pre> + +<p>Aquesta pseudo-class és útil per donar a l'usuari una indicació visual que el valor actual, d'un camp, està dins dels límits permesos.</p> + +<div class="note"><strong>Nota</strong> Aquesta pseudo-class només s'aplica als elements que tenen (i poden tenir) una limitació de rang. Mancant tal limitació, l'element no pot estar "en rang" ni "fora de rang".</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<div id="example"> +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><form action="" id="form1"> + <ul>Values between 1 and 10 are valid. + <li> + <input id="value1" name="value1" type="number" placeholder="1 to 10" min="1" max="10" value="12"> + <label for="value1">Your value is </label> + </li> + </ul> +</form></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css;">li { + list-style: none; + margin-bottom: 1em; +} + +input { + border: 1px solid black; +} + +input:in-range { + background-color: rgba(0, 255, 0, 0.25); +} + +input:out-of-range { + background-color: rgba(255, 0, 0, 0.25); + border: 2px solid red; +} + +input:in-range + label::after { + content: 'okay.'; +} + +input:out-of-range + label::after { + content: 'out of range!'; +}</pre> + +<h3 id="Resultat">Resultat</h3> +</div> + +<div>{{EmbedLiveSample('Example', 600, 140)}}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#selector-in-range', ':in-range')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Defineix quan <code>:in-range</code> coincideix en elements HTML.</td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#in-range-pseudo', ':in-range')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{Compat("css.selectors.in-range")}}</div> + +<p> </p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":out-of-range")}}</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de dades de formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_indeterminate/index.html b/files/ca/web/css/_colon_indeterminate/index.html new file mode 100644 index 0000000000..c9fb4578e5 --- /dev/null +++ b/files/ca/web/css/_colon_indeterminate/index.html @@ -0,0 +1,132 @@ +--- +title: ':indeterminate' +slug: 'Web/CSS/:indeterminate' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:indeterminate' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:indeterminate</code></strong> representa qualsevol element de formulari, l'estat del qual, sigui indeterminat.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <input> l'estat del qual sigui indeterminat */ +input:indeterminate { + background: lime; +}</pre> + +<p>Els elements als quals apunta aquest selector són:</p> + +<ul> + <li><code><a href="/en-US/docs/Web/HTML/Element/input/checkbox"><input type="checkbox"></a></code> elements en què la propietat <code>indeterminate</code> està establert a <code>true</code> per <a href="/en-US/docs/Web/JavaScript">JavaScript.</a></li> + <li><code><a href="/en-US/docs/Web/HTML/Element/input/radio"><input type="radio"></a></code> elements, que quan tots els botons d'opció tenen el mateix valor <code>name</code>, en el formulari, no estan marcats.</li> + <li>{{HTMLElement("progress")}} elements en un estat indeterminat.</li> +</ul> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Checkbox_radio_button">Checkbox & radio button</h3> + +<p><span id="result_box" lang="ca"><span>Aquest exemple aplica estils especials a les etiquetes associades a camps de formulari indeterminats.</span></span></p> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div> + <input type="checkbox" id="checkbox"> + <label for="checkbox">This label starts out lime.</label> +</div> +<div> + <input type="radio" id="radio"> + <label for="radio">This label starts out lime.</label> +</div></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css; hightlight[5]">input:indeterminate + label { + background: lime; +} +</pre> + +<h4 id="JavaScript">JavaScript</h4> + +<pre class="brush: js">var inputs = document.getElementsByTagName("input"); + +for (var i = 0; i < inputs.length; i++) { + inputs[i].indeterminate = true; +} +</pre> + +<p>{{EmbedLiveSample('Checkbox_radio_button', 'auto', 50)}}</p> + +<h3 id="Progress_bar">Progress bar</h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><progress> +</pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css; hightlight[5]">progress { + margin: 4px; +} + +progress:indeterminate { + opacity: 0.5; + background-color: lightgray; + box-shadow: 0 0 2px 1px red; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Progress_bar', 'auto', 30)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-indeterminate', ':indeterminate')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-indeterminate', ':indeterminate')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Defineix la semàntica d'HTML i la validició de restriccions</td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#indeterminate', ':indeterminate')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Basic UI', '#indeterminate', ':indeterminate')}}</td> + <td>{{Spec2('CSS3 Basic UI')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>class,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div> + + +<p>{{Compat("css.selectors.indeterminate")}}</p> +</div> diff --git a/files/ca/web/css/_colon_invalid/index.html b/files/ca/web/css/_colon_invalid/index.html new file mode 100644 index 0000000000..8e8b1ee626 --- /dev/null +++ b/files/ca/web/css/_colon_invalid/index.html @@ -0,0 +1,141 @@ +--- +title: ':invalid' +slug: 'Web/CSS/:invalid' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:invalid' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:invalid</code></strong> representa qualsevol element {{HTMLElement("input")}} o un altre {{HTMLElement("form")}} en que el seu contingut no es <a href="/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation">valida</a>.</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol</span></span> <input> <span class="short_text" id="result_box" lang="ca"><span>invàlit</span></span> */ +input:invalid { + background-color: pink; +}</pre> + +<p><span id="result_box" lang="ca"><span>Aquesta pseudo-class és útil per ressaltar errors de camp per a l'usuari.</span></span></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>Aquest exemple presenta una forma senzilla que acoloreix elements en verd quan es validen i vermells quan no ho fan.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><form> + <label for="url_input">Enter a URL:</label> + <input type="url" id="url_input" /> + <br /> + <br /> + <label for="email_input">Enter an email address:</label> + <input type="email" id="email_input" required/> +</form></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input:invalid { + background-color: #ffdddd; +} + +form:invalid { + border: 5px solid #ffdddd; +} + +input:valid { + background-color: #ddffdd; +} + +form:valid { + border: 5px solid #ddffdd; +} + +input:required { + border-color: #800000; + border-width: 3px; +} + +input:required:invalid { + border-color: #C00000; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 600, 120)}}</p> + +<h2 id="Notes">Notes</h2> + +<h3 id="Botons_de_ràdio">Botons de ràdio</h3> + +<p>Si un botó de ràdio qualsevol en un grup és <code>required</code>, la pseudo-class <code>:invalid</code> s'aplica a tots ells si no se selecciona cap dels botons del grup. (Els botons de ràdio agrupats comparteixen el mateix valor per al seu atribut <code>name</code>).</p> + +<h3 id="Gecko_per_defecte">Gecko per defecte</h3> + +<p>Per defecte, Gecko no aplica un estil a la pseudo-class <code>:invalid</code>. Tanmateix, aplica un estil (un "resplendor" vermell usant la propietat {{Cssxref("box-shadow")}}) a la pseudo-class {{cssxref(":-moz-ui-invalid")}} que s'aplica en un subconjunt de casos per <code>:invalid</code>.</p> + +<p>Podeu desactivar la brillantor usant el següent CSS, o anul·lar-ho completament per alterar l'aparença dels camps no vàlids:</p> + +<pre class="brush: css">:invalid { + box-shadow: none; +} + +:-moz-submit-invalid { + box-shadow: none; +} + +:-moz-ui-invalid { + box-shadow: none; +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-invalid', ':invalid')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-invalid', ':invalid')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica d'HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#validity-pseudos', ':invalid')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div> + + +<p>{{Compat("css.selectors.invalid")}}</p> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Altres pseudo-classes relacionades amb la validació</span></span>: {{ cssxref(":required") }}, {{ cssxref(":optional") }}, {{ cssxref(":valid") }}</li> + <li><span class="short_text" id="result_box" lang="ca"><span>Pseudo-classes relacionades amb Mozilla</span></span>: {{cssxref(":-moz-ui-invalid")}}, {{cssxref(":-moz-submit-invalid")}}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de dades de formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_lang/index.html b/files/ca/web/css/_colon_lang/index.html new file mode 100644 index 0000000000..b30ec5855f --- /dev/null +++ b/files/ca/web/css/_colon_lang/index.html @@ -0,0 +1,149 @@ +--- +title: ':lang' +slug: 'Web/CSS/:lang' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:lang' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:lang()</code></strong> coincideix amb elements basats en l'idioma en què estan definits.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <p> en Anglès (en) */ +p:lang(en) { + quotes: '\201C' '\201D' '\2018' '\2019'; +}</pre> + +<div class="note"> +<p><strong>Nota:</strong> En HTML, el llenguatge està determinat per una combinació de l'atribut {{htmlattrxref ("lang")}}, l'element {{HTMLElement ("meta")}}, i possiblement per informació del protocol (com ara encapçalaments HTTP. Per a altres tipus de documents, hi pot haver altres mètodes de document per determinar el llenguatge</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h3 id="Paràmetre">Paràmetre</h3> + +<dl> + <dt><code><language-code></code></dt> + <dd>Un {{cssxref("<string>")}} representant l'idioma en el qual us voleu dirigir. Els valors acceptables s'especifiquen en l'especificació <a href="/en-US/docs/Web/HTML">HTML</a>.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p>En aquest exemple, la pseudo-classe <code>:lang()</code> s'utilitza per a que coincideixi amb els pares dels elements de la cita ({{htmlElement("q")}}) usant <a href="/en-US/docs/Web/CSS/Child_selectors">combinadors fills</a>. Tingueu en compte que això no il·lustra l'única manera de fer-ho, i que el millor mètode a utilitzar depèn del tipus de document. També tingueu en compte que els valors {{glossary("Unicode")}} s'utilitzen per especificar alguns dels caràcters especials de la cita.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: css">:lang(en) > q { quotes: '\201C' '\201D' '\2018' '\2019'; } +:lang(fr) > q { quotes: '« ' ' »'; } +:lang(de) > q { quotes: '»' '«' '\2039' '\203A'; } +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: html"><div lang="en"><q>This English quote has a <q>nested</q> quote inside.</q></div> +<div lang="fr"><q>This French quote has a <q>nested</q> quote inside.</q></div> +<div lang="de"><q>This German quote has a <q>nested</q> quote inside.</q></div> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 350)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#lang-pseudo', ':lang()')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#lang-pseudo', ':lang()')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Cap canvi significatiu.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#lang', ':lang()')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>8.0</td> + <td>8.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>8.0</td> + <td>8.0</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Pseudo-classes relacionades amb el llenguatge</span></span>: {{cssxref(":lang")}}, {{cssxref(":dir")}}</li> + <li>Atribut HTML {{htmlattrxref("lang")}}</li> + <li><a class="external" href="https://tools.ietf.org/html/bcp47">BCP 47 - Etiquetes per identificar idiomes</a></li> +</ul> diff --git a/files/ca/web/css/_colon_last-child/index.html b/files/ca/web/css/_colon_last-child/index.html new file mode 100644 index 0000000000..9d449b660b --- /dev/null +++ b/files/ca/web/css/_colon_last-child/index.html @@ -0,0 +1,197 @@ +--- +title: ':last-child' +slug: 'Web/CSS/:last-child' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:last-child' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:last-child</code></strong> <span id="result_box" lang="ca"><span>representa l'últim element entre un grup d'elements germans.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <p> que sigui l'últim element entre els seus germans</span></span> */ +p:last-child { + color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels selectors de nivell 4, això ja no és necessari.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div> + <p>This text isn't selected.</p> + <p>This text is selected!</p> +</div> + +<div> + <p>This text isn't selected.</p> + <h2>This text isn't selected: it's not a `p`.</h2> +</div> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">p:last-child { + color: lime; + background-color: black; + padding: 5px; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p><span>{{EmbedLiveSample('Basic_example', 500, 200)}}</span></p> + +<h3 id="Disseny_d'una_llista">Disseny d'una llista</h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><ul> + <li>Item 1</li> + <li>Item 2</li> + <li>Item 3 + <ul> + <li>Item 3.1</li> + <li>Item 3.2</li> + <li>Item 3.3</li> + </ul> + </li> +</ul></pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">ul li { + color: blue; +} + +ul li:last-child { + border: 1px solid red; + color: red; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Styling_a_list')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#last-child', ':last-child')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#last-child', ':last-child')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>9.0</td> + <td>{{CompatOpera(9.5)}}</td> + <td>3.2</td> + </tr> + <tr> + <td>No es requereix pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("51")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>9.0</td> + <td>{{CompatOperaMobile(10)}}</td> + <td>3.2</td> + </tr> + <tr> + <td>No es requereix pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("51")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p> </p> + +<p>[1] Veure {{bug(1300374)}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":last-of-type")}}, {{cssxref(":first-child")}}, {{cssxref(":nth-child")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_last-of-type/index.html b/files/ca/web/css/_colon_last-of-type/index.html new file mode 100644 index 0000000000..b5f1844d2e --- /dev/null +++ b/files/ca/web/css/_colon_last-of-type/index.html @@ -0,0 +1,158 @@ +--- +title: ':last-of-type' +slug: 'Web/CSS/:last-of-type' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:last-of-type' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:last-of-type</code></strong> <span id="result_box" lang="ca"><span>representa l'últim element del seu tipus entre un grup d'elements germa</span></span>.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <p> que sigui l'últim element del seu tipus entre els seus germans */ +p:last-of-type { + color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span class="alt-edited">Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels selectors de nivell 4, això ja no és necessari.</span></span></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="Disseny_de_l'últim_paràgraf"><span class="short_text" id="result_box" lang="ca"><span>Disseny de l'últim paràgraf</span></span></h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><h2>Heading</h2> +<p>Paragraph 1</p> +<p>Paragraph 2</p></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">p:last-of-type { + color: red; + font-style: italic; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Styling_the_last_paragraph')}}</p> + +<h3 id="Elements_niats">Elements niats</h3> + +<p>Aquest exemple mostra com es poden dirigir els elements niats. Tingueu en compte que el selector universal <a href="/en-US/docs/Web/CSS/Universal_selectors">selector universal</a> (<code>*</code>) està implícit quan no s'escriu un selector simple .</p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><article> + <div>This `div` is first.</div> + <div>This <span>nested `span` is last</span>!</div> + <div>This <em>nested `em` is first</em>, but this <em>nested `em` is last</em>!</div> + <b>This `b` qualifies!</b> + <div>This is the final `div`!</div> +</article> +</pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">article :last-of-type { + background-color: pink; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Nested_elements', 500)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#last-of-type-pseudo', ':last-of-type')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#last-of-type-pseudo', ':last-of-type')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li>{{cssxref(":last-child")}}, {{Cssxref(":nth-last-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_left/index.html b/files/ca/web/css/_colon_left/index.html new file mode 100644 index 0000000000..73fb3d65c5 --- /dev/null +++ b/files/ca/web/css/_colon_left/index.html @@ -0,0 +1,122 @@ +--- +title: ':left' +slug: 'Web/CSS/:left' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:left' +--- +<div>{{ CSSRef() }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:left</code></strong>, usada amb la <a href="/en-US/docs/Web/CSS/At-rule">regla at</a> {{cssxref("@page")}} , representa totes les pàgines de l'esquerra d'un document imprès.</p> + +<pre class="brush: css no-line-numbers">/* Selects any left-hand pages when printing */ +@page :left { + margin: 2in 3in; +}</pre> + +<p>Si una pàgina donada és "esquerra" o "dreta" ve determinada per la direcció principal d'escriptura del document. Per exemple, si la primera pàgina té una direcció d'escriptura principal d'esquerra a dreta llavors serà una pàgina {{Cssxref(":right")}}; si té una direcció d'escriptura principal de dreta a esquerra llavors serà una pàgina <code>:left</code>.</p> + +<div class="note"> +<p><strong>Nota:</strong> No podeu canviar totes les propietats CSS amb aquesta pseudo-class. Només podeu canviar les propietats {{ Cssxref("margin") }}, {{ Cssxref("padding") }}, {{ Cssxref("border") }} i {{ Cssxref("background") }} del quadre de pàgina. S'ignoraran totes les altres propietats i només es veurà afectat el quadre de pàgina, no el contingut del document de la pàgina.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: css">@page :left { + margin: 2in 3in; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Paged Media', '#left-right-first', ':left') }}</td> + <td>{{ Spec2('CSS3 Paged Media') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'page.html#page-selectors', ':left') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatNo() }}</td> + <td>8.0</td> + <td>9.2</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{ Cssxref("@page") }}</li> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres pseudo-class relacionades amb la pàgina</span></span> : {{ Cssxref(":first") }}, {{ Cssxref(":right") }}</li> +</ul> diff --git a/files/ca/web/css/_colon_link/index.html b/files/ca/web/css/_colon_link/index.html new file mode 100644 index 0000000000..af971fb36b --- /dev/null +++ b/files/ca/web/css/_colon_link/index.html @@ -0,0 +1,150 @@ +--- +title: ':link' +slug: 'Web/CSS/:link' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:link' +--- +<div>{{ CSSRef }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:link</code></strong> representa un element que encara no ha estat visitat. S'adapta a tots els no visitats {{HTMLElement("a")}}, {{HTMLElement("area")}} o {{HTMLElement("link")}} element que té un atribut <code>href</code>.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol <a> que encara no s'hagi visitat</span></span> */ +a:link { + color: red; +}</pre> + +<p>Els estils definits per la pseudo-class <code>:link</code> seran anul·lats per qualsevol pseudo-class relacionada amb un enllaç posterior ({{cssxref(":active")}}, {{cssxref(":hover")}} o {{cssxref(":visited")}}) que tingui almenys la mateixa especificitat. Per donar un estil apropiat als enllaços, poseu la regla <code>:link</code> davant de totes les altres regles relacionades amb els enllaços, segons el definit per l'<em>ordre</em> <em>LVHA</em>: <code>:link</code> — <code>:visited</code> — <code>:hover</code> — <code>:active</code>.</p> + +<div class="note"> +<p><strong>Nota:</strong> Utilitzeu {{cssxref (":any-link")}} per seleccionar un element independentment de si s'ha visitat o no.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>Per defecte, la majoria dels navegadors apliquen un valor {{cssxref("color")}} especial als enllaços visitats. Per tant, els enllaços que vnguin a continuació probablement tinguin colors de fonts especials només abans de visitar-los. (Després d'això, haureu d'esborrar l'historial del navegador per tornar-los a veure). Tanmateix, és probable que els valors de {{cssxref("background-color")}} quedin, ja que la majoria dels navegadors no estableixen aquesta propietat als enllaços visitats de forma predeterminada.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><a href="#ordinary-target">This is an ordinary link.</a><br> +<a href="">You've already visited this link.</a><br> +<a>Placeholder link (won't get styled)</a> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">a:link { + background-color: gold; + color: green; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Examples")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', 'scripting.html#selector-link', ':link') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td> </td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#link', ':link') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#link', ':link') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':link') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Aixecar la restricció només per aplicar-lo a l'element {{HTMLElement ("a")}}.</td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#anchor-pseudo-classes', ':link') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.5</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1.9.2") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-classes relacionades amb enllaços: {{ cssxref(":visited") }}, {{ cssxref(":hover") }}, {{ cssxref(":active") }}</li> +</ul> diff --git a/files/ca/web/css/_colon_not/index.html b/files/ca/web/css/_colon_not/index.html new file mode 100644 index 0000000000..2c0171e00b --- /dev/null +++ b/files/ca/web/css/_colon_not/index.html @@ -0,0 +1,176 @@ +--- +title: ':not()' +slug: 'Web/CSS/:not' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:not' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:not()</code></strong> representa elements que no coincideixen amb una llista de selectors. Atès que impedeix que es seleccionin elements específics, es coneix com a <em>pseudo-class de negació</em>.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol element que NO sigui un paràgraf */ +:not(p) { + color: blue; +}</pre> + +<div class="note"> +<p><strong>Notes:</strong></p> + +<ul> + <li>Els selectors inútils es poden escriure utilitzant aquesta pseudo-class. Per exemple, <code>:not(*)</code> coincideix amb qualsevol element que no sigui un element, de manera que mai no s'aplicarà la regla</li> + <li>Aquesta pseudo-class pot augmentar l'<a href="/en-US/docs/Web/CSS/Specificity">especificitat</a> d'una regla. Per exemple, <code>#foo:not(#bar)</code> coincidirà amb el mateix element <code>#foo</code>, més senzill, però té una especificitat més alta.</li> + <li><code>:not(.foo)</code> coincidirà amb qualsevol cosa que no sigui <code>.foo</code>, <em>incoent {{HTMLElement("html")}} i {{HTMLElement("body")}}.</em></li> + <li>Aquest selector només s'aplica a un element; no es pot utilitzar per excloure a tots els ancestres. Per exemple, <code>body :not(table) </code>s'aplicarà als enllaços dins d'una taula, ja que {{HTMLElement("tr")}} coincidirà amb la part <code>:not()</code> del selector.</li> +</ul> +</div> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p>La pseudo-class <code>:not()</code> requereix una llista separada per comes d'un o més selectors com a argument. La llista no ha de contenir un altre selector de negació o un <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a>.</p> + +<div class="warning"> +<p>La capacitat d'enumerar més d'un selector és experimental i encara no està àmpliament suportada.</p> +</div> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>I am a paragraph.</p> +<p class="fancy">I am so very fancy!</p> +<div>I am NOT a paragraph.</div> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">.fancy { + text-shadow: 2px 2px 3px gold; +} + +/* <p> elements that are not in the class `.fancy` */ +p:not(.fancy) { + color: green; +} + +/* Elements that are not <p> elements */ +body :not(p) { + text-decoration: underline; +} + +/* Elements that are not <div> or <span> elements */ +body :not(div):not(span) { + font-weight: bold; +} + +/* Elements that are not `.crazy` or `.fancy` */ +/* Note that this syntax is not well supported yet. */ +body :not(.crazy, .fancy) { + font-family: sans-serif; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#negation', ':not()') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Estén el seu argument per permetre a alguns selectors no simples.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#negation', ':not()') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.2</td> + </tr> + <tr> + <td>Arguments estesos</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>9.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>3.2</td> + </tr> + <tr> + <td>Arguments estesos</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>9.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/_colon_nth-child/index.html b/files/ca/web/css/_colon_nth-child/index.html new file mode 100644 index 0000000000..fee9b30c51 --- /dev/null +++ b/files/ca/web/css/_colon_nth-child/index.html @@ -0,0 +1,276 @@ +--- +title: ':nth-child' +slug: 'Web/CSS/:nth-child' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:nth-child' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:nth-child()</code></strong> <a href="/en-US/docs/Web/CSS">CSS</a> <span id="result_box" lang="ca"><span>coincideix amb un o més elements basats en la seva posició entre un grup de germans.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona cada quart element entre qualsevol grup de germans</span></span> */ +:nth-child(4n) { + color: lime; +} +</pre> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p>La pseudo-class <code>nth-child</code> s'especifica amb un únic argument, que representa el patró per als elements coincidents.</p> + +<h3 id="Valors_de_paraules_clau">Valors de paraules clau</h3> + +<dl> + <dt><code>odd</code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans és imparell: 1, 3, 5, etc.</dd> + <dt><code>even</code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans és parell: 2, 4, 6, etc.</dd> +</dl> + +<h3 id="Notació_funcional">Notació funcional</h3> + +<dl> + <dt><code><An+B></code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans coincideix amb el patró <code>An+B</code>, per a cada enter positiu o valor zero de <code>n</code>. L'índex del primer element és <code>1</code>. Els valors <code>A</code> i <code>B</code> han de ser {{cssxref("<integer>")}}s.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example_selectors" name="Example_selectors">Exemple de selectors</h3> + +<dl> + <dt><code>tr:nth-child(odd)</code> or <code>tr:nth-child(2n+1)</code></dt> + <dd>Representa les files imparells d'una taula HTML: 1, 3, 5, etc.</dd> + <dt><code>tr:nth-child(even)</code> or <code>tr:nth-child(2n)</code></dt> + <dd>Representa les files parells d'una taula HTML: 2, 4, 6, etc.</dd> + <dt><code>:nth-child(5n)</code></dt> + <dd>Representa elements 5, 10, 15, etc.</dd> + <dt><code>:nth-child(3n+4)</code></dt> + <dd>Representa elements 4, 7, 10, 13, etc.</dd> + <dt><code>:nth-child(-n+3)</code></dt> + <dd><span id="result_box" lang="ca"><span>Representa els tres primers elements entre un grup de germans.</span></span></dd> + <dt><code>p:nth-child(n)</code></dt> + <dd><span id="result_box" lang="ca"><span>Representa cada element</span></span> <code><p></code> <span id="result_box" lang="ca"><span>entre un grup de germans.</span> <span>Això és el mateix que un simple selector</span></span> <code>p</code> .</dd> + <dt><code>p:nth-child(1)</code> or <code>p:nth-child(0n+1)</code></dt> + <dd><span id="result_box" lang="ca"><span>Representa cada</span></span> <code><p></code> <span id="result_box" lang="ca"><span>aquest és el primer element entre un grup de germans.</span> <span>Això és el mateix que el selector</span></span> {{cssxref(":first-child")}}.</dd> +</dl> + +<h3 id="Exemple_detallat">Exemple detallat</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush:html"><h3><code>span:nth-child(2n+1)</code>, WITHOUT an + <code>&lt;em&gt;</code> among the child elements.</h3> +<p>Children 1, 3, 5, and 7 are selected.</p> +<div class="first"> + <span>Span 1!</span> + <span>Span 2</span> + <span>Span 3!</span> + <span>Span 4</span> + <span>Span 5!</span> + <span>Span 6</span> + <span>Span 7!</span> +</div> + +<br> + +<h3><code>span:nth-child(2n+1)</code>, WITH an + <code>&lt;em&gt;</code> among the child elements.</h3> +<p>Children 1, 5, and 7 are selected.<br> + 3 is used in the counting because it is a child, but it isn't + selected because it isn't a <code>&lt;span&gt;</code>.</p> +<div class="second"> + <span>Span!</span> + <span>Span</span> + <em>This is an `em`.</em> + <span>Span</span> + <span>Span!</span> + <span>Span</span> + <span>Span!</span> + <span>Span</span> +</div> + +<br> + +<h3><code>span:nth-of-type(2n+1)</code>, WITH an + <code>&lt;em&gt;</code> among the child elements.</h3> +<p>Children 1, 4, 6, and 8 are selected.<br> + 3 isn't used in the counting or selected because it is an <code>&lt;em&gt;</code>, + not a <code>&lt;span&gt;</code>, and <code>nth-of-type</code> only selects + children of that type. The <code>&lt;em&gt;</code> is completely skipped + over and ignored.</p> +<div class="third"> + <span>Span!</span> + <span>Span</span> + <em>This is an `em`.</em> + <span>Span!</span> + <span>Span</span> + <span>Span!</span> + <span>Span</span> + <span>Span!</span> +</div> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">html { + font-family: sans-serif; +} + +span, +div em { + padding: 5px; + border: 1px solid green; + display: inline-block; + margin-bottom: 3px; +} + +.first span:nth-child(2n+1), +.second span:nth-child(2n+1), +.third span:nth-of-type(2n+1) { + background-color: lime; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Detailed_example', 550, 550)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#nth-child-pseudo', ':nth-child')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>Afegeix la sintaxi</span></span> <code>del <selector></code> <span id="result_box" lang="ca"><span>i especifica que els elements coincidents no són necessaris per tenir un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#nth-child-pseudo', ':nth-child')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(1)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>{{CompatOpera(9.5)}}<sup>[1]</sup></td> + <td>3.1</td> + </tr> + <tr> + <td>sintaxi <code>del <selector></code></td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("51")}}[3]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}<sup>[2]</sup></td> + <td>9.0</td> + <td>{{CompatOperaMobile(9.5)}}<sup>[1]</sup></td> + <td>3.1</td> + </tr> + <tr> + <td>sintaxi <code>del <selector></code></td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("51")}}<sup>[3]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Opera no pot gestionar la inserció dinàmica dels elements</p> + +<p>[2] Gecko encara no implementa aquesta funció. Vegeu {{bug(854148)}}.</p> + +<p>[3] Vegeu {{bug(1300374)}}.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{ Cssxref(":nth-of-type") }}, {{ Cssxref(":nth-last-child") }}</li> +</ul> diff --git a/files/ca/web/css/_colon_nth-last-child/index.html b/files/ca/web/css/_colon_nth-last-child/index.html new file mode 100644 index 0000000000..44fed32a4d --- /dev/null +++ b/files/ca/web/css/_colon_nth-last-child/index.html @@ -0,0 +1,217 @@ +--- +title: ':nth-last-child' +slug: 'Web/CSS/:nth-last-child' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:nth-last-child' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:nth-last-child()</code></strong> coincideix amb un o més elements en funció de la seva posició entre un grup de germans, comptant des del final.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona cada quart element entre qualsevol grup de germans, comptant enrere des de l'últim */ +:nth-last-child(4n) { + color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota:</strong> Aquesta pseudo-class és bàsicament la mateixa que {{Cssxref(":nth-child")}}, excepte que compta els elements a l'inrevés des del final i no des del començament.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>The <code>nth-last-child</code> pseudo-class is specified with a single argument, which represents the pattern for matching elements, counting from the end.</p> + +<h3 id="Valors_de_paraules_clau"><span id="result_box" lang="ca"><span>Valors de paraules clau</span></span></h3> + +<dl> + <dt><code>odd</code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans és imparell: 1, 3, 5, etc., comptant des del final.</dd> + <dt><code>even</code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans és parell: 2, 4, 6, etc., comptant des del final.</dd> +</dl> + +<h3 id="Notació_funcional">Notació funcional</h3> + +<dl> + <dt><code><An+B></code></dt> + <dd>Representa elements, la posició numèrica dels quals, en una sèrie de germans coincideix amb el patró <code>An+B</code>, per a cada enter positiu o valor zero de <code>n</code>. L'índex del primer element, comptant des del final, és <code>1</code>. Els valors <code>A</code> i <code>B</code> han de ser dos {{cssxref("<integer>")}}s.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_de_selectors">Exemple de selectors</h3> + +<dl> + <dt><code>tr:nth-last-child(odd)</code> or <code>tr:nth-last-child(2n+1)</code></dt> + <dd>Representa les files imparells d'una taula HTML: 1, 3, 5, etc., comptant des del final.</dd> + <dt><code>tr:nth-last-child(even)</code> or <code>tr:nth-last-child(2n)</code></dt> + <dd>Representa les files parells d'una taula HTML: 2, 4, 6, etc., comptant des del final.</dd> + <dt><code>:nth-last-child(5n)</code></dt> + <dd>Representa els elements 5, 10, 15, etc., comptant des del final.</dd> + <dt><code>:nth-last-child(3n+4)</code></dt> + <dd>Representa els elements 4, 7, 10, 13, etc., comptant des del final.</dd> + <dt><code>:nth-last-child(-n+3)</code></dt> + <dd>Representa els tres últims elements entre un grup de germans.</dd> + <dt><code>p:nth-last-child(n)</code></dt> + <dd>Representa cada element <code><p></code> entre un grup de germans. Això és el mateix que un simple selector <code>p</code>.</dd> + <dt><code>p:nth-last-child(1)</code> or <code>p:nth-last-child(0n+1)</code></dt> + <dd>Representa cada <code><p></code> que és el primer element d'un grup de germans comptant des del final. Això és el mateix que el selector {{cssxref(":last-child")}}.</dd> +</dl> + +<h3 id="Exemple_de_taula"><span class="short_text" id="result_box" lang="ca"><span>Exemple de taula</span></span></h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><table> + <tbody> + <tr> + <td>First line</td> + </tr> + <tr> + <td>Second line</td> + </tr> + <tr> + <td>Third line</td> + </tr> + <tr> + <td>Fourth line</td> + </tr> + <tr> + <td>Fifth line</td> + </tr> + </tbody> +</table> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">table { + border: 1px solid blue; +} + +/* Selects the last three elements */ +tr:nth-last-child(-n+3) { + background-color: pink; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Table_example', 300, 150)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(4)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>{{CompatOpera(9.5)}}</td> + <td>3.2</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("51")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>{{CompatOperaMobile(10)}}</td> + <td>3.2</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("51")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure {{bug(1300374)}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":nth-child")}}, {{Cssxref(":nth-last-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_nth-last-of-type/index.html b/files/ca/web/css/_colon_nth-last-of-type/index.html new file mode 100644 index 0000000000..64fbeee193 --- /dev/null +++ b/files/ca/web/css/_colon_nth-last-of-type/index.html @@ -0,0 +1,141 @@ +--- +title: ':nth-last-of-type' +slug: 'Web/CSS/:nth-last-of-type' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:nth-last-of-type' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:nth-last-of-type()</code></strong> coincideix amb un o més elements d'un tipus determinat, en funció de la seva posició entre un grup de germans, comptant des del final.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona cada quart element <p> entre qualsevol grup de germans, comptant enrere des de l'últim */ +p:nth-last-of-type(4n) { + color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota:</strong> Aquesta pseudo-class és bàsicament la mateixa que {{Cssxref(":nth-of-type")}}, excepte que compta els elements a l'inrevés des del final i no cap a endavant des del principi.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La pseudo-class <code>nth-last-of-type</code> s'especifica amb un sol argument, representa el patró per als elements coincidents, comptant des del final.</p> + +<p>Vegeu {{Cssxref(":nth-last-child")}} per obtenir una explicació més detallada de la seva sintaxi.</p> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div> + <span>This is a span.</span> + <span>This is another span.</span> + <em>This is emphasized.</em> + <span>Wow, this span gets limed!!!</span> + <strike>This is struck through.</strike> + <span>Here is one last span.</span> +</div></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">span:nth-last-of-type(2) { + background-color: lime; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#nth-last-of-type-pseudo', ':nth-last-of-type')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":nth-last-child")}}, {{Cssxref(":nth-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_nth-of-type/index.html b/files/ca/web/css/_colon_nth-of-type/index.html new file mode 100644 index 0000000000..c309e14b41 --- /dev/null +++ b/files/ca/web/css/_colon_nth-of-type/index.html @@ -0,0 +1,150 @@ +--- +title: ':nth-of-type' +slug: 'Web/CSS/:nth-of-type' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:nth-of-type' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:nth-of-type()</code></strong> coincideix amb un o més elements d'un tipus determinat, en funció de la seva posició entre un grup de germans.</p> + +<div class="warning"> +<p>There is no `:nth-of-type(0)`!</p> + +<p><img alt="" src="https://user-images.githubusercontent.com/18028768/31808818-648a4850-b5a7-11e7-9ba1-421cd3540c7e.png" style="height: 779px; width: 713px;"></p> +</div> + +<pre class="brush: css no-line-numbers language-css">/* <span id="result_box" lang="ca"><span>Selecciona cada quart element <p> entre qualsevol grup de germans</span></span> */ +p:nth-of-type(4n) { + color: lime; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La pseudo-class <code>nth-of-type</code> <span id="result_box" lang="ca"><span>s'especifica amb un sol argument, que representa el patró per als elements coincidents.</span></span></p> + +<p>Veure {{Cssxref(":nth-child")}} per obtenir una explicació més detallada de la seva sintaxi.</p> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div> + <div>This element isn't counted.</div> + <p>First paragraph. (left aligned)</p> + <p>Second paragraph. (right aligned)</p> + <div>This element isn't counted.</div> + <p>Third paragraph. (left aligned)</p> +</div></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">/* Align odd paragraphs to the left */ +p:nth-of-type(2n+1) { + text-align: left; +} + +/* Align even paragraphs to the right */ +p:nth-of-type(2n) { + text-align: right; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Basic_example', 250, 200)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#nth-of-type-pseudo', ':nth-of-type')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":nth-child")}}, {{Cssxref(":nth-last-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_only-child/index.html b/files/ca/web/css/_colon_only-child/index.html new file mode 100644 index 0000000000..ed94d4791a --- /dev/null +++ b/files/ca/web/css/_colon_only-child/index.html @@ -0,0 +1,199 @@ +--- +title: ':only-child' +slug: 'Web/CSS/:only-child' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:only-child' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes" title="Pseudo classes">pseudo-class </a><a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>:only-child</code></strong> representa un element sense germans. És el mateix que <code>:first-child:last-child</code> o <code>:nth-child(1):nth-last-child(1)</code>, però amb una menor especificitat.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona cada <p>, però només si és l'únic fill del seu pare</span></span> */ +p:only-child { + background-color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels Selectores Nivell 4, això ja no és necessari.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><main> + <div> + <i>I am a lonely only child.</i> + </div> + + <div> + <i>I have siblings.</i><br> + <b>So do I!</b><br> + <span>I also have siblings, <span>but this is an only child.</span></span> + </div> +</main></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">main :only-child { + color: red; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Basic_example','100%',180)}}</p> + +<h3 id="Un_exemple_de_llista"><span class="short_text" id="result_box" lang="ca"><span>Un exemple de llista</span></span></h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><ol> + <li>First + <ul> + <li>This list has just one element. + </ul> + </li> + <li>Second + <ul> + <li>This list has three elements. + <li>This list has three elements. + <li>This list has three elements. + </ul> + </li> +<ol> +</pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">li li { + list-style-type: disc; +} +li:only-child { + color: red; + list-style-type: square; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('A_list_example', '100%', 210)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#only-child-pseudo', ':only-child')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#only-child-pseudo', ':only-child')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop(1.8)}}</td> + <td>9</td> + <td>{{CompatOpera(9.5)}}</td> + <td>3.1</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile(1.8)}}</td> + <td>9</td> + <td>{{CompatOperaMobile(10)}}</td> + <td>3.1</td> + </tr> + <tr> + <td>No es requereix cap pare</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(44)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":only-of-type")}}</li> + <li>{{Cssxref(":first-child")}}</li> + <li>{{Cssxref(":last-child")}}</li> + <li>{{Cssxref(":nth-child")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_only-of-type/index.html b/files/ca/web/css/_colon_only-of-type/index.html new file mode 100644 index 0000000000..55dab9d76a --- /dev/null +++ b/files/ca/web/css/_colon_only-of-type/index.html @@ -0,0 +1,142 @@ +--- +title: ':only-of-type' +slug: 'Web/CSS/:only-of-type' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:only-of-type' +--- +<div>{{CSSRef}}</div> + +<p>The <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>:only-of-type</code></strong> <span id="result_box" lang="ca"><span>representa un element que no té germans del mateix tipus.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona cada <p>, però només si és l'únic element <p> dins del seu pare</span></span> */ +p:only-of-type { + background-color: lime; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span class="alt-edited">Com es va definir originalment, l'element seleccionat havia de tenir un pare. A partir dels Selectores Nivell 4, això ja no és necessari.</span></span></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><main> + <div>I am `div` #1.</div> + <p>I am the only `p` among my siblings.</p> + <div>I am `div` #2.</div> + <div>I am `div` #3. + <i>I am the only `i` child.</i> + <em>I am `em` #1.</em> + <em>I am `em` #2.</em> + </div> +</main> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">main :only-of-type { + color: red; +} +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Example','100%',180)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#only-of-type-pseudo', ':only-of-type')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>No es requereix que els elements coincidents tinguin un pare.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#only-of-type-pseudo', ':only-of-type')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>9.0</td> + <td>10.0</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref(":only-child")}}</li> + <li>{{Cssxref(":first-of-type")}}</li> + <li>{{Cssxref(":last-of-type")}}</li> + <li>{{Cssxref(":nth-of-type")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_optional/index.html b/files/ca/web/css/_colon_optional/index.html new file mode 100644 index 0000000000..0437cca6c0 --- /dev/null +++ b/files/ca/web/css/_colon_optional/index.html @@ -0,0 +1,128 @@ +--- +title: ':optional' +slug: 'Web/CSS/:optional' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:optional' +--- +<div>{{ CSSRef }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class </a><a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:optional</code></strong> representa qualsevol element {{HTMLElement("input")}}, {{HTMLElement("select")}} o {{HTMLElement("textarea")}} que no té l'atribut {{ htmlattrxref("required", "input") }} establert en ell.</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol</span></span> <input> opcional */ +input:optional { + border: 1px dashed black; +}</pre> + +<p>Aquesta pseudo-class és útil per als camps d'estil que no són obligatoris per enviar en un formulari.</p> + +<div class="note"> +<p><strong>Nota:</strong> La pseudo-class {{cssxref(":required")}} selecciona els camps de formulari <em>obligatoris</em>.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{ cssxref(":invalid") }} com exemple.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', '#selector-optional', ':optional') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', '#selector-optional', ':optional') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica d'HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#opt-pseudos', ':optional') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Basic UI', '#pseudo-required-value', ':optional') }}</td> + <td>{{ Spec2('CSS3 Basic UI') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>classe,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>10.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("2") }}</td> + <td>10</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.4</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("2") }}</td> + <td>{{ CompatNo() }}</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Altres pseudo-classes relacionades amb la validació: {{ cssxref(":required") }}, {{ cssxref(":invalid") }}, {{ cssxref(":valid") }}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de dades del formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_out-of-range/index.html b/files/ca/web/css/_colon_out-of-range/index.html new file mode 100644 index 0000000000..797063240d --- /dev/null +++ b/files/ca/web/css/_colon_out-of-range/index.html @@ -0,0 +1,158 @@ +--- +title: ':out-of-range' +slug: 'Web/CSS/:out-of-range' +tags: + - CSS + - Layout + - Pseudo-class + - Web +translation_of: 'Web/CSS/:out-of-range' +--- +<div>{{CSSRef}}</div> + +<p>The <a href="/en-US/docs/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class </a><a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:out-of-range</code></strong> representa un element {{htmlelement("input")}} el valor actual del qual està fora dels límits de rang especificats pels atributs {{htmlattrxref("min", "input")}} i {{htmlattrxref("max","input")}}.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol</span></span> <input>, <span id="result_box" lang="ca"><span>però només quan té un rang especificat, i el seu valor està fora d'aquest rang</span></span> */ +input:out-of-range { + background-color: rgba(255, 0, 0, 0.25); +}</pre> + +<p>Aquesta pseudo-class és útil per proporcionar a l'usuari una indicació visual de que el valor actual d'un camp està fora dels límits permesos.</p> + +<div class="note"><strong>Nota:</strong> Aquesta pseudo-class només s'aplica als elements que tenen (i poden prendre) una limitació de rang. A falta d'aquesta limitació, l'element no pot ser "dins del rang" ni "fora de rang".</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<div id="example"> +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><form action="" id="form1"> + <ul>Values between 1 and 10 are valid. + <li> + <input id="value1" name="value1" type="number" placeholder="1 to 10" min="1" max="10" value="12"> + <label for="value1">Your value is </label> + </li> + </ul> +</form></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css;">li { + list-style: none; + margin-bottom: 1em; +} + +input { + border: 1px solid black; +} + +input:in-range { + background-color: rgba(0, 255, 0, 0.25); +} + +input:out-of-range { + background-color: rgba(255, 0, 0, 0.25); + border: 2px solid red; +} + +input:in-range + label::after { + content: 'okay.'; +} + +input:out-of-range + label::after { + content: 'out of range!'; +}</pre> + +<h3 id="Resultat">Resultat</h3> +</div> + +<div>{{EmbedLiveSample('Example', 600, 140)}}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting.html#selector-out-of-range', ':out-of-range')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Defineix quan <code>:out-of-range</code> coincideix en elements HTML.</td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#out-of-range-pseudo', ':out-of-range')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport en <input></td> + <td>10.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("29.0")}}</td> + <td>{{CompatNo()}}</td> + <td>11.0</td> + <td>5.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport en <input></td> + <td>2.3</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}</td> + <td>{{CompatNo()}}</td> + <td>{{CompatVersionUnknown()}}</td> + <td>{{CompatVersionUnknown()}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":in-range")}}</li> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation">Validació de dades del formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_placeholder-shown/index.html b/files/ca/web/css/_colon_placeholder-shown/index.html new file mode 100644 index 0000000000..3c0eeb091b --- /dev/null +++ b/files/ca/web/css/_colon_placeholder-shown/index.html @@ -0,0 +1,166 @@ +--- +title: ':placeholder-shown' +slug: 'Web/CSS/:placeholder-shown' +tags: + - CSS + - Experimental + - Pseudo-class + - Reference +translation_of: 'Web/CSS/:placeholder-shown' +--- +<div>{{CSSRef}}{{SeeCompatTable}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes">pseudo-class </a><a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:placeholder-shown</code></strong> representa qualsevol element {{htmlElement("input")}} o {{htmlElement("textarea")}} que actualment mostra <a href="/en-US/docs/Web/HTML/Element/input#attr-placeholder">text de marcador de posició</a>.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol element amb un marcador de posició actiu</span></span> */ +:placeholder-shown { + border: 2px solid silver; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><input placeholder="Type something here!"></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css; highlight[6]">input { + border: 2px solid black; + padding: 3px; +} + +input:placeholder-shown { + border-color: silver; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample("Basic_example", 200, 60)}}</p> + +<h3 id="Text_desbordat"><span id="result_box" lang="ca"><span>Text desbordat</span></span></h3> + +<p>En pantalles estretes, com ara telèfons intel·ligents, l'amplada de les caixes de cerca i altres camps de formulari es poden reduir dràsticament. Això pot provocar que el text del marcador de posició sigui retallat d'una manera indesitjable. Sovint és útil modificar aquest comportament amb la propietat {{cssxref("text-overflow")}}.</p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><input placeholder="Enter something into this field, if you please!"></pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">input:placeholder-shown { + text-overflow: ellipsis; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample("Overflowing_text", 200, 60)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS4 Selectors", "#placeholder", ":placeholder")}}</td> + <td>{{Spec2("CSS4 Selectors")}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic<br> + (en <code><input type="text"></code>)</td> + <td>{{CompatChrome("47.0")}}</td> + <td>{{CompatGeckoDesktop("51.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatOpera("34.0")}}</td> + <td>{{CompatSafari("9.0")}}</td> + </tr> + <tr> + <td>en <code>type="number"</code>, <code>type="time"</code>, i similars</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic<br> + (en <code><input type="text"></code>)</td> + <td>{{CompatAndroid("51.0")}}</td> + <td>{{CompatGeckoMobile("51.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("9.2")}}</td> + </tr> + <tr> + <td>en <code>type="number"</code>, <code>type="time"</code>, i similars</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Abans de Gecko 51.0 {{geckoRelease("51.0")}}, Gecko va implementar una pseudo-class prefixada <code>-moz</code> anomenada {{cssxref(":-moz-placeholder")}}, que va ser reemplaçada més tard per un pseudo-element {{cssxref("::-moz-placeholder")}}. La pseudo-class estàndard es va implementar en {{bug("1069012")}}.</p> + +<p>[2] S'ha sol·licitat suport per a aquesta pseudo-class a la <a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/12435951--placeholder-shown-css-pseudo-class">pàgina de comentaris del desenvolupador de Microsoft Edge</a>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>El pseudo-element {{cssxref("::placeholder")}} donar estil al marcador de posició <em>a si mateix</em>.</li> + <li><span id="result_box" lang="ca"><span>Elements HTML relacionats</span></span> : {{HTMLElement("input")}}, {{HTMLElement("textarea")}}</li> + <li>{{cssxref(":-moz-placeholder")}}, {{cssxref("::-moz-placeholder")}}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms">Formularis HTML</a></li> +</ul> diff --git a/files/ca/web/css/_colon_read-only/index.html b/files/ca/web/css/_colon_read-only/index.html new file mode 100644 index 0000000000..5db61a8b07 --- /dev/null +++ b/files/ca/web/css/_colon_read-only/index.html @@ -0,0 +1,98 @@ +--- +title: ':read-only' +slug: 'Web/CSS/:read-only' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:read-only' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class </a><a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:read-only</code></strong> <span id="result_box" lang="ca"><span>representa un element (com ara una entrada de text bloquejat) que no és editable per l'usuari.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol element <input> que sigui de només lectura Compatible amb Firefox amb un prefix</span></span> */ +input:-moz-read-only { + background-color: #ccc; +} + +/* <span id="result_box" lang="ca"><span>Compatible amb Blink/WebKit/Edge sense un prefix</span></span> */ +input:read-only { + background-color: #ccc; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span>Aquest selector no només selecciona</span></span> {{htmlElement("input")}}s amb {{htmlattrxref("readonly", "input")}} <span id="result_box" lang="ca"><span>establerts en ells;</span> <span>seleccionarà qualsevol element que no pugui ser editat per l'usuari.</span></span></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="text" value="Type whatever you want here."> +<input type="text" value="This is a read-only field." readonly> +<p>This is a normal paragraph.</p> +<p contenteditable="true">You can edit this paragraph!</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input { min-width: 25em; } +input:-moz-read-only { background: cyan; } +input:read-only { background: cyan; } + +p:-moz-read-only { background: lightgray; } +p:read-only { background: lightgray; } +p[contenteditable="true"] { color: blue; } +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 class="editable" id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', '#selector-read-only', ':read-only') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', '#selector-read-only', ':read-only') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica respecte a l'HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#rw-pseudos', ':read-only') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>classe,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + + + +<p>{{Compat("css.selectors.read-only")}}</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{cssxref(":read-write")}}</li> + <li>Atribut HTML {{htmlattrxref("contenteditable")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_read-write/index.html b/files/ca/web/css/_colon_read-write/index.html new file mode 100644 index 0000000000..434094c2ef --- /dev/null +++ b/files/ca/web/css/_colon_read-write/index.html @@ -0,0 +1,98 @@ +--- +title: ':read-write' +slug: 'Web/CSS/:read-write' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:read-write' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:read-write</code></strong> <span id="result_box" lang="ca"><span>representa un element (com ara una entrada de text) que l'usuari pot editar.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona qualsevol element <input> que sigui editable Compatible amb Firefox amb un prefix</span></span> */ +input:-moz-read-write { + background-color: #bbf; +} + +/* <span id="result_box" lang="ca"><span>Compatible amb Blink / WebKit / Edge sense un prefix</span></span> */ +input:read-write { + background-color: #bbf; +}</pre> + +<div class="note"> +<p><strong>Nota</strong>: Aquest selector no només selecciona el text {{htmlElement("input")}} s; seleccionarà qualsevol element que l'usuari pugui editar, com ara un element {{htmlelement("p")}} amb {{htmlattrxref("contenteditable")}} establert en ell.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="text" value="Type whatever you want here."> +<input type="text" value="This is a read-only field." readonly> +<p>This is a normal paragraph.</p> +<p contenteditable="true">You can edit this paragraph!</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css line-numbers language-css">input { min-width: 25em; } +input:-moz-read-write { background: cyan; } +input:read-write { background: cyan; } + +p:-moz-read-write { background: lightgray; } +p:read-write { background: lightgray; } +p[contenteditable="true"] { color: blue; } +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 class="editable" id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', '#selector-read-write', ':read-write') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', '#selector-read-write', ':read-write') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td><span id="result_box" lang="ca"><span class="alt-edited">Defineix la semàntica respecte a HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#rw-pseudos', ':read-write') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>classe,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + + + +<p>{{Compat("css.selectors.read-write")}}</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{cssxref(":read-only")}}</li> + <li>Atribut HTML {{htmlattrxref("contenteditable")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_required/index.html b/files/ca/web/css/_colon_required/index.html new file mode 100644 index 0000000000..ee1d7cffc5 --- /dev/null +++ b/files/ca/web/css/_colon_required/index.html @@ -0,0 +1,128 @@ +--- +title: ':required' +slug: 'Web/CSS/:required' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:required' +--- +<div>{{ CSSRef }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:required</code></strong> representa qulasevol element {{HTMLElement("input")}}, {{HTMLElement("select")}} o {{HTMLElement("textarea")}} que té l'atribut {{ htmlattrxref("required", "input") }} establert en ell.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <input> requerit */ +input:required { + border: 1px dashed red; +}</pre> + +<p>Aquesta pseudo-class és útil per ressaltar els camps que han de tenir dades vàlides abans de poder enviar un formulari.</p> + +<div class="note"> +<p><strong>Nota:</strong> La classe pseudo-class {{cssxref(":optional")}} selecciona camps de formulari opcionals.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{ cssxref(":invalid") }} com exemple.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', '#selector-required', ':required') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', '#selector-required', ':required') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica respecte a HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#opt-pseudos', ':required') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Basic UI', '#pseudo-required-value', ':required') }}</td> + <td>{{ Spec2('CSS3 Basic UI') }}</td> + <td><span id="result_box" lang="ca"><span>Defineix</span> <span>la</span> <span>pseudo</span><span>-</span><span>classe,</span> <span>però no</span> <span>la semàntica</span> <span>associada.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>10.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("2") }}</td> + <td>10</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.4.4</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("2") }}</td> + <td>{{ CompatNo() }}</td> + <td>10.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Altres pseudo-classes relacionades amb la validació: {{ cssxref(":optional") }}, {{ cssxref(":invalid") }}, {{ cssxref(":valid") }}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de dades del formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_right/index.html b/files/ca/web/css/_colon_right/index.html new file mode 100644 index 0000000000..c0cfce6475 --- /dev/null +++ b/files/ca/web/css/_colon_right/index.html @@ -0,0 +1,124 @@ +--- +title: ':right' +slug: 'Web/CSS/:right' +tags: + - '@page' + - CSS + - Layout + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:right' +--- +<div>{{ CSSRef() }}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:right</code></strong>, usada amb la <a href="/en-US/docs/Web/CSS/At-rule">regla at</a> {{cssxref("@page")}}, representa totes les pàgines de la dreta d'un document imprès.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona les pàgines de la dreta quan imprimiu</span></span> */ +@page :right { + margin: 2in 3in; +}</pre> + +<p>Si una pàgina donada és "esquerra" o "dreta" ve determinada per la direcció principal d'escriptura del document. Per exemple, si la primera pàgina té una direcció d'escriptura principal d'esquerra a dreta llavors serà una pàgina <code>:right</code> si té una direcció d'escriptura principal de dreta a esquerra llavors serà una pàgina {{Cssxref(":left")}}.</p> + +<div class="note"> +<p><strong>Note:</strong> No podeu canviar totes les propietats CSS amb aquesta pseudo-class. Només podeu canviar les propietats {{ Cssxref("margin") }}, {{ Cssxref("padding") }}, {{ Cssxref("border") }} i {{ Cssxref("background") }} del quadre de pàgina. S'ignoraran totes les altres propietats i només es veurà afectat el quadre de pàgina, no el contingut del document de la pàgina.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: css">@page :right { + margin: 2in 3in; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Paged Media', '#left-right-first', ':right') }}</td> + <td>{{ Spec2('CSS3 Paged Media') }}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'page.html#page-selectors', ':right') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatNo() }}</td> + <td>8.0</td> + <td>9.2</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{ Cssxref("@page") }}</li> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres pseudo-classes relacionades amb la pàgina</span></span>: {{ Cssxref(":first") }}, {{ Cssxref(":left") }}</li> +</ul> diff --git a/files/ca/web/css/_colon_root/index.html b/files/ca/web/css/_colon_root/index.html new file mode 100644 index 0000000000..072802e541 --- /dev/null +++ b/files/ca/web/css/_colon_root/index.html @@ -0,0 +1,112 @@ +--- +title: ':root' +slug: 'Web/CSS/:root' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:root' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes"> pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:root</code></strong> coincideix amb l'element arrel de l'arbre que representa el document. En HTML, <code>:root</code> representa l'element {{HTMLElement("html")}} i és idèntic al selector <code>html</code>, excepte que la seva <a href="/en-US/docs/Web/CSS/specificity">Especificitat</a> és més alta.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona l'element arrel del document: <html> en el cas de l'HTML</span></span> */ +:root { + background: yellow; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>El ùs de <code>:root</code> pot ser útil per declarar <a href="/en-US/docs/Web/CSS/Using_CSS_variables">Variables CSS</a> globals:</p> + +<pre class="brush: css">:root { + --main-color: hotpink; + --pane-padding: 5px 42px; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#root-pseudo', ':root')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#root-pseudo', ':root')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>9</td> + <td>9.5</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/_colon_scope/index.html b/files/ca/web/css/_colon_scope/index.html new file mode 100644 index 0000000000..3985aa7d08 --- /dev/null +++ b/files/ca/web/css/_colon_scope/index.html @@ -0,0 +1,146 @@ +--- +title: ':scope' +slug: 'Web/CSS/:scope' +tags: + - CSS + - Experimental + - Layout + - Pseudo-class + - Reference + - Scoped Elements + - Web +translation_of: 'Web/CSS/:scope' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> de <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:scope</code></strong> representa aquells elements que són un punt de referència per tal que els selectors coincideixin.</p> + +<pre class="brush: css">/* <span class="short_text" id="result_box" lang="ca"><span class="alt-edited">Selecciona un element d'àmbit </span></span>*/ +:scope { + background-color: lime; +}</pre> + +<p>Actualment, quan s'utilitza en un full d'estils, <code>:scope</code> és el mateix que {{cssxref(":root")}}, ja que, en aquest moment, no hi ha una manera d'establir explícitament un element amb àmbit. Quan s'utilitza des d'una API DOM com {{domxref("Element.querySelector", "querySelector()")}}, {{domxref("Element.querySelectorAll", "querySelectorAll()")}}, {{domxref("Element.matches", "matches()")}} o {{domxref("Element.closest()")}}, <code>:scope</code> coincideix amb l'element que es va cridar el mètode.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox language-html">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>En aquest exemple senzill, demostrem que l'ús de la pseudo-class <code>:scope</code> del mètode {{domxref("Element.matches()")}} coincideix amb l'element del qual és cridat.</p> + +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush: js">let paragraph = document.getElementById("para"); +let output = document.getElementById("output"); + +if (paragraph.matches(":scope")) { + output.innerText = "Yep, the element is its own scope as expected!"; +}</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p id="para"> + This is a paragraph. It is not an interesting paragraph. Sorry about that. +</p> +<p id="output"></p></pre> + +<h3 id="Resultat">Resultat</h3> + +<div>{{ EmbedLiveSample('Example') }}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#the-scope-pseudo', ':scope') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatGeckoDesktop(20) }}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>15</td> + <td>7.0</td> + </tr> + <tr> + <td>En <code>querySelector()</code> i <code>querySelectorAll()</code></td> + <td>{{ CompatChrome(27) }}</td> + <td>{{CompatGeckoDesktop(32)}}<sup>[1][2]</sup></td> + <td>{{CompatNo}}</td> + <td>15</td> + <td>7.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatGeckoMobile(20) }}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>7.0</td> + </tr> + <tr> + <td>En <code>querySelector()</code> i <code>querySelectorAll()</code></td> + <td>{{ CompatChrome(27) }}</td> + <td>{{CompatGeckoMobile(32)}}<sup>[1][2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>7.0</td> + </tr> + </tbody> +</table> +</div> + +<p>[2] Firefox 20 implementa la pseudo-class <code>:scope</code>, la funció està desactivada per defecte. Per habilitar la funció, estableix la preferència <code>layout.css.scope-pseudo.enabled</code> a <code>true</code>. A partir de Firefox 32, aquest indicador està per defecte a <code>true</code> en les versions de llançament de Firefox ({{bug(528456)}}).</p> + +<p>[3] Gecko 55 (Firefox 55) elimina el suport per a <code><style scoped></code> però <em>no</em> per a la pseudo-class <code>:scope</code>, que encara és compatible. <code><style scoped></code> va fer possible configurar explícitament els àmbits de l'element, però les discussions en curs sobre el disseny d'aquesta característica, així com la manca d'altres implementacions, van donar com a resultat la decisió d'eliminar-lo.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>La <a href="/en-US/docs/Web/CSS/Pseudo-classes" title="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> {{cssxref(":root")}}</li> +</ul> diff --git a/files/ca/web/css/_colon_target/index.html b/files/ca/web/css/_colon_target/index.html new file mode 100644 index 0000000000..07c4b7c27e --- /dev/null +++ b/files/ca/web/css/_colon_target/index.html @@ -0,0 +1,260 @@ +--- +title: ':target' +slug: 'Web/CSS/:target' +tags: + - CSS + - Layout + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:target' +--- +<div>{{CSSRef}}</div> + +<p>La <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:target</code></strong> <span id="result_box" lang="ca"><span>representa un element únic</span></span> (l'<em>element destinació</em>) amb un {{htmlattrxref("id")}} que coincideix amb el fragment de l'URL.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Selecciona un element amb una ID que coincideixi amb el fragment de l'URL actual</span></span> */ +:target { + border: 2px solid black; +}</pre> + +<p>Per exemple, la següent URL té un fragment (indicat pel signe #) que apunta a un element anomenat <code>section2</code>:</p> + +<pre>http://www.example.com/index.html#section2</pre> + +<p>El següent element es seleccionaria amb un selector <code>:target</code> quan l'URL actual fora igual a l'anterior:</p> + +<pre class="brush: html"><section id="section2">Example</section></pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Una_taula_de_continguts"><span id="result_box" lang="ca"><span>Una taula de continguts</span></span></h3> + +<p>La pseudo-class <code>:target</code> es pot utilitzar per ressaltar la part d'una pàgina a la qual s'ha enllaçat des d'una taula de continguts.</p> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><h3>Table of Contents</h3> +<ol> + <li><a href="#p1">Jump to the first paragraph!</a></li> + <li><a href="#p2">Jump to the second paragraph!</a></li> + <li><a href="#nowhere">This link goes nowhere, + because the target doesn't exist.</a></li> +</ol> + +<h3>My Fun Article</h3> +<p id="p1">You can target <i>this paragraph</i> using a + URL fragment. Click on the link above to try out!</p> +<p id="p2">This is <i>another paragraph</i>, also accessible + from the links above. Isn't that delightful?</p> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">p:target { + background-color: gold; +} + +/* Add a pseudo-element inside the target element */ +p:target::before { + font: 70% sans-serif; + content: "►"; + color: limegreen; + margin-right: .25em; +} + +/* Style italic elements within the target element */ +p:target i { + color: red; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('A_table_of_contents', 500, 300)}}</p> + +<h3 id="Pur-CSS_lightbox">Pur-CSS lightbox</h3> + +<p>Podeu utilitzar la pseudo-class <code>:target</code> per crear una caixa de llum ( lightbox) sense utilitzar JavaScript. Aquesta tècnica es basa en la capacitat dels enllaços d'ancoratge per apuntar a elements que estan inicialment ocults a la pàgina. Una vegada seleccionats, el CSS canvia el <code>display</code> perquè es mostrin.</p> + +<div class="note"><strong>Nota:</strong> Podeu obtenir una caixa de llum (lightbox) més completa en pur CSS, basat en la pseudo-class <code>:target</code>, <a href="https://github.com/madmurphy/takefive.css/">disponible en GitHub</a> (<a href="https://madmurphy.github.io/takefive.css/">demo</a>).</div> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><ul> + <li><a href="#example1">Open example #1</a></li> + <li><a href="#example2">Open example #2</a></li> +</ul> + +<div class="lightbox" id="example1"> + <figure> + <a href="#" class="close"></a> + <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Donec felis enim, placerat id eleifend eu, semper vel sem.</figcaption> + </figure> +</div> + +<div class="lightbox" id="example2"> + <figure> + <a href="#" class="close"></a> + <figcaption>Cras risus odio, pharetra nec ultricies et, + mollis ac augue. Nunc et diam quis sapien dignissim auctor. + Quisque quis neque arcu, nec gravida magna.</figcaption> + </figure> +</div></pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">/* Unopened lightbox */ +.lightbox { + display: none; +} + +/* Opened lightbox */ +.lightbox:target { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +/* Lightbox content */ +.lightbox figcaption { + width: 25rem; + position: relative; + padding: 1.5em; + background-color: lightpink; +} + +/* Close button */ +.lightbox .close { + position: relative; + display: block; +} + +.lightbox .close::after { + right: -1rem; + top: -1rem; + width: 2rem; + height: 2rem; + position: absolute; + display: flex; + z-index: 1; + align-items: center; + justify-content: center; + background-color: black; + border-radius: 50%; + color: white; + content: "×"; + cursor: pointer; +} + +/* Lightbox overlay */ +.lightbox .close::before { + left: 0; + top: 0; + width: 100%; + height: 100%; + position: fixed; + background-color: rgba(0,0,0,.7); + content: ""; + cursor: default; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Pure-CSS_lightbox', 500, 220)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName("HTML WHATWG", "browsers.html#selector-target", ":target")}}</td> + <td>{{Spec2("HTML WHATWG")}}</td> + <td>Defineix la semàntica específica d'HTML.</td> + </tr> + <tr> + <td>{{SpecName("CSS4 Selectors", "#the-target-pseudo", ":target")}}</td> + <td>{{Spec2("CSS4 Selectors")}}</td> + <td>Sense canvis.</td> + </tr> + <tr> + <td>{{SpecName("CSS3 Selectors", "#target-pseudo", ":target")}}</td> + <td>{{Spec2("CSS3 Selectors")}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.7 or earlier")}}</td> + <td>9</td> + <td>9.5</td> + <td>1.3</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.7 or earlier")}}</td> + <td>9.0</td> + <td>9.5</td> + <td>2.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Using_the_:target_selector">Usant la pseudo-classe :target en selectors</a></li> +</ul> diff --git a/files/ca/web/css/_colon_valid/index.html b/files/ca/web/css/_colon_valid/index.html new file mode 100644 index 0000000000..4bea8abf18 --- /dev/null +++ b/files/ca/web/css/_colon_valid/index.html @@ -0,0 +1,74 @@ +--- +title: ':valid' +slug: 'Web/CSS/:valid' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:valid' +--- +<div>{{CSSRef}}</div> + +<p>The <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:valid</code></strong> representa qualsevol element {{HTMLElement("input")}} o altre {{HTMLElement("form")}} el contingut del qual es <a href="/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation">valida</a> correctament. Això permet fer, fàcilment, que els camps vàlids adoptin una aparença que ajudi a l'usuari a confirmar que les seves dades estan formatades correctament.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona qualsevol <input> vàlid */ +input:valid { + background-color: powderblue; +}</pre> + +<p>Aquesta pseudo-class és útil per ressaltar els camps correctes per a l'usuari.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>Vegeu {{cssxref(":invalid")}} com exemple.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#selector-valid', ':valid')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', '#selector-valid', ':valid')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix la semàntica respecte a l'HTML i la validació de restriccions.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS4 Selectors', '#validity-pseudos', ':valid')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div> + + +<p>{{Compat("css.selectors.valid")}}</p> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Altres pseudo-classes relacionades amb la validació : {{ cssxref(":required") }}, {{ cssxref(":optional") }}, {{ cssxref(":invalid") }}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms/Form_validation">Validació de dades del formulari</a></li> +</ul> diff --git a/files/ca/web/css/_colon_visited/index.html b/files/ca/web/css/_colon_visited/index.html new file mode 100644 index 0000000000..00b61c6301 --- /dev/null +++ b/files/ca/web/css/_colon_visited/index.html @@ -0,0 +1,178 @@ +--- +title: ':visited' +slug: 'Web/CSS/:visited' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-class + - Reference + - Web +translation_of: 'Web/CSS/:visited' +--- +<div>{{ CSSRef }}</div> + +<p>La <a href="/en/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-class</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>:visited</code></strong> <span id="result_box" lang="ca"><span>representa enllaços que l'usuari ja ha visitat.</span> <span>Per motius de privadesa, els estils que es poden modificar utilitzant aquest selector són molt limitats</span></span></p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona qualsevol <a> que s'hagi visitat</span></span> */ +a:visited { + color: green; +}</pre> + +<p>Els estils definits per la pseudo-class <code>:visited</code> seran anul·lats per qualsevol pseudo-class posterior relacionada amb l'enllaç ({{cssxref(":link")}}, {{cssxref(":hover")}} o {{cssxref(":active")}}) que té com a mínim la mateixa especificitat. Per donar-li un estil apropiat als enllaços, col·loqueu la regla <code>:visited</code> després de la regla <code>:link</code> però abans de <code>:hover</code> i <code>:active</code>, tal com ho defineix l'<em>ordre</em> <em>LVHA</em>: <code>:link</code> — <code>:visited</code> — <code>:hover</code> — <code>:active</code>.</p> + +<h2 id="Restriccions_d'estil">Restriccions d'estil</h2> + +<p>Per motius de privadesa, els navegadors limiten estrictament quins són els estils que es podem aplicar mitjançant aquesta pseudo-class, i com es poden utilitzar:</p> + +<ul> + <li>Les propietats CSS permeses són {{ cssxref("color") }}, {{ cssxref("background-color") }}, {{ cssxref("border-color") }}, {{ cssxref("border-bottom-color") }}, {{ cssxref("border-left-color") }}, {{ cssxref("border-right-color") }}, {{ cssxref("border-top-color") }}, {{ cssxref("column-rule-color") }} i {{ cssxref("outline-color") }}.</li> + <li>Els atributs SVG permesos són {{SVGAttr("fill")}} i {{SVGAttr("stroke")}}.</li> + <li>El component alfa dels estils permesos serà ignorat. En el seu lloc, s'usarà el component alfa de l'estat no <code>:visited</code> de l'element, excepte quan aquest component és <code>0</code>, en aquest cas l'estil establert a <code>:visited</code> serà ignorat completament</li> + <li>Encara que aquests estils poden canviar l'aparença de colors a l'usuari final, el mètode {{domxref ("window.getComputedStyle")}} mentirà i sempre retornarà el valor del color no <code>:visited</code>.</li> +</ul> + +<div class="note"> +<p><strong>Nota:</strong> Per obtenir més informació sobre aquestes limitacions i els motius que hi ha darrere, consulteu <a href="/en-US/docs/CSS/Privacy_and_the_:visited_selector" title="/en-US/docs/CSS/Privacy_and_the_:visited_selector">Privadesa i el selector :visited</a>.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>Les propietats que d'altra manera no tindrien color o serien transparents no es poden modificar amb <code>:visited</code>. De les propietats que es poden establir amb aquesta pseudo-class, probablement el vostre navegador tingui un valor predeterminat només per <code>color</code> i <code>column-rule-color</code>. Per tant, si voleu modificar les altres propietats, haureu de donar-los un valor base fora del selector <code>:visited</code>.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><a href="#test-visited-link">Have you visited this link yet?</a><br> +<a href="">You've already visited this link.</a></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">a { + /* Specify non-transparent defaults to certain properties, + allowing them to be styled with the :visited state */ + background-color: white; + border: 1px solid white; +} + +a:visited { + background-color: yellow; + border-color: hotpink; + color: hotpink; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('HTML WHATWG', 'scripting.html#selector-visited', ':visited') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td> </td> + </tr> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#link', ':visited') }}</td> + <td>{{ Spec2('CSS4 Selectors') }}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#link', ':visited') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'selector.html#link-pseudo-classes', ':visited') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Aixeca la restricció per aplicar solament <code>:visited</code> a l'element {{HTMLElement ("a")}}. Permet als navegadors restringir el seu comportament per raons de privadesa.</td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#anchor-pseudo-classes', ':visited') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1.0") }}</td> + <td>3.5</td> + <td>3.5</td> + <td>1.0</td> + </tr> + <tr> + <td>Restriccions en les propietats CSS permeses en una declaració usant <code>:visited</code></td> + <td>6</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0") }}</td> + <td>8 (or earlier)</td> + <td>{{ CompatUnknown() }}</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.4</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1.0") }}</td> + <td>11</td> + <td>37</td> + <td>9.3</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/CSS/Privacy_and_the_:visited_selector" title="/en-US/docs/CSS/Privacy_and_the_:visited_selector">Privacitat i selector :visited</a></li> + <li>Enllaços relacionats amb les pseudo-classes: {{cssxref(":link")}}, {{cssxref(":active")}} i {{cssxref(":hover")}}.</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-moz-progress-bar/index.html b/files/ca/web/css/_doublecolon_-moz-progress-bar/index.html new file mode 100644 index 0000000000..579c5d5934 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-moz-progress-bar/index.html @@ -0,0 +1,55 @@ +--- +title: '::-moz-progress-bar' +slug: 'Web/CSS/::-moz-progress-bar' +tags: + - CSS + - 'CSS:Mozilla Extensions' + - NeedsCompatTable + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-moz-progress-bar' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-moz-progress-bar</code></strong> és una <a href="/en-US/docs/Web/CSS/Mozilla_Extensions">estensió de Mozilla</a> que representa la barra de progrés dins d'un element {{HTMLElement("progress")}}. (La barra representa la quantitat de progrés que s'ha realitzat).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush:html;"><progress value="30" max="100">30%</progress> +<progress max="100">Indeterminate</progress></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">::-moz-progress-bar { + background-color: red; +} + +/* Force indeterminate bars to have zero width */ +:indeterminate::-moz-progress-bar { + width: 0; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Examples')}}</p> + +<p><span class="short_text" id="result_box" lang="ca"><span>La primera barra des de dalt hauria de ser aix</span></span>í:</p> + +<p><img alt="Custom styled progress bar" class="default internal" src="/@api/deki/files/5387/=redbar.png"></p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{HTMLElement("progress")}}</li> + <li>{{ cssxref("::-ms-fill") }}</li> + <li>{{ cssxref("::-webkit-progress-bar") }}</li> + <li>{{ cssxref("::-webkit-progress-value") }}</li> + <li>{{ cssxref("::-webkit-progress-inner-element") }}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-moz-range-progress/index.html b/files/ca/web/css/_doublecolon_-moz-range-progress/index.html new file mode 100644 index 0000000000..517f19e1fd --- /dev/null +++ b/files/ca/web/css/_doublecolon_-moz-range-progress/index.html @@ -0,0 +1,117 @@ +--- +title: '::-moz-range-progress' +slug: 'Web/CSS/::-moz-range-progress' +tags: + - CSS + - 'CSS:Mozilla Extensions' + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-moz-range-progress' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-moz-range-progress</code></strong> és una <a href="/en-US/docs/Web/CSS/Mozilla_Extensions">extensió de Mozilla</a>, que representa la part inferior de la pista (és a dir, la ranura) en la qual l'indicador es llisca en un {{HTMLElement("input")}} de <code>type="range"</code>. Aquesta part correspon a valors inferiors al valor actualment seleccionat pel <em>polze</em> (és a dir, botó virtual).</p> + +<div class="note"> +<p><strong>Nota:</strong> L'ùs de <code>::-moz-range-progress</code> amb qualsevol cosa que no sigui <code><input type="range"></code> no coincideix amb res i no té cap efecte.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="range" min="0" max="100" step="5" value="50"/> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input[type=range]::-moz-range-progress { + background-color: green; + height: 1em; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 300, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així:</span></span></p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/12041/Screen%20Shot%202015-12-04%20at%2020.14.48.png"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en Gecko.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per Gecko per dissenyar altres parts d'un interval d'entrada: + <ul> + <li>{{cssxref("::-moz-range-thumb")}} representa l'indicador que es llisca a la ranura.</li> + <li>{{cssxref("::-moz-range-track")}} representa la ranura en què es llisca el polze.</li> + </ul> + </li> + <li>Pseudo-elements similars utilitzats per altres navegadors: + <ul> + <li>{{cssxref("::-ms-fill-upper")}}, pseudo-element compatible amb Internet Explorer i Edge.</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: </a> <a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Estil de les entrades de rang compatible entre navegadors amb CSS</a>.</li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts</a>.</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-moz-range-thumb/index.html b/files/ca/web/css/_doublecolon_-moz-range-thumb/index.html new file mode 100644 index 0000000000..dfbfb9f162 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-moz-range-thumb/index.html @@ -0,0 +1,117 @@ +--- +title: '::-moz-range-thumb' +slug: 'Web/CSS/::-moz-range-thumb' +tags: + - CSS + - 'CSS:Mozilla Extensions' + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-moz-range-thumb' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-moz-range-thumb</code></strong> es una <a href="/en-US/docs/Web/CSS/Mozilla_Extensions">extensió de Mozilla</a> que representa el <em>polze</em> (és a dir, botó virtual) d'un {{HTMLElement("input")}} de <code>type="range"</code>. L'usuari pot moure el polze al llarg de la pista d'entrada per canviar el seu valor numèric.</p> + +<div class="note"> +<p><strong>Nota:</strong> L'ùs <code>::-moz-range-thumb</code> amb qualsevol cosa que no sigui <code><input type="range"></code> no coincideix amb res i no té cap efecte.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="range" min="0" max="100" step="5" value="50"/> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input[type=range]::-moz-range-thumb { + background-color: green; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 300, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així</span></span></p> + +<p><img alt="The thumb of the <input type=right> styled in green" src="https://mdn.mozillademos.org/files/12027/Screen%20Shot%202015-12-04%20at%2013.30.08.png"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en Gecko.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per Gecko per dissenyar altres parts d'un interval d'entrada: + <ul> + <li>{{cssxref("::-moz-range-track")}} representa la ranura en què es llisca el polze.</li> + <li>{{cssxref("::-moz-range-progress")}} <span class="short_text" id="result_box" lang="ca"><span>representa la part inferior de la pista.</span></span></li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Pseudo-elements similars utilitzats per altres navegadors</span></span>: + <ul> + <li>{{cssxref("::-webkit-slider-thumb")}}, <span id="result_box" lang="ca"><span>pseudo-element compatible amb</span></span> WebKit i Blink (Safari, Chrome i Opera).</li> + <li>{{cssxref("::-ms-thumb")}}, <span id="result_box" lang="ca"><span>pseudo-element compatible amb</span></span> Internet Explorer i Edge.</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-moz-range-track/index.html b/files/ca/web/css/_doublecolon_-moz-range-track/index.html new file mode 100644 index 0000000000..41ad08a697 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-moz-range-track/index.html @@ -0,0 +1,117 @@ +--- +title: '::-moz-range-track' +slug: 'Web/CSS/::-moz-range-track' +tags: + - CSS + - 'CSS:Mozilla Extensions' + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-moz-range-track' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>The <a href="/en-US/docs/Web/CSS/Pseudo-elements" title="en/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-moz-range-track</code></strong> és una <a href="/en-US/docs/Web/CSS/Mozilla_Extensions">extensió de Mozilla</a> <span id="result_box" lang="ca"><span>que representa la <em>pista</em> (és a dir, la ranura) en què l'indicador es llisca en un</span></span> {{HTMLElement("input")}} de <code>type="range"</code>.</p> + +<div class="note"> +<p><strong>Nota:</strong> L'ùs de <code>::-moz-range-track</code> amb qualsevol cosa que no sigui <code><input type="range"></code> no coincideix amb res i no té cap efecte.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><input type="range" min="0" max="100" step="5" value="50"/> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input[type=range]::-moz-range-track { + background-color: green; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 300, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així:</span></span></p> + +<p><img alt="A range with the track green." src="https://mdn.mozillademos.org/files/11999/Screen%20Shot%202015-12-04%20at%2010.14.34.png"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en Gecko.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per Gecko per dissenyar altres parts d'un interval d'entrada: + <ul> + <li>{{cssxref("::-moz-range-thumb")}} representa l'indicador que es llisca a la ranura.</li> + <li>{{cssxref("::-moz-range-progress")}} <span class="short_text" id="result_box" lang="ca"><span>representa la part inferior de la pista.</span></span></li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Pseudo-elements similars utilitzats per altres navegadors</span></span>: + <ul> + <li>{{cssxref("::-webkit-slider-runnable-track")}}, <span id="result_box" lang="ca"><span>pseudo-element compatible amb</span></span> WebKit i Blink (Safari, Chrome, and Opera)</li> + <li>{{cssxref("::-ms-track")}}, <span id="result_box" lang="ca"><span>pseudo-element compatible amb</span></span> Internet Explorer i Edge</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-ms-fill-lower/index.html b/files/ca/web/css/_doublecolon_-ms-fill-lower/index.html new file mode 100644 index 0000000000..f7f8896483 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-ms-fill-lower/index.html @@ -0,0 +1,91 @@ +--- +title: '::-ms-fill-lower' +slug: 'Web/CSS/::-ms-fill-lower' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Archive/Web/CSS/::-ms-fill-lower' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-ms-fill-lower</code></strong> representa la part de la "pista" (la ranura en la qual llisca l'indicador denominat polze) d'un {{HTMLElement("input")}} de <code>type="range"</code>, que correspon a valors inferiors al valor actualment seleccionat per el polze.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació.</p> + +<p>Microsoft té una <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465745.aspx">descripció en MSDN</a>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Edge</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>Edge</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per l'IE / Edge per donar estil altres parts d'un rang d'entrada: + <ul> + <li>{{cssxref("::-ms-fill-upper")}}</li> + <li>{{cssxref("::-ms-track")}}</li> + <li>{{cssxref("::-ms-thumb")}}</li> + </ul> + </li> + <li>{{cssxref("::-moz-range-progress")}}</li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-ms-fill-upper/index.html b/files/ca/web/css/_doublecolon_-ms-fill-upper/index.html new file mode 100644 index 0000000000..eb28ffc2db --- /dev/null +++ b/files/ca/web/css/_doublecolon_-ms-fill-upper/index.html @@ -0,0 +1,91 @@ +--- +title: '::-ms-fill-upper' +slug: 'Web/CSS/::-ms-fill-upper' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Archive/Web/CSS/::-ms-fill-upper' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-ms-fill-upper</code></strong> representa la part de la "pista" (la ranura en la qual llisca l'indicador denominat polze) d'un {{HTMLElement("input")}} de <code>type="range"</code> , que correspon a valors superiors al valor actualment seleccionat per el polze.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació.</p> + +<p>Microsoft té una <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465745.aspx">descripció en MSDN</a>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Edge</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>Edge</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per l'IE / Edge per donar estil altres parts d'un rang d'entrada: + <ul> + <li>{{cssxref("::-ms-fill-lower")}}</li> + <li>{{cssxref("::-ms-track")}}</li> + <li>{{cssxref("::-ms-thumb")}}</li> + </ul> + </li> + <li>{{cssxref("::-moz-range-progress")}}</li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-ms-fill/index.html b/files/ca/web/css/_doublecolon_-ms-fill/index.html new file mode 100644 index 0000000000..1377611a03 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-ms-fill/index.html @@ -0,0 +1,108 @@ +--- +title: '::-ms-fill' +slug: 'Web/CSS/::-ms-fill' +tags: + - CSS + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Archive/Web/CSS/::-ms-fill' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El<a href="/en-US/docs/Web/CSS/Pseudo-elements" title="en/CSS/Pseudo-elements"> pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::-ms-fill</code></strong> representa la porció emplenada d'un element {{HTMLElement("progress")}}. Aquest pseudo-element no és estàndard i específic de Internet Explorer 10+, d'aquí el prefix del proveidor.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Microsoft té una <a href="https://msdn.microsoft.com/en-us/library/windows/apps/hh465757.aspx">descripció en MSDN</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><progress value="10" max="50"> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">progress::-ms-fill { + background-color: orange; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 300, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així</span></span>:</p> + +<p><img alt="Progress Bar with Orange Fill" src="https://mdn.mozillademos.org/files/13484/progress_bar.png" style="height: 44px; width: 308px;"></p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>10.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{ cssxref("::-moz-progress-bar") }}</li> + <li>{{ cssxref("::-webkit-progress-bar") }}</li> + <li>{{ cssxref("::-webkit-progress-value") }}</li> + <li>{{ cssxref("::-webkit-progress-inner-element") }} + <ul> + </ul> + </li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-ms-thumb/index.html b/files/ca/web/css/_doublecolon_-ms-thumb/index.html new file mode 100644 index 0000000000..fb3bd8e4e5 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-ms-thumb/index.html @@ -0,0 +1,41 @@ +--- +title: '::-ms-thumb' +slug: 'Web/CSS/::-ms-thumb' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsCompatTable + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Archive/Web/CSS/::-ms-thumb' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::-ms-thumb</code></strong> representa el "polze" que l'usuari pot moure dins de la "ranura" d'un {{HTMLElement("input")}} de type="range" per modificar el seu valor numèric.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p><span id="result_box" lang="ca"><span>No forma</span> <span>part de cap</span> <span>especificació,</span> <span>encara que Microsoft</span> <span>té</span> una</span> <a href="https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465780.aspx">descripció en MSDN</a>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Els pseudo-elements utilitzats per l'IE / Edge per donar estil altres parts d'un rang d'entrada: + <ul> + <li>{{cssxref("::-ms-track")}}</li> + <li>{{cssxref("::-ms-fill-upper")}}</li> + <li>{{cssxref("::-ms-fill-lower")}}</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Pseudo</span><span>-</span><span>elements</span> <span>similars</span> <span>utilitzats per altres</span> <span>navegadors</span><span>:</span></span> + <ul> + <li>{{cssxref("::-webkit-slider-thumb")}}</li> + <li>{{cssxref("::-moz-range-thumb")}}</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-ms-track/index.html b/files/ca/web/css/_doublecolon_-ms-track/index.html new file mode 100644 index 0000000000..799efce737 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-ms-track/index.html @@ -0,0 +1,45 @@ +--- +title: '::-ms-track' +slug: 'Web/CSS/::-ms-track' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsCompatTable + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Archive/Web/CSS/::-ms-track' +--- +<div>{{ CSSRef() }}</div> + +<p>{{ Non-standard_header() }}</p> + +<p>El<a href="/en/CSS/Pseudo-elements" title="en/CSS/Pseudo-elements"> pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::-ms-track</code></strong> representa la "pista" (la ranura en la qual llisca l'indicador) d'un {{HTMLElement("input")}} de <code>type="range"</code>.</p> + +<h2 id="Specification" name="Specification">Especificacions</h2> + +<p><span id="result_box" lang="ca"><span>No forma</span> <span>part de cap</span> <span>especificació</span></span>.</p> + +<p><span id="result_box" lang="ca"><span>Microsoft</span> <span>té</span> una</span> <a href="https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465780.aspx">descripció en MSDN</a> .</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>Els pseudo-elements utilitzats per l'IE / Edge per donar estil altres parts d'un rang d'entrada + <ul> + <li>{{cssxref("::-ms-thumb")}}</li> + <li>{{cssxref("::-ms-fill-upper")}}</li> + <li>{{cssxref("::-ms-fill-lower")}}</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Pseudo</span><span>-</span><span>elements</span> <span>similars</span> <span>utilitzats per altres</span> <span>navegadors</span><span>:</span></span> + <ul> + <li>{{cssxref("::-webkit-slider-runnable-track")}}</li> + <li>{{cssxref("::-moz-range-track")}}</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-webkit-progress-bar/index.html b/files/ca/web/css/_doublecolon_-webkit-progress-bar/index.html new file mode 100644 index 0000000000..fc18f805e2 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-webkit-progress-bar/index.html @@ -0,0 +1,110 @@ +--- +title: '::-webkit-progress-bar' +slug: 'Web/CSS/::-webkit-progress-bar' +tags: + - CSS + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-webkit-progress-bar' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-webkit-progress-bar</code></strong> representa la barra sencere d'un element {{HTMLElement("progress")}}. Normalment només és visible la part no emplenada de la barra, ja que de forma predeterminada es processa a continuació el pseudo-element {{ cssxref("::-webkit-progress-value") }}. És un fill del pseudo-element {{cssxref("::-webkit-progress-inner-element")}} i el pare del pseudo-element {{cssxref("::-webkit-progress-value")}}.</p> + +<div class="note"> +<p><strong>Nota:</strong> Perquè <code>::-webkit-progress-value</code> tingui efecte, {{cssxref("-webkit-appearance")}} <span id="result_box" lang="ca"><span>s'ha d'establir a</span></span> <code>none</code> en l'element <code><progress></code>.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en WebKit/Blink.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="Contingut_CSS">Contingut CSS</h3> + +<pre class="brush: css">progress { + -webkit-appearance: none; +} + +::-webkit-progress-bar { + background-color: orange; +} +</pre> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><progress value="10" max="50"> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 200, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així</span></span> :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13488/progress-bar.png" style="height: 43px; width: 194px;"></p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Pseudo-elements utilitzats per WebKit/Blink per donar estil a altres parts d'un element {{HTMLElement("progress")}}: + <ul> + <li>{{ cssxref("::-webkit-progress-value") }}</li> + <li>{{ cssxref("::-webkit-progress-inner-element") }}</li> + </ul> + </li> + <li>{{ cssxref("::-moz-progress-bar") }}</li> + <li>{{ cssxref("::-ms-fill") }}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-webkit-progress-value/index.html b/files/ca/web/css/_doublecolon_-webkit-progress-value/index.html new file mode 100644 index 0000000000..95235bb4cc --- /dev/null +++ b/files/ca/web/css/_doublecolon_-webkit-progress-value/index.html @@ -0,0 +1,109 @@ +--- +title: '::-webkit-progress-value' +slug: 'Web/CSS/::-webkit-progress-value' +tags: + - CSS + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-webkit-progress-value' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::-webkit-progress-value</code></strong> representa la part emplenada de la barra d'un element {{HTMLElement("progress")}}. És un fill del pseudo-element {{cssxref("::-webkit-progress-bar")}}.</p> + +<div class="note"> +<p><strong>Nota:</strong> Per tal de permetre que <code>::-webkit-progress-value</code> tingui efecte, {{cssxref("-webkit-appearance")}} necessita ser ajustat a none en l'element <code><progress></code>.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en WebKit/Blink.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><progress value="10" max="50"> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">progress { + -webkit-appearance: none; +} + +::-webkit-progress-value { + background-color: orange; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 200, 50)}}</p> + +<p><span id="result_box" lang="ca"><span>Una barra de progrés que utilitzi aquest estil pot semblar una cosa així</span></span> :</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/13490/progress-value.png" style="height: 60px; width: 249px;"></p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Els pseudo-elements utilitzats per WebKit/Blink per donar estil a altres parts d'un element {{HTMLElement("progress")}}: + <ul> + <li>{{ cssxref("::-webkit-progress-bar") }}</li> + <li>{{ cssxref("::-webkit-progress-inner-element") }}</li> + </ul> + </li> + <li>{{ cssxref("::-moz-progress-bar") }}</li> + <li>{{ cssxref("::-ms-fill") }}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-webkit-slider-runnable-track/index.html b/files/ca/web/css/_doublecolon_-webkit-slider-runnable-track/index.html new file mode 100644 index 0000000000..e6797248cf --- /dev/null +++ b/files/ca/web/css/_doublecolon_-webkit-slider-runnable-track/index.html @@ -0,0 +1,35 @@ +--- +title: '::-webkit-slider-runnable-track' +slug: 'Web/CSS/::-webkit-slider-runnable-track' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsCompatTable + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::-webkit-slider-runnable-track' +--- +<div>{{ CSSRef() }} {{ Non-standard_header() }}</div> + +<p>El <a href="/en/CSS/Pseudo-elements" title="en/CSS/Pseudo-elements">pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::-webkit-slider-runnable-track</code></strong> representa la "pista" (la ranura en la qual llisca l'indicador) d'un {{HTMLElement("input")}} de<code> type="range"</code>.</p> + +<h2 id="Specification" name="Specification">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en WebKit/Blink.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{cssxref("::-webkit-slider-thumb")}}</li> + <li><span id="result_box" lang="ca"><span>Pseudo</span><span>-</span><span>elements</span> <span>similars</span>, <span>utilitzats per altres</span> <span>navegador:</span></span> + <ul> + <li>{{cssxref("::-ms-track")}}</li> + <li>{{cssxref("::-moz-range-track")}}</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_-webkit-slider-thumb/index.html b/files/ca/web/css/_doublecolon_-webkit-slider-thumb/index.html new file mode 100644 index 0000000000..0efff168d2 --- /dev/null +++ b/files/ca/web/css/_doublecolon_-webkit-slider-thumb/index.html @@ -0,0 +1,34 @@ +--- +title: '::-webkit-slider-thumb' +slug: 'Web/CSS/::-webkit-slider-thumb' +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsCompatTable + - NeedsExample + - NeedsMobileBrowserCompatibility + - Non-standard + - Reference +translation_of: 'Web/CSS/::-webkit-slider-thumb' +--- +<div>{{CSSRef}}{{Non-standard_header}}</div> + +<p>El<a href="/en-US/docs/Web/CSS/Pseudo-elements"> pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::-webkit-slider-thumb</code></strong> representa el "polze" que l'usuari pot moure dins de la "ranura" d'un {{HTMLElement("input")}} de <code>type="range"</code> per modificar el seu valor numèric.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Es tracta d'un pseudo-element propietari, específic en WebKit/Blink.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref("::-webkit-slider-runnable-track")}}</li> + <li><span id="result_box" lang="ca"><span>Pseudo</span><span>-</span><span>elements</span> <span>similars</span>, <span>utilitzats per altres</span> <span>navegadors</span></span> + <ul> + <li>{{cssxref("::-moz-range-thumb")}}</li> + <li>{{cssxref("::-ms-thumb")}}</li> + </ul> + </li> + <li><a href="https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/">Trucs CSS: Estil de les entrades de rang compatible entre navegadors amb CSS.</a></li> + <li><a href="http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html">QuirksMode: Controls lliscants disseny i scripts.</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_after/index.html b/files/ca/web/css/_doublecolon_after/index.html new file mode 100644 index 0000000000..95161d7f25 --- /dev/null +++ b/files/ca/web/css/_doublecolon_after/index.html @@ -0,0 +1,260 @@ +--- +title: '::after (:after)' +slug: 'Web/CSS/::after' +tags: + - CSS + - Layout + - Pseudo-element + - Reference + - Web +translation_of: 'Web/CSS/::after' +--- +<div>{{CSSRef}}</div> + +<p><span class="seoSummary">En <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a>, <strong><code>::after</code></strong> crea un <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> </span>que és l'últim fill de l'element seleccionat. Sovint s'utilitza per afegir contingut cosmètic a un element amb la propietat<span class="seoSummary">{{cssxref("content")}}.</span> Està integrat per defecte.</p> + +<pre class="brush: css no-line-numbers language-css"><code class="language-css"><span class="comment token">/* </span></code>Afegeix una fletxa després d'enllaços<code class="language-css"><span class="comment token"> */</span> +<span class="selector token">a<span class="pseudo-class token">::after</span> </span><span class="punctuation token">{</span> + <span class="property token">content: "</span></code>→<code class="language-css"><span class="property token">";</span> +<span class="punctuation token">}</span></code></pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<div class="note"> +<p>CSS3 va introduir la notació de <code>::after</code> ( amb dos caràcters de dos punts ) per distingir les <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes</a> dels <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-elements</a>. Els navegadors també accepten <code>:after</code>, introduït en CSS2.</p> +</div> + +<h2 id="Consideracions">Consideracions</h2> + +<p>Els pseudo-elements generats per <code>::before</code> i <code>::after</code> estan <a href="https://www.w3.org/TR/CSS2/generate.html#before-after-content">continguts per la caixa de formatació de l'element</a> i, per tant <code>::before</code> i <code>::after</code> no s'apliquen als <a href="https://www.w3.org/TR/2009/CR-CSS2-20090908/conform.html#replaced-element">elements reemplaçats</a> com <code>img</code>, or a elements <code>br</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Ùs_senzill">Ùs senzill</h3> + +<p>Crearem dues classes: una per als paràgrafs boring i un per als exciting. Marcarem cada paràgraf afegint un pseudo-element al final del mateix.</p> + +<pre class="brush: html"><p class="boring-text">Here is some plain old boring text.</p> +<p>Here is some normal text that is neither boring nor exciting.</p> +<p class="exciting-text">Contributing to MDN is easy and fun. +Just hit the edit button to add new live samples, or improve existing samples.</p></pre> + +<pre class="brush: css">.exciting-text::after { + content: "<- now this *is* exciting!"; + color: green; +} + +.boring-text::after { + content: "<- BORING!"; + color: red; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Simple_usage', 500, 150)}}</p> + +<h3 id="Exemple_decoratiu">Exemple decoratiu</h3> + +<p>Podem donar estil de text o imatges en la propietat {{cssxref("content")}} gairebé de qualsevol manera que vulguem.</p> + +<pre class="brush: html"><span class="ribbon">Notice where the orange box is.</span></pre> + +<pre class="brush: css">.ribbon { + background-color: #5BC8F7; +} + +.ribbon::after { + content: "Look at this orange box."; + background-color: #FFBA10; + border-color: black; + border-style: dotted; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Decorative_example', 450, 20)}}</p> + +<h3 id="Tooltips">Tooltips</h3> + +<p>El següent exemple mostra l'ús del <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <code>::after</code> en conjunció amb l'expressió CSS <a href="/en-US/docs/Web/CSS/attr"><code>attr()</code></a> i un <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-dataset">atribut de dades personalitzades</a> <code>data-descr</code> per crear un <em>tooltip</em> en pur CSS, similar al glossari. Feu clic en la vista prèvia en viu o vegeu aquest exemple en una <a href="https://developer.mozilla.org/files/4591/css-only_tooltips.html">pàgina apart.</a></p> + +<pre class="brush: html"><p>Here is the live example of the above code.<br /> + We have some <span data-descr="collection of words and punctuation">text</span> here with a few + <span data-descr="small popups which also hide again">tooltips</span>.<br /> + Don't be shy, hover over to take a <span data-descr="not to be taken literally">look</span>. +</p> +</pre> + +<pre class="brush: css">span[data-descr] { + position: relative; + text-decoration: underline; + color: #00F; + cursor: help; +} + +span[data-descr]:hover::after { + content: attr(data-descr); + position: absolute; + left: 0; + top: 24px; + min-width: 200px; + border: 1px #aaaaaa solid; + border-radius: 10px; + background-color: #ffffcc; + padding: 12px; + color: #000000; + font-size: 14px; + z-index: 1; +}</pre> + +<h4 id="Resultat_3">Resultat</h4> + +<p>{{EmbedLiveSample('Tooltips', 450, 120)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Pseudo-Elements', '#selectordef-after', '::after')}}</td> + <td>{{Spec2('CSS4 Pseudo-Elements')}}</td> + <td><span id="result_box" lang="ca"><span>No hi ha canvis</span> <span>significatius</span> <span>en l'especificació</span> <span>anterior.</span></span></td> + </tr> + <tr> + <td>{{Specname("CSS3 Transitions", "#animatable-properties", "transitions on pseudo-element properties")}}</td> + <td>{{Spec2("CSS3 Transitions")}}</td> + <td>Permet transicions en les propietats definides en els pseudo-elements.</td> + </tr> + <tr> + <td>{{Specname("CSS3 Animations", "", "animations on pseudo-element properties")}}</td> + <td>{{Spec2("CSS3 Animations")}}</td> + <td>Permet animacions en les propietats definides en els pseudo-elements.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#gen-content', '::after')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Introdueix la</span> <span>sintaxi</span> <span>de </span></span> dos caràcters de dos punts <span class="short_text" lang="ca"><span>.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'generate.html#before-after-content', '::after')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial, utilitzant la sintaxi d'un caràcter de dos punts.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>suport <code>:after</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}[1]</td> + <td>8.0</td> + <td>{{CompatOpera("4")}}</td> + <td>4.0</td> + </tr> + <tr> + <td>suport <code>::after</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}[1]</td> + <td>9.0</td> + <td>{{CompatOpera("7")}}</td> + <td>4.0</td> + </tr> + <tr> + <td>Suport d'animacions i transicions</td> + <td>26</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>suport <code>:after</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>suport <code>::after</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Suport d'animacions i transicions</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("4.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Firefox anterior a la versió 3.5 només implementa la versió CSS 2.0 de <code>:after</code>. No es permet {{cssxref("position")}}, {{cssxref("float")}}, <code>list-style-*</code> i algunes propietats de pantalla. Firefox 3.5 elimina aquestes restriccions.</p> + +<h3 id="Notes_de_Quantum_CSS">Notes de Quantum CSS</h3> + +<ul> + <li>Gecko té un error pel qual els pseudo-elements {{cssxref("::before")}} i <code>::after</code> se segueixen generant fins i tot si el valor de la propietat {{cssxref("content")}} està establert a <code>normal</code> o <code>none</code>. Segons les especificacions, no hauria de ser ({{bug(1387931)}}). Això s'ha solucionat en el nou motor CSS paral·lel de Firefox (també conegut com <a href="https://wiki.mozilla.org/Quantum">Quantum CSS</a> o <a href="https://wiki.mozilla.org/Quantum/Stylo">Stylo</a>, + + <p>planificat per al seu llançament en Firefox 57).</p> + </li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref("::before")}}, {{cssxref("content")}}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_backdrop/index.html b/files/ca/web/css/_doublecolon_backdrop/index.html new file mode 100644 index 0000000000..dccf033dee --- /dev/null +++ b/files/ca/web/css/_doublecolon_backdrop/index.html @@ -0,0 +1,143 @@ +--- +title: '::backdrop' +slug: 'Web/CSS/::backdrop' +tags: + - CSS + - Full-screen + - Layout + - NeedsContent + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::backdrop' +--- +<div>{{CSSRef}} {{SeeCompatTable}}</div> + +<p>El {{Cssxref("pseudo-elements", "pseudo-element")}} <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::backdrop</code></strong> és una caixa situada immediatament per sota d'un element visualitzat en mode de <a href="/en-US/docs/Web/API/Fullscreen_API">pantalla completa</a> (i per sobre de qualsevol element inferior de la pila). Els elements de pantalla completa formen part de la pila de la <a href="https://fullscreen.spec.whatwg.org/#top-layer">capa superior</a>, és a dir, es representen davant de qualsevol altre contingut.</p> + +<pre class="brush: css no-line-numbers">dialog::backdrop { + background: rgba(255,0,0,.25); +}</pre> + +<p>El pseudo-element <code>::backdrop</code> es pot utilitzar per donar estil o ocultar el document subjacent d'un element que es mostra a pantalla completa.</p> + +<p><code>::backdrop</code> no hereta de cap element i no és hereditari. No es fa cap restricció sobre quines propietats s'apliquen a aquest pseudo-element.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fullscreen', '#::backdrop-pseudo-element', '::backdrop')}}</td> + <td>{{Spec2('Fullscreen')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>32.0 {{property_prefix("webkit")}}<br> + 37.0</td> + <td>{{CompatVersionUnknown}}{{property_prefix("ms")}}</td> + <td>{{CompatGeckoDesktop("47")}} <sup>[1]</sup></td> + <td>11 {{property_prefix("ms")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>en <code><dialog></code></td> + <td>32.0 {{property_prefix("webkit")}}<br> + 37.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>en fullscreen</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}{{property_prefix("ms")}}</td> + <td>{{CompatGeckoDesktop("47")}} <sup>[1]</sup></td> + <td>11 {{property_prefix("ms")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}{{property_prefix("ms")}}</td> + <td>{{CompatGeckoMobile("47")}} <sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>en <code><dialog></code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>en fullscreen</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}{{property_prefix("ms")}}</td> + <td>{{CompatGeckoMobile("47")}} <sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] See {{bug(1064843)}}</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref(":fullscreen")}}</li> + <li>{{HTMLElement("dialog")}}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_before/index.html b/files/ca/web/css/_doublecolon_before/index.html new file mode 100644 index 0000000000..ad7738d6f5 --- /dev/null +++ b/files/ca/web/css/_doublecolon_before/index.html @@ -0,0 +1,329 @@ +--- +title: '::before (:before)' +slug: 'Web/CSS/::before' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-element + - Reference + - Web +translation_of: 'Web/CSS/::before' +--- +<div>{{CSSRef}}</div> + +<p>En <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a>, <strong><code>::before</code></strong> crea un <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> que és el primer fill de l'element seleccionat. Sovint s'utilitza per afegir contingut cosmètic a un element amb la propietat {{cssxref("content")}}. Està integrat per defecte.</p> + +<pre class="brush: css"><code class="language-css"><span class="comment token">/* Add a heart before links */</span> +<span class="selector token">a<span class="pseudo-class token">::before</span> </span><span class="punctuation token">{ +</span> <span class="property token">content: "</span></code>♥<code class="language-css"><span class="property token">";</span> +<span class="punctuation token">}</span></code></pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<div class="note"> +<p>CSS3 va introduir la notació de <code>::before</code> ( de dos caràcters de dos punts ) per distingir les <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes</a> dels <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-elements</a>. Els navegadors també accepten <code>:before</code>, introduït en CSS2.</p> +</div> + +<h2 id="Consideracions">Consideracions</h2> + +<p>Els pseudo-elements generats per <code>::before</code> i <code>::after</code> estan <a class="external external-icon" href="https://www.w3.org/TR/CSS2/generate.html#before-after-content">continguts per la caixa de formatació de l'element</a> i, per tant <code>::before</code> i <code>::after</code> no s'apliquen als <a class="external external-icon" href="https://www.w3.org/TR/2009/CR-CSS2-20090908/conform.html#replaced-element">elements reemplaçats</a> com <code>img</code>, or a elements <code>br</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Afegint_cometes"><span class="short_text" id="result_box" lang="ca"><span>Afegint</span> <span>cometes</span></span></h3> + +<p>Un exemple senzill de l'ús del pseudo-element <code>::before</code> és proporcionar cometes. Aquí s'utilitza tant <code>::before</code> com <code>{{Cssxref("::after")}}</code> per a inserir caràcters cometes.</p> + +<h4 id="Contingut_HTML">Contingut HTML</h4> + +<pre class="brush:html"><q>Some quotes</q>, he said, <q>are better than none</q>.</pre> + +<h4 id="Contingut_CSS">Contingut CSS</h4> + +<pre class="brush:css">q::before { + content: "«"; + color: blue; +} +q::after { + content: "»"; + color: red; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Adding_quotation_marks', '500', '50', '')}}</p> + +<h3 id="Exemple_Decorativu">Exemple Decorativu</h3> + +<p>Podem donar estil de text o imatges en la propietat {{cssxref("content")}} gairebé de qualsevol manera que vulguem.</p> + +<h4 id="Contingut_HTML_2">Contingut HTML</h4> + +<pre class="brush: html"><span class="ribbon">Notice where the orange box is.</span></pre> + +<h4 id="Contingut_CSS_2">Contingut CSS</h4> + +<pre class="brush: css">.ribbon { + background-color: #5BC8F7; +} + +.ribbon::before { + content: "Look at this orange box."; + background-color: #FFBA10; + border-color: black; + border-style: dotted; +}</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Decorative_example', 450, 60)}}</p> + +<h3 id="Llista_de_tasques"><span id="result_box" lang="ca"><span>Llista de tasques</span></span></h3> + +<p><span id="result_box" lang="ca"><span>En aquest</span> <span>exemple</span> <span>crearem</span> <span>una senzilla</span> <span>llista</span> <span>de tasques</span> <span>utilitzant</span> <span>pseudo</span><span>-</span><span>elements.</span> <span>Aquest</span> <span>mètode sovint</span> <span>es</span> <span>pot utilitzar</span> <span>per afegir</span> <span>petits</span> <span>tocs</span> <span>a</span> <span>la interfície</span> <span>d'usuari i</span> <span>millorar</span> <span>l'experiència de l'</span><span>usuari.</span></span></p> + +<h4 id="Contingut_HTML_3">Contingut HTML</h4> + +<pre class="brush: html"><ul> + <li>Buy milk</li> + <li>Take the dog for a walk</li> + <li>Exercise</li> + <li>Write code</li> + <li>Play music</li> + <li>Relax</li> +</ul> +</pre> + +<h4 id="Contingut_CSS_3">Contingut CSS</h4> + +<pre class="brush: css">li { + list-style-type: none; + position: relative; + margin: 2px; + padding: 0.5em 0.5em 0.5em 2em; + background: lightgrey; + font-family: sans-serif; +} + +li.done { + background: #CCFF99; +} + +li.done::before { + content: ''; + position: absolute; + border-color: #009933; + border-style: solid; + border-width: 0 0.3em 0.25em 0; + height: 1em; + top: 1.3em; + left: 0.6em; + margin-top: -1em; + transform: rotate(45deg); + width: 0.5em; +}</pre> + +<h4 id="Contingut_JavaScript">Contingut JavaScript</h4> + +<pre class="brush: js">var list = document.querySelector('ul'); +list.addEventListener('click', function(ev) { + if( ev.target.tagName === 'LI') { + ev.target.classList.toggle('done'); + } +}, false); +</pre> + +<p>Aquí està l'exemple del codi anterior executat en directe. Recordeu que no s'han utilitzat icones , i la marca de verificació és en realitat el <code>::before</code> que s'ha donat estil amb CSS. Seguiu endavant i aconseguiu algunes coses per fer.</p> + +<h4 id="Resultat_3">Resultat</h4> + +<p>{{EmbedLiveSample('To-do_list', 400, 300)}}</p> + +<h2 id="Notes">Notes</h2> + +<p>Encara que el posicionament fix en Firefox 3.5 no permet contingut generat per separat com un germà anterior (segons <a class="external" href="http://www.w3.org/TR/CSS21/generate.html#before-after-content">l'especificació CSS</a> afirma que "Els pseudo-elements :before i :after, son elements que interactuen amb altres caixes ... com si fossin veritables elements inserits dins del seu element associat."), poden ser usats per a proporcionar una lleugera millora en els dissenys sense taules (per exemple, per aconseguir el centrat), sempre que el contingut que es centri estigui embolicat en un fill, una columna abans i després que el contingut pugui ser introduït sense afegir un germà anterior o següent (és a dir, és potser més semànticament correcta afegir un span addicional com s'indica a continuació, del que seria afegir un element <div /> abans i després). (I recordeu sempre afegir un width a un float, ja que, altrament, no surarà!).</p> + +<h4 id="Contingut_HTML_4">Contingut HTML</h4> + +<pre class="brush: html"><div class="example"> +<span id="floatme">"Floated Before" should be generated on the left of the +viewport and not allow overflow in this line to flow under it. Likewise +should "Floated After" appear on the right of the viewport and not allow this +line to flow under it.</span> +</div></pre> + +<h4 id="Contingut_CSS_4">Contingut CSS</h4> + +<pre class="brush: css">#floatme { float: left; width: 50%; } + +/* To get an empty column, just indicate a hex code for a non-breaking space: \a0 as the content (use \0000a0 when following such a space with other characters) */ +.example::before { + content: "Floated Before"; + float: left; + width: 25% +} +.example::after { + content: "Floated After"; + float: right; + width:25% +} + +/* For styling */ +.example::before, .example::after, .first { + background: yellow; + color: red; +}</pre> + +<h4 id="Resultat_4">Resultat</h4> + +<p>{{EmbedLiveSample("Notes")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Pseudo-Elements', '#selectordef-before', '::before')}}</td> + <td>{{Spec2('CSS4 Pseudo-Elements')}}</td> + <td><span id="result_box" lang="ca"><span>No hi ha canvis</span> <span>significatius</span> <span>en l'especificació</span> <span>anterior.</span></span></td> + </tr> + <tr> + <td>{{Specname("CSS3 Transitions", "#animatable-properties", "")}}</td> + <td>{{Spec2("CSS3 Transitions")}}</td> + <td>Permet transicions en les propietats definides en els pseudo-elements.</td> + </tr> + <tr> + <td>{{Specname("CSS3 Animations", "", "")}}</td> + <td>{{Spec2("CSS3 Animations")}}</td> + <td>Permet animacions en les propietats definides en els pseudo-elements.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#gen-content', '::before')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Introdueix la</span> <span>sintaxi</span> </span> de dos caràcters de dos punts <span class="short_text" lang="ca"><span>.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'generate.html#before-after-content', '::before')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial, utilitzant la sintaxi d'un caràcter de dos punts .</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport <code>:before</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup>[1]</sup></td> + <td>8.0</td> + <td>{{CompatOpera("4")}}</td> + <td>4.0</td> + </tr> + <tr> + <td>Suport <code>::before</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}<sup>[1]</sup></td> + <td>9.0</td> + <td>{{CompatOpera("7")}}</td> + <td>4.0</td> + </tr> + <tr> + <td>Suport d'animacions i transicions</td> + <td>26</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport <code>:before</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Suport <code>::before</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>7.1</td> + <td>{{CompatUnknown}}</td> + <td>5.1</td> + </tr> + <tr> + <td>Suport d'animacions i transicions</td> + <td>26</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("4.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Firefox anterior a la versió 3.5 només implementa la versió CSS 2.0 de :before. No es permet {{cssxref("position")}}, {{cssxref("float")}}, <code>list-style-*</code> i algunes propietats de pantalla. Firefox 3.5 elimina aquestes restriccions.</p> + +<h3 id="Quantum_CSS_notes">Quantum CSS notes</h3> + +<ul> + <li>Gecko té un error pel qual els pseudo-elements <a href="https://developer.mozilla.org/ca/docs/Web/CSS/::before" title="::before crea un pseudo-element que és el primer fill de l'element coincident. Sovint s'utilitza per afegir contingut cosmètic a un element mitjançant l'ús de la propietat content. Aquest element per defecte és en línia (inline)."><code>::before</code></a> i <code>::after</code> se segueixen generant fins i tot si el valor de la propietat <a class="new" href="https://developer.mozilla.org/ca/docs/Web/CSS/content" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>content</code></a> està establert a <code>normal</code> o <code>none</code>. Segons les especificacions, no hauria de ser (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1387931" title="Don't generate pseudo elements for ::before and ::after if content property is 'none' or 'normal'">errada 1387931</a>). Això s'ha solucionat en el nou motor CSS paral·lel de Firefox (també conegut com <a class="external external-icon" href="https://wiki.mozilla.org/Quantum">Quantum CSS</a> o <a class="external external-icon" href="https://wiki.mozilla.org/Quantum/Stylo">Stylo</a>, planificat per al seu llançament en Firefox 57).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{Cssxref("::after")}}, {{cssxref("content")}}</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_cue/index.html b/files/ca/web/css/_doublecolon_cue/index.html new file mode 100644 index 0000000000..3c1265334b --- /dev/null +++ b/files/ca/web/css/_doublecolon_cue/index.html @@ -0,0 +1,78 @@ +--- +title: '::cue (:cue)' +slug: 'Web/CSS/::cue' +tags: + - '::cue' + - CSS + - Media + - Pseudo-element + - Reference + - Web Video Text Tracks + - WebVTT + - cue +translation_of: 'Web/CSS/::cue' +--- +<div>{{CSSRef}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::cue</code></strong> coincideix amb senyals de <a href="/en-US/docs/Web/API/WebVTT_API">WebVTT</a> dins d'un element seleccionat. Això es pot usar per donar <a href="https://developer.mozilla.org/docs/Web/API/WebVTT_API#Styling_WebTT_cues">estil als títols i altres senyals</a> en els medis amb pistes VTT.</p> + +<p>Només un petit subconjunt de propietats CSS es pot utilitzar amb el pseudo-element <code>::cue</code>:</p> + +<ul> + <li>{{cssxref("color")}}</li> + <li>{{cssxref("opacity")}}</li> + <li>{{cssxref("visibility")}}</li> + <li>{{cssxref("text-decoration")}} <span class="short_text" id="result_box" lang="ca"><span>i les seves propietats no abreujades</span></span>: {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-color")}} i {{cssxref("text-decoration-style")}}</li> + <li>{{cssxref("text-shadow")}}</li> + <li>{{cssxref("background")}} <span class="short_text" id="result_box" lang="ca"><span>i les seves propietats no abreujades</span></span>: {{Cssxref("background-color")}}, {{cssxref("background-clip")}}, {{Cssxref("background-image")}}, {{cssxref("background-origin")}}, {{Cssxref("background-position")}}, {{Cssxref("background-repeat")}}, {{cssxref("background-size")}}, {{Cssxref("background-attachment")}} i {{cssxref("background-blend-mode")}}</li> + <li>{{cssxref("outline")}} <span class="short_text" id="result_box" lang="ca"><span>i les seves propietats no abreujades</span></span>: {{cssxref("outline-color")}}, {{cssxref("outline-style")}}, {{cssxref("outline-width")}}</li> + <li>{{Cssxref("font")}} <span class="short_text" id="result_box" lang="ca"><span>i les seves propietats no abreujades</span></span>: {{cssxref("font-kerning")}}, {{Cssxref("font-style")}}, {{Cssxref("font-variant")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-position")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}}, {{cssxref("font-synthesis")}}, {{cssxref("font-feature-settings")}}, {{cssxref("font-language-override")}}, {{Cssxref("font-weight")}}, {{Cssxref("font-size")}}, {{cssxref("font-size-adjust")}}, {{cssxref("font-stretch")}} i {{Cssxref("font-family")}}</li> + <li>{{cssxref("line-height")}}</li> + <li>{{cssxref("white-space")}}</li> + <li>{{cssxref("text-combine-upright")}}</li> + <li>{{cssxref("ruby-position")}}</li> +</ul> + +<p>Les propietats s'apliquen a tot el conjunt de senyals com si fossin una sola unitat. L'única excepció és que el <code>background</code> i les propietats abreujades s'apliquen a cada senyal individualment, per evitar la creació de caixes i que ocultin inesperadament grans àrees dels medis</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<p>El següent CSS estableix l'estil de <code>cue</code> perquè el text sigui blanc i el fons sigui una caixa negra translúcida.</p> + +<pre class="brush: css">::cue { + color: #fff; + background-color: rgba(0, 0, 0, 0.6); +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th>Especificació</th> + <th>Estat</th> + <th>Comentari</th> + </tr> + <tr> + <td>{{SpecName("WebVTT")}}</td> + <td>{{Spec2("WebVTT")}}</td> + <td>Definició incial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si voleu contribuir a les dades, consulteu <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i envieu-nos una sol·licitud d'extracció.</p> + +<p>{{Compat("css.selectors.cue")}}</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/WebVTT_API">Format de Pistes de Web Video (WebVTT)</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_first-letter/index.html b/files/ca/web/css/_doublecolon_first-letter/index.html new file mode 100644 index 0000000000..40e4c9c293 --- /dev/null +++ b/files/ca/web/css/_doublecolon_first-letter/index.html @@ -0,0 +1,219 @@ +--- +title: '::first-letter (:first-letter)' +slug: 'Web/CSS/::first-letter' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-element + - Reference + - Web +translation_of: 'Web/CSS/::first-letter' +--- +<div>{{CSSRef}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong>code>::first-letter</strong> aplica estils a la primera lletra de la primera línia d'un <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Visual_formatting_model#Block-level_elements_and_block_boxes">element de nivell de bloc</a>, però només quan no està precedit d'un altre contingut (com ara imatges o taules en línia).</p> + +<pre class="brush: css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>Selecciona la primera lletra d'un <p></span></span> */ +p::first-letter { + font-size: 130%; +}</pre> + +<p>La primera lletra d'un element no sempre és trivial per identificar:</p> + +<ul> + <li>La puntuació que precedeix o segueix immediatament a la primera lletra s'inclou en la coincidència. La puntuació inclou qualsevol caràcter Unicode definit en la classes <em>obertura</em> (Ps), <em>tancament</em> (Pe), <em>cita nicial</em> (Pi), <em>cita final</em> (Pf), i <em>altres punctuacions</em> (Po).</li> + <li>Alguns idiomes tenen dígrafs que sempre es mostren en majúscules, com l' <code>IJ</code> en holandès. En aquests casos, ambdues lletres del dígraf haurien de coincidir amb el pseudo-element <code>::first-letter</code>. (Això és poc compatible amb els navegadors, consulteu la <a href="https://developer.mozilla.org/En/CSS/::first-letter#Browser_compatibility">taula de compatibilitat del navegador</a> a continuació).</li> + <li>Una combinació del pseudo-element {{ cssxref("::before") }} i la propietat {{ cssxref("content") }} poden injectar algun text al principi de l'element. En aquest cas, <code>::first-letter</code> coincideix amb la primera lletra d'aquest contingut generat.</li> +</ul> + +<div class="note"> +<p>CSS3 va introduir la notació de <code>::first-letter</code> ( amb dos caràcters de dos punts) per distingir les <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes</a> dels <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-elements</a>. Els navegadors també accepten <code>:first-letter</code>, introduït en CSS2.</p> +</div> + +<h2 id="Propietats_permeses"><span id="result_box" lang="ca"><span>Propietats permeses</span></span></h2> + +<p>Només un petit subconjunt de propietats CSS es pot utilitzar amb el pseudo-element <code>::first-letter</code>:</p> + +<ul> + <li>Totes les propietats de font: {{ Cssxref("font") }}, {{ Cssxref("font-style") }}, {{cssxref("font-feature-settings")}}, {{cssxref("font-kerning")}}, {{cssxref("font-language-override")}}, {{cssxref("font-stretch")}}, {{cssxref("font-synthesis")}}, {{ Cssxref("font-variant") }}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-ligatures")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-position")}}, {{ Cssxref("font-weight") }}, {{ Cssxref("font-size") }}, {{cssxref("font-size-adjust")}}, {{ Cssxref("line-height") }} i {{ Cssxref("font-family") }}.</li> + <li>Totes les propietats de fons: {{ Cssxref("background") }}, {{ Cssxref("background-color") }}, {{ Cssxref("background-image") }}, {{cssxref("background-clip")}}, {{cssxref("background-origin")}}, {{ Cssxref("background-position") }}, {{ Cssxref("background-repeat") }}, {{ cssxref("background-size") }}, {{ Cssxref("background-attachment") }} i {{cssxref("background-blend-mode")}}.</li> + <li>Totes les propietats de marge: {{ Cssxref("margin") }}, {{ Cssxref("margin-top") }}, {{ Cssxref("margin-right") }}, {{ Cssxref("margin-bottom") }}, {{ Cssxref("margin-left") }}.</li> + <li>Totes les propietats de farcit: {{ Cssxref("padding") }}, {{ Cssxref("padding-top") }}, {{ Cssxref("padding-right") }}, {{ Cssxref("padding-bottom") }}, {{ Cssxref("padding-left") }}.</li> + <li>Totes les propietats de vora: abreujades {{ Cssxref("border") }}, {{ Cssxref("border-style") }}, {{ Cssxref("border-color") }}, {{ cssxref("border-width") }}, {{ cssxref("border-radius") }}, {{cssxref("border-image")}} i les propietats no abreujades.</li> + <li>La propietat {{ cssxref("color") }}.</li> + <li>Les propietats CSS {{ cssxref("text-decoration") }}, {{cssxref("text-shadow")}}, {{ cssxref("text-transform") }}, {{ cssxref("letter-spacing") }}, {{ cssxref("word-spacing") }} (when appropriate), {{ cssxref("line-height") }}, {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-style")}}, {{cssxref("box-shadow")}}, {{ cssxref("float") }}, {{ cssxref("vertical-align") }} (només si <code>float</code> és <code>none</code>).</li> +</ul> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<p>Fa que la primera lletra de cada paràgraf sigui en vermell i gran.</p> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt + ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo + dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</p> +<p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.</p> +<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut + aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit + esse molestie consequat.</p> +<p>-The beginning of a special punctuation mark.</p> +<p>_The beginning of a special punctuation mark.</p> +<p>"The beginning of a special punctuation mark.</p> +<p>'The beginning of a special punctuation mark.</p> +<p>*The beginning of a special punctuation mark.</p> +<p>#The beginning of a special punctuation mark.</p> +<p>「特殊的汉字标点符号开头。</p> +<p>《特殊的汉字标点符号开头。</p> +<p>“特殊的汉字标点符号开头。</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">p::first-letter { + color: red; + font-size: 130%; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Example', '80%', 420) }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Pseudo-Elements', '#first-letter-pseudo', '::first-letter')}}</td> + <td>{{ Spec2('CSS4 Pseudo-Elements')}}</td> + <td>Genera propietats permeses per a la composició de textos, decoració de text, propietats de disseny en línia, {{ cssxref("opacity") }} i {{ cssxref("box-shadow") }}.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow with ::first-letter')}}</td> + <td>{{ Spec2('CSS3 Text Decoration')}}</td> + <td><span id="result_box" lang="ca"><span>Permet l'ús de</span></span> {{cssxref("text-shadow")}} amb <code>::first-letter</code>.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#first-letter', '::first-letter') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Introducció de la sintaxi de dos caràcters de dos punts. Definició del comportament de casos limits, com ara en elements de llista o amb idiomes específics (p. ex., el dígraf holandès <code>IJ</code>).</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'selector.html#first-letter', '::first-letter') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Cap canvi.</td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#the-first-letter-pseudo-element', '::first-letter') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial, utilitzant la sintaxi d'un caràcter de dos punts.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>9.0</td> + <td>7.0</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td>Antiga sintaxis d'un caràcter de dos punts (<code>:first-letter</code>)</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>5.5</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport per al dígraf holandès</span></span> <code>IJ</code></td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }} {{ bug("92176") }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1") }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>Antiga sintaxis d'un caràcter de dos punts (<code>:first-letter</code>)</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport per al dígraf holandès</span></span> <code>IJ</code></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref("::first-line")}}.</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_first-line/index.html b/files/ca/web/css/_doublecolon_first-line/index.html new file mode 100644 index 0000000000..065c7dc0f3 --- /dev/null +++ b/files/ca/web/css/_doublecolon_first-line/index.html @@ -0,0 +1,117 @@ +--- +title: '::first-line (:first-line)' +slug: 'Web/CSS/::first-line' +tags: + - CSS + - Layout + - NeedsMobileBrowserCompatibility + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::first-line' +--- +<div>{{CSSRef}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::first-line</code></strong> aplica estils a la primera línia d'un <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Visual_formatting_model#Block-level_elements_and_block_boxes">element de nivell de bloc</a>. Tingueu en compte que la longitud de la primera línia depèn de molts factors, incloent l'amplada de l'element, l'amplada del document i la mida de la font del text</p> + +<pre class="brush: css no-line-numbers">/* Selecciona la primera línia d'un <p> */ +p::first-line { + color: red; +}</pre> + +<div class="note"> +<p>CSS3 va introduir la notació de <code>::first-line</code> (de dos caràcters, de dos punts) per distingir les <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes</a> dels <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-elements</a>. Els navegadors també accepten <code>:first-line</code>, introduït en CSS2.</p> +</div> + +<h2 id="Propietats_permeses">Propietats permeses</h2> + +<p>Només un petit subconjunt de propietats CSS es pot utilitzar amb el pseudo-element <code>::first-line</code>:</p> + +<ul> + <li>Totes les propietats relacionades amb la font: {{Cssxref("font")}}, {{cssxref("font-kerning")}}, {{Cssxref("font-style")}}, {{Cssxref("font-variant")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-position")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-ligatures")}}, {{cssxref("font-synthesis")}}, {{cssxref("font-feature-settings")}}, {{cssxref("font-language-override")}}, {{Cssxref("font-weight")}}, {{Cssxref("font-size")}}, {{cssxref("font-size-adjust")}}, {{cssxref("font-stretch")}} i {{Cssxref("font-family")}}</li> + <li>Totes les propietats relacionades amb el fons: {{Cssxref("background-color")}}, {{cssxref("background-clip")}}, {{Cssxref("background-image")}}, {{cssxref("background-origin")}}, {{Cssxref("background-position")}}, {{Cssxref("background-repeat")}}, {{cssxref("background-size")}}, {{Cssxref("background-attachment")}} i {{cssxref("background-blend-mode")}}</li> + <li>La propietat {{cssxref("color")}}</li> + <li>{{cssxref("word-spacing")}}, {{cssxref("letter-spacing")}}, {{cssxref("text-decoration")}}, {{cssxref("text-transform")}} i {{cssxref("line-height")}}</li> + <li>{{cssxref("text-shadow")}}, {{cssxref("text-decoration")}}, {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-style")}} i {{cssxref("vertical-align")}}.</li> +</ul> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>Styles will only be applied to the first line of this paragraph. +After that, all text will be styled like normal. See what I mean?</p> + +<span>The first line of this text will not receive special styling +because it is not a block-level element.</span></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">::first-line { + color: blue; + text-transform: uppercase; + + + /* WARNING: DO NOT USE THESE */ + /* Many properties are invalid in ::first-line pseudo-classes */ + margin-left: 20px; + text-indent: 20px; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 350, 160)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Pseudo-Elements', '#first-line-pseudo', '::first-line')}}</td> + <td>{{ Spec2('CSS4 Pseudo-Elements')}}</td> + <td>Defineix de manera més estricta on pot apareixer una <code>::first-letter</code>.<br> + Generalitza propietats permeses per a composició tipogràfica, decoració de text i propietats de disseny en línia i {{cssxref("opacity")}}.<br> + Defineix l'herència de <code>::first-letter</code>.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Text Decoration', '#text-shadow', 'text-shadow with ::first-line')}}</td> + <td>{{ Spec2('CSS3 Text Decoration')}}</td> + <td>Permès lùs de {{cssxref("text-shadow")}} amb <code>::first-letter</code>.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#first-line', '::first-line') }}</td> + <td>{{ Spec2('CSS3 Selectors') }}</td> + <td>Introdueix la sintaxi de dos caràcter de dos punts.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'selector.html#first-line-pseudo', '::first-line') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Cap canvi</td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#the-first-line-pseudo-element', '::first-line') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>La definició inicial fa servir la sintaxi d'un sol caràcter de dos punts.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{Compat("css.selectors.first-line")}}</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{cssxref("::first-letter")}}.</li> +</ul> diff --git a/files/ca/web/css/_doublecolon_placeholder/index.html b/files/ca/web/css/_doublecolon_placeholder/index.html new file mode 100644 index 0000000000..3c985e7912 --- /dev/null +++ b/files/ca/web/css/_doublecolon_placeholder/index.html @@ -0,0 +1,150 @@ +--- +title: '::placeholder' +slug: 'Web/CSS/::placeholder' +tags: + - CSS + - Experimental + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::placeholder' +--- +<div>{{CSSRef}}{{SeeCompatTable}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="/en-US/docs/Web/CSS">CSS</a> <strong><code>::placeholder</code></strong> representa el <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Forms_in_HTML#The_placeholder_attribute">text de marcador de posició</a> d'un element de <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms">formulari</a>.</p> + +<pre class="brush: css no-line-numbers">::placeholder { + color: blue; + font-size: 1.5em; +}</pre> + +<p>Només un subconjunt de propietats CSS que s'aplica al pseudo-element {{cssxref("::first-line")}} es pot utilitzar en una regla, utilitzant <code>::placeholder</code> en el seu selector.</p> + +<div class="note"> +<p><strong>Nota:</strong> A Firefox, l'aparença del text del marcador de posició és de color gris translúcid per defecte.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush:html line-numbers language-html"><input placeholder="Type something here!"></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">input::placeholder { + color: red; + font-size: 1.2em; + font-style: italic; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Pseudo-Elements', '#placeholder-pseudo', '::placeholder')}}</td> + <td>{{Spec2('CSS4 Pseudo-Elements')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Edge</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatGeckoDesktop("51.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>44</td> + <td>10.1</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport parcial amb prefix</span></span></td> + <td>Supported</td> + <td>Supported</td> + <td>Supported</td> + <td>10 -ms-</td> + <td>Supported</td> + <td>5 -webkit-</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatChrome(57)}}</td> + <td>{{CompatGeckoMobile("52.0")}}</td> + <td>{{CompatNo}}</td> + <td> </td> + <td>10.3</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport parcial amb prefix</span></span></td> + <td>2.1 -webkit-</td> + <td>Supported</td> + <td>Supported</td> + <td>10 -ms-</td> + <td>37 -webkit-</td> + <td>4.3 -webkit-</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Abans de Gecko 51.0 {{geckoRelease("51.0")}} Gecko va implementar aquest com a pseudo-element prefixat {{cssxref("::-moz-placeholder")}}.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>La pseudo-class {{cssxref(":placeholder-shown")}} dona estil a un element que <em>té</em> un marcador de posició actiu.</li> + <li>Elements HTML relacionats: {{HTMLElement("input")}}, {{HTMLElement("textarea")}}</li> + <li>Els equivalents no estàndard d'aquest pseudo-element: {{cssxref("::-webkit-input-placeholder")}}, {{cssxref("::-moz-placeholder")}}, {{cssxref(":-ms-input-placeholder")}}</li> + <li><a href="/en-US/docs/Learn/HTML/Forms">Formularis HTML</a></li> +</ul> diff --git a/files/ca/web/css/_doublecolon_selection/index.html b/files/ca/web/css/_doublecolon_selection/index.html new file mode 100644 index 0000000000..62b5e25619 --- /dev/null +++ b/files/ca/web/css/_doublecolon_selection/index.html @@ -0,0 +1,160 @@ +--- +title: '::selection' +slug: 'Web/CSS/::selection' +tags: + - CSS + - Layout + - Pseudo-element + - Reference +translation_of: 'Web/CSS/::selection' +--- +<div>{{CSSRef}}</div> + +<p>El <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-element</a> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> <strong><code>::selection</code></strong> <span id="result_box" lang="ca"><span>aplica estils a la part d'un document que l'usuari ha ressaltat (com ara amb el ratolí).</span></span></p> + +<pre class="brush: css no-line-numbers">::selection { + color: gold; + background: red; +}</pre> + +<p>Només un petit subconjunt de propietats CSS es pot utilitzar amb el pseudo-element <code>::selection</code>:</p> + +<ul> + <li>{{cssxref("color")}}</li> + <li>{{cssxref("background-color")}}</li> + <li>{{cssxref("cursor")}}</li> + <li>{{cssxref("outline")}}</li> + <li>{{cssxref("text-decoration")}}</li> + <li>{{cssxref("text-emphasis-color")}}</li> + <li>{{cssxref("text-shadow")}}</li> +</ul> + +<p>Tingueu en compte que, en particular, s'ignora {{cssxref("background-image")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">/* Firefox syntax */ +::-moz-selection + +{{csssyntax}} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div>This text has special styles when you highlight it.</div> +<p>Also try selecting text in this paragraph.</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">/* Make selected text gold on a red background */ +::-moz-selection { + color: gold; + background: red; +} + +::selection { + color: gold; + background: red; +} + +/* Make selected text in a paragraph white on a blue background */ +p::-moz-selection { + color: white; + background: blue; +} + +p::selection { + color: white; + background: blue; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Pseudo-Elements', '#selectordef-selection', '::selection')}}</td> + <td>{{Spec2('CSS4 Pseudo-Elements')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota:</strong> Tot i que <code>::selection</code> estava present en els esborranys de CSS Selectors Nivell 3, es va eliminar durant la fase de Recomanació de Candidats perquè el seu comportament no era suficientment especificat (especialment amb elements niats) i no es va aconseguir la interoperabilitat (<a href="http://lists.w3.org/Archives/Public/www-style/2008Oct/0268.html">basada en una discussió en la llista de correu d'Estil W3C</a>). El pseudo-element <code>::selection</code> ha estat retornat a <a href="http://dev.w3.org/csswg/css-pseudo-4/">Pseudo-Elements Nivell 4</a>.</p> +</div> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div class="note"> +<p><strong>Nota:</strong> <code>text-shadow</code> en <code>::selection</code> és compatible amb Chrome, Safari i Firefox 17+.</p> +</div> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 {{property_prefix("-moz")}}<sup>[1]</sup></td> + <td>9</td> + <td>9.5</td> + <td>1.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Gecko actualment només és compatible amb la versió prefixada ::-moz-selection. Serà sense prefix en {{bug(509958)}}.</p> diff --git a/files/ca/web/css/at-rule/index.html b/files/ca/web/css/at-rule/index.html new file mode 100644 index 0000000000..17bb9c3288 --- /dev/null +++ b/files/ca/web/css/at-rule/index.html @@ -0,0 +1,77 @@ +--- +title: At-rule +slug: Web/CSS/At-rule +tags: + - At-rule + - CSS + - Reference +translation_of: Web/CSS/At-rule +--- +<div>{{cssref}}</div> + +<p><span class="seoSummary">Una <strong>regla at (at-rule)</strong> es una <a href="/en-US/docs/Web/CSS/Syntax#CSS_statements">declaració CSS</a> </span>que comença amb un signe<span class="seoSummary">, '<code>@</code>' (<code>U+0040 COMMERCIAL AT</code>), </span>seguit d'un identificador i inclou tot fins al següent punt i coma<span class="seoSummary">, '<code>;</code>' (<code>U+003B SEMICOLON</code>), </span>o el següent bloc<span class="seoSummary"> <a href="/en-US/docs/Web/CSS/Syntax#CSS_declarations_blocks">bloc CSS </a>, </span>el que succeeixi primer<span class="seoSummary">.</span></p> + +<p>Hi ha diverses regles at (at-rules), designades pels seus identificadors, cadascuna amb una sintaxi diferent:</p> + +<ul> + <li>{{cssxref("@charset")}} — Defineix el conjunt de caràcters utilitzat per la fulla d'estil.</li> + <li>{{cssxref("@import")}} — Li diu al motor CSS que inclogui una fulla d'estil externa.</li> + <li>{{cssxref("@namespace")}} — Li diu al motor CSS que tot el seu contingut ha de ser considerat com prefixat amb un espai de noms XML.</li> + <li><strong><em>Regles at (at-rules) niades</em></strong> — Un subconjunt de sentències niades, que es pot utilitzar com una declaració d'una fulla d'estil, així com dins de les regles de grup condicionals: + <ul> + <li>{{cssxref("@media")}} — Una regla de grup condicional que aplicarà el seu contingut si el dispositiu compleix els criteris de la condició definida mitjançant una <em>consulta de medis</em>.</li> + <li>{{cssxref("@supports")}} — Una regla de grup condicional que aplicarà el seu contingut si el navegador compleix amb els criteris de la condició donada.</li> + <li>{{cssxref("@document")}} {{experimental_inline}} — Una regla de grup condicional que aplicarà el seu contingut si el document en el qual s'aplica la fulla d'estil compleix amb els criteris de la condició donada. <em>(posposat al nivell 4 de les especificacions CSS)</em></li> + <li>{{cssxref("@page")}} — Descriu l'aspecte dels canvis de disseny que s'aplicaran en imprimir el document.</li> + <li>{{cssxref("@font-face")}} — Descriu l'aspecte d'una font externa a descarregar.</li> + <li>{{cssxref("@keyframes")}} — Descriu l'aspecte dels passos intermedis en una seqüència d'animació CSS.</li> + <li>{{cssxref("@viewport")}} {{experimental_inline}} — Descriu els aspectes de la finestra de visualització per a dispositius de pantalla petita. <em>(actualment en l'etapa de l'esborrany de treball)</em></li> + <li>{{cssxref("@counter-style")}} — Defineix estils de comptador específics que no formen part del conjunt d'estils predefinit . <em>(en l'etapa de Recomanació de Candidats, però només implementat en Gecko al moment de la redacció)</em></li> + <li>{{cssxref("@font-feature-values")}} (més <code>@swash</code>, <code>@ornaments</code>, <code>@annotation</code>, <code>@stylistic</code>, <code>@styleset</code> and <code>@character-variant</code>)<br> + — Definiu noms comuns a {{cssxref("font-variant-alternates")}} per a la característica activada de forma diferent en OpenType. <em>(en l'etapa de Recomanació de Candidats, però només implementada en Gekko al moment de la redacció)</em></li> + </ul> + </li> +</ul> + +<h2 id="Regles_del_grup_condicional">Regles del grup condicional</h2> + +<p>Igual que els valors de les propietats, cada regla té una sintaxi diferent. No obstant això, alguns d'ells poden agrupar-se en una categoria especial anomenada <strong>regles de grup condicional</strong>. Aquests declaracions comparteixen una sintaxi comuna i cadascun d'ells pot incloure <em>declaracions niades</em>, ja siguin <em>conjunts de regles</em> o <em>regles at niades</em>. A més, tots transmeten un significat semàntic comú: tots vinculen algun tipus de condició que, en qualsevol moment, s'avalua com a <strong>veritable</strong> o <strong>fals</strong>. Si la condició s'avalua com a <strong>veritable</strong>, s'aplicaran totes les instruccions del grup</p> + +<p>Les regles de grup condicional es defineixen <a href="http://dev.w3.org/csswg/css3-conditional/">Condicionals CSS Nivell 3</a> i son:</p> + +<ul> + <li>{{cssxref("@media")}},</li> + <li>{{cssxref("@supports")}},</li> + <li>{{cssxref("@document")}}. <em>(deferred to Level 4 of CSS Spec) </em></li> +</ul> + +<p>Atès que cada grup condicional també pot contenir declaracions niades, pot haver-hi una quantitat no especificada de niaments.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('CSS3 Conditional')}}</td> + <td>{{Spec2('CSS3 Conditional')}}</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('Compat', '#css-at-rules', 'CSS At-rules')}}</td> + <td>{{Spec2('Compat')}}</td> + <td>Estandaritza <code>@-webkit-keyframes</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Reference">Referència CSS</a></li> + <li>{{CSS_key_concepts}}</li> +</ul> diff --git a/files/ca/web/css/box-sizing/index.html b/files/ca/web/css/box-sizing/index.html new file mode 100644 index 0000000000..33d55a232a --- /dev/null +++ b/files/ca/web/css/box-sizing/index.html @@ -0,0 +1,287 @@ +--- +title: box-sizing +slug: Web/CSS/box-sizing +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/box-sizing +--- +<div>{{CSSRef}}</div> + +<p>La propietat CSS <strong><code>box-sizing</code></strong> s'utilitza per modificar el <a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">model de caixa CSS</a> predeterminat usat per calcular l'amplada i l'alçada dels elements.</p> + +<pre class="brush: css no-line-numbers">/* Keyword values */ +box-sizing: content-box; +box-sizing: border-box; + +/* Global values */ +box-sizing: inherit; +box-sizing: initial; +box-sizing: unset; +</pre> + +<p>En CSS, de manera predeterminada, l'amplada i l'alçada que s'assigna a un element només s'aplica a la caixa de contingut de l'element. Si l'element té qualsevol vora o farcit, aquest s'afegeix a l'amplada i alçada per arribar a la grandària de la caixa que es representa en la pantalla. Això significa que quan fixeu l'amplada i l'alçada, heu d'ajustar el valor que dóna per permetre qualsevol vora o farcit que pugui ser afegit. Això és especialment difícil quan s'implementa un disseny sensible.</p> + +<p>La propietat <code>box-sizing</code> es pot utilitzar per ajustar aquest comportament:</p> + +<ul> + <li><code>content-box</code> és el valor predeterminat i proporciona el comportament predeterminat de box-sizing CSS. Si s'estableix l'amplada d'un element a 100 píxels, la caixa de contingut de l'element serà de 100 píxels d'amplada i l'amplada de qualsevol vora o farciment s'afegirà a l'amplada final representada.</li> + <li><code>border-box</code> l'indica al navegador que tingui en compte qualsevol vora i farcit en el valor que s'especifiqui per a l'amplada i l'alçada. Si s'estableix l'amplada d'un element a 100 píxels, els 100 píxels inclouran qualsevol vora o farcit que s'hàgi afegit i la caixa de contingut s'encongirà per absorbir aquest ample addicional. Això generalment fa molt més fàcil la grandària dels elements.</li> +</ul> + +<p>Alguns experts recomanen que els desenvolupadors web considerin <a href="https://css-tricks.com/international-box-sizing-awareness-day/">aplicar rutinariament <code>box-sizing: border-box</code> a tots els elements</a>.</p> + +<div id="box-sizing"> +<pre class="hidden brush: html"><div class="container"> + +<div class="parent"> + <p>Parent container</p> + <div class="child" style="box-sizing: content-box;"> + <p>Child container</p> + <p class="css"> + box-sizing: content-box;<br/> + width: 100%;<br/> + padding: 0;<br/> + border-width: 0;</p> + </div> +</div> + +<div class="parent"> + <p>Parent container</p> + <div class="child border-padding" style="box-sizing: content-box;"> + <p>Child container</p> + <p class="css"> + box-sizing: content-box;<br/> + width: 100%;<br/> + padding: 5px;<br/> + border-width: 10px;</p> + </div> +</div> + +<div class="parent"> + <p>Parent container</p> + <div class="child border-padding" style="box-sizing: border-box;"> + <p>Child container</p> + <p class="css"> + box-sizing: border-box;<br/> + width: 100%;<br/> + padding: 5px;<br/> + border-width: 10px;</p> + </div> +</div> + +</div> +</pre> + +<pre class="hidden brush: css">p { + margin-left: 0.2em; + font-family: "Open Sans", sans-serif; +} + +.container { + display: flex; +} + +.parent { + width: 220px; + border: solid 10px #FFC129; + margin: 0.8em; +} + +.child { + width: 100%; + margin: 2em auto; + background-color: rgba(229, 232, 252, 0.6); +} + +.border-padding { + padding: 5px; + border: solid #5B6DCD 10px; +} + +.css { + font-family: monospace; +} +</pre> + +<p>{{EmbedLiveSample("box-sizing", 1200, 340, "", "", "example-outcome-frame")}}</p> +</div> + +<p>L'exemple anterior mostra tres escenaris. En cada escenari hi ha un DIV pare (amb una vora taronja) que conté un DIV fill. El fill té fixat un <code>width: 100%</code> i un fons blau pàl·lid.</p> + +<ul> + <li>El primer escenari utilitza per defecte <code>box-sizing: content-box</code>. El DIV fill no té farcit ni cap vora, i s'adapta perfectament a l'interior del seu pare.</li> + <li>El segon escenari utilitza per defecte <code>box-sizing: content-box</code>. El DIV fill se li ha afegit farcit i una vora. El fill es vessa fora del pare perquè el seu ample es calcula amb només el contingut: llavors s'afegeix el farciment i la vora per fer l'amplada representada.</li> + <li>El tercer escenari utilitza <code>box-sizing: border-box</code>. El DIV fill ara s'adapta perfectament a l'interior del seu pare, ja que el seu <code>width: 100%</code> representa el farciment i la vora.</li> +</ul> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>box-sizing</code> s'especifica com una paraula clau única seleccionada de la llista de valors a continuació.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>content-box</code></dt> + <dd>Aquest és el valor inicial i predeterminat especificat per l'estàndard CSS. Les propietats {{Cssxref("width")}} i {{Cssxref("height")}} es mesuren incloent només el contingut, però no el farciment, la vora o el marge. Per exemple, si establiu <code>.box {width: 350px;}</code>, apliqueu <code>{border: 10px solid black;}</code> , llavors el resultat representat és una <code>caixa de width: 370px.</code></dd> + <dd>Aquí les dimensions de l'element es calculen com: <em>amplària = amplària del contingut, i alçada = alçada del contingut (excloent els valors de vora i farciment).</em></dd> + <dt><code>border-box</code></dt> + <dd>Les propietats {{Cssxref("width")}} i {{Cssxref("height")}} inclouen el contingut, el farciment i la vora, però no el marge. Note that padding and border will be inside of the box e.g. <code>.box {width: 350px; border: 10px solid black;}</code> leads to a box rendered in the browser of <code>width: 350px</code>. The content box can't be negative and is floored to 0, making it impossible to use border-box to make the element disappear.</dd> + <dd>Aquí les dimensions de l'element es calculen com: <em>amplària = vora + farciment + amplària del contingut</em>, i <em>alçada = vora + farciment + alçada del contingut</em>.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div class="content-box">Content box</div> +<br> +<div class="border-box">Border box</div></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">div { + width: 160px; + height: 80px; + padding: 20px; + border: 8px solid red; + background: yellow; +} + +.content-box { + box-sizing: content-box; +} + +.border-box { + box-sizing: border-box; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Exemple','auto','300')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Basic UI', '#box-sizing', 'box-sizing')}}</td> + <td>{{Spec2('CSS3 Basic UI')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles"><span class="short_text" id="result_box" lang="ca"><span>Navegadors compatibles</span></span></h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport bàsic</span></span></td> + <td>1.0 {{property_prefix("-webkit")}}<sup>[1]</sup><br> + 10.0</td> + <td>{{CompatVersionUnknown}}{{property_prefix("-webkit")}}<br> + {{CompatVersionUnknown}}</td> + <td> + <p>{{CompatGeckoDesktop("1.0")}}{{property_prefix("-moz")}}<sup>[1]</sup><br> + {{CompatGeckoDesktop("29.0")}}<sup>[2]</sup></p> + </td> + <td> + <p>8.0<sup>[1]</sup></p> + </td> + <td>7.0</td> + <td>3.0 (522){{property_prefix("-webkit")}}<br> + 5.1<sup>[3]</sup></td> + </tr> + <tr> + <td><code>padding-box</code>{{non-standard_inline}} {{deprecated_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.0")}}{{property_prefix("-moz")}}<sup>[1]</sup><br> + {{CompatGeckoDesktop("29.0")}}<br> + Eliminat a {{CompatGeckoDesktop("50.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport bàsic</span></span></td> + <td>2.1{{property_prefix("-webkit")}}<sup>[1]</sup><br> + 4.0</td> + <td>{{CompatVersionUnknown}}{{property_prefix("-webkit")}}<br> + {{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}{{property_prefix("-moz")}}<sup>[1]</sup><br> + {{CompatGeckoMobile("29.0")}}<sup>[2]</sup></td> + <td>9.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>padding-box</code>{{non-standard_inline}} {{deprecated_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("1.0")}}{{property_prefix("-moz")}}<sup>[1]</sup><br> + {{CompatGeckoMobile("29.0")}}<br> + Eliminat a {{CompatGeckoMobile("50.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <code>box-sizing</code> no es respectat quan l'alçada es calcula a partir de {{domxref("window.getComputedStyle()")}}, en Internet Explorer (totes les versions), en Firefox anterior a la 23, i en Chrome. Edge no presenta el problema. Tingueu en compte que la propietat <code>currentStyle</code> retorna el valor correcte de <code>height</code>.</p> + +<p>[2] A més del suport no prefixat, Gecko 44.0 {{geckoRelease("44.0")}} va afegir suport per a una versió prefixada <code>-webkit</code> de la propietat per raons de compatibilitat web darrere de la preferència <code>layout.css.prefixes.webkit</code>, per defecte a <code>false</code>. Des de Gecko 49.0 {{geckoRelease("49.0")}} la preferència per defecte és <code>true</code>.</p> + +<p>[3] El prefix de proveïdor <code>-webkit</code> s'ha eliminat a <a href="http://trac.webkit.org/changeset/71348">534.12</a>.</p> + +<h2 id="Vegeu_també"><span class="short_text" id="result_box" lang="ca"><span>Vegeu també</span></span></h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">Model de caixa CSS</a></li> +</ul> diff --git a/files/ca/web/css/css_box_model/dominar_el_col.lapse_del_marge/index.html b/files/ca/web/css/css_box_model/dominar_el_col.lapse_del_marge/index.html new file mode 100644 index 0000000000..9b312fc789 --- /dev/null +++ b/files/ca/web/css/css_box_model/dominar_el_col.lapse_del_marge/index.html @@ -0,0 +1,89 @@ +--- +title: Dominar el col.lapse del marge +slug: Web/CSS/CSS_Box_Model/Dominar_el_col.lapse_del_marge +tags: + - CSS + - CSS Box Model + - Guide + - Reference +translation_of: Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +--- +<div>{{CSSRef}}</div> + +<p>Els marges <a href="/en-US/docs/Web/CSS/margin-top">superior (top)</a> i <a href="/en-US/docs/Web/CSS/margin-bottom">inferior (bottom</a>) dels blocs, a vegades, es combinen (col·lapsats) en un únic marge, la grandària del qual és el més gran dels marges individuals (o només un d'ells, si són iguals), un comportament conegut com <strong>col·lapse del marge</strong>. Tingueu en compte que els marges dels elements <a href="/en-US/docs/Web/CSS/float">flotants</a> i <a href="/en-US/docs/Web/CSS/position#absolute">absolutament posicionats</a> mai es col·lapsen.</p> + +<p>El col·lapse de marges es produeix en tres casos bàsics:</p> + +<dl> + <dt><span id="result_box" lang="ca"><span>Germans adjacents</span></span></dt> + <dd>Els marges dels germans adjacents estan col·lapsats (excepte quan el darrer germà ha de ser <a href="/en-US/docs/Web/CSS/clear">eliminat</a> dels flotadors anteriors).</dd> + <dt><span id="result_box" lang="ca"><span>Pare i primer/últim fill</span></span></dt> + <dd>Si no hi ha una vora, farcit, part en línia, <a href="/en-US/docs/Web/Guide/CSS/Block_formatting_context">context de format de blocs</a> creat, o un <em><a href="/en-US/docs/Web/CSS/clear">espaia lliure</a></em> per separar el {{cssxref("margin-top")}} d'un bloc del {{cssxref("margin-top")}} del seu primer bloc fill; o sense vora, farcit, contingut en línia, {{cssxref("height")}}, {{cssxref("min-height")}}, o {{cssxref("max-height")}} per separar el {{cssxref("margin-bottom")}} d'un bloc del {{cssxref("margin-bottom")}} del seu últim fill, llavors aquests marges es col·lapsen. El marge col·lapsat acaba fora del pare</dd> + <dt><span id="result_box" lang="ca"><span>Blocs buits</span></span></dt> + <dd>Si no hi ha vora, farcit, contingut en línia, {{cssxref("height")}} o {{cssxref("min-height")}} per separar un bloc {{cssxref("margin-top")}} del seu {{cssxref("margin-bottom")}}, llavors els marges superior i inferior es col·lapsen.</dd> +</dl> + +<p>Algunes coses a destacar:</p> + +<ul> + <li>El col.lapse de marges més complex (de més de dos marges) es produeix quan es combinen els casos anteriors.</li> + <li>Aquestes regles s'apliquen fins i tot als marges que són zero, de manera que el marge d'un fill primer/últim acaba fora dels seus pares (d'acord amb les regles anteriors) tant si el marge dels pares és zero o no.</li> + <li>Quan s'inclouen marges negatius, la mida del marge col·lapsat és la suma del marge positiu més gran i el marge negatiu més petit (més negatiu).</li> + <li>Quan tots els marges són negatius, la mida del marge col·lapsat és el marge més petit (el més negatiu). Això s'aplica tant als elements adjacents com als elements niats.</li> +</ul> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>The bottom margin of this paragraph is collapsed …</p> +<p>… with the top margin of this paragraph, yielding a margin of <code>1.2rem</code> in between.</p> + +<div>This parent element contains two paragraphs! + <p>This paragraph has a <code>.4rem</code> margin between it and the text above.</p> + <p>My bottom margin collapses with my parent, yielding a bottom margin of <code>2rem</code>.</p> +</div> + +<p>I am <code>2rem</code> below the element above.</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">div { + margin: 2rem 0; + background: lavender; +} + +p { + margin: .4rem 0 1.2rem 0; + background: yellow; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Examples', 'auto', 350)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS2.1", "box.html#collapsing-margins", "margin collapsing")}}</td> + <td>{{Spec2("CSS2.1")}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/CSS_Reference">Referència CSS</a></li> + <li>{{css_key_concepts}}</li> +</ul> diff --git a/files/ca/web/css/css_box_model/index.html b/files/ca/web/css/css_box_model/index.html new file mode 100644 index 0000000000..dc3adb0cd0 --- /dev/null +++ b/files/ca/web/css/css_box_model/index.html @@ -0,0 +1,163 @@ +--- +title: Model de Caixa CSS +slug: Web/CSS/CSS_Box_Model +tags: + - CSS + - CSS Box Model + - Overview + - Reference +translation_of: Web/CSS/CSS_Box_Model +--- +<div>{{CSSRef}}</div> + +<p><strong>Model de Caixa CSS</strong> <span id="result_box" lang="ca"><span> és un mòdul de CSS que defineix les caixes rectangulars</span></span> — <span id="result_box" lang="ca"><span>incloent el seu farciment i marge</span></span> —que es generen per als elements i que es defineixen segons el <a href="/en-US/docs/Web/CSS/Visual_formatting_model">model de format visual</a>.</p> + +<h2 id="Referència">R<span class="short_text" id="result_box" lang="ca"><span>eferència</span></span></h2> + +<h3 id="Propietats">Propietats</h3> + +<h4 id="Propietats_que_controlen_el_flux_de_contingut_en_una_caixa">Propietats que controlen el flux de contingut en una caixa</h4> + +<div class="index"> +<ul> + <li>{{cssxref("box-sizing")}}</li> + <li>{{cssxref("overflow")}}</li> + <li>{{cssxref("overflow-x")}}</li> + <li>{{cssxref("overflow-y")}}</li> +</ul> +</div> + +<h4 id="Propietats_que_controlen_la_mida_en_una_caixa">Propietats que controlen la mida en una caixa</h4> + +<div class="index"> +<ul> + <li>{{cssxref("height")}}</li> + <li>{{cssxref("width")}}</li> + <li>{{cssxref("max-height")}}</li> + <li>{{cssxref("max-width")}}</li> + <li>{{cssxref("min-height")}}</li> + <li>{{cssxref("min-width")}}</li> +</ul> +</div> + +<h4 id="Propietats_que_controlen_els_marges_en_una_caixa">Propietats que controlen els marges en una caixa</h4> + +<div class="index"> +<ul> + <li>{{cssxref("margin")}}</li> + <li>{{cssxref("margin-bottom")}}</li> + <li>{{cssxref("margin-left")}}</li> + <li>{{cssxref("margin-right")}}</li> + <li>{{cssxref("margin-top")}}</li> +</ul> +</div> + +<h4 id="Propietats_que_controlen_els_farciments_en_una_caixa">Propietats que controlen els farciments en una caixa</h4> + +<div class="index"> +<ul> + <li>{{cssxref("padding")}}</li> + <li>{{cssxref("padding-bottom")}}</li> + <li>{{cssxref("padding-left")}}</li> + <li>{{cssxref("padding-right")}}</li> + <li>{{cssxref("padding-top")}}</li> +</ul> +</div> + +<h4 id="Altres_propietats">Altres propietats</h4> + +<div class="index"> +<ul> + <li>{{cssxref("visibility")}}</li> +</ul> +</div> + +<h2 id="Guies">Guies</h2> + +<dl> + <dt><a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">Introducció al model de caixa CSS</a></dt> + <dd>Explica un dels conceptes fonamentals de CSS: el model de caixa. Aquest model defineix com CSS estableix elements, incloent-hi les àrees de contingut, farcit, vora i marge.</dd> + <dt><a href="/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing">Dominar el col.lapse del marge</a></dt> + <dd>De vegades, dos marges adjacents es col·loquen en un. En aquest article es descriuen les regles que regeixen quan i per què passa això i com controlar-lo.</dd> + <dt><a href="/en-US/docs/Web/CSS/Visual_formatting_model">Model de format visual</a></dt> + <dd>Explica el model de format visual.</dd> +</dl> + +<h2 id="Especificacions"><span class="short_text" id="result_box" lang="ca"><span>Especificacions</span></span></h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col"><span class="short_text" id="result_box" lang="ca"><span>Especificació</span></span></th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS3 Box")}}</td> + <td>{{Spec2("CSS3 Box")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("CSS2.1", "box.html")}}</td> + <td>{{Spec2("CSS2.1")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("CSS1")}}</td> + <td>{{Spec2("CSS1")}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_dels_navegadors"><span class="short_text" id="result_box" lang="ca"><span>Compatibilitat dels navegadors</span></span></h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport bàsic</span></span></td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Suport bàsic</span></span></td> + <td>1.0</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/css_box_model/introducció_al_model_de_caixa_css/index.html b/files/ca/web/css/css_box_model/introducció_al_model_de_caixa_css/index.html new file mode 100644 index 0000000000..bfb613ed6c --- /dev/null +++ b/files/ca/web/css/css_box_model/introducció_al_model_de_caixa_css/index.html @@ -0,0 +1,67 @@ +--- +title: Introducció al model de caixa CSS +slug: Web/CSS/CSS_Box_Model/Introducció_al_model_de_caixa_CSS +tags: + - CSS + - CSS Box Model + - Guide + - Reference +translation_of: Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model +--- +<div>{{CSSRef}}</div> + +<p>Quan es dissenya un document, el motor d'interpretació del navegador representa cada element com una caixa rectangular d'acord amb el <strong>model de caixa CSS</strong> estàndard. CSS determina la grandària, la posició i les propietats (color, fons, grandària de la vora, etc.) d'aquests caixes.</p> + +<p>Cada caixa es compon de quatre parts (o <em>àrees</em>), definides per les seves respectives vores: <em>la vora del contingut, la vora del farciment, la vora de la vora i la vora del marge</em>.</p> + +<p><img alt="CSS Box model" src="https://mdn.mozillademos.org/files/8685/boxmodel-(3).png" style="height: 384px; width: 548px;"></p> + +<p><a name="content-area"></a>L'<strong>àrea de contingut</strong>, limitada per la vora del contingut, conté el contingut "real" de l'element, com ara text, una imatge o un reproductor de vídeo. Les seves dimensions són l'<em>amplada del contingut</em> (<em>o l'amplada de la caixa de contingut</em>) i l'<em>alçada del contingut</em> (<em>o l'alçada de la caixa de contingut</em>). Sovint té un color de fons o una imatge de fons.</p> + +<p>Si la propietat {{cssxref("box-sizing")}} s'estableix a <code>content-box</code> (predeterminat), la grandària de l'àrea de contingut es pot definir explícitament amb les propietats {{cssxref("width")}}, {{cssxref("min-width")}}, {{cssxref("max-width")}}, {{ cssxref("height") }}, {{cssxref("min-height")}} i {{cssxref("max-height")}}.</p> + +<p><a name="padding-area"></a>L'<strong>àrea de farcit</strong>, delimitada per la vora de farcit, estén l'àrea de contingut per incloure el farciment de l'element. Les seves dimensions són l'<em>amplada de la caixa de farcit</em> i l'<em>alçada de la caixa de farcit</em>. Quan l'àrea de contingut té un fons, s'estén en el farcit.</p> + +<p>El gruix del farciment està determinat pel {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}}, {{cssxref("padding-left")}} i les propietats abreujades de {{cssxref("padding")}}.</p> + +<p><a name="border-area"></a>L'<strong>àrea de vora</strong>, delimitada per la vora de la vora, estén l'àrea de farciment per incloure les vores de l'element. Les seves dimensions són l'<em>amplada de la caixa de vora</em> i l'<em>alçada de la caixa de vora</em>.</p> + +<p>El gruix de les vores està determinat per les propietats {{cssxref("border-width")}} i les propietats abreujades {{cssxref("border")}}. Si la propietat {{cssxref("box-sizing")}} s'estableix a <code>border-box</code>, la grandària de l'àrea de la vora es pot definir explícitament amb les propietats {{cssxref("width")}}, {{cssxref("min-width")}}, {{cssxref("max-width")}}, {{ cssxref("height") }}, {{cssxref("min-height")}} i {{cssxref("max-height")}}.</p> + +<p><a name="margin-area"></a>L'<strong>àrea de marge</strong>, delimitada per la vora del marge, estén l'àrea de la vora per incloure una àrea buida utilitzada per separar l'element dels seus veïns. Les seves dimensions són l'<em>amplada de la caixa de marge</em> i l'<em>alçada de la caixa de marge</em>.</p> + +<p>La grandària de l'àrea de marge està determinada pel {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}}, {{cssxref("margin-left")}} i les propietats abreujades {{cssxref("margin")}}. Quan es produeix el <a href="/en/CSS/margin_collapsing" title="en/CSS/margin_collapsing">col.lapse del marge</a>, l'àrea de marge no està clarament definida, ja que els marges es comparteixen entre les caixes.</p> + +<p>Finalment, tingueu en compte que, per als elements en línia no reemplaçats, la quantitat d'espai ocupat (la contribució a l'alçada de la línia) està determinat per la propietat {{cssxref('line-height')}} encara que les vores i el farciment encara es mostran al voltant del contingut.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName("CSS2.1","box.html#box-dimensions")}}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Encara que formulat amb més precisió, no hi ha canvi pràctic.</td> + </tr> + <tr> + <td>{{ SpecName("CSS1","#formatting-model")}}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en/CSS/CSS_Reference" title="CSS Reference">Referència CSS</a></li> + <li>{{ CSS_key_concepts() }}</li> + <li><span class="short_text" id="result_box" lang="ca"><span>Propietats CSS relacionades</span></span> : {{ cssxref("box-sizing") }}, {{ cssxref("background-clip") }}, {{ cssxref("height") }}, {{ cssxref("max-height") }}, {{ cssxref("min-height") }}, {{ cssxref("width") }}, {{ cssxref("max-height") }}, {{ cssxref("min-height") }}, {{ cssxref("padding") }}, {{ cssxref("padding-top") }}, {{ cssxref("padding-right") }}, {{ cssxref("padding-bottom") }}, {{ cssxref("padding-left") }}, {{ cssxref("border") }}, {{ cssxref("border-top") }}, {{ cssxref("border-right") }}, {{ cssxref("border-bottom") }}, {{ cssxref("border-left") }}, {{ cssxref("border-width") }}, {{ cssxref("border-top-width") }}, {{ cssxref("border-right-width") }}, {{ cssxref("border-bottom-width") }}, {{ cssxref("border-left-width") }}, {{ cssxref("margin") }}, {{ cssxref("margin-top") }}, {{ cssxref("margin-right") }}, {{ cssxref("margin-bottom") }}, {{ cssxref("margin-left") }}</li> +</ul> diff --git a/files/ca/web/css/css_flexible_box_layout/index.html b/files/ca/web/css/css_flexible_box_layout/index.html new file mode 100644 index 0000000000..50a0d76329 --- /dev/null +++ b/files/ca/web/css/css_flexible_box_layout/index.html @@ -0,0 +1,111 @@ +--- +title: CSS Flexible Box Layout +slug: Web/CSS/CSS_Flexible_Box_Layout +translation_of: Web/CSS/CSS_Flexible_Box_Layout +--- +<p>{{CSSRef}}</p> + +<p><strong>CSS Flexible</strong> is a module of CSS that defines a multi-column layout, allowing to express how content should flows between columns, and how gaps and rules are handled.</p> + +<h2 id="Reference">Reference</h2> + +<h3 id="CSS_Properties">CSS Properties</h3> + +<div class="index"> +<ul> + <li>{{cssxref("align-content")}}</li> + <li>{{cssxref("align-items")}}</li> + <li>{{cssxref("align-self")}}</li> + <li>{{cssxref("flex")}}</li> + <li>{{cssxref("flex-basis")}}</li> + <li>{{cssxref("flex-direction")}}</li> + <li>{{cssxref("flex-flow")}}</li> + <li>{{cssxref("flex-grow")}}</li> + <li>{{cssxref("flex-shrink")}}</li> + <li>{{cssxref("flex-wrap")}}</li> + <li>{{cssxref("justify-content")}}</li> + <li>{{cssxref("order")}}</li> +</ul> +</div> + +<h2 id="Guides">Guides</h2> + +<dl> + <dt><a href="/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes">Using CSS flexible boxes</a></dt> + <dd>Step-by-step tutorial about how to build layouts using this feature.</dd> + <dt><a href="/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_flexbox_to_lay_out_web_applications">Using flexbox to lay out Web applications</a></dt> + <dd>Tutorial explaining how to use flexbox in the specific context of Web applications.</dd> +</dl> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Flexbox') }}</td> + <td>{{ Spec2('CSS3 Flexbox') }}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable()}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatGeckoDesktop("20.0")}}</td> + <td>21.0{{property_prefix("-webkit")}}<br> + 29.0</td> + <td>10.0{{property_prefix("-ms")}}<br> + 11.0</td> + <td>12.10</td> + <td>6.1{{property_prefix("-webkit")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown()}}</td> + <td>4.4</td> + <td>11</td> + <td>12.10</td> + <td><span style="font-size: 12px; line-height: 18px;">7.1{{property_prefix("-webkit")}}</span></td> + </tr> + </tbody> +</table> +</div> + +<p> </p> diff --git a/files/ca/web/css/height/index.html b/files/ca/web/css/height/index.html new file mode 100644 index 0000000000..062d09c1fb --- /dev/null +++ b/files/ca/web/css/height/index.html @@ -0,0 +1,236 @@ +--- +title: height +slug: Web/CSS/height +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/height +--- +<div>{{CSSRef}}</div> + +<p>La propietat CSS <strong><code>height</code></strong> especifica l'alçada d'un element. Per defecte, la propietat defineix l'alçada de l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model#content-area">àrea de contingut</a>. Si {{cssxref("box-sizing")}} s'estableix a <code>border-box</code>, aquest determina l'alçada de l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model#border-area">àrea de vora</a>.</p> + +<pre class="brush:css no-line-numbers">/* Keyword value */ +height: auto; + +/* <length> values */ +height: 120px; +height: 10em; + +/* <percentage> value */ +height: 75%; + +/* Global values */ +height: inherit; +height: initial; +height: unset; +</pre> + +<p>Les propietats {{cssxref("min-height")}} i {{cssxref("max-height")}} anul·la {{Cssxref("height")}}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Defineix l'alçada com un valor absolut</span></span>.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd><span id="result_box" lang="ca"><span>Defineix l'alçada com un percentatge de l'alçada del bloc contenidor.</span></span></dd> + <dt><code>border-box </code>{{experimental_inline}}</dt> + <dd>Si està present, s'aplica abans {{cssxref("<length>")}} o {{cssxref("<percentage>")}} a la caixa de vora de l'element.</dd> + <dt><code>content-box</code> {{experimental_inline}}</dt> + <dd>Si està present, s'aplica abans {{cssxref("<length>")}} o {{cssxref("<percentage>")}} a la caixa de contingut de l'element.</dd> + <dt><code>auto</code></dt> + <dd><span id="result_box" lang="ca"><span>El navegador calcularà i seleccionarà una alçada per a l'element especificat</span></span> .</dd> + <dt>fill {{experimental_inline}}</dt> + <dd>Utilitzeu la grandària <code>fill-available</code> en línia o la grandària <code>fill-available</code> del bloc, segons correspongui a la modalitat d'escriptura.</dd> + <dt><code>max-content</code> {{experimental_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada preferida intrínseca.</span></span></dd> + <dt><code>min-content</code> {{experimental_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada mínima intrínseca.</span></span></dd> + <dt><code>available</code> {{experimental_inline}}</dt> + <dd>L'alçada del bloc contenidor menys el marge vertical, la vora i el farciment.</dd> + <dt><code>fit-content</code> {{experimental_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>El més gran de:</span></span> + <ul> + <li><span id="result_box" lang="ca"><span>l'alçada mínima intrínseca.</span></span></li> + <li>la menor de l'alçada intrínseca preferida i l'alçada disponible.</li> + </ul> + </dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div id="red"> + <span>I'm 50 pixels tall.</span> +</div> +<div id="green"> + <span>I'm 25 pixels tall.</span> +</div> +<div id="parent"> + <div id="child"> + <span>I'm half the height of my parent.</span> + </div> +</div> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">div { + width: 250px; + margin-bottom: 5px; + border: 3px solid #999999; +} + +#red { + height: 50px; +} + +#green { + height: 25px; +} + +#parent { + height: 100px; +} + +#child { + height: 50%; + width: 75%; +} +</pre> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Box', '#the-width-and-height-properties', 'height')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td><span id="result_box" lang="ca"><span>S'han afegit les paraules clau</span></span> <code>max-content</code>, <code>min-content</code>, <code>available</code>, <code>fit-content</code>, <code>border-box</code>, <code>content-box</code></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'height')}}</td> + <td>{{Spec2('CSS3 Transitions')}}</td> + <td>Mostra <code>height</code> <span class="short_text" id="result_box" lang="ca"><span>com a animable</span></span>.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'visudet.html#the-height-property', 'height')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Afegeix suport per als valors {{cssxref("<length>")}} i especifica en quin element s'aplica.</td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#height', 'height')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Sizing', '#width-height-keywords', 'width')}}</td> + <td>{{Spec2('CSS3 Sizing')}}</td> + <td>Afegeix noves paraules clau de grandària per width i height.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>4.0</td> + <td>7.0</td> + <td>1.0</td> + </tr> + <tr> + <td><code>fill</code>, <code>fit-content</code>, <code>min-content</code>, <code>max-content</code></td> + <td>{{CompatChrome(46.0)}}</td> + <td>{{CompatUnknown}}</td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Android Webview</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>fill</code>, <code>fit-content</code>, <code>min-content</code>, <code>max-content</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(46.0)}}</td> + <td>{{CompatUnknown}}</td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td>{{CompatChrome(46.0)}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/CSS/box_model">model de caixa</a>, {{cssxref("width")}}, {{cssxref("box-sizing")}}, {{cssxref("min-height")}}, {{cssxref("max-height")}}</li> +</ul> diff --git a/files/ca/web/css/index.html b/files/ca/web/css/index.html new file mode 100644 index 0000000000..89ff6655ca --- /dev/null +++ b/files/ca/web/css/index.html @@ -0,0 +1,65 @@ +--- +title: CSS +slug: Web/CSS +tags: + - CSS + - Design + - Landing + - Layout + - Reference + - 'l10n:priority' +translation_of: Web/CSS +--- +<p><strong>Fulles d'estil en cascada (CSS)</strong> són un llenguatge de <a href="https://developer.mozilla.org/en-US/docs/DOM/stylesheet">full d'estil (stylsheet)</a> utilitzat per descriure la presentació d'un document escrit en <span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/HTML" title="HyperText Markup Language">HTML</a></span> o <a href="https://developer.mozilla.org/en-US/docs/XML">XML</a> (incloent dialectes de XML com <a href="https://developer.mozilla.org/en-US/docs/SVG">SVG</a> o <a href="https://developer.mozilla.org/en-US/docs/XHTML">XHTML</a>). CSS descriu com els elements han de ser presentats a la pantalla, en paper, en la parla, o en altres mitjans de comunicació.</p> + +<p>CSS és un dels idiomes principals de la <em>web oberta</em> i té una <a class="external" href="http://w3.org/Style/CSS/#specs">especificació en W3C </a>estandarditzada. Desenvolupat en nivells, CSS1 ja està obsoleta, CSS2.1 és una recomanació i <a href="/en-US/docs/CSS/CSS3" title="CSS3">CSS3</a>, ara dividit en mòduls més petits, està progressant en el camí de la normalització.</p> + +<section id="sect1"> +<ul class="card-grid"> + <li><span>CSS Referència</span> + + <p>Una <a href="/en-US/docs/Web/CSS/Reference">referència exhaustiva</a> per als desenvolupadors web experimentats que descriu totes les propietats i conceptes de CSS..</p> + </li> + <li><span>CSS Tutorial</span> + <p>Una ajuda completa per <a href="/en-US/docs/CSS/Getting_Started" title="Getting Started">introduir pas a pas</a> els principiants a començar. Presenta tots els fonaments necessaris.</p> + </li> + <li><span>CSS3 Demos</span> + <p>Una <a href="/en-US/demos/tag/tech:css3">col.lecció de demos </a>que mostren les últimes tecnologies CSS en acció: un impuls per a la creativitat.</p> + </li> +</ul> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Documentation" id="Documentació_i_tutorials">Documentació i tutorials</h2> + +<dl> + <dt>CSS conceptes calu</dt> + <dd>Descriu la <a href="/en-US/docs/CSS/Syntax">sintaxi i les formes del llenguatge</a> i introdueix els fonaments com <a href="/en-US/docs/CSS/Specificity">specificity</a> i <a href="/en-US/docs/CSS/inheritance">inheritance</a>, la <a href="/en-US/docs/CSS/box_model">box model</a> i <a href="/en-US/docs/CSS/margin_collapsing">margin collapsing</a>, <a href="/en-US/docs/CSS/Understanding_z-index/The_stacking_context" title="The stacking context">stacking</a> i contextos de <a href="/en-US/docs/CSS/block_formatting_context" title="block formatting context">block-formatting</a> , o la <a href="/en-US/docs/CSS/initial_value">initial</a>, <a href="/en-US/docs/CSS/computed_value">computed</a>, <a href="/en-US/docs/CSS/used_value">used</a> i els valors <a href="/en-US/docs/CSS/actual_value">reals</a>. Les entitats com <a href="/en-US/docs/CSS/Shorthand_properties">CSS shorthand properties</a> també es defineixen.</dd> + <dt><a href="/en-US/docs/Web/Guide/CSS">CSS guia per a desenvolupadors</a></dt> + <dd>Articles per ajudar a aprendre de tot, des dels conceptes bàsics per donar estil a HTML a diverses tècniques CSS per fer brillar el seu contingut.</dd> + <dt><a href="/en-US/docs/Web/CSS/Common_CSS_Questions">CSS preguntes comuns</a></dt> + <dd><span id="result_box" lang="ca"><span>Les</span> <span>respostes</span> <span>a preguntes</span> <span>comuns</span> <span>sobre</span> <span>CSS.</span></span></dd> +</dl> +</div> + +<div class="section"> +<h2 class="Tools" id="Eines_per_al_desenvolupament_de_CSS"><span class="short_text" id="result_box" lang="ca"><span>Eines</span> <span>per al</span> <span>desenvolupament</span> <span>de CSS</span></span></h2> + +<ul> + <li>El <a class="external" href="http://jigsaw.w3.org/css-validator/">W3C CSS Validation Service</a> ccomprovar si el CSS es vàlid. El servei en <a href="http://www.onlinewebcheck.com/">OnlineWebCheck.com</a> també fa el mateix. Aquestes són eines de depuració de valor incalculable.</li> + <li><a href="/en-US/docs/Tools">Firefox Developer Tools</a> permet la visualització i edició de CSS en directe d'una pàgina a través de les eines <a href="/en-US/docs/Tools/Page_Inspector">Inspector</a> i <a href="/en-US/docs/Tools/Style_Editor">Style Editor</a>.</li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug extension</a> per Firefox, una extensió popular d'aquest navegador que permet editar el codi CSS en viu en llocs vigilats. Molt pràctic per provar alguns canvis, tot i que aquesta extensió fa molt més</li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer extension</a> per Firefox també permet veure i editar el codi CSS en viu en llocs vigilats. Més simple que Firebug, encara que menys potent.</li> + <li><a href="/en-US/docs/Web/CSS/Tools">Eines CSS diverses.</a></li> +</ul> +</div> +</div> +</section> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Mozilla's <a href="/en-US/Learn/CSS">Learning CSS section</a></li> + <li>Els llenguatges web CSS s'aplica sovint a: <a href="/en-US/docs/HTML">HTML</a>, <a href="/en-US/docs/SVG">SVG</a>, <a href="/en-US/docs/XHTML">XHTML</a> i <a href="/en-US/docs/XML">XML</a>.</li> + <li>Les tecnologies de Mozilla fan un ampli ús de CSS: <a href="/en-US/docs/Mozilla/Tech/XUL">XUL</a>, <a href="/en-US/Firefox">Firefox</a> i <a href="/en-US/docs/Mozilla/Thunderbird">Thunderbird</a> <a href="/en-US/docs/Extensions">extensions</a> i <a href="/en-US/Add-ons/Themes">themes</a>.</li> +</ul> diff --git a/files/ca/web/css/margin-bottom/index.html b/files/ca/web/css/margin-bottom/index.html new file mode 100644 index 0000000000..7704f229b4 --- /dev/null +++ b/files/ca/web/css/margin-bottom/index.html @@ -0,0 +1,192 @@ +--- +title: margin-bottom +slug: Web/CSS/margin-bottom +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/margin-bottom +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="/en-US/docs/CSS">CSS</a> <strong><code>margin-bottom</code></strong> estableix l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">àrea de marge</a> a la part inferior d'un element. Un valor positiu el situarà més enllà del normal dels seus veïns, mentre que un valor negatiu el situarà més a prop.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +margin-bottom: 10px; /* An absolute length */ +margin-bottom: 1em; /* relative to the text size */ +margin-bottom: 5%; /* relative to the nearest block container's width */ + +/* Keyword values */ +margin-bottom: auto; + +/* Global values */ +margin-bottom: inherit; +margin-bottom: initial; +margin-bottom: unset; +</pre> + +<p><img alt="The effect of the CSS margin-bottom property on the element box" src="/files/4045/margin-bottom.svg" style="border: 1px solid; display: block; height: 130px; margin-left: auto; margin-right: auto; width: 400px;"></p> + +<p><span id="result_box" lang="ca"><span>Aquesta propietat no té cap efecte sobre els elements en línia no reemplaçats, com ara</span></span> {{HTMLElement("tt")}} o {{HTMLElement("span")}}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p><span id="result_box" lang="ca"><span>La propietat</span></span> <code>margin-bottom</code> <span id="result_box" lang="ca"><span>és especificada amb la paraula clau</span></span> <code>auto</code>, o un <code><length></code>, o un <code><percentage></code>. <span id="result_box" lang="ca"><span>El seu valor pot ser positiu, zero o negatiu</span></span>.</p> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>La grandària del marge com a valor fix.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>La grandària del marge com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor.</dd> + <dt><code>auto</code></dt> + <dd><span id="result_box" lang="ca"><span>El navegador selecciona un valor adequat per utilitzar.</span> <span>Veure</span></span> {{cssxref("margin")}}.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div class="container"> +<div class="box0">Box 0</div> +<div class="box1">Box 1</div> +<div class="box2">Box one's negative margin pulls me up</div> +</div></pre> + +<h3 id="CSS">CSS</h3> + +<p><span id="result_box" lang="ca"><span>CSS per divs per establir</span></span> margin-bottom i height</p> + +<pre class="brush: css">.box0 { + margin-bottom:1em; + height:3em; +} +.box1 { + margin-bottom:-1.5em; + height:4em; +} +.box2 { + border:1px dashed black; + border-width:1px 0; + margin-bottom:2em; +} + +</pre> + +<p><span id="result_box" lang="ca"><span>Algunes definicions per a contenidors i divs permeten veure de manera més clara els efectes dels marges</span></span>.</p> + +<pre class="brush: css">.container { + background-color:orange; + width:320px; + border:1px solid black; +} +div { + width:320px; + background-color:gold; +}</pre> + +<p>{{ EmbedLiveSample('Example',350,200) }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comenteri</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Box', '#margin-bottom', 'margin-bottom')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha canvis significatius</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'margin-bottom')}}</td> + <td>{{Spec2('CSS3 Transitions')}}</td> + <td>Defineix <code>margin-bottom</code> com animable.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-bottom')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Elimina el seu efecte en elements en línia</span></span>.</td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#margin-bottom', 'margin-bottom')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td><code>auto</code> value</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>6.0 (strict mode)</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/margin-left/index.html b/files/ca/web/css/margin-left/index.html new file mode 100644 index 0000000000..388c6f9a4c --- /dev/null +++ b/files/ca/web/css/margin-left/index.html @@ -0,0 +1,219 @@ +--- +title: margin-left +slug: Web/CSS/margin-left +tags: + - CSS + - CSS Property + - Layout + - Reference +translation_of: Web/CSS/margin-left +--- +<div>{{CSSRef()}}</div> + +<p>La propietat <a href="/en/CSS">CSS</a> <strong><code>margin-left</code></strong> estableix l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">àrea de marge</a> en el costat esquerre d'un element. Un valor positiu el situarà més enllà del normal dels seus veïns, mentre que un valor negatiu el situarà més a prop.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +margin-left: 10px; /* An absolute length */ +margin-left: 1em; /* relative to the text size */ +margin-left: 5%; /* relative to the nearest block container's width */ + +/* Keyword values */ +margin-left: auto; + +/* Global values */ +margin-left: inherit; +margin-left: initial; +margin-left: unset; +</pre> + +<p><img alt="Area on which CSS margin-left apply" src="/files/4039/margin-left.svg" style="border-style: solid; border-width: 1px; display: block; margin-left: auto; margin-right: auto;"></p> + +<p>Els marges verticals de dues caixes adjacents es poden fusionar. Això es diu <a href="/en-US/docs/CSS/margin_collapsing" title="/en-US/docs/CSS/margin_collapsing"><em>col.lapse de marge</em></a>.</p> + +<p>En els casos excepcionals en què l'amplada està massa restringida (és a dir, quan es defineixen tots els <code>width</code>, <code>margin-left</code>, <code>border</code>, <code>padding</code>, l'àrea de contingut i <code>margin-right</code>), s'ignora el <code>margin-left</code> i tindrà el mateix valor calculat que si s'especifica el valor <code>auto</code>.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p><span id="result_box" lang="ca"><span>La propietat</span></span> <code>margin-left</code> <span id="result_box" lang="ca"><span>és especificada amb la paraula clau</span></span> <code>auto</code>, o un <code><length></code>, o un <code><percentage></code>. <span id="result_box" lang="ca"><span>El seu valor pot ser positiu, zero o negatiu</span></span>.</p> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>La grandària del marge com a valor fix.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>La grandària del marge com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor.</dd> + <dt><code>auto</code></dt> + <dd>El marge esquerre rep una part de l'espai horitzontal no utilitzat, tal com es determina principalment pel mode de disseny que s'utilitza. Si els valors de <code>margin-left</code> i <code>margin-right</code> són <code>auto</code>, l'espai calculat es distribueix de manera uniforme. Aquesta taula resumeix els diferents casos: + <table class="standard-table"> + <thead> + <tr> + <th scope="col">Valor de {{cssxref("display")}}</th> + <th scope="col">Valor de {{cssxref("float")}}</th> + <th scope="col">Valor de {{cssxref("position")}}</th> + <th scope="col">Valor calculat d'auto</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <th><code>inline</code>, <code>inline-block</code>, <code>inline-table</code></th> + <th><em>qualsevol</em></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code></td> + <td>Mode de disseny en línia</td> + </tr> + <tr> + <th><code>block</code>, <code>inline</code>, <code>inline-block</code>, <code>block</code>, <code>table</code>, <code>inline-table</code>, <code>list-item</code>, <code>table-caption</code></th> + <th><em>qualsevol</em></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code>, excepte si tant <code>margin-left</code> i <code>margin-right</code> s'estableixen en <code>auto</code>. En aquest cas, s'estableix el valor que centra l'element dins del seu pare.</td> + <td>Mode de disseny de block</td> + </tr> + <tr> + <th><code>block</code>, <code>inline</code>, <code>inline-block</code>, <code>block</code>, <code>table</code>, <code>inline-table</code>, <code>list-item</code>, <code>table-caption</code></th> + <th><code>left</code> o <code>right</code></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code></td> + <td>Mode de disseny de block (element flotant)</td> + </tr> + <tr> + <th><em>qualsevol </em><code>table-*</code><em>, excepte </em><code>table-caption</code></th> + <th><em>qualsevol</em></th> + <th><em>qualsevol</em></th> + <td><code>0</code></td> + <td>Els elements interns de <code>table-*</code> no tenen marges, utilitzeu {{ cssxref("border-spacing") }} en el seu lloc</td> + </tr> + <tr> + <th><em>qualsevol, excepte <code>flex</code>,</em> <code>inline-flex</code><em>, o </em><code>table-*</code></th> + <th><em>qualsevol</em></th> + <th><em><code>fixed</code></em> o <code>absolute</code></th> + <td><code>0</code>, excepte si tant <code>margin-left</code> i <code>margin-right</code> s'estableixen en <code>auto</code>. En aquest cas, s'estableix el valor que centra l'àrea de vora dins de <code>width</code> disponible, si es fixa.</td> + <td>Mode de disseny absolutament posicionat</td> + </tr> + <tr> + <th><code>flex</code>, <code>inline-flex</code></th> + <th><em>qualsevol</em></th> + <th><em>qualsevol</em></th> + <td><code>0</code>, excepte si hi ha algun espai lliure horitzontal positiu. En aquest cas, es distribueix uniformement a tots els marges <code>auto</code> horitzontals.</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Mode de disseny Flexbox</span></span></td> + </tr> + </tbody> + </table> + </dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax()}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre>.content { margin-left: 5%; } +.sidebox { margin-left: 10px; } +.logo { margin-left: -5px; } +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Box', '#the-margin', 'margin-left')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi significatiu des de CSS 2.1.</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'margin-left')}}</td> + <td>{{Spec2('CSS3 Transitions')}}</td> + <td>Defineix <code>margin-left</code> com animable.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Flexbox', '#item-margins', 'margin-left')}}</td> + <td>{{Spec2('CSS3 Flexbox')}}</td> + <td>Defineix el comportament de <code>margin-left</code> en elements flex.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-left')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td><span id="result_box" lang="ca"><span>Igual que a CSS1, però elimina el seu efecte en els elements en línia</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#margin-left', 'margin-left')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable()}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td><code>auto</code> value</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>6.0 (strict mode)</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/margin-right/index.html b/files/ca/web/css/margin-right/index.html new file mode 100644 index 0000000000..eada94a607 --- /dev/null +++ b/files/ca/web/css/margin-right/index.html @@ -0,0 +1,218 @@ +--- +title: margin-right +slug: Web/CSS/margin-right +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/margin-right +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en/CSS">CSS</a> <strong><code>margin-right</code></strong> estableix l'<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">àrea de marge</a> en el costat dret d'un element . Un valor positiu el situarà més enllà del normal dels seus veïns, mentre que un valor negatiu el situarà més a prop.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +margin-right: 20px; /* An absolute length */ +margin-right: 1em; /* relative to the text size */ +margin-right: 5%; /* relative to the nearest block container's width */ + +/* Keyword values */ +margin-right: auto; + +/* Global values */ +margin-right: inherit; +margin-right: initial; +margin-right: unset; +</pre> + +<p><img alt="The effect of the CSS margin-right property on the element box" src="/files/4041/margin-right.svg" style="border: solid 1px; display: block; height: 200px; margin-left: auto; margin-right: auto; width: 400px;"></p> + +<p>Els marges verticals de dues caixes adjacents es poden fusionar. Això es diu <a href="https://developer.mozilla.org/en-US/docs/CSS/margin_collapsing" title="/en-US/docs/CSS/margin_collapsing"><em>col.lapse de marge</em></a>.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p><span id="result_box" lang="ca"><span>La propietat</span></span> <code>margin-right</code> <span id="result_box" lang="ca"><span>és especificada amb la paraula clau</span></span> <code>auto</code>, o un <code><length></code>, o un <code><percentage></code>. El seu valor pot ser positiu, zero o negatiu.</p> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>La grandària del marge com a valor fix.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>La grandària del marge com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor.</dd> + <dt><code>auto</code></dt> + <dd>El marge esquerre rep una part de l'espai horitzontal no utilitzat, tal com es determina principalment pel mode de disseny que s'utilitza. Si els valors de <code>margin-left</code> i <code>margin-right</code> sòn <code>auto</code>, l'espai calculat es distribueix de manera uniforme. Aquesta taula resumeix els diferents casos: + <table class="standard-table"> + <thead> + <tr> + <th scope="col">Valor de {{cssxref("display")}}</th> + <th scope="col">Valor de {{cssxref("float")}}</th> + <th scope="col">Valor de {{cssxref("position")}}</th> + <th scope="col">Valor calculat d'auto</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <th><code>inline</code>, <code>inline-block</code>, <code>inline-table</code></th> + <th><em>qualsevol</em></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code></td> + <td>Mode de disseny en línia</td> + </tr> + <tr> + <th><code>block</code>, <code>inline</code>, <code>inline-block</code>, <code>block</code>, <code>table</code>, <code>inline-table</code>, <code>list-item</code>, <code>table-caption</code></th> + <th><em>qualsevol</em></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code>, excepte si tant <code>margin-left</code> i <code>margin-right</code> s'estableixen en <code>auto</code>. En aquest cas, s'estableix el valor que centra l'element dins del seu pare.</td> + <td>Mode de disseny de block</td> + </tr> + <tr> + <th><code>block</code>, <code>inline</code>, <code>inline-block</code>, <code>block</code>, <code>table</code>, <code>inline-table</code>, <code>list-item</code>, <code>table-caption</code></th> + <th><code>left</code> o <code>right</code></th> + <th><code>static</code> o <code>relative</code></th> + <td><code>0</code></td> + <td>Mode de disseny de block (element flotant)</td> + </tr> + <tr> + <th><em>qualsevol</em> <em> </em><code>table-*</code><em>, excepte </em><code>table-caption</code></th> + <th><em>qualsevol</em></th> + <th><em>qualsevol</em></th> + <td><code>0</code></td> + <td>Els elements interns de <code>table-*</code> no tenen marges, utilitzeu {{ cssxref("border-spacing") }} en el seu lloc</td> + </tr> + <tr> + <th><em>qualsevol</em> <em>, excepte <code>flex</code>,</em> <code>inline-flex</code><em>, or </em><code>table-*</code></th> + <th><em>qualsevol</em></th> + <th><em><code>fixed</code></em> o <code>absolute</code></th> + <td><code>0</code>, excepte si tant <code>margin-left</code> i <code>margin-right</code> s'estableixen en <code>auto</code>. En aquest cas, s'estableix el valor que centra l'àrea de vora dins de <code>width</code> disponible, si es fixa.</td> + <td>Mode de disseny absolutament posicionat</td> + </tr> + <tr> + <th><code>flex</code>, <code>inline-flex</code></th> + <th><em>qualsevol</em></th> + <th><em>qualsevol</em></th> + <td><code>0</code>, excepte si hi ha algun espai lliure horitzontal positiu. En aquest cas, es distribueix uniformement a tots els marges <code>auto</code> horitzontals.</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Mode de disseny Flexbox</span></span></td> + </tr> + </tbody> + </table> + </dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="eval">.content { margin-right: 5%; } +.sidebox { margin-right: 10px; } +.logo { margin-right: -5px; } +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-margin', 'margin-right') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi significatiu</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'margin-right') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>margin-right</code> com animable.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Flexbox', '#item-margins', 'margin-right')}}</td> + <td>{{ Spec2('CSS3 Flexbox') }}</td> + <td>Defineix el comportament de <code>margin-right</code> en elements flex.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#margin-properties', 'margin-right') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span id="result_box" lang="ca"><span>Elimina el seu efecte en els elements en línia</span></span></td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#margin-right', 'margin-right') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td> + <p>valor <code>auto</code></p> + </td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>6.0 (strict mode)</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1") }}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/margin-top/index.html b/files/ca/web/css/margin-top/index.html new file mode 100644 index 0000000000..9642251af6 --- /dev/null +++ b/files/ca/web/css/margin-top/index.html @@ -0,0 +1,156 @@ +--- +title: margin-top +slug: Web/CSS/margin-top +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/margin-top +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en/CSS">CSS</a> <strong><code>margin-top</code></strong> estableix l'<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">àrea de marge</a> en la part superior d'un element . Un valor positiu el situarà més enllà del normal dels seus veïns, mentre que un valor negatiu el situarà més a prop.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +margin-top: 10px; /* An absolute length */ +margin-top: 1em; /* relative to the text size */ +margin-top: 5%; /* relative to the nearest block container's width */ + +/* Keyword values */ +margin-top: auto; + +/* Global values */ +margin-top: inherit; +margin-top: initial; +margin-top: unset; +</pre> + +<p><img alt="The effect of the CSS margin-top property on the element box" src="/files/4101/margin-top.svg" style="border-style: solid; border-width: 1px; display: block; margin-left: auto; margin-right: auto;"></p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p><span id="result_box" lang="ca"><span>La propietat</span></span> <code>margin-top</code> <span id="result_box" lang="ca"><span>és especificada amb la paraula clau</span></span> <code>auto</code>, o un <code><length></code>, o un <code><percentage></code>. El seu valor pot ser positiu, zero o negatiu.</p> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>La grandària del marge com a valor fix.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>La grandària del marge com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor.</dd> + <dt><code>auto</code></dt> + <dd><span id="result_box" lang="ca"><span>El navegador selecciona un valor adequat per utilitzar.</span> <span>Veure</span></span> {{cssxref("margin")}}.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush:css;">.content { margin-top: 5%; } +.sidebox { margin-top: 10px; } +.logo { margin-top: -5px; } +#footer { margin-top: 1em; } +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentsri</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Box', '#the-margin', 'margin-top')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi significatiu</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'margin-top')}}</td> + <td>{{Spec2('CSS3 Transitions')}}</td> + <td>Defineix <code>margin-top</code> com animable.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'box.html#margin-properties', 'margin-top')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td><span id="result_box" lang="ca"><span>Elimina el seu efecte en els elements en línia</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#margin-top', 'margin-top')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable()}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td> + <p>valor <code>auto</code></p> + </td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>6.0 (strict mode)</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/margin-trim/index.html b/files/ca/web/css/margin-trim/index.html new file mode 100644 index 0000000000..fca1c48772 --- /dev/null +++ b/files/ca/web/css/margin-trim/index.html @@ -0,0 +1,96 @@ +--- +title: margin-trim +slug: Web/CSS/margin-trim +translation_of: Web/CSS/margin-trim +--- +<p>{{CSSRef}}</p> + +<p>La propietat <code>margin-trim</code> permet al contenidor retallar els marges dels seus fills on s'adhereixen a les vores del contenidor.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<dl> + <dt><code>none</code></dt> + <dd>Els marges no són retallats pel contenidor.</dd> + <dt><code>in-flow</code></dt> + <dd> + <p>Per a les caixes in-flow contingudes per aquesta caixa, els marges block-axis adjacents a les vores de la caixa estan truncats a zero.</p> + + <p>També trunca qualsevol marge col·lapsat amb aquest marge.</p> + </dd> + <dt><code>all</code></dt> + <dd>Retalla els marges de les caixes in-flow i floats, els marges dels quals coincideixen amb la vora del contingut del contenidor.</dd> +</dl> + +<h2 id="Definició_formal">Definició formal</h2> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi_formal">Sintaxi formal</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Ús_bàsic">Ús bàsic</h3> + +<p>Una vegada que es doni suport a aquesta propietat, probablement funcionarà així::</p> + +<p>Quan tinguem un contenidor amb alguns fills en línia i vulguem posar un marge entre cada fill, però no interferir amb l'espaiat al final de la fila, podem fer una cosa així:</p> + +<pre class="brush: css notranslate">article { + background-color: red; + margin: 20px; + padding: 20px; + display: inline-block; +} + +article > span { + background-color: black; + color: white; + text-align: center; + padding: 10px; + margin-right: 20px; +}</pre> + +<p>El problema aquí és que acabaríem amb 20px massa espaiat a la dreta de la fila, així que tal vegada fariem això per a arreglar-ho:</p> + +<pre class="brush: css notranslate">span:last-child { + margin-right: 0; +}</pre> + +<p>És un dolor haver d'escriure una altra norma per a aconseguir-lo, i tampoc és molt flexible. En lloc d'això, <code>margin-trim</code> podria arreglar-ho:</p> + +<pre class="brush: css notranslate"> article { + margin-trim: in-flow; + ... +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th>Especificacions</th> + <th>Estat</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Box', '#margin-trim', 'margin-trim')}}</td> + <td>{{Spec2('CSS4 Box')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_el_navegador">Compatibilitat amb el navegador</h2> + +<div class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si es vol contribuir a les dades, consulteu out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i enviar una sol·licitud d'extracció.</div> + +<p>{{Compat("css.properties.margin-trim")}}</p> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li>{{CSSxRef("margin")}}</li> +</ul> diff --git a/files/ca/web/css/margin/index.html b/files/ca/web/css/margin/index.html new file mode 100644 index 0000000000..514a06cd6a --- /dev/null +++ b/files/ca/web/css/margin/index.html @@ -0,0 +1,302 @@ +--- +title: margin +slug: Web/CSS/margin +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/margin +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="/en/CSS">CSS</a> <strong><code>margin</code></strong> estableix l'àrea del marge en els quatre costats d'un element. És una abreviatura que estableix tots els marges individuals alhora: {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} i {{cssxref("margin-left")}}.</p> + +<pre class="brush:css no-line-numbers">/* Apply to all four sides */ +margin: 1em; + +/* vertical | horizontal */ +margin: 5% auto; + +/* top | horizontal | bottom */ +margin: 1em auto 2em; + +/* top | right | bottom | left */ +margin: 2px 1em 0 auto; + +/* Global values */ +margin: inherit; +margin: initial; +margin: unset; +</pre> + +<div class="hidden" id="margin"> +<pre class="brush: html"><div class="grid"> + <div class="col"> + <div class="cell"> + <div class="m m0">margin: 0</div> + </div> + <div class="cell"> + <div class="m m1">margin: 1em</div> + </div> + <div class="cell"> + <div class="m m2">margin: 5% auto</div> + </div> + <div class="cell"> + <div class="m m3">margin: 1em auto 2em</div> + </div> + <div class="cell"> + <div class="m m4">margin: 5px 1em 0 auto</div> + </div> + <div class="note">All the boxes above have the same width of 50%</div> + </div> +</div></pre> + +<pre class="brush: css">html,body { + height: 100%; + box-sizing: border-box; +} + +.grid { + width: 100%; + height: 100%; + display: flex; + background: #EEE; + font: 1em monospace; +} + +.col { + display: flex; + flex: 1 auto; + flex-direction: column; +} + +.cell { + box-sizing: border-box; + margin: .5em; + padding: 0; + background-color: #FFF; + overflow: hidden; + text-align: center; +} + +.note { + background: #fff3d4; + padding: 1em; + margin: .5em; + font: .8em sans-serif; + text-align: center; + flex: none; +} + +.m { + display: block; + width: 50%; + text-align: left; + background: #E4F0F5; + padding: .5em; + border: 1px solid; +} + +.m0 { margin: 0; } +.m1 { margin: 1em; } +.m2 { margin: 5% auto; } +.m3 { margin: 1em auto 2em; } +.m4 { margin: 5px 1em 0 auto; }</pre> +</div> + +<p>{{EmbedLiveSample("margin", "100%", 400, "", "", "example-outcome-frame")}}</p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>margin</code> es pot especificar usant un, dos, tres o quatre valors. Cada valor és un <code><a href="#<length>"><length></a></code>, un <code><a href="#<percentage>"><percentage></a></code>, o la paraula clau <code><a href="#auto">auto</a></code>. Cada valor pot ser positiu, zero o negatiu.</p> + +<ul> + <li>Quan s'especifica <strong>un</strong> valor, s'aplica el mateix marge als <strong>quatre costats</strong>.</li> + <li>Quan s'especifiquen <strong>dos</strong> valors, el primer marge s'aplica a la part <strong>superior i inferior</strong>, el segon a l'<strong>esquerra i a la dreta</strong>.</li> + <li>Quan s'especifiquen <strong>tres</strong> valors, el primer marge s'aplica a la part <strong>superior</strong>, el segon a l'<strong>esquerra i a la dreta</strong>, el tercer a la part <strong>inferior</strong>.</li> + <li>Quan s'especifiquen <strong>quatre</strong> valors, els marges s'apliquen a la part <strong>superior, dreta, inferior </strong>i<strong> esquerra</strong> en aquest ordre (en el sentit de les agulles del rellotge).</li> +</ul> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><strong>{{cssxref("length")}}</strong></dt> + <dd>La grandària del marge com a valor fix.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del marge com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor.</dd> + <dt><code>auto</code></dt> + <dd>El navegador selecciona un marge adequat per utilitzar-lo. Per exemple, en alguns casos aquest valor es pot utilitzar per centrar un element.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div class="center">This element is centered.</div> + +<div class="outside">This element is positioned outside of its container.</div></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css; highlight:[2,8]">.center { + margin: auto; + background: lime; + width: 66%; +} + +.outside { + margin: 3rem 0 0 -3rem; + background: cyan; + width: 66%; +}</pre> + +<p>{{ EmbedLiveSample('Simple_example','100%',120) }}</p> + +<h3 id="Més_exemples"><span class="short_text" id="result_box" lang="ca"><span>Més exemples</span></span></h3> + +<pre class="brush: css">margin: 5%; /* all sides: 5% margin */ + +margin: 10px; /* all sides: 10px margin */ + +margin: 1.6em 20px; /* top and bottom: 1.6em margin */ + /* left and right: 20px margin */ + +margin: 10px 3% 1em; /* top: 10px margin */ + /* left and right: 3% margin */ + /* bottom: 1em margin */ + +margin: 10px 3px 30px 5px; /* top: 10px margin */ + /* right: 3px margin */ + /* bottom: 30px margin */ + /* left: 5px margin */ + +margin: 2em auto; /* top and bottom: 2em margin */ + /* box is horizontally centered */ + +margin: auto; /* top and bottom: 0 margin */ + /* box is horizontally centered */ +</pre> + +<h2 id="Notes">Notes</h2> + +<h3 id="Centrat_horitzontal"><span id="result_box" lang="ca"><span>Centrat horitzontal</span></span></h3> + +<p>Per centrar alguna cosa horitzontalment en els navegadors moderns, podeu utilitzar <code><a href="/en-US/docs/Web/CSS/display">display</a>: flex; <a href="/en-US/docs/Web/CSS/justify-content">justify-content</a>: center;</code> .</p> + +<p>Tanmateix, en navegadors antics com IE8-9 que no admeten el disseny de flexbox, aquests no estan disponibles. Per centrar un element dins del seu pare, utilitzeu <code>margin: 0 auto;</code> .</p> + +<h3 id="Col.lapse_del_marge">Col.lapse del marge</h3> + +<p>Els marges superior i inferior d'elements solen col·lapsar-se en un únic marge igual al major dels dos marges. Consulteu <a href="/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing">Dominar el col.lapse del marge</a> per obtenir més informació.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#margin', 'margin') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha canvis significatius</span></span> .</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'margin') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>margin</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#margin-properties', 'margin') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Elimina el seu efecte en elements en línia</span></span> .</td> + </tr> + <tr> + <td>{{ SpecName('CSS1', '#margin', 'margin') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició iniciaI.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + <tr> + <td><code>auto</code> value</td> + <td>1.0</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatGeckoDesktop("1") }}</td> + <td>6.0 (strict mode)</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1") }}</td> + <td>6.0</td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="internal" href="/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSS</a></li> + <li><a class="internal" href="/en/CSS/margin_collapsing" title="en/CSS/margin collapsing">Col.lapse del marge</a></li> +</ul> diff --git a/files/ca/web/css/max-height/index.html b/files/ca/web/css/max-height/index.html new file mode 100644 index 0000000000..9ae113b699 --- /dev/null +++ b/files/ca/web/css/max-height/index.html @@ -0,0 +1,223 @@ +--- +title: max-height +slug: Web/CSS/max-height +tags: + - CSS + - CSS Property + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/max-height +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="/en-US/docs/CSS">CSS</a> <strong><code>max-height</code></strong> estableix l'alçada màxima d'un element. Impedeix que el <a href="/en-US/docs/Web/CSS/used_value">valor utilitzat</a> per la propietat {{ Cssxref("height") }} sigui més gran que el valor especificat per <code>max-height</code>.</p> + +<pre class="brush:css no-line-numbers">/* <length> value */ +max-height: 3.5em; + +/* <percentage> value */ +max-height: 75%; + +/* Keyword values */ +max-height: none; +max-height: max-content; +max-height: min-content; +max-height: fit-content; +max-height: fill-available; + +/* Global values */ +max-height: inherit; +max-height: initial; +max-height: unset; +</pre> + +<p>{{ Cssxref("max-height") }} anul·la {{cssxref("height")}}, <span id="result_box" lang="ca"><span>però</span></span> {{ Cssxref("min-height") }} anul·la {{ Cssxref("max-height") }}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada màxima, expressada com</span></span> {{cssxref("<length>")}}.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>L'alçada màxima, expressada com {{cssxref("<percentage>")}} de l'alçada del bloc contenidor. Si l'alçada del bloc contenidor no s'especifica explícitament, el valor del percentatge es tractarà com a zero.</dd> +</dl> + +<h4 id="Valors_de_paraules_clau">Valors de paraules clau</h4> + +<dl> + <dt><code>none</code></dt> + <dd>L'alçada no té un valor màxim.</dd> + <dt><code>max-content</code>{{experimental_inline()}}</dt> + <dd>L'alçada preferida intrínseca.</dd> + <dt><code>min-content</code>{{experimental_inline()}}</dt> + <dd>L'alçada mínima intrínseca.</dd> + <dt><code>fill-available</code>{{experimental_inline()}}</dt> + <dd>L'alçada del bloc contenidor menys el marge vertical, la vora i el farcit. (Tingueu en compte que alguns navegadors implementen un nom antic per a aquesta paraula clau, <code>available</code>.)</dd> + <dt><code>fit-content</code>{{experimental_inline()}}</dt> + <dd>El mateix que <code>max-content.</code></dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: css">table { max-height: 75%; } + +form { max-height: none; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'max-height') }}</td> + <td>{{ Spec2('CSS3 Sizing') }}</td> + <td>Afegeix les paraules clau <code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-available</code>. (Els esborranys CSS3 Box i CSS3 Writing Modes s'utilitzen per definir aquestes paraules clau, però són substituïdes per aquesta especificació<em>).</em></td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'max-height') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>max-height</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'visudet.html#min-max-heights', 'max-height') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegador compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>7.0</td> + <td>7.0</td> + <td>1.0</td> + </tr> + <tr> + <td>s'aplica a <code><table></code><sup>[1]</sup></td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown()}}</td> + <td>{{ CompatNo() }}</td> + <td>{{CompatVersionUnknown()}}</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td rowspan="1"><code>max-content</code>, <code>min-content</code> i <code>fit-content</code> {{ experimental_inline() }}</td> + <td>{{ CompatNo() }} [3]</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.9")}}{{property_prefix("-moz")}} [2]</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td>9[3](<a href="https://bugs.webkit.org/show_bug.cgi?id=113610">bug</a>)</td> + </tr> + <tr> + <td rowspan="1"><code>fill-available</code> {{ experimental_inline() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatNo() }} {{ bug(527285) }}</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>s'aplica a <code><table></code><sup>[1]</sup></td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td rowspan="1"><code>max-content</code>, <code>min-content</code> i <code>fit-content</code> {{ experimental_inline() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatUnknown() }}</td> + <td rowspan="1">{{ CompatUnknown() }}</td> + <td rowspan="1">{{ CompatUnknown() }}</td> + <td>9[3](<a href="https://bugs.webkit.org/show_bug.cgi?id=113610">bug</a>)</td> + </tr> + <tr> + <td rowspan="1"><code>fill-available</code> {{ experimental_inline() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatUnknown() }}</td> + <td rowspan="1">{{ CompatUnknown() }}</td> + <td rowspan="1">{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] CSS 2.1 deixa explícitament indefinit el comportament de <code>max-height</code> amb {{ HTMLElement("table") }}. Per tant, qualsevol comportament és compatible amb CSS2.1; les noves especificacions de CSS poden definir aquest comportament, de manera que els desenvolupadors web no haurien de confiar en un específic ara.</p> + +<p>[2] Gecko implementa experimentalment les definicions donades en CSS3 Basic Box. Aquesta defineix <code>available</code> i no <code>fill-available</code>. També la definició de <code>fit-content</code> és més simple que en CSS3 Sizing.</p> + +<p>[3] WebKit implementa una proposta anterior per establir l'alçada a una alçada intrínseca: les paraules clau són <code>intrinsic</code>, en comptes de <code>max-content</code> i <code>min-intrinsic</code>, en comptes de <code>min-content</code>. No hi ha equivalent per <code>fill-available</code> o <code>fit-content</code>.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/CSS/box_model" title="en/CSS/box_model">El model de caixa</a></li> + <li>{{ Cssxref("max-width") }}, {{ Cssxref("box-sizing") }}, {{ Cssxref("height") }}, {{ Cssxref("min-height") }}</li> +</ul> diff --git a/files/ca/web/css/max-width/index.html b/files/ca/web/css/max-width/index.html new file mode 100644 index 0000000000..445a4e76ff --- /dev/null +++ b/files/ca/web/css/max-width/index.html @@ -0,0 +1,234 @@ +--- +title: max-width +slug: Web/CSS/max-width +tags: + - CSS + - CSS Property + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/max-width +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> <strong><code>max-width</code></strong> estableix l'amplada màxima d'un element . Impedeix que el <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/used_value">valor utilitzat</a> per la propietat {{ Cssxref("width") }} sigui més gran que el valor especificat per <code>max-width</code>.</p> + +<pre class="brush:css no-line-numbers">/* <length> value */ +max-width: 3.5em; + +/* <percentage> value */ +max-width: 75%; + +/* Keyword values */ +max-width: none; +max-width: max-content; +max-width: min-content; +max-width: fit-content; +max-width: fill-available; + +/* Global values */ +max-width: inherit; +max-width: initial; +max-width: unset; +</pre> + +<p>{{ Cssxref("max-width") }} anul·la {{cssxref("width")}}, <span id="result_box" lang="ca"><span>però</span></span> {{ Cssxref("min-width") }} anul·la {{ Cssxref("max-width") }}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'amplada màxima, expressada com</span></span> {{cssxref("<length>")}}.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>L'<span id="result_box" lang="ca"><span>amplada</span></span> màxima, expressada com {{cssxref("<percentage>")}} de l'amplada del bloc contenidor.</dd> +</dl> + +<h4 id="Valors_de_paraules_clau">Valors de paraules clau</h4> + +<dl> + <dt><code>none</code></dt> + <dd>L'amplada no té un valor màxim.</dd> + <dt><code>max-content</code>{{experimental_inline()}}</dt> + <dd>L'amplada preferida intrínseca.</dd> + <dt><code>min-content</code>{{experimental_inline()}}</dt> + <dd>L'amplada mínima intrínseca.</dd> + <dt><code>fill-available</code>{{experimental_inline()}}</dt> + <dd>L'amplada del bloc contenidor menys el marge horitzontal, la vora i el farcit . ( Tingueu en compte que alguns navegadors implementen un nom antic per a aquesta paraula clau , <code>available</code>.)</dd> + <dt><code>fit-content</code>{{experimental_inline()}}</dt> + <dd>El mateix que <code>max-content.</code></dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p><span id="result_box" lang="ca"><span>En aquest exemple, el "fill" tindrà 150 píxels d'amplada o l'amplada del "pare", el que sigui més petit:</span></span></p> + +<div id="basic-max-width-demo"> +<pre class="brush: html"><div id="parent"> + <div id="child"> + Fusce pulvinar vestibulum eros, sed luctus ex lobortis quis. + </div> +</div> +</pre> + +<pre class="brush: css">#parent { + background: lightblue; + width: 300px; +} + +#child { + background: gold; + width: 100%; + max-width: 150px; +} +</pre> +</div> + +<p>{{EmbedLiveSample("basic-max-width-demo", 350, 100)}}</p> + +<p>El valor <code>fit-content</code> es pot utilitzar per establir l'amplada d'un element en funció de la grandària intrínseca que requereix el seu contingut:</p> + +<div id="fit-content-demo"> +<pre class="brush: html" style="display: none;"><div id="parent"> + <div id="child"> + Child Text + </div> +</div> +</pre> + +<pre class="brush: css">#parent { + background: lightblue; + width: 300px; +} + +#child { + background: gold; + width: 100%; + max-width: -moz-fit-content; + max-width: -webkit-fit-content; +} +</pre> +</div> + +<p>{{EmbedLiveSample("fit-content-demo", 400, 100)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'max-width') }}</td> + <td>{{ Spec2('CSS3 Sizing') }}</td> + <td>Afegeix les paraules clau <code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-available</code>. (Els esborranys CSS3 Box i CSS3 Writing Modes s'utilitzen per definir aquestes paraules clau, però són substituïdes per aquesta especificació<em>).</em></td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'max-width') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>max-width</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'visudet.html#min-max-widths', 'max-width') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>7.0</td> + <td>4.0</td> + <td>2.0.2 (416),<br> + buggy before</td> + </tr> + <tr> + <td>s'aplica a <code><table></code><sup>[1]</sup></td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown()}}</td> + <td>{{ CompatNo() }}</td> + <td>{{CompatVersionUnknown()}}</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td rowspan="1"><code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-</code><code>available</code> {{ experimental_inline() }}</td> + <td>{{ CompatNo() }} [3]</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.9")}}{{property_prefix("-moz")}} [2]</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td rowspan="1">{{ CompatNo() }}</td> + <td>{{ CompatNo() }} [3]</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] CSS 2.1 deixa explícitament indefinit el comportament de <code>max-width</code> amb {{ HTMLElement("table") }}. Per tant, qualsevol comportament és compatible amb CSS2.1; les noves especificacions de CSS poden definir aquest comportament, de manera que els desenvolupadors web no haurien de confiar en un específic ara.</p> + +<p>[2] Gecko implementa experimentalment les definicions donades en CSS3 Basic Box. Aquesta defineix <code>available</code> i no <code>fill-available</code>. També la definició de <code>fit-content</code> és més simple que en CSS3 Sizing .</p> + +<p>[3] WebKit implementa una proposta anterior per establir l'alçada a una alçada intrínseca: les paraules clau són <code>intrinsic</code>, en comptes de <code>max-content</code> i <code>min-intrinsic</code>, en comptes de <code>min-content</code> No hi ha equivalent per <code>fill-available</code> o <code>fit-content</code>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{ Cssxref("width") }}, {{ Cssxref("min-width") }}, {{ Cssxref("max-height") }}</li> + <li><a href="/en/CSS/box_model" title="en/CSS/box_model">El model de caixa</a>, {{ Cssxref("box-sizing") }}</li> +</ul> diff --git a/files/ca/web/css/min-height/index.html b/files/ca/web/css/min-height/index.html new file mode 100644 index 0000000000..10f4f67152 --- /dev/null +++ b/files/ca/web/css/min-height/index.html @@ -0,0 +1,211 @@ +--- +title: min-height +slug: Web/CSS/min-height +tags: + - CSS + - CSS Property + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/min-height +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> <strong> <code>min-height</code></strong> estableix l'alçada mínima d'un element . Impedeix que el <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/used_value">valor utilitzat</a> per la propietat {{ Cssxref("height") }} sigui més petit que el valor especificat per <code>min-height</code>.</p> + +<pre class="brush:css no-line-numbers">/* <length> value */ +min-height: 3.5em; + +/* <percentage> value */ +min-height: 10%; + +/* Keyword values */ +min-height: max-content; +min-height: min-content; +min-height: fit-content; +min-height: fill-available; + +/* Global values */ +min-height: inherit; +min-height: initial; +min-height: unset; +</pre> + +<p>L'alçada de l'element s'ajusta al valor de <code>min-height</code> cada vegada que <code>min-height</code> és més gran que {{ Cssxref("max-height") }} o {{Cssxref("height")}}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>L'alçada mínima, expressada com {{cssxref("<length>")}}. Els valors negatius fan que la declaració no sigui vàlida.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>L'alçada mínima, expressada com {{cssxref("<percentage>")}} de l'alçada del bloc contenidor. Els valors negatius fan que la declaració no sigui vàlida.</dd> +</dl> + +<h4 id="Valors_de_paraules_clau">Valors de paraules clau</h4> + +<dl> + <dt><code>auto</code></dt> + <dd><span id="result_box" lang="ca"><span>L'alçada mínima predeterminada per a elements flexibles, proporcionant un valor predeterminat més raonable que 0 per a altres dissenys.</span></span></dd> +</dl> + +<dl> + <dt><code>max-content</code> {{ experimental_inline() }}</dt> + <dd>L'alçada preferida intrínseca.</dd> + <dt><code>min-content</code> {{ experimental_inline() }}</dt> + <dd>L'alçada mínima intrínseca.</dd> + <dt><code>fill-available</code>{{ experimental_inline() }}</dt> + <dd>L'alçada del bloc contenidor menys el marge vertical, la vora i el farcit . ( Tingueu en compte que alguns navegadors implementen un nom antic per a aquesta paraula clau, <code>available</code>.)</dd> + <dt><code>fit-content</code> {{ experimental_inline() }}</dt> + <dd>Segons CSS3 Box, aquest és un sinònim de <code>min-content</code>. CSS3 Sizing defineix un algoritme més complex, però cap navegador l'implementa, fins i tot de forma experimental.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: css">table { min-height: 75%; } + +form { min-height: 0; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'min-height') }}</td> + <td>{{ Spec2('CSS3 Sizing') }}</td> + <td>Afegeix les paraules clau <code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-available</code>. ( Els esborranys CSS3 Box i CSS3 Writing Modes s'utilitzen per definir aquestes paraules clau, però són substituïdes per aquesta especificació <em>)</em></td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Flexbox', '#min-auto', 'min-height') }}</td> + <td>{{ Spec2('CSS3 Flexbox') }}</td> + <td>Afegeix la paraula clau <code>auto</code> i l'utilitza com a valor inicial.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'min-height') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>min-height</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'visudet.html#min-max-heights', 'min-height') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("1.9") }}</td> + <td>7.0 [3]</td> + <td>4.0</td> + <td>1.0<br> + 2.0.2 (416) for positioned elements</td> + </tr> + <tr> + <td>s'aplica a <code><table></code><sup>[1]</sup></td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td><code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-</code><code>available</code> {{ experimental_inline() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>9</td> + </tr> + <tr> + <td><code>auto</code>{{obsolete_inline(22)}}</td> + <td>21.0</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatGeckoDesktop("16.0") }}</td> + <td>{{ CompatNo() }}</td> + <td>12.10</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td><code>auto</code> com a valor incial{{obsolete_inline(22)}}</td> + <td>21.0</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatGeckoDesktop("18.0") }}</td> + <td>{{ CompatNo() }}</td> + <td>12.10</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>9</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] CSS 2.1 deixa explícitament indefinit el comportament de <code>min-height </code>amb {{ HTMLElement("table") }}. Per tant, qualsevol comportament és compatible amb CSS2.1; les noves especificacions de CSS poden definir aquest comportament, de manera que els desenvolupadors web no haurien de confiar en un específic ara.</p> + +<p>[2] A causa de l'error ({{bug("307866")}}) Firefox no maneja <code>min-height</code> en elements amb <code>display: table-*</code>.</p> + +<p>[3] A Internet Explorer 10-11 (però no 12+), una declaració <code>min-height</code> en un contenidor flex de direcció-columna no s'aplica als elements flex del contenidor. Consulteu <a href="https://github.com/philipwalton/flexbugs#3-min-height-on-a-column-flex-container-wont-apply-to-its-flex-items">Flexbug #3</a> per més informació.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{ Cssxref("height") }}, {{ Cssxref("max-height") }}</li> + <li>El <a href="/en-US/docs/CSS/box_model" title="en/CSS/box_model">model de caixa</a>, {{ Cssxref("box-sizing") }}</li> +</ul> diff --git a/files/ca/web/css/min-width/index.html b/files/ca/web/css/min-width/index.html new file mode 100644 index 0000000000..f0c3067728 --- /dev/null +++ b/files/ca/web/css/min-width/index.html @@ -0,0 +1,257 @@ +--- +title: min-width +slug: Web/CSS/min-width +tags: + - CSS + - CSS Property + - Reference +translation_of: Web/CSS/min-width +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> <strong><code>min-width</code></strong> estableix l'amplada mínima d'un element. Impedeix que el <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/used_value">valor utilitzat</a> per la propietat {{ Cssxref("width") }} sigui més ampla que el valor especificat per <code>min-width</code>.</p> + +<pre class="brush:css no-line-numbers">/* <length> value */ +min-width: 3.5em; + +/* <percentage> value */ +min-width: 10%; + +/* Keyword values */ +min-width: max-content; +min-width: min-content; +min-width: fit-content; +min-width: fill-available; + +/* Global values */ +min-width: inherit; +min-width: initial; +min-width: unset; +</pre> + +<p>L'amplada de l'element s'ajusta al valor de <code>min-width</code> cada vegada que <code>min-width</code> és més gran que {{ Cssxref("max-width") }} o {{Cssxref("width")}}.</p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>L'amplada mínima, expressada com {{cssxref("<length>")}}. Els valors negatius fan que la declaració no sigui vàlida .</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>L'amplada mínima, expressada com {{cssxref("<percentage>")}} de l'amplada del bloc contenidor. Els valors negatius fan que la declaració no sigui vàlida .</dd> +</dl> + +<h4 id="Valors_de_paraules_clau">Valors de paraules clau</h4> + +<dl> + <dt><code>auto</code></dt> + <dd><span id="result_box" lang="ca"><span>L'amplada mínima predeterminada per a elements flexibles, proporcionant un valor predeterminat més raonable que 0 per a altres dissenys</span></span> .</dd> + <dt><code>max-content</code> {{ experimental_inline() }}</dt> + <dd>L'amplada preferida intrínseca.</dd> + <dt><code>min-content</code> {{ experimental_inline() }}</dt> + <dd>L'amplada mínima intrínseca.</dd> + <dt><code>fill-available</code>{{ experimental_inline() }}</dt> + <dd>L'amplada del bloc contenidor menys el marge horitzontal, la vora i el farcit. ( Tingueu en compte que alguns navegadors implementen un nom antic per a aquesta paraula clau, <code>available</code>).</dd> + <dt><code>fit-content</code> {{ experimental_inline() }}</dt> + <dd>Definit com <code>min(max-content, max(min-content, fill-available))</code>.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush:css;">table { min-width: 75%; } + +form { min-width: 0; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Sizing', '#width-height-keywords', 'min-width') }}</td> + <td>{{ Spec2('CSS3 Sizing') }}</td> + <td>Afegeix les paraules clau <code>max-content</code>, <code>min-content</code>, <code>fit-content</code>, and <code>fill-available</code> keywords. (Els esborranys CSS3 Box i CSS3 Writing Modes s'utilitzen per definir aquestes paraules clau, però són substituïdes per aquesta especificació<em>)</em></td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Flexbox', '#min-size-auto', 'min-width') }}</td> + <td>{{ Spec2('CSS3 Flexbox') }}</td> + <td>Afegeix la paraula clau <code>auto</code> keyword i l'utilitza com a valor inicial.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'min-width') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>min-width</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'visudet.html#min-max-widths', 'min-width') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>7.0</td> + <td>4.0</td> + <td>2.0.2 (416), buggy before</td> + </tr> + <tr> + <td>s'aplica a <code><table></code> <sup>[1]</sup></td> + <td>{{ CompatNo() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td><code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-</code><code>available</code> {{ experimental_inline() }}</td> + <td>24.0 {{property_prefix("-webkit")}} [3]</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoDesktop("1.9") }} {{ property_prefix("-moz") }} [2]</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }} [3]</td> + </tr> + <tr> + <td><code>auto</code></td> + <td>21.0 [4]</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatGeckoDesktop("16.0") }} [4]<br> + Removed in {{ CompatGeckoDesktop("22.0") }}<br> + Reintroduced in {{CompatGeckoDesktop("34.0")}} with the new behavior defined by the spec.</td> + <td>{{ CompatNo() }}</td> + <td>12.10 [6]</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td><code>auto</code> com a valor inicial{{obsolete_inline()}}</td> + <td>21.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoDesktop("18.0") }}<br> + Removed in {{ CompatGeckoDesktop("22.0") }}</td> + <td>{{ CompatNo() }}</td> + <td>12.10</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}[5]</td> + </tr> + <tr> + <td>s'aplica a <code><table></code><sup>[1]</sup></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td><code>max-content</code>, <code>min-content</code>, <code>fit-content</code> i <code>fill-</code><code>available</code> {{ experimental_inline() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td><code>auto</code></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td><code>auto</code> com a valor inicial{{obsolete_inline()}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] CSS 2.1 deixa explícitament indefinit el comportament de <code>min-width</code> amb {{ HTMLElement("table") }}. Per tant, qualsevol comportament és compatible amb CSS2.1; les noves especificacions de CSS poden definir aquest comportament, de manera que els desenvolupadors web no haurien de confiar en un específic ara.</p> + +<p>[2] Gecko implementa experimentalment les definicions donades en CSS3 Basic Box. Aquesta defineix <code>available</code> i no <code>fill-available</code>. També la definició de <code>fit-content</code> és més simple que en CSS3 Sizing.</p> + +<p>[3] <span id="result_box" lang="ca"><span>WebKit també implementa una proposta anterior, la paraula clau</span></span> <code>intrinsic</code>.</p> + +<p>[4] Aquestes implementacions on s'implementa un comportament lleugerament més simple per a aquesta paraula clau: calcula <code>min-content</code> en elements flexibles, i computa a <code>0</code> en tota la resta.</p> + +<p>[5] En alguns navegadors, a iOS, un element <button> en la seva configuració nativa (predeterminada) no respondrà a min-width. Aquest problema es deu als botons natius. Un <span> dins d'un botó natiu mostrarà el mateix problema, malgrat tenir definit "display:inline-block". Quan es fan canvis en altres paràmetres d'estil i el navegador es veu obligat a abandonar el botó natiu, la configuració min-width es veu afectada.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{ Cssxref("width") }}, {{ Cssxref("max-width") }}</li> + <li>El <a href="/en-US/docs/Web/CSS/box_model" title="en/CSS/box_model">model de caixa</a>, {{ Cssxref("box-sizing") }}</li> +</ul> diff --git a/files/ca/web/css/overflow-x/index.html b/files/ca/web/css/overflow-x/index.html new file mode 100644 index 0000000000..28ed745f75 --- /dev/null +++ b/files/ca/web/css/overflow-x/index.html @@ -0,0 +1,192 @@ +--- +title: overflow-x +slug: Web/CSS/overflow-x +tags: + - CSS + - CSS Box Model + - CSS Property + - Experimental + - Reference +translation_of: Web/CSS/overflow-x +--- +<div>{{CSSRef}}</div> + +<p>La propietat<strong> <code>overflow-x</code></strong> especifica si s'ha de retallar el contingut, mostrar una barra de desplaçament o mostrar el contingut de desbordament d'un element de nivell de bloc, quan es desbordan les vores esquerra i dreta.</p> + +<pre class="brush:css no-line-numbers">/* El contingut no es retallat */ +overflow-x: visible; + +/* El contingut es retallat, sense barres desplaçament */ +overflow-x: hidden; + +/* El contingut es retallat, amb barres desplaçament */ +overflow-x: scroll; + +/* Deixa que el navegador decideixi */ +overflow-x: auto; + +/* Valors globals */ +overflow-x: inherit; +overflow-x: initial; +overflow-x: unset; +</pre> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>visible</code></dt> + <dd>El contingut no es retalla i es pot mostrar fora de la caixa de contingut.</dd> + <dt><code>hidden</code></dt> + <dd>El contingut es retalla <span class="short_text" id="result_box" lang="ca"><span>i no es proporcionen barres de desplaçament</span></span>.</dd> + <dt><code>scroll</code></dt> + <dd>El contingut es retalla i els exploradors d'escriptori utilitzen barres de desplaçament, independentment que s'hagi retallat o no qualsevol contingut. Això evita qualsevol problema amb les barres de desplaçament que apareixen i desapareixen en un entorn dinàmic. Les impressores poden imprimir contingut desbordat.</dd> + <dt><code>auto</code></dt> + <dd>Depèn de l'agent d'usuari. Els navegadors d'escriptori com Firefox proporcionen barres de desplaçament si el contingut es desborda.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><ul> + <li><code>overflow-x:hidden</code> — <span class="short_text" id="result_box" lang="ca"><span>amaga el text fora de la caixa</span></span> + <div id="div1"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:scroll</code> — afegeix sempre una barra de desplaçament + <div id="div2"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:visible</code> — mostra el text fora de la caixa, si és necessari + <div id="div3"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> + + <li><code>overflow-x:auto</code> — <span class="short_text" id="result_box" lang="ca"><span>a la majoria de navegadors, equivalent a</span></span> <code>scroll</code> + <div id="div4"> + ABCDEFGHIJKLMOPQRSTUVWXYZABCDEFGHIJKLMOPQRSTUVWXYZ + </div> + </li> +</ul> +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">#div1, #div2, #div3, #div4 { + border: 1px solid black; + width: 250px; + margin-bottom: 12px; +} + +#div1 { overflow-x: hidden;} +#div2 { overflow-x: scroll;} +#div3 { overflow-x: visible;} +#div4 { overflow-x: auto;} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<figure> +<p>{{EmbedLiveSample("Examples", "100%", "270")}}</p> +</figure> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Overflow', '#propdef-overflow-x', 'overflow-x')}}</td> + <td>{{Spec2('CSS3 Overflow')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS3 Box', '#overflow-x', 'overflow-x')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>5.0<sup>[1]</sup></td> + <td>9.5</td> + <td>3.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Internet Explorer 8 va introduir</span></span> <code> -ms-overflow-x </code> <span id="result_box" lang="ca"><span>com sinònim de</span></span> <code> overflow-x</code>. <span id="result_box" lang="ca"><span>No utilitzeu el prefix</span></span> <code>-ms-</code>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Propietats CSS relacionades: {{cssxref("text-overflow")}}, {{cssxref("white-space")}}, {{Cssxref("overflow")}}, {{Cssxref("overflow-y")}}, {{Cssxref("clip")}}, {{Cssxref("display")}}</li> +</ul> diff --git a/files/ca/web/css/overflow-y/index.html b/files/ca/web/css/overflow-y/index.html new file mode 100644 index 0000000000..4426f507b4 --- /dev/null +++ b/files/ca/web/css/overflow-y/index.html @@ -0,0 +1,196 @@ +--- +title: overflow-y +slug: Web/CSS/overflow-y +tags: + - CSS + - CSS Box Model + - CSS Property + - Experimental + - Reference +translation_of: Web/CSS/overflow-y +--- +<div>{{CSSRef}}</div> + +<p>La propietat <strong><code>overflow-y</code></strong> especifica si s'ha de retallar el contingut, mostrar una barra de desplaçament o mostrar el contingut de desbordament d'un element de nivell de bloc, <span class="short_text" id="result_box" lang="ca"><span>quan es desbordan les vores superior i inferior.</span></span></p> + +<pre class="brush:css no-line-numbers">/* El contingut no es retallat */ +overflow-y: visible; + +/* El contingut es retallat, sense barres desplaçament */ +overflow-y: hidden; + +/* El contingut es retallat, amb barres desplaçament */ +overflow-y: scroll; + +/* Deixa que el navegador decideixi */ +overflow-y: auto; + +/* Valors globals */ +overflow-y: inherit; +overflow-y: initial; +overflow-y: unset; +</pre> + +<div>{{cssinfo}}</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>visible</code></dt> + <dd>El contingut no es retalla i es pot mostrar fora de la caixa de contingut.</dd> + <dt><code>hidden</code></dt> + <dd>El contingut es retalla <span class="short_text" id="result_box" lang="ca"><span>i no es proporcionen barres de desplaçament</span></span>.</dd> + <dt><code>scroll</code></dt> + <dd>El contingut es retalla i els exploradors d'escriptori utilitzen barres de desplaçament, independentment que s'hagi retallat o no qualsevol contingut. Això evita qualsevol problema amb les barres de desplaçament que apareixen i desapareixen en un entorn dinàmic. Les impressores poden imprimir contingut desbordat.</dd> + <dt><code>auto</code></dt> + <dd>Depèn de l'agent d'usuari. Els navegadors d'escriptori com Firefox proporcionen barres de desplaçament si el contingut es desborda.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><ul> + <li><code>overflow-y:hidden</code> — <span class="short_text" id="result_box" lang="ca"><span>amaga el text fora de la caixa</span></span> + <div id="div1"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:scroll</code> — afegeix sempre una barra de desplaçament + <div id="div2"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:visible</code> — mostra el text fora de la caixa, si és necessari + <div id="div3"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> + + <li><code>overflow-y:auto</code> — <span class="short_text" id="result_box" lang="ca"><span>a la majoria de navegadors, equivalent a</span></span> <code>scroll</code> + <div id="div4"> + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + </div> + </li> +</ul> + +</pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">#div1, +#div2, +#div3, +#div4 { + border: 1px solid black; + width: 250px; + height: 100px; +} + +#div1 { overflow-y: hidden; margin-bottom: 12px;} +#div2 { overflow-y: scroll; margin-bottom: 12px;} +#div3 { overflow-y: visible; margin-bottom: 120px;} +#div4 { overflow-y: auto; margin-bottom: 120px;} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<figure> +<p>{{EmbedLiveSample("Example", "100%", "780")}}</p> +</figure> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Overflow', '#propdef-overflow-y', 'overflow-y') }}</td> + <td>{{ Spec2('CSS3 Overflow') }}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS3 Box', '#overflow-y', 'overflow-y')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>5.0 [*]</td> + <td>9.5</td> + <td>3.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[*] <span id="result_box" lang="ca"><span>IE8 va introduir</span></span> <code>-ms-overflow-y</code> <span id="result_box" lang="ca"><span>com a sinònim de</span></span> <code>overflow-y</code>. <span id="result_box" lang="ca"><span>No utilitzeu el prefix</span></span> <code>-ms-</code>.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>Propietats CSS relacionades: {{cssxref("text-overflow")}}, {{cssxref("white-space")}}, {{Cssxref("overflow")}}, {{Cssxref("overflow-x")}}, {{Cssxref("clip")}}, {{Cssxref("display")}}</li> +</ul> diff --git a/files/ca/web/css/overflow/index.html b/files/ca/web/css/overflow/index.html new file mode 100644 index 0000000000..fa1264359d --- /dev/null +++ b/files/ca/web/css/overflow/index.html @@ -0,0 +1,273 @@ +--- +title: overflow +slug: Web/CSS/overflow +tags: + - CSS + - CSS Box Model + - CSS Property + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/overflow +--- +<div>{{CSSRef}}</div> + +<p>La propietat CSS <strong><code>overflow</code></strong> especifica si s'ha de retallar el contingut, mostrar barres de desplaçament o mostrar el contingut desbordat quan és massa gran per al seu <a href="/en-US/docs/Glossary/Block/CSS">contenidor a nivell de bloc</a>.</p> + +<pre class="brush:css no-line-numbers">/* <span class="short_text" id="result_box" lang="ca"><span>El contingut no es retallat</span></span> */ +overflow: visible; + +/* <span id="result_box" lang="ca"><span>El contingut es retallat, sense barres de desplaçament</span></span> */ +overflow: hidden; + +/* <span id="result_box" lang="ca"><span>El contingut es retallat, amb barres de desplaçament</span></span> */ +overflow: scroll; + +/* Deixa que el navegador decideixi */ +overflow: auto; + +/* Valors globals */ +overflow: inherit; +overflow: initial; +overflow: unset; +</pre> + +<div class="hidden" id="overflow"> +<pre class="brush: html"><div class="grid"> + <div class="row"> + <div class="cell"> + visible + <p class="visible">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus pretium facilisis. Praesent rutrum eget nisl in tristique. Sed tincidunt nisl et tellus vulputate, nec rhoncus orci pretium.</p> + </div> + <div class="cell"> + hidden + <p class="hidden">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus pretium facilisis. Praesent rutrum eget nisl in tristique. Sed tincidunt nisl et tellus vulputate, nec rhoncus orci pretium.</p> + </div> + <div class="cell"> + scroll + <p class="scroll">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus pretium facilisis. Praesent rutrum eget nisl in tristique. Sed tincidunt nisl et tellus vulputate, nec rhoncus orci pretium.</p> + </div> + <div class="cell"> + auto + <p class="auto">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus pretium facilisis. Praesent rutrum eget nisl in tristique. Sed tincidunt nisl et tellus vulputate, nec rhoncus orci pretium.</p> + </div> + </div> +</div></pre> + +<pre class="brush: css">html,body { + height: 100%; + box-sizing: border-box; +} + +.grid { + width: 100%; + height: 100%; + display: flex; + background: #EEE; + font: 1em monospace; +} + +.row { + display: flex; + flex: 1 auto; + flex-direction: row; +} + +.cell { + width: calc(25% - 1em); + box-sizing: border-box; + margin: .5em; + padding: .5em; + background-color: #FFF; + overflow: hidden; +} + +p { + font: .8em sans-serif; + max-width: 100%; + height: 5rem; + box-sizing: border-box; + background: #E4F0F5; + padding: .5em; + margin: .5em 0 0; +} + +.visible { overflow: visible; } +.hidden { overflow: hidden; } +.scroll { overflow: scroll; } +.auto { overflow: auto; }</pre> +</div> + +<p>{{EmbedLiveSample("overflow", "100%", 200, "", "", "example-outcome-frame")}}</p> + +<p>L'ús d' <code>overflow</code> amb un valor diferent a <code>visible</code> (per defecte) crea un nou <a href="/en-US/docs/CSS/block_formatting_context">context de format de bloc</a>. Això és necessari per motius tècnics — si un flotador es creua amb l'element de desplaçament, el contingut es torna a embolicar per la força després de cada pas de desplaçament, donant lloc a una experiència de desplaçament lent.</p> + +<p>Per tal que l' <code>overflow</code> tingui un efecte, el contenidor a nivell de bloc ha de tenir una alçada definida (<code>height</code> o <code>max-height</code>) o <code>white-space</code> establert a <code>nowrap</code>.</p> + +<div class="note"> +<p><strong>Nota</strong>: <span id="result_box" lang="ca"><span>La propietat de JavaScript</span></span> {{domxref("Element.scrollTop")}} <span id="result_box" lang="ca"><span>es pot utilitzar per desplaçar un element HTML fins i tot quan</span></span> <code>overflow</code> <span id="result_box" lang="ca"><span>està configurat com</span></span> <code>hidden</code>.</p> +</div> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>overflow</code> s'especifica com una sola paraula clau triada de la llista de valors que es mostra a continuació.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>visible</code></dt> + <dd>El contingut no es retalla i es pot mostrar fora de la caixa de contingut. Valor per defecte.</dd> + <dt><code>hidden</code></dt> + <dd>El contingut es retalla si és necessari per adaptar-lo a la caixa de contingut. No es proporcionen barres de desplaçament.</dd> + <dt><code>scroll</code></dt> + <dd>El contingut es retalla si és necessari per adaptar-lo a la caixa de contingut. Els navegadors mostren les barres de desplaçament independentment que el contingut estigui o no retallat. (Això evita que les barres de desplaçament apareguin o desapareguin quan el contingut canvia). Les impressores poden imprimir contingut desbordat.</dd> + <dt><code>auto</code></dt> + <dd>Depèn de l'agent d'usuari. Si el contingut s'adapta a l'interior de la caixa de contingut, es veurà igual que <code>visible</code>, però se segueix establint un nou context de format de bloc. Els navegadors d'escriptori com Firefox proporcionen barres de desplaçament si el contingut es desborda.</dd> +</dl> + +<dl> + <dt><code>overlay</code> {{experimental_inline}} {{deprecated_inline}}</dt> + <dd>Es comporta de la mateixa manera que <code>auto</code>, però amb les barres de desplaçament sobre el contingut en lloc d'ocupar espai. Només s'admet en navegadors basats en WebKit (p. ex., Safari) i basats en Blink (p. ex., Chrome o Opera).</dd> +</dl> + +<h4 id="Extensions_Mozilla"><span id="result_box" lang="ca"><span>Extensions Mozilla</span></span></h4> + +<dl> + <dt><code>-moz-scrollbars-none</code> {{obsolete_inline}}</dt> + <dd>Utilitzeu <code>overflow: hidden</code> en el seu lloc.</dd> + <dt><code>-moz-scrollbars-horizontal</code> {{deprecated_inline}}</dt> + <dd>Es preferible l'ús de {{Cssxref("overflow-x")}} i {{Cssxref("overflow-y")}}.</dd> + <dt><code>-moz-scrollbars-vertical</code> {{deprecated_inline}}</dt> + <dd>Es preferible l'ús de {{Cssxref("overflow-x")}} i {{Cssxref("overflow-y")}}.</dd> + <dt><code>-moz-hidden-unscrollable</code> {{non-standard_inline}}</dt> + <dd>Destinat principalment per a ús intern i per temes. Desactiva el desplaçament dels elements arrel XML, <code><html></code> i <code> <body></code> amb les tecles de fletxa del teclat i la roda del ratolí.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: css">p { + width: 12em; + height: 6em; + border: dotted; + overflow: visible; /* <span class="short_text" id="result_box" lang="ca"><span>el contingut no es retalla</span></span> */ +} +</pre> + +<p style="overflow: visible; display: inline-block; width: 12em; height: 6em; border: dotted;"><code>visible</code> (per defecte)<br> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.</p> + +<pre class="brush: css">p { overflow: hidden; /* <span class="short_text" id="result_box" lang="ca"><span>no es proporcionen barres de desplaçament</span></span> */ } +</pre> + +<p style="overflow: hidden; display: inline-block; width: 12em; height: 6em; border: dotted;"><code>overflow: hidden</code><br> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.</p> + +<pre class="brush: css">p { overflow: scroll; /* <span class="short_text" id="result_box" lang="ca"><span>mostra sempre barres de desplaçament</span></span> */ } +</pre> + +<p style="overflow: scroll; display: inline-block; width: 12em; height: 6em; border: dotted;"><code>overflow: scroll</code><br> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.</p> + +<pre class="brush: css">p { overflow: auto; /* afegeix barres de desplaçament si és necessari */ } +</pre> + +<p style="overflow: auto; display: inline-block; width: 12em; height: 6em; border: dotted;"><code>overflow: auto</code><br> + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Overflow', '#propdef-overflow', 'overflow')}}</td> + <td>{{Spec2('CSS3 Overflow')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS3 Box', '#propdef-overflow', 'overflow')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td>No canvia.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'visufx.html#overflow', 'overflow')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}<sup>[1]</sup></td> + <td>4.0<sup>[2]</sup></td> + <td>7.0</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] A través de Firefox 3.6 (Gecko 1.9.2), la propietat <code>overflow</code> s'aplica incorrectament als elements del grup de taula (<code><thead></code> , <code><tbody></code> , <code><tfoot></code>). Aquest comportament es corregeix en versions posteriors.</p> + +<p>[2] Internet Explorer 4 a 6 amplia un element amb <code>overflow: visible</code> (valor predeterminat) per adaptar-se al contingut que hi ha dins. <code>height/width</code> es comportan com <code>min-height/min-width</code>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Propietats CSS relacionades: {{cssxref("text-overflow")}}, {{cssxref("white-space")}}, {{Cssxref("overflow-x")}}, {{Cssxref("overflow-y")}}, {{Cssxref("clip")}}, {{Cssxref("display")}}</li> +</ul> diff --git a/files/ca/web/css/overscroll-behavior-block/index.html b/files/ca/web/css/overscroll-behavior-block/index.html new file mode 100644 index 0000000000..000b4e8c9c --- /dev/null +++ b/files/ca/web/css/overscroll-behavior-block/index.html @@ -0,0 +1,133 @@ +--- +title: overscroll-behavior-block +slug: Web/CSS/overscroll-behavior-block +translation_of: Web/CSS/overscroll-behavior-block +--- +<div>{{CSSRef}}</div> + +<p><span class="seoSummary">La propietat CSS <strong><code>overscroll-behavior-block</code></strong> estableix el comportament del navegador quan s'arriba al límit de direcció de bloc d'una àrea de desplaçament.</span></p> + +<p>Veure {{cssxref("overscroll-behavior")}} per a una explicació completa.</p> + +<pre class="brush:css no-line-numbers notranslate">/* Keyword values */ +overscroll-behavior-block: auto; /* default */ +overscroll-behavior-block: contain; +overscroll-behavior-block: none; + +/* Global values */ +overscroll-behavior-block: inherit; +overscroll-behavior-block: initial; +overscroll-behavior-block: unset; +</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>overscroll-behavior-block</code> s'especifica com una paraula clau triada de la llista de valors de sota.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>auto</code></dt> + <dd>El comportament per defecte de desbordament de desplaçament es produeix com a normal.</dd> + <dt><code>contain</code></dt> + <dd>El comportament per defecte del desbordament de desplaçament s'observa dins de l'element on aquest valor està establert (e.ex. Els efectes "rebot" o refrescs), però no es produeix cap encadenament de desplaçament a les zones veïnes, p.ex. els elements subjacents no es desplaçaran.</dd> + <dt><code>none</code></dt> + <dd>No es produeix cap encadenament de desplaçament a les zones veïnes, i s'impedeix el comportament per defecte de desbordament de desplaçament.</dd> +</dl> + +<h2 id="Definició_formal">Definició formal</h2> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi_formal">Sintaxi formal</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Prevenint_el_desplaçament_del_bloc">Prevenint el desplaçament del bloc</h3> + +<p>En aquesta demostració tenim dues caixes a nivell de bloc, una dins l'altra. La caixa exterior té una gran {{cssxref("height")}} establert en ella de manera que la pàgina es desplaçarà verticalment. La caixa interior té una petita {{cssxref("width")}} (i <code>height</code>) establerta sobre ella de manera que s'assenta de manera inexcusable dins de l'àrea de visualització, però el seu contingut té una gran <code>height</code> de manera que també es desplaçarà verticalment..</p> + +<p>Per defecte, quan la capsa interior es desplaça i s'arriba a un límit de desplaçament, tota la pàgina començarà a desplaçar-se, que probablement no és el que volem. Per evitar que això passi en la direcció del bloc, hem establert <code>overscroll-behavior-block: contain</code> en la caixa interior.</p> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html notranslate"><main> + <div> + <div> + <p><code>overscroll-behavior-block</code> has been used to make it so that when the scroll boundaries of the yellow inner box are reached, the whole page does not begin to scroll.</p> + </div> + </div> +</main></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css notranslate">main { + height: 3000px; + width: 500px; + background-color: white; + background-image: repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 19px, rgba(0,0,0,0.5) 20px); +} + +main > div { + height: 300px; + width: 400px; + overflow: auto; + position: relative; + top: 50px; + left: 50px; + overscroll-behavior-block: contain; +} + +div > div { + height: 1500px; + width: 100%; + background-color: yellow; + background-image: repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 19px, rgba(0,0,0,0.5) 20px); +} + +p { + padding: 10px; + background-color: rgba(255,0,0,0.5); + margin: 0; + width: 340px; + position: relative; + top: 10px; + left: 10px; +}</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Preventing_block_overscrolling','100%', 500)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS Overscroll Behavior', '#propdef-overscroll-behavior-block', 'overscroll-behavior-block')}}</td> + <td>{{Spec2('CSS Overscroll Behavior')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_el_navegador">Compatibilitat amb el navegador</h2> + +<div class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si es vol contribuir a les dades, consultar <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i enviar una sol·licitud d'extracció.</div> + +<p>{{Compat("css.properties.overscroll-behavior-block")}}</p> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li><a href="https://developers.google.com/web/updates/2017/11/overscroll-behavior#demo">Prendre el control del desplaçament: personalitzar els efectes de extreure-per-refrescar i desbordament</a></li> +</ul> diff --git a/files/ca/web/css/overscroll-behavior-inline/index.html b/files/ca/web/css/overscroll-behavior-inline/index.html new file mode 100644 index 0000000000..1cc7a7c605 --- /dev/null +++ b/files/ca/web/css/overscroll-behavior-inline/index.html @@ -0,0 +1,134 @@ +--- +title: overscroll-behavior-inline +slug: Web/CSS/overscroll-behavior-inline +translation_of: Web/CSS/overscroll-behavior-inline +--- +<div>{{CSSRef}}</div> + +<p><span class="seoSummary"> +La propietat CSS <strong><code>overscroll-behavior-inline</code></strong> estableix el comportament del navegador quan s'arriba al límit de direcció en línia d'una àrea de desplaçament.</span></p> + +<p>Veure {{cssxref("overscroll-behavior")}} per a una explicació completa.</p> + +<pre class="brush:css no-line-numbers notranslate">/* Keyword values */ +overscroll-behavior-inline: auto; /* default */ +overscroll-behavior-inline: contain; +overscroll-behavior-inline: none; + +/* Global values */ +overscroll-behavior-inline: inherit; +overscroll-behavior-inline: initial; +overscroll-behavior-inline: unset; +</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>overscroll-behavior-inline</code> s'especifica com una paraula clau triada de la llista de valors de sota.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>auto</code></dt> + <dd>El comportament per defecte de desbordament de desplaçament es produeix com a normal.</dd> + <dt><code>contain</code></dt> + <dd>El comportament per defecte del desbordament de desplaçament s'observa dins de l'element on aquest valor està establert (p. ex. g. Els efectes "rebot o refrescs), no es produeix cap encadenament de desplaçament a les zones veïnes, p.ex. els elements subjacents no es desplaçaran.</dd> + <dt><code>none</code></dt> + <dd>No es produeix cap encadenament de desplaçament a les zones veïnes, i s'impedeix el comportament per defecte de desbordament de desplaçament.</dd> +</dl> + +<h2 id="Definició_formal">Definició formal</h2> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi_formal">Sintaxi formal</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Evitar_el_desplaçament_en_línia">Evitar el desplaçament en línia</h3> + +<p>En aquesta demostració tenim dues caixes a nivell de bloc, una dins l'altra. La caixa exterior té una gran {{cssxref("width")}} establert en ella de manera que la pàgina es desplaçarà horitzontalment. La caixa interior té una petita amplada (i {{cssxref("height")}}) establerta sobre ella de manera que es troba de manera inexcusable dins de l'àrea de visualització, però el seu contingut té una amplada gran de manera que també es desplaçarà horitzontalment.</p> + +<p>Per defecte, quan la caixa interior es desplaçi i s'arribi a un límit de desplaçament, tota la pàgina començarà a desplaçar-se, que probablement no és el que volem. Per evitar que això passi en la direcció en línia, hem establert <code>overscroll-behavior-inline: contain</code> en la caixa interior.</p> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html notranslate"><main> + <div> + <div> + <p><code>overscroll-behavior-inline</code> has been used to make it so that when the scroll boundaries of the yellow inner box are reached, the whole page does not begin to scroll.</p> + </div> + </div> +</main></pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css notranslate">main { + height: 400px; + width: 3000px; + background-color: white; + background-image: repeating-linear-gradient(to right, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 19px, rgba(0,0,0,0.5) 20px); +} + +main > div { + height: 300px; + width: 400px; + overflow: auto; + position: relative; + top: 50px; + left: 50px; + overscroll-behavior-inline: contain; +} + +div > div { + height: 100%; + width: 1500px; + background-color: yellow; + background-image: repeating-linear-gradient(to right, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 19px, rgba(0,0,0,0.5) 20px); +} + +p { + padding: 10px; + background-color: rgba(255,0,0,0.5); + margin: 0; + width: 360px; + position: relative; + top: 10px; + left: 10px; +}</pre> + +<h4 id="Result">Result</h4> + +<p>{{EmbedLiveSample('Preventing_inline_overscrolling','100%', 500)}}</p> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS Overscroll Behavior', '#propdef-overscroll-behavior-inline', 'overscroll-behavior-inline')}}</td> + <td>{{Spec2('CSS Overscroll Behavior')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_el_navegador">Compatibilitat amb el navegador</h2> + +<div class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si es vol contribuir a les dades, consultar <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i enviar una sol·licitud d'extraccó.</div> + +<p>{{Compat("css.properties.overscroll-behavior-inline")}}</p> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li><a href="https://developers.google.com/web/updates/2017/11/overscroll-behavior#demo">Prendre el control del desplaçament: personalitzar els efectes de extreure-per-refrescar i desbordament</a></li> +</ul> diff --git a/files/ca/web/css/overscroll-behavior/index.html b/files/ca/web/css/overscroll-behavior/index.html new file mode 100644 index 0000000000..9ed28a5a0b --- /dev/null +++ b/files/ca/web/css/overscroll-behavior/index.html @@ -0,0 +1,106 @@ +--- +title: overscroll-behavior +slug: Web/CSS/overscroll-behavior +translation_of: Web/CSS/overscroll-behavior +--- +<div>{{CSSRef}}</div> + +<p><span class="seoSummary">la propietat CSS <strong><code>overscroll-behavior</code></strong> estableix el que fa un navegador quan arriba al límit d'una àrea de desplaçament. És una abreujada per {{cssxref("overscroll-behavior-x")}} i {{cssxref("overscroll-behavior-y")}}.</span></p> + +<pre class="brush:css no-line-numbers notranslate">/* Keyword values */ +overscroll-behavior: auto; /* default */ +overscroll-behavior: contain; +overscroll-behavior: none; + +/* Two values */ +overscroll-behavior: auto contain; + +/* Global values */ +overscroll-behavior: inherit; +overscroll-behavior: initial; +overscroll-behavior: unset; +</pre> + +<p>Per defecte, els navegadors mòbils tendeixen a proporcionar un efecte "rebot" o fins i tot una actualització de pàgina quan s'arriba a la part superior o inferior d'una pàgina (o una altra àrea de desplaçament). També us podeu haver adonat que quan tingueu un quadre de diàleg amb contingut de desplaçament a la part superior d'una pàgina de contingut de desplaçament, una vegada s'hagi assolit el límit de desplaçament del quadre de diàleg, la pàgina subjacent començarà a desplaçar-se - això s'anomena <strong>scroll chaining (encadenament de desplaçament)</strong>.</p> + +<p>En alguns casos aquests comportaments no són desitjables. Es pot utilitzar <code>overscroll-behavior</code> per desfer-se de l'encadenament de desplaçament no desitjat i de l'aplicació de Facebook/Twitter inspirada en el comportament de "tirar per a refrescar" del navegador</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>overscroll-behavior</code> s'especifica com una o dues paraules clau triades de la llista de valors de sota.</p> + +<p>Dues paraules clau especifican el valor de <code>overscroll-behavior</code> en els eixos <code>x</code> i <code>y</code> respectivament. Si només s'especifica un valor, tant x com y se suposa que tenen el mateix valor.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>auto</code></dt> + <dd>El comportament per defecte de desbordament de desplaçament es produeix com a normal.</dd> + <dt><code>contain</code></dt> + <dd>El comportament per defecte del desbordament de desplaçament s'observa dins de l'element on aquest valor està establert (p.ex. efectes de "rebot" o refrescos), però no es produeix cap encadenament de desplaçament a les zones veïnes, p.ex. els elements subjacents no es desplaçaran.</dd> + <dt><code>none</code></dt> + <dd>No es produeix cap encadenament de desplaçament a les zones veïnes, i s'impedeix el comportament per defecte de desbordament de desplaçament.</dd> +</dl> + +<h2 id="Definició_formal">Definició formal</h2> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi_formal">Sintaxi formal</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Evitar_que_un_element_subjacent_es_desplaci">Evitar que un element subjacent es desplaci</h3> + +<p>En el nostre exemple d'<a href="https://mdn.github.io/css-examples/overscroll-behavior/">overscroll-behavior example</a> (vegeu també el codi font <a href="https://github.com/mdn/css-examples/tree/master/overscroll-behavior">source code</a>), presentem una llista de pàgines senceres de contactes falsos, i un quadre de diàleg que conté una finestra de xat.</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/15778/example.png" style="border-style: solid; border-width: 1px; display: block; height: 622px; margin: 0px auto; width: 350px;"></p> + +<p>Totes dues àrees es desplacen; normalment, si es desplaça la finestra del xat fins a arribar a un límit de desplaçament, la finestra de contactes subjacent començaria a desplaçar-se també, la qual no és desitjable. Això es pot aturar fent servir <code>overscroll-behavior-y</code> (també funciona <code>overscroll-behavior</code>) a la finestra de xat com ara:</p> + +<pre class="brush: css notranslate">.messages { + height: 220px; + overflow: auto; + overscroll-behavior-y: contain; +} </pre> + +<p>També voldríem desfer-nos dels efectes de desplaçament estàndard quan els contactes es desplacen cap amunt o cap avall (p. ex. Chrome on Android refresca la pàgina quan es desplaça més enllà del límit superior). Això pot evitar-se establint <code>overscroll-behavior: none</code> en l'element {{htmlelement("body")}}:</p> + +<pre class="brush: css notranslate">body { + margin: 0; + overscroll-behavior: none; +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS Overscroll Behavior', '#propdef-overscroll-behavior', 'overscroll-behavior')}}</td> + <td>{{Spec2('CSS Overscroll Behavior')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_el_navegador">Compatibilitat amb el navegador</h2> + +<div class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si es vol contribuir a les dades, consultar <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i enviar una sol·licitud d'extracció.</div> + +<p>{{Compat("css.properties.overscroll-behavior")}}</p> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li><a href="https://developers.google.com/web/updates/2017/11/overscroll-behavior#demo">Prendre el control del desplaçament: personalitzar els efectes de extreure-per-refrescar i desbordament</a></li> + <li>{{cssxref("-ms-scroll-chaining")}}</li> +</ul> diff --git a/files/ca/web/css/padding-bottom/index.html b/files/ca/web/css/padding-bottom/index.html new file mode 100644 index 0000000000..5fb786bd98 --- /dev/null +++ b/files/ca/web/css/padding-bottom/index.html @@ -0,0 +1,149 @@ +--- +title: padding-bottom +slug: Web/CSS/padding-bottom +tags: + - CSS + - CSS Padding + - CSS Property + - Reference +translation_of: Web/CSS/padding-bottom +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="/en/CSS" title="CSS">CSS</a> <strong><code>padding-bottom</code></strong> estableix l'alçada de l'àrea de farcit a la part inferior d'un element. A diferència dels marges, no es permeten valors negatius per al farcit. La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir farcits als quatre costats d'un element amb una sola declaració.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +padding-bottom: 0.5em; +padding-bottom: 0; +padding-bottom: 2cm; + +/* <percentage> value */ +padding-bottom: 10%; + +/* Global values */ +padding-bottom: inherit; +padding-bottom: initial; +padding-bottom: unset; +</pre> + +<p>L'<a href="/en/CSS/box_model#padding-area" title="http://developer.mozilla.org/en/CSS/Box_model#padding">àrea de farcit</a> <span id="result_box" lang="ca"><span>d'un element és l'espai entre el seu contingut i la seva vora.</span></span></p> + +<p><img alt="The effect of the CSS padding-bottom property on the element box" src="/files/4109/padding-bottom.svg" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt>{{cssxref("length")}}</dt> + <dd>La grandària del farcit com a valor fix. Ha de ser no negatiu.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del farcit com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor. Ha de ser no negatiu.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="eval">.content { padding-bottom: 5%; } +.sidebox { padding-bottom: 10px; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-padding', 'padding-bottom') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span> des de {{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom') }}.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'padding-bottom') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>padding-bottom</code> como animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-bottom') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span> des de {{ Specname('CSS1', '#padding-bottom', 'padding-bottom') }}.</td> + </tr> + <tr> + <td>{{ Specname('CSS1', '#padding-bottom', 'padding-bottom') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>4.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="internal" href="/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSS</a></li> + <li>La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir el farcit en els quatre costats d'un element amb una sola declaració: {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, <code>padding-bottom</code> i {{cssxref("padding-left")}}.</li> +</ul> diff --git a/files/ca/web/css/padding-left/index.html b/files/ca/web/css/padding-left/index.html new file mode 100644 index 0000000000..8d4d4bef27 --- /dev/null +++ b/files/ca/web/css/padding-left/index.html @@ -0,0 +1,147 @@ +--- +title: padding-left +slug: Web/CSS/padding-left +tags: + - CSS + - CSS Padding + - CSS Property + - Reference +translation_of: Web/CSS/padding-left +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en/CSS" title="CSS">CSS</a> <strong><code>padding-left</code></strong> estableix l'amplada de l'àrea de farcit a la part esquerra d'un element. A diferència dels marges, no es permeten valors negatius per al farcit. La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir farcits als quatre costats d'un element amb una sola declaració.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +padding-left: 0.5em; +padding-left: 0; +padding-left: 2cm; + +/* <percentage> value */ +padding-left: 10%; + +/* Global values */ +padding-left: inherit; +padding-left: initial; +padding-left: unset; +</pre> + +<p>L'<a href="https://developer.mozilla.org/en/CSS/box_model#padding-area" title="http://developer.mozilla.org/en/CSS/Box_model#padding">àrea de farcit</a> <span id="result_box" lang="ca"><span>d'un element és l'espai entre el seu contingut i la seva vora.</span></span></p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("length")}}</dt> + <dd>La grandària del farcit com a valor fix. Ha de ser no negatiu.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del farcit com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor. Ha de ser no negatiu.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: css">.content { padding-left: 5%; } +.sidebox { padding-left: 10px; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-padding', 'padding-left') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'padding-left') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>padding-left</code> como animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-left') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{ Specname('CSS1', '#padding-left', 'padding-left') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>4.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="internal" href="/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSSl</a></li> + <li>La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir el farcit en els quatre costats d'un element amb una sola declaració: {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} i <code>padding-left</code>.</li> +</ul> diff --git a/files/ca/web/css/padding-right/index.html b/files/ca/web/css/padding-right/index.html new file mode 100644 index 0000000000..7e5baa72e8 --- /dev/null +++ b/files/ca/web/css/padding-right/index.html @@ -0,0 +1,147 @@ +--- +title: padding-right +slug: Web/CSS/padding-right +tags: + - CSS + - CSS Padding + - CSS Property + - Reference +translation_of: Web/CSS/padding-right +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en/CSS" title="CSS">CSS</a> <strong> <code>padding-right</code> </strong> estableix l'amplada de l'àrea de farcit a la part dreta d'un element. A diferència dels marges, no es permeten valors negatius per al farcit . La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir farcits als quatre costats d'un element amb una sola declaració.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +padding-right: 0.5em; +padding-right: 0; +padding-right: 2cm; + +/* <percentage> value */ +padding-right: 10%; + +/* Global values */ +padding-right: inherit; +padding-right: initial; +padding-right: unset; +</pre> + +<p>L'<a href="https://developer.mozilla.org/en/CSS/box_model#padding-area" title="http://developer.mozilla.org/en/CSS/Box_model#padding">àrea de farcit</a> <span id="result_box" lang="ca"><span>d'un element és l'espai entre el seu contingut i la seva vora.</span></span></p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("length")}}</dt> + <dd>La grandària del farcit com a valor fix. Ha de ser no negatiu.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del farcit com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor. Ha de ser no negatiu.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: css">.content { padding-right: 5%; } +.sidebox { padding-right: 10px; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-padding', 'padding-right') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'padding-right') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>padding-right</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-right') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{ Specname('CSS1', '#padding-right', 'padding-right') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>4.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="internal" href="https://developer.mozilla.org/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSS</a></li> + <li>La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir el farcit en els quatre costats d'un element amb una sola declaració: {{cssxref("padding-top")}}, <code>padding-right</code>, {{cssxref("padding-bottom")}} i {{cssxref("padding-left")}}.</li> +</ul> diff --git a/files/ca/web/css/padding-top/index.html b/files/ca/web/css/padding-top/index.html new file mode 100644 index 0000000000..2311e2a624 --- /dev/null +++ b/files/ca/web/css/padding-top/index.html @@ -0,0 +1,149 @@ +--- +title: padding-top +slug: Web/CSS/padding-top +tags: + - CSS + - CSS Padding + - CSS Property + - Reference +translation_of: Web/CSS/padding-top +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="https://developer.mozilla.org/en/CSS" title="CSS">CSS</a> <strong><code>padding-top</code></strong> estableix l'alçada de l'àrea de farcit a la part superior d'un element. A diferència dels marges, no es permeten valors negatius per al farcit. La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir farcits als quatre costats d'un element amb una sola declaració.</p> + +<pre class="brush:css no-line-numbers">/* <length> values */ +padding-top: 0.5em; +padding-top: 0; +padding-top: 2cm; + +/* <percentage> value */ +padding-top: 10%; + +/* Global values */ +padding-top: inherit; +padding-top: initial; +padding-top: unset; +</pre> + +<p>L'<a href="https://developer.mozilla.org/en/CSS/box_model#padding-area" title="http://developer.mozilla.org/en/CSS/Box_model#padding">àrea de farcit</a> <span id="result_box" lang="ca"><span>d'un element és l'espai entre el seu contingut i la seva vora.</span></span></p> + +<p><img alt="The effect of the CSS padding-top property on the element box" src="/files/4105/padding-top.svg" style="border-style: solid; border-width: 1px; display: block; margin: 0px auto;"></p> + +<p>{{cssinfo}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<h3 id="Values" name="Values">Valors</h3> + +<dl> + <dt>{{cssxref("length")}}</dt> + <dd>La grandària del farcit com a valor fix. Ha de ser no negatiu.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del farcit com a percentatge, en relació amb l'<em>amplada</em> del bloc contenidor. Ha de ser no negatiu.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: css">.content { padding-top: 5%; } +.sidebox { padding-top: 10px; } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-padding', 'padding-top') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span> des de {{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top') }}.</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Transitions', '#animatable-css', 'padding-top') }}</td> + <td>{{ Spec2('CSS3 Transitions') }}</td> + <td>Defineix <code>padding-top</code> com animable.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#padding-properties', 'padding-top') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span> des de {{ Specname('CSS1', '#padding-top', 'padding-top') }}.</td> + </tr> + <tr> + <td>{{ Specname('CSS1', '#padding-top', 'padding-top') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>4.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també"> Vegeu també</h2> + +<ul> + <li><a class="internal" href="https://developer.mozilla.org/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSS</a></li> + <li>La propietat abreujada {{cssxref("padding")}} es pot utilitzar per establir el farcit en els quatre costats d'un element amb una sola declaració : <code>padding-top</code>, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} i {{cssxref("padding-left")}}.</li> +</ul> diff --git a/files/ca/web/css/padding/index.html b/files/ca/web/css/padding/index.html new file mode 100644 index 0000000000..7e93cddcf1 --- /dev/null +++ b/files/ca/web/css/padding/index.html @@ -0,0 +1,255 @@ +--- +title: padding +slug: Web/CSS/padding +tags: + - CSS + - CSS Padding + - CSS Property + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/padding +--- +<div>{{CSSRef}}</div> + +<p>La propietat <a href="/en/CSS" title="CSS">CSS</a> <strong><code>padding</code></strong> estableix l'<a href="/en/CSS/box_model#padding-area" title="http://developer.mozilla.org/en/CSS/Box_model#padding">àrea de farcit</a> als quatre costats d'un element. És una abreviatura que estableix tots els farcits individuals alhora: {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} i {{cssxref("padding-left")}}.</p> + +<pre class="brush:css no-line-numbers">/* Apply to all four sides */ +padding: 1em; + +/* vertical | horizontal */ +padding: 5% 10%; + +/* top | horizontal | bottom */ +padding: 1em 2em 2em; + +/* top | right | bottom | left */ +padding: 5px 1em 0 1em; + +/* Global values */ +padding: inherit; +padding: initial; +padding: unset; +</pre> + +<div class="hidden" id="padding"> +<pre class="brush: html"><div class="grid"> + <div class="col"> + <div class="cell"> + <div class="p p0">padding: 0</div> + </div> + <div class="cell"> + <div class="p p1">padding: 1em</div> + </div> + <div class="cell"> + <div class="p p2">padding: 5% 10%</div> + </div> + <div class="cell"> + <div class="p p3">padding: 1em 2em 2em</div> + </div> + <div class="cell"> + <div class="p p4">padding: 5px 1em 0 1em</div> + </div> + </div> +</div></pre> + +<pre class="brush: css">html,body { + height: 100%; + box-sizing: border-box; +} + +.grid { + width: 100%; + height: 100%; + display: flex; + background: #EEE; + font: 1em monospace; +} + +.col { + display: flex; + flex: 1 auto; + flex-direction: column; +} + +.cell { + box-sizing: border-box; + margin: .5em; + padding: 0; + background-color: #FFF; + overflow: hidden; + text-align: left; +} + +.p { + display: inline-block; + background: #E4F0F5; + border: 1px solid; +} + +.p0 { padding: 0; } +.p1 { padding: 1em; } +.p2 { padding: 5% 10%; } +.p3 { padding: 1em 2em 2em; } +.p4 { padding: 5px 1em 0 1em; }</pre> +</div> + +<p>{{EmbedLiveSample("padding", "100%", 280, "", "", "example-outcome-frame")}}</p> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>padding</code> es pot especificar utilitzant un, dos, tres o quatre valors. Cada valor és un <code><a href="#<length>"><length></a></code> o un <code><a href="#<percentage>"><percentage></a></code>.</p> + +<ul> + <li>Quan s'especifica <strong>un</strong> valor, s'aplica el mateix farcit <strong>als quatre costats</strong>.</li> + <li>Quan s'especifiquen <strong>dos</strong> valors, el primer farcit s'aplica a la part <strong>superior i inferior</strong>, el segon a l'<strong>esquerra i a la dreta</strong>.</li> + <li>Quan s'especifiquen <strong>tres</strong> valors, el primer farcit s'aplica a la part <strong>superior</strong>, el segon a l'<strong>esquerra i a la dreta</strong>, el tercer a la part <strong>inferior</strong>.</li> + <li>Quan s'especifiquen <strong>quatre</strong> valors, els farcits s'apliquen a la part <strong>superior, dreta, inferior</strong> i <strong>esquerra</strong> en aquest ordre (en el sentit de les agulles del rellotge).</li> +</ul> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><strong>{{cssxref("length")}}</strong></dt> + <dd>La grandària del farcit com a valor fix. Ha de ser no negatiu.</dd> + <dt>{{cssxref("percentage")}}</dt> + <dd>La grandària del farcit com a percentatge, en relació amb l'amplada del bloc contenidor. Ha de ser no negatiu.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><h4>This element has moderate padding.</h4> +<h3>The padding is huge in this element!</h3> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">h4 { + background-color: lime; + padding: 20px 50px; +} + +h3 { + background-color: cyan; + padding: 110px 50px 50px 110px; +} +</pre> + +<p><span>{{EmbedLiveSample('Simple_example','100%',300)}}</span></p> + +<h3 id="Més_exemples"><span>Més exemples</span></h3> + +<pre class="brush: css">padding: 5%; /* all sides: 5% padding */ + +padding: 10px; /* all sides: 10px padding */ + +padding: 10px 20px; /* top and bottom: 10px padding */ + /* left and right: 20px padding */ + +padding: 10px 3% 20px; /* top: 10px padding */ + /* left and right: 3% padding */ + /* bottom: 20px padding */ + +padding: 1em 3px 30px 5px; /* top: 1em padding */ + /* right: 3px padding */ + /* bottom: 30px padding */ + /* left: 5px padding */ </pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS3 Box', '#the-padding', 'padding') }}</td> + <td>{{ Spec2('CSS3 Box') }}</td> + <td>No canvia.</td> + </tr> + <tr> + <td>{{ SpecName('CSS2.1', 'box.html#propdef-padding', 'padding') }}</td> + <td>{{ Spec2('CSS2.1') }}</td> + <td>No canvia.</td> + </tr> + <tr> + <td>{{ Specname('CSS1', '#padding', 'padding') }}</td> + <td>{{ Spec2('CSS1') }}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_Compatibility" name="Browser_Compatibility">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0 (1.0)</td> + <td>4.0</td> + <td>3.5</td> + <td>1.0 (85)</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="internal" href="/en/CSS/box_model" title="en/CSS/box model">Model de caixa CSS</a></li> + <li>La propietat abreujada <code>padding</code> es pot utilitzar per establir farcits en els quatre costats d'un element amb una única declaració: {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} i {{cssxref("padding-left")}}.</li> +</ul> diff --git a/files/ca/web/css/referéncia_css/index.html b/files/ca/web/css/referéncia_css/index.html new file mode 100644 index 0000000000..739dcdc9e3 --- /dev/null +++ b/files/ca/web/css/referéncia_css/index.html @@ -0,0 +1,206 @@ +--- +title: Referéncia CSS +slug: Web/CSS/Referéncia_CSS +tags: + - CSS + - Reference + - 'l10n:priority' +translation_of: Web/CSS/Reference +--- +<p class="summary"><span id="result_box" lang="ca"><span>Utilitzeu aquesta referència CSS per explorar un</span></span> <a href="#Keyword_index">índex alfabètic</a> <span id="result_box" lang="ca"><span>de totes les propietats</span></span> <a href="/en-US/docs/Web/CSS">CSS</a> <span id="result_box" lang="ca"><span>estàndard</span></span> , <a href="/en-US/docs/Web/CSS/Pseudo-classes">pseudo-classes</a>, <a href="/en-US/docs/Web/CSS/Pseudo-elements">pseudo-elements</a>, <a href="/en-US/docs/Web/CSS/CSS_Types">tipus de dades</a>, i <a href="/en-US/docs/Web/CSS/At-rule">regles-at</a>. <span id="result_box" lang="ca"><span>També podeu explorar una llista de tots els </span></span> <a href="#Selectors">selectors CSS organitzats per tipus</a> i una llista de <a href="#Concepts">conceptes clau CSS</a>. <span id="result_box" lang="ca"><span>També s'inclou una breu</span></span> <a href="#DOM-CSS_CSSOM">referència DOM-CSS / CSSOM</a>.</p> + +<h2 id="Sintaxi_de_regla_bàsica"><span class="short_text" id="result_box" lang="ca"><span>Sintaxi de regla bàsica</span></span></h2> + +<h3 id="Sintaxi_de_regla_d'estil"><span class="short_text" id="result_box" lang="ca"><span>Sintaxi de regla d'estil</span></span></h3> + +<pre class="syntaxbox"><strong><var>selectorlist</var> { + <var>property</var>: <var>value</var>;</strong> + <var>[more property:value; pairs]</var> +<strong>}</strong> + +... where <var>selectorlist</var> is: <var>selector[:pseudo-class] [::pseudo-element] [, more selectorlists]</var> + +See <a href="#Selectors"><em>selector</em></a>, <a href="#pcls"><em>pseudo-class</em></a>, <em><a href="#pelm">pseudo-element</a></em> lists below. +</pre> + +<h4 id="Exemples_de_regla_d'estil"><span id="result_box" lang="ca"><span>Exemples de regla d'estil</span></span></h4> + +<pre class="brush: css">strong { + color: red; +} + +div.menu-bar li:hover > ul { + display: block; +} +</pre> + +<p>Per a una introducció a nivell de principiant a la sintaxi de selectors CSS, consulteu <a href="/en-US/docs/Learn/CSS/Introduction_to_CSS/Selectors">aquest tutorial</a>. Tingueu en compte que qualsevol error de <a href="/en-US/docs/Web/CSS/syntax">sintaxi CSS</a> en una definició de regla invalida tota la regla. Les regles no vàlides són ignorades pel navegador. Tingueu en compte que les definicions de la regla CSS són totalment <a href="https://www.w3.org/TR/css-syntax-3/#intro">basades en text</a> (ASCII), mentre que DOM-CSS / CSSOM (el sistema de gestió de regles) està <a href="https://www.w3.org/TR/cssom/#introduction">basat en objectes</a>.</p> + +<h3 id="Sintaxi_de_regla-At_(At-rule)">Sintaxi de regla-At (At-rule)</h3> + +<p>As the structure of at-rules varies widely, please see <a href="/en-US/docs/Web/CSS/At-rule">At-rule</a> to find the syntax of the specific one you want.</p> + +<h2 id="Índex_de_paraules_clau_(Keyword)"><span class="short_text" id="result_box" lang="ca"><span>Índex de paraules clau</span></span> (Keyword)</h2> + +<div>{{CSS_Ref}}</div> + +<h2 id="Selectors">Selectors</h2> + +<h3 id="Selectors_Bàsics"><a href="/en-US/docs/Web/CSS/CSS_Selectors#Basic_selectors">Selectors Bàsics</a></h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Type_selectors">Selector de Tipus</a> <code>elementname</code></li> + <li><a href="/en-US/docs/Web/CSS/Class_selectors">Selector Class</a> <code>.classname</code></li> + <li><a href="/en-US/docs/Web/CSS/ID_selectors">Selector ID</a> <code>#idname</code></li> + <li><a href="/en-US/docs/Web/CSS/Universal_selectors">Selector Universal</a> <code>*</code> <code>ns|*</code> <code>*|*</code></li> + <li><a href="/en-US/docs/Web/CSS/Attribute_selectors">Selector d'Attribute</a> <code>[attr=value]</code></li> +</ul> + +<h3 id="Combinadors"><a href="/en-US/docs/Web/CSS/CSS_Selectors#Combinators">Combinadors</a></h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Adjacent_sibling_selectors">Combinador de germans Adjacents</a> <code>A + B</code></li> + <li><a href="/en-US/docs/Web/CSS/General_sibling_selectors">Combinador de germans General</a> <code>A ~ B</code></li> + <li><a href="/en-US/docs/Web/CSS/Child_selectors">Combinador de Fills</a> <code>A > B</code></li> + <li><a href="/en-US/docs/Web/CSS/Descendant_selectors">Combinador de Descendents</a> <code>A B</code></li> +</ul> + +<h3 id="Pseudo-classes"><a href="/en-US/docs/Web/CSS/Pseudo-classes">Pseudo-classes</a></h3> + +<div class="index"> +<ul> + <li id="pcls">{{ Cssxref(":active") }}</li> + <li>{{cssxref(':any')}}</li> + <li>{{cssxref(':any-link')}}</li> + <li>{{ Cssxref(":checked") }}</li> + <li>{{ Cssxref(":default") }}</li> + <li>{{ Cssxref(":dir", ":dir()")}}</li> + <li>{{ Cssxref(":disabled") }}</li> + <li>{{ Cssxref(":empty") }}</li> + <li>{{ Cssxref(":enabled") }}</li> + <li>{{ Cssxref(":first") }}</li> + <li>{{ Cssxref(":first-child") }}</li> + <li>{{ Cssxref(":first-of-type") }}</li> + <li>{{ Cssxref(":fullscreen") }}</li> + <li>{{ Cssxref(":focus") }}</li> + <li>{{ Cssxref(":hover") }}</li> + <li>{{ Cssxref(":indeterminate") }}</li> + <li>{{ Cssxref(":in-range") }}</li> + <li>{{ Cssxref(":invalid") }}</li> + <li>{{ Cssxref(":lang", ":lang()") }}</li> + <li>{{ Cssxref(":last-child") }}</li> + <li>{{ Cssxref(":last-of-type") }}</li> + <li>{{ Cssxref(":left") }}</li> + <li>{{ Cssxref(":link") }}</li> + <li>{{ Cssxref(":not", ":not()") }}</li> + <li>{{ Cssxref(":nth-child", ":nth-child()") }}</li> + <li>{{ Cssxref(":nth-last-child", ":nth-last-child()") }}</li> + <li>{{ Cssxref(":nth-last-of-type", ":nth-last-of-type()") }}</li> + <li>{{ Cssxref(":nth-of-type", ":nth-of-type()") }}</li> + <li>{{ Cssxref(":only-child") }}</li> + <li>{{ Cssxref(":only-of-type") }}</li> + <li>{{ Cssxref(":optional") }}</li> + <li>{{ Cssxref(":out-of-range") }}</li> + <li>{{ Cssxref(":read-only") }}</li> + <li>{{ Cssxref(":read-write") }}</li> + <li>{{ Cssxref(":required") }}</li> + <li>{{ Cssxref(":right") }}</li> + <li>{{ Cssxref(":root") }}</li> + <li>{{ Cssxref(":scope") }}</li> + <li>{{ Cssxref(":target") }}</li> + <li>{{ Cssxref(":valid") }}</li> + <li>{{ Cssxref(":visited") }}</li> +</ul> +</div> + +<h3 id="Pseudo-elements"><a href="/en-US/docs/Web/CSS/Pseudo-elements">Pseudo-elements</a></h3> + +<div class="index"> +<ul> + <li id="pelm">{{ Cssxref("::after") }}</li> + <li>{{ Cssxref("::backdrop") }}</li> + <li>{{ Cssxref("::before") }}</li> + <li>{{ Cssxref("::cue") }}</li> + <li>{{ Cssxref("::first-letter") }}</li> + <li>{{ Cssxref("::first-line") }}</li> + <li>{{ Cssxref("::grammar-error") }} {{experimental_inline}}</li> + <li>{{ Cssxref("::marker") }} {{experimental_inline}}</li> + <li>{{ Cssxref("::placeholder") }} {{experimental_inline}}</li> + <li>{{ Cssxref("::selection") }}</li> + <li>{{ Cssxref("::spelling-error") }} {{experimental_inline}}</li> +</ul> +</div> + +<div class="note"> +<p><strong>Vegeu també:</strong> Una <a href="https://www.w3.org/TR/selectors/#selectors">llista completa de selectors</a> en l'especificació Selectors Level 3.</p> +</div> + +<h2 id="Conceptes">Conceptes</h2> + +<h3 id="Sintaxi_i_semàntica"><span class="short_text" id="result_box" lang="ca"><span>Sintaxi i semàntica</span></span></h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Syntax">Sintaxi CSS</a></li> + <li><a href="/en-US/docs/Web/CSS/At-rule">Regles-At</a></li> + <li><a href="/en-US/docs/Web/CSS/Cascade">Cascada</a></li> + <li><a href="/en-US/docs/Web/CSS/Comments">Comentaris</a></li> + <li><a href="/en-US/docs/Glossary/Descriptor_(CSS)">Descriptor</a></li> + <li><a href="/en-US/docs/Web/CSS/inheritance">Herència</a></li> + <li><a href="/en-US/docs/Web/CSS/Shorthand_properties">Propietats abreujades</a></li> + <li><a href="/en-US/docs/Web/CSS/Specificity">Especificitat</a></li> + <li><a href="/en-US/docs/Web/CSS/Value_definition_syntax">Sintaxi de definció de valor</a></li> +</ul> + +<h3 id="Valors">Valors</h3> + +<ul> + <li><a href="/en-US/docs/Web/CSS/actual_value">Valor Real</a></li> + <li><a href="/en-US/docs/Web/CSS/computed_value">Valor Calculat</a></li> + <li><a href="/en-US/docs/Web/CSS/initial_value">Valor Inicial</a></li> + <li><a href="/en-US/docs/Web/CSS/resolved_value">Valor Resolt</a></li> + <li><a href="/en-US/docs/Web/CSS/specified_value">Valor Especificat</a></li> + <li><a href="/en-US/docs/Web/CSS/used_value">Valor Usat</a></li> +</ul> + +<h3 id="Disseny">Disseny</h3> + +<ul> + <li><a href="/en-US/docs/Web/Guide/CSS/Block_formatting_context">Context de format de bloc</a></li> + <li><a href="/en-US/docs/Web/CSS/box_model">Model Caixa</a></li> + <li><a href="/en-US/docs/Web/CSS/All_About_The_Containing_Block">Bloc contenidor</a></li> + <li><a href="/en-US/docs/Web/CSS/Layout_mode">Mode de presentació</a></li> + <li><a href="/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing">Col.lapsant el Marge</a></li> + <li><a href="/en-US/docs/Web/CSS/Replaced_element">Elements Reemplaçats</a></li> + <li><a href="/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context">Context d'Apilament</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Visual_formatting_model">Model de format Visual</a></li> +</ul> + +<h2 id="DOM-CSS_CSSOM">DOM-CSS / CSSOM</h2> + +<h3 id="Tipus_d'objectes_principals"><span class="short_text" id="result_box" lang="ca"><span>Tipus d'objectes principals</span></span></h3> + +<ul> + <li>document.<a href="/en-US/docs/Web/API/Document/styleSheets">styleSheets</a></li> + <li>styleSheets[i].<a href="/en-US/docs/Web/API/CSSRuleList">cssRules</a></li> + <li>cssRules[i].<a href="/en-US/docs/Web/API/CSSRule/cssText">cssText</a> (selector & style)</li> + <li>cssRules[i].<a href="/en-US/docs/Web/API/CSSStyleRule/selectorText">selectorText</a></li> + <li>elem.<a href="/en-US/docs/Web/API/HTMLElement/style">style</a></li> + <li>elem.style.<a href="/en-US/docs/Web/API/CSSStyleDeclaration/cssText">cssText</a> (just style)</li> + <li>elem.<a href="/en-US/docs/Web/API/Element/className">className</a></li> + <li>elem.<a href="/en-US/docs/Web/API/Element/classList">classList</a></li> +</ul> + +<h3 id="Mètodes_importants"><span class="short_text" id="result_box" lang="ca"><span>Mètodes importants</span></span></h3> + +<ul> + <li>{{domxref("CSSStyleSheet.insertRule")}}</li> + <li>{{domxref("CSSStyleSheet.deleteRule")}}</li> +</ul> + +<h2 id="Vegeu_també"><span class="short_text" id="result_box" lang="ca"><span>Vegeu també</span></span></h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Mozilla_Extensions">Mozilla CSS extensions</a> (prefixades amb <code>-moz</code>)</li> + <li><a href="/en-US/docs/Web/CSS/Webkit_Extensions">WebKit CSS extensions</a> ( <span id="result_box" lang="ca"><span>majoritàriament prefixades amb</span></span> <code>-webkit</code>)</li> + <li><a href="/en-US/docs/Web/CSS/Microsoft_CSS_extensions">Microsoft CSS extensions</a> (prefixades amb <code>-ms</code>)</li> +</ul> diff --git a/files/ca/web/css/selectors_css/index.html b/files/ca/web/css/selectors_css/index.html new file mode 100644 index 0000000000..9eaf8daffc --- /dev/null +++ b/files/ca/web/css/selectors_css/index.html @@ -0,0 +1,156 @@ +--- +title: Selectors CSS +slug: Web/CSS/Selectors_CSS +tags: + - CSS + - CSS Selectors + - Overview + - Reference + - Selectors +translation_of: Web/CSS/CSS_Selectors +--- +<div>{{CSSRef}}</div> + +<p>Els<strong> Selectors</strong> <strong>CSS</strong> <span id="result_box" lang="ca"><span>defineixen els elements als quals s'aplica un conjunt de normes CSS.</span></span></p> + +<h2 id="Selectors_Bàsics">Selectors Bàsics</h2> + +<dl> + <dt><a href="/en-US/docs/Web/CSS/Type_selectors">Selector de tipus</a></dt> + <dd>Selecciona tots els elements que coincideixen amb el nom del node donat.<br> + <strong>Sintaxi:</strong> <code><var>eltname</var></code><br> + <strong>Exemple:</strong> <code>input</code> coincidirà amb qualsevol element {{HTMLElement('input')}}</dd> + <dt><a href="/en-US/docs/Web/CSS/Class_selectors">Selector de clase </a></dt> + <dd>Selecciona tots els elements que tenen l'atribut <code>class</code> donat.<br> + <strong>Sintaxi:</strong> <code>.<var>classname</var></code><br> + <strong>Exemple:</strong> <code>.index</code> coincidirà amb qualsevol element que tingui una classe "index"</dd> + <dt><a href="/en-US/docs/Web/CSS/ID_selectors">Selector de ID</a></dt> + <dd>Selecciona un element basat en el valor del seu atribut <code>id</code>. Només hi ha d'haver un element amb una ID determinat en un document.<br> + <strong>Sintaxi:</strong> <code>#<var>idname</var></code><br> + <strong>Exemple:</strong> <code>#toc</code> <span id="result_box" lang="ca"><span>coincidiran amb l'element que té</span></span> l'ID "toc".</dd> + <dt><a href="/en-US/docs/Web/CSS/Universal_selectors">Selector universal</a></dt> + <dd><span id="result_box" lang="ca"><span>Selecciona tots els elements.</span> <span>De manera opcional, pot estar restringit a un espai de noms específic o a tots els espais de noms.</span></span><br> + <strong>Sintaxi:</strong> <code>*</code> <code>ns|*</code> <code>*|*</code><br> + <strong>Exemple:</strong> <code>*</code> <span id="result_box" lang="ca"><span>coincideix amb tots els elements del document.</span></span></dd> + <dt><a href="/en-US/docs/Web/CSS/Attribute_selectors">Selector d'atribut</a></dt> + <dd><span id="result_box" lang="ca"><span>Selecciona elements basats en el valor de l'atribut donat</span></span>.<br> + <strong>Sintaxi:</strong> <code>[attr]</code> <code>[attr=value]</code> <code>[attr~=value]</code> <code>[attr|=value]</code> <code>[attr^=value]</code> <code>[attr$=value]</code> <code>[attr*=value]</code><br> + <strong>Exemple:</strong> <code>[autoplay]</code> <span id="result_box" lang="ca"><span>coincidiran tots els elements que tenen establert l'atribut</span></span> <code>autoplay</code> (<span id="result_box" lang="ca"><span>a qualsevol valor</span></span>).</dd> +</dl> + +<h2 id="Combinadors">Combinadors</h2> + +<dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_selectors">Combinador de germans adjacents</a></dt> + <dd>El combinador <code>+</code> selecciona els germans adjacents. Això significa que el segon element segueix directament el primer, i ambdós comparteixen el mateix pare.<br> + <strong>Sintaxi:</strong> <code><var>A</var> + <var>B</var></code><br> + <strong>Exemple:</strong> <code>h2 + p</code> coincidirà amb tots el elements {{HTMLElement('p')}} que segueixen directament un {{HTMLElement('h2')}}.</dd> + <dt><a href="/en-US/docs/Web/CSS/General_sibling_selectors">Combinador general de germans</a></dt> + <dd>El combinador <code>~</code> selecciona els germans. Això significa que el segon element segueix el primer (encara que no necessàriament de forma immediata), i tots dos comparteixen el mateix pare.<br> + <strong>Sintaxi:</strong> <code><var>A</var> ~ <var>B</var></code><br> + <strong>Exemple:</strong> <code>p ~ span</code> coincidirà amb tots els elements {{HTMLElement('span')}} que segueixen un {{HTMLElement('p')}}.</dd> + <dt><a href="/en-US/docs/Web/CSS/Child_selectors">Combinador de fills</a></dt> + <dd>El combinador <code>></code> selecciona els nodes que són fills directes del primer element.<br> + <strong>Sintaxi:</strong> <code><var>A</var> > <var>B</var></code><br> + <strong>Exemple:</strong> <code>ul > li</code> coincidirà amb tots els elements {{HTMLElement('li')}} que estan niats directament dins d'un element {{HTMLElement('ul')}}.</dd> + <dt><a href="/en-US/docs/Web/CSS/Descendant_selectors">Combinador de descendents</a></dt> + <dd>El combinador <code> </code> selecciona els nodes que són descendents del primer element.<br> + <strong>Sintaxi:</strong> <code>A B</code><br> + <strong>Exemple:</strong> <code>div span</code> coincidirà amb tots els elements {{HTMLElement('span')}} que es troben dins d'un element {{HTMLElement('div')}}.</dd> +</dl> + +<h2 id="Pseudo-classes">Pseudo-classes</h2> + +<p><a href="/en-US/docs/Web/CSS/Pseudo-classes">Pseudo-classes</a> <span id="result_box" lang="ca"><span>permeten la selecció d'elements basats en informació d'estat que no es troba a l'arbre del document.</span></span></p> + +<p><strong>Exemple:</strong> <code>a:visited</code> <span id="result_box" lang="ca"><span>coincidirà amb tots els elements</span></span> {{HTMLElement('a')}} <span id="result_box" lang="ca"><span>que hagi visitat l'usuari</span></span>.</p> + +<h2 id="Pseudo-elements">Pseudo-elements</h2> + +<p><a href="/en-US/docs/Web/CSS/Pseudo-elements">Pseudo-elements</a> <span id="result_box" lang="ca"><span>representen entitats que no estan incloses en HTML.</span></span></p> + +<p><strong>Exemple:</strong> <code>p::first-line</code> <span id="result_box" lang="ca"><span>coincidirà amb la primera línia de tots els elements</span></span> {{HTMLElement('p')}}.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('CSS1')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>3.0</td> + <td>3.5</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.5</td> + <td>{{CompatGeckoMobile("1.9.2")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>3.2</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_css/using_the__colon_target_pseudo-class_in_selectors/index.html b/files/ca/web/css/selectors_css/using_the__colon_target_pseudo-class_in_selectors/index.html new file mode 100644 index 0000000000..53339b06e5 --- /dev/null +++ b/files/ca/web/css/selectors_css/using_the__colon_target_pseudo-class_in_selectors/index.html @@ -0,0 +1,69 @@ +--- +title: 'Ùs de la pseudo-class :target en selectors' +slug: 'Web/CSS/Selectors_CSS/Using_the_:target_pseudo-class_in_selectors' +tags: + - ':target' + - CSS + - Guide + - Reference + - Selectors +translation_of: 'Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors' +--- +<div>{{CSSRef}}</div> + +<p>Quan una URL apunta a una peça específica d'un document, pot ser difícil per a l'usuari adonar-se. Esbrineu com podeu fer servir algun CSS senzill per cridar l'atenció sobre el destí d'una URL i millorar l'experiència de l'usuari.</p> + +<h2 id="Picking_a_Target" name="Picking_a_Target"><span class="short_text" id="result_box" lang="ca"><span>Triar un</span> <span>destí</span></span></h2> + +<p>La <a href="https://developer.mozilla.org/en/CSS/Pseudo-classes">pseudo-class</a> <code>{{ Cssxref(":target") }}</code>s'utilitza per aplicar estil a l'element de destinació d'un URI que conté un identificador de fragment. Per exemple, l'URI <code><span class="nowiki">http://developer.mozilla.org/en/docs/Using_the_:target_selector#example</span></code> conté el identificador de fragment <code>#example</code>. En HTML, els identificadors corresponent els valors dels atributs <code>id</code> o <code>name</code>, ja que tots dos comparteixen el mateix espai de noms. Per tant, l'URI d'exemple assenyalaria l'encapçalament "example" en aquest document.</p> + +<p>Suposem que desitjeu donar estil a qualsevol element <code>h2</code> que és el destí d'un URI, però no voleu que qualsevol altre tipus d'element aconsegueixi un estil de destinació. Això és bastant simple:</p> + +<pre>h2:target {font-weight: bold;}</pre> + +<p>També és possible crear estils que siguin específics d'un fragment en particular del document. Això es realitza utilitzant el mateix valor de la identificació que es troba en l'URI. Per tant, per afegir una vora al fragment <code>#example</code>, escriuríem:</p> + +<pre>#example:target {border: 1px solid black;}</pre> + +<h2 id="Targeting_the_Root_Element" name="Targeting_the_Root_Element">Dirigit a tots els elements</h2> + +<p>Si la intenció és crear un estil "ampli" que s'apliqui a tots els elements seleccionats, llavors el selector universal, ve molt bé:</p> + +<pre>:target {color: red;} +</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<p>En el següent exemple, hi ha cinc enllaços que apunten a elements en el mateix document. En seleccionar l'enllaç "First", per exemple, farà que <code><h1 id = "one"></code> es converteixi en l'element de destinació. Recordeu que el document pot saltar a una nova posició de desplaçament, ja que els elements de destinació es col·loquen a la part superior de la finestra del navegador si és possible.</p> + +<div id="example"> +<pre><h4 id="one">...</h4> <p id="two">...</p> +<div id="three">...</div> <a id="four">...</a> <em id="five">...</em> + +<a href="#one">First</a> +<a href="#two">Second</a> +<a href="#three">Third</a> +<a href="#four">Fourth</a> +<a href="#five">Fifth</a></pre> +</div> + +<h2 id="Conclusion" name="Conclusion">Conclusió</h2> + +<p>En els casos en què un identificador de fragment apunti a una part del document, els lectors poden arribar a confondre's sobre quina part del document se suposa que han d'estar llegint. El donar estil a la destinació d'un URI, podem reduïr o eliminar la confusió del lector.</p> + +<h2 id="Related_Links" name="Related_Links">Vegeu també</h2> + +<ul> + <li><a class="external" href="http://www.w3.org/TR/css3-selectors/#target-pseudo">Selectors CSS3 #target-pseudo</a></li> + <li><a class="internal" href="/En/CSS/:target" title="En/CSS/:target">Referència CSS :target</a></li> +</ul> + +<div class="originaldocinfo"> +<h3 id="Original_Document_Information" name="Original_Document_Information">Informació del document original</h3> + +<ul> + <li>Autor(s): Eric Meyer, Standards Evangelist, Netscape Communications</li> + <li>Original Copyright Information: Copyright © 2001-2003 Netscape. Tots els drets reservats.</li> + <li>Nota: Aquest article reproduït és part de l'original del lloc DevEdge.</li> +</ul> +</div> diff --git a/files/ca/web/css/selectors_d'atribut/index.html b/files/ca/web/css/selectors_d'atribut/index.html new file mode 100644 index 0000000000..6778a2b3cb --- /dev/null +++ b/files/ca/web/css/selectors_d'atribut/index.html @@ -0,0 +1,250 @@ +--- +title: Selector Atribut +slug: Web/CSS/Selectors_d'Atribut +tags: + - Beginner + - CSS + - Reference + - Selectors +translation_of: Web/CSS/Attribute_selectors +--- +<div>{{CSSRef}}</div> + +<p>El <strong>selector attribute</strong> CSS<strong> </strong> <span id="result_box" lang="ca"><span>coincideix amb elements basats en la presència o el valor d'un atribut donat.</span></span></p> + +<pre class="brush: css no-line-numbers">/* <a> elements amb l'atribut title */ +a[title] { + color: purple; +} + +/* elements <a> <span class="short_text" id="result_box" lang="ca"><span>amb una coincidència</span></span> href "https://example.org" */ +a[href="https://example.org"] { + color: green; +} + +/* elements <a> amb un href contenint "example" */ +a[href*="example"] { + font-size: 2em; +} + +/* elements <a> amb un href amb una terminació ".org" */ +a[href$=".org"] { + font-style: italic; +}</pre> + +<dl> + <dt><code>[<em>attr</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em>.</dd> + <dt><code>[<em>attr</em>=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual és exactament <em>value</em>.</dd> + <dt><code>[<em>attr</em>~=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual és una llista de paraules separades per espais en blanc, una de les quals és exactament <em>value</em>.</dd> + <dt><code>[<em>attr</em>|=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual pot ser exactament <em>value</em> o pot començar amb <em>value</em> immediatament seguit d'un guió, <code>-</code> (U+002D). Sovint s'utilitza per coincidències de subcodis de llenguatge.</dd> + <dt><code>[<em>attr</em>^=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual està prefixat (precedit) per <em>value</em>.</dd> + <dt><code>[<em>attr</em>$=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual és sufix (següit) per <em>value</em>.</dd> + <dt><code>[<em>attr</em>*=<em>value</em>]</code></dt> + <dd>Representa un element amb un nom d'atribut <em>attr</em> el valor del qual conté almenys una ocurrència <em>value</em> dins de la cadena.</dd> + <dt id="case-insensitive"><code>[<em>attr</em> <em>operator</em> <em>value</em> i]</code></dt> + <dd>En afegir una <code>i</code> (o <code>I</code>) abans del claudàtor de tancament, el valor es compara entre majúscules i minúscules (per a caràcters dins del rang ASCII).</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Links">Links</h3> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">a { + color: blue; +} + +/* Internal links, beginning with "#" */ +a[href^="#"] { + background-color: gold; +} + +/* Links with "example" anywhere in the URL */ +a[href*="example"] { + background-color: silver; +} + +/* Links with "insensitive" anywhere in the URL, + regardless of capitalization */ +a[href*="insensitive" i] { + color: cyan; +} + +/* Links that end in ".org" */ +a[href$=".org"] { + color: red; +} +</pre> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><ul> + <li><a href="#internal">Internal link</a></li> + <li><a href="http://example.com">Example link</a></li> + <li><a href="#InSensitive">Insensitive internal link</a></li> + <li><a href="http://example.org">Example org link</a></li> +</ul></pre> + +<h4 id="Resultat">Resultat</h4> + +<p>{{EmbedLiveSample('Links')}}</p> + +<h3 id="Llengües"><span class="short_text" id="result_box" lang="ca"><span>Llengües</span></span></h3> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">/* Tots els divs amb un atribut `lang` són en negreta. */ +div[lang] { + font-weight: bold; +} + +/* Tots els divs en US Anglès són blaus. */ +div[lang~="en-us"] { + color: blue; +} + +/* Tots els divs en Portuguès són verds. */ +div[lang="pt"] { + color: green; +} + +/* Tots els divs en Xinès són vermells, ja sigui + simplificat (zh-CN) o tradicional (zh-TW). */ +div[lang|="zh"] { + color: red; +} + +/* Tots els divs en Xinès Traditional + `data-lang` són porpra */ +/* Nota: T<span id="result_box" lang="ca"><span>ambé podeu utilitzar atributs amb guions sense cometes dobles</span></span> */ +div[data-lang="zh-TW"] { + color: purple; +} +</pre> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><div lang="en-us en-gb en-au en-nz">Hello World!</div> +<div lang="pt">Olá Mundo!</div> +<div lang="zh-CN">世界您好!</div> +<div lang="zh-TW">世界您好!</div> +<div data-lang="zh-TW">?世界您好!</div> +</pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{EmbedLiveSample('Languages')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#attribute-selectors', 'attribute selectors')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Afegit modificador per a la selecció del valor d'atribut ASCII sense distinció de majúscules i minúscules.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#attribute-selectors', 'attribute selectors')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#attribute-selectors', 'attribute selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>7</td> + <td>9</td> + <td>3</td> + </tr> + <tr> + <td>Modificador sense distinció de majúscules i minúscules</td> + <td>{{CompatChrome(49.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("47.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera(36)}}</td> + <td>{{CompatSafari(9)}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Modificador sense distinció de majúscules i minúscules</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(49.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("47.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatSafari(9)}}</td> + <td>{{CompatChrome(49.0)}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_de_classe/index.html b/files/ca/web/css/selectors_de_classe/index.html new file mode 100644 index 0000000000..1f8cfdbee4 --- /dev/null +++ b/files/ca/web/css/selectors_de_classe/index.html @@ -0,0 +1,139 @@ +--- +title: Selector Class +slug: Web/CSS/Selectors_de_Classe +tags: + - CSS + - Reference + - Selectors +translation_of: Web/CSS/Class_selectors +--- +<div>{{CSSRef}}</div> + +<p>El <strong>selector class </strong> CSS <span id="result_box" lang="ca"><span>coincideix amb elements basats en el contingut de l'atribut</span></span> {{htmlattrxref("class")}}.</p> + +<pre class="brush: css no-line-numbers">/* Tots els elements amb class="spacious" */ +.spacious { + margin: 2em; +} + +/* Tots els elements <li> amb class="spacious" */ +li.spacious { + margin: 2em; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">.classname { <em>style properties</em> }</pre> + +<p><span id="result_box" lang="ca"><span>Recordeu que</span> <span>això és</span> <span>equivalent al</span> <span>següent</span></span> {{Cssxref("Attribute_selectors", "attribute selector")}}:</p> + +<pre class="syntaxbox">[class~=classname] { <em>style properties</em> }</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">div.classy { + background-color: skyblue; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div class="classy">This div has a special class on it!</div> +<div>This is just a regular div.</div> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', '100%', 50)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#class-html', 'class selectors')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#class-html', 'class selectors')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#class-html', 'child selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#class-as-selector', 'child selectors')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_de_descendents/index.html b/files/ca/web/css/selectors_de_descendents/index.html new file mode 100644 index 0000000000..1eb4fd57f8 --- /dev/null +++ b/files/ca/web/css/selectors_de_descendents/index.html @@ -0,0 +1,170 @@ +--- +title: Selectors de descendents +slug: Web/CSS/Selectors_de_descendents +tags: + - CSS + - Reference + - Selectors +translation_of: Web/CSS/Descendant_combinator +--- +<div>{{CSSRef("Selectors")}}</div> + +<p>El <strong>combinador descendent</strong> - en general representat per un únic caràcter d'espai ( ) - combina dos selectors de tal manera que els elements que coincideixen amb el segon selector se seleccionen si tenen un element ancestral que coincideixi amb el primer selector. Els selectors que utilitzen un combinador descendent s'anomenen selectors de descendents.</p> + +<pre class="brush: css no-line-numbers">/* Llista els elemenst que són descendsnts de la llista "my-things" */ +ul.my-things li { + margin: 2em; +}</pre> + +<p>El combinador descendent és tècnicament un o més caràcters d'espais en blanc {{Glossary("CSS")}} - el caràcter d'espai en blanc i/o un dels quatre caràcters de control: retorn de carro, avanç de pàgina, nova línia i caràcters de tabulació - entre dos selectors en absència d'un altre combinador. A més, els caràcters d'espai en blanc de les que es compon el combinador poden contenir qualsevol nombre de comentaris CSS.</p> + +<p>La naturalesa abstracta d'aquest combinador el fa diferent dels altres combinadors estandarditzats ja que aquests combinadors estan representats per una seqüència de caràcters finits diferents. Aquesta inconsistència es va tractar afegint un combinador descendent redundant representat per dos caràcters, més gran que (<code>>></code>), amb seqüència, donant-li una forma que és particularment similar a la del <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Child_selectors">combinador fill</a>, que comparteix una funció similar.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><var>selector1</var> <var>selector2</var> { <var>/* property declarations */</var> } +</pre> + +<pre class="syntaxbox"><var>selector1</var> >> <var>selector2</var> { <var>/* property declarations */</var> } +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">li { + list-style-type: disc; +} + +li li { + list-style-type: circle; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><ul> + <li> + <div>Item 1</div> + <ul> + <li>Subitem A</li> + <li>Subitem B</li> + </ul> + </li> + <li> + <div>Item 2</div> + <ul> + <li>Subitem A</li> + <li>Subitem B</li> + </ul> + </li> +</ul> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 200, 160)}}</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#descendant-combinators', 'descendant combinator')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>>> introduït com combinador descendent a més de l'espai en blanc com combinador.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#descendant-combinators', 'descendant combinator')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#descendant-selectors', 'descendant selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#contextual-selectors', 'contextual selectors')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Tipus <code>>></code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("10")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Tipus <code>>></code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_de_fills/index.html b/files/ca/web/css/selectors_de_fills/index.html new file mode 100644 index 0000000000..f5cb8139f9 --- /dev/null +++ b/files/ca/web/css/selectors_de_fills/index.html @@ -0,0 +1,135 @@ +--- +title: Combinador de fills +slug: Web/CSS/Selectors_de_fills +tags: + - CSS + - NeedsMobileBrowserCompatibility + - Reference + - Selectors +translation_of: Web/CSS/Child_combinator +--- +<div>{{CSSRef("Selectors")}}</div> + +<p>El<strong> combinador de fills</strong> (<code>></code>) es col·loca entre dos selectors CSS. Solament coincideix amb aquells elements que coincideixen amb el segon selector que són fills d'elements que coincideixen amb el primer.</p> + +<pre class="brush: css no-line-numbers">/* Enumera els elements que són fills de la llista "my-things" */ +ul.my-things > li { + margin: 2em; +}</pre> + +<p>Els elements que coincideixin amb el segon selector han de ser els fills immediats dels elements que coincideixin amb el primer selector. Això és més estricte que el <a href="/en-US/docs/Web/CSS/Descendant_selectors">selector descendent</a>, que coincideix amb tots els elements que coincideixen amb el segon selector per al qual existeix un element ancestral coincident amb el primer selector, independentment de la quantitat de "salts" en el DOM</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">selector1 > selector2 { <em>style properties</em> } +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">span { + background-color: white; +} + +div > span { + background-color: DodgerBlue; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div> + <span>Span #1, in the div. + <span>Span #2, in the span that's in the div.</span> + </span> +</div> +<span>Span #3, not in the div at all.</span> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", 200, 100)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#child-combinators', 'child combinator')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#child-combinators', 'child combinators')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#child-selectors', 'child selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>7.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_de_germans_adjacents/index.html b/files/ca/web/css/selectors_de_germans_adjacents/index.html new file mode 100644 index 0000000000..911a395693 --- /dev/null +++ b/files/ca/web/css/selectors_de_germans_adjacents/index.html @@ -0,0 +1,135 @@ +--- +title: Combinador de germans adjacents +slug: Web/CSS/Selectors_de_germans_adjacents +tags: + - CSS + - NeedsMobileBrowserCompatibility + - Reference + - Selectors +translation_of: Web/CSS/Adjacent_sibling_combinator +--- +<div>{{CSSRef("Selectors")}}</div> + +<p><span id="result_box" lang="ca"><span>El <strong>combinador de germans adjacents</strong></span></span> (<code>+</code>) <span id="result_box" lang="ca"><span>separa dos selectors i només coincideix amb el segon element si segueix <em>immediatament</em> el primer element, i tots dos són fills del mateix pare</span></span> {{domxref("element")}}.</p> + +<pre class="brush: css no-line-numbers">/* Paràgrafs que vénen immediatament després de qualsevol imatge */ +img + p { + font-style: bold; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">former_element + target_element { <em>style properties</em> } +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">li:first-of-type + li { + color: red; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><ul> + <li>One</li> + <li>Two!</li> + <li>Three</li> +</ul></pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', 200, 100)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#adjacent-sibling-combinators', 'next-sibling combinator')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Li dóna un nou nom al combinador "next-sibling".</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#adjacent-sibling-combinators', 'Adjacent sibling combinator')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#adjacent-selectors', 'Adjacent sibling selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>7.0<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Internet Explorer 7 no actualitza l'estil correctament quan un element es col·loca dinàmicament abans d'un element que coincideixi amb el selector. En Internet Explorer 8, si un element s'insereix dinàmicament fent clic en un enllaç, l'estil del primer fill no s'aplicarà fins que l'enllaç perdi el focus.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/General_sibling_selectors">Selectors generals de germans</a></li> +</ul> diff --git a/files/ca/web/css/selectors_de_tipus/index.html b/files/ca/web/css/selectors_de_tipus/index.html new file mode 100644 index 0000000000..d87b102ac3 --- /dev/null +++ b/files/ca/web/css/selectors_de_tipus/index.html @@ -0,0 +1,135 @@ +--- +title: Selector Type +slug: Web/CSS/Selectors_de_Tipus +tags: + - CSS + - HTML + - NeedsMobileBrowserCompatibility + - Node + - Reference + - Selectors +translation_of: Web/CSS/Type_selectors +--- +<div>{{CSSRef}}</div> + +<p>El <strong>selector</strong> <strong>type </strong> CSS coincideix amb elements per nom del node. En altres paraules, selecciona tots els elements del tipus donat dins d'un document.</p> + +<pre class="brush: css no-line-numbers">/* Tots els elements <a>. */ +a { + color: purple; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">element { <em>style properties</em> } +</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">span { + background-color: skyblue; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><span>Here's a span with some text.</span> +<p>Here's a p with some text.</p> +<span>Here's a span with more text.</span> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', '100%', 150)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#type-selectors', 'Type (tag name) selector')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#type-selectors', 'type selectors')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#type-selectors', 'type selectors')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#basic-concepts', 'type selectors')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_general_de_germans/index.html b/files/ca/web/css/selectors_general_de_germans/index.html new file mode 100644 index 0000000000..64429bbaba --- /dev/null +++ b/files/ca/web/css/selectors_general_de_germans/index.html @@ -0,0 +1,129 @@ +--- +title: Combinador general de germans +slug: Web/CSS/Selectors_general_de_germans +tags: + - CSS + - NeedsMobileBrowserCompatibility + - Reference + - Selectors +translation_of: Web/CSS/General_sibling_combinator +--- +<div><span class="s1">{{CSSRef("Selectors")}}</span></div> + +<p>El <strong>combinador general de germans</strong> (<code>~</code>) <span id="result_box" lang="ca"><span>separa dos selectors i només coincideix amb el segon element si segueix el primer element (encara que no necessàriament immediatament), i tots dos són fills del mateix pare</span></span> {{domxref("element")}}.</p> + +<pre class="brush: css no-line-numbers">/* <span id="result_box" lang="ca"><span>Paràgrafs que són germans i posteriors a qualsevol imatge</span></span> */ +img ~ p { + color: red; +}</pre> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">element ~ element { <em>style properties</em> } +</pre> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">p ~ span { + color: red; +}</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><span>This is not red.</span> +<p>Here is a paragraph.</p> +<code>Here is some code.</code> +<span>And here is a red span!</span> +<code>More code...</code> +<span>And this is a red span!</span> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Example', 280, 120) }}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{ SpecName('CSS4 Selectors', '#general-sibling-combinators', 'following-sibling combinator') }}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Li dona un nou nom al combinador "subsequent-sibling"</td> + </tr> + <tr> + <td>{{ SpecName('CSS3 Selectors', '#general-sibling-combinators', 'general sibling combinator') }}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>7</td> + <td>9</td> + <td>3</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>Edge</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/Adjacent_sibling_selectors">Selectors de germans adjacents</a></li> +</ul> diff --git a/files/ca/web/css/selectors_id/index.html b/files/ca/web/css/selectors_id/index.html new file mode 100644 index 0000000000..1b6f041eb6 --- /dev/null +++ b/files/ca/web/css/selectors_id/index.html @@ -0,0 +1,134 @@ +--- +title: Selector ID +slug: Web/CSS/Selectors_ID +tags: + - CSS + - Reference + - Selectors +translation_of: Web/CSS/ID_selectors +--- +<div>{{CSSRef}}</div> + +<p><span id="result_box" lang="ca"><span>En un document HTML, el</span></span> <strong>selector</strong> <strong>ID </strong> <span id="result_box" lang="ca"><span>CSS coincideix amb un element basat en el valor del seu atribut</span></span> {{htmlattrxref("ID")}}. <span id="result_box" lang="ca"><span>L'atribut</span></span> <code>ID</code> <span id="result_box" lang="ca"><span>de l'element seleccionat ha de coincidir exactament amb el valor indicat en el selector</span></span></p> + +<pre class="brush: css no-line-numbers">/* The element with id="demo" */ +div#demo { + border: red 2px solid; +}</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">#id_value { <em>style properties</em> }</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Recordeu que</span> <span>això és</span> <span>equivalent al</span> <span>següent</span></span> {{Cssxref("Attribute_selectors", "attribute selector")}}:</p> + +<pre class="syntaxbox">[id=id_value] { <em>style properties</em> }</pre> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">div#identified { + background-color: skyblue; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div id="identified">This div has a special ID on it!</div> +<div>This is just a regular div.</div> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", '100%', 50)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("CSS4 Selectors", "#id-selectors", "ID selectors")}}</td> + <td>{{Spec2("CSS4 Selectors")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("CSS3 Selectors", "#id-selectors", "ID selectors")}}</td> + <td>{{Spec2("CSS3 Selectors")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("CSS2.1", "selector.html#id-selectors", "ID selectors")}}</td> + <td>{{Spec2("CSS2.1")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("CSS1", "#id-as-selector", "ID selectors")}}</td> + <td>{{Spec2("CSS1")}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/selectors_universal/index.html b/files/ca/web/css/selectors_universal/index.html new file mode 100644 index 0000000000..6aa7931ef9 --- /dev/null +++ b/files/ca/web/css/selectors_universal/index.html @@ -0,0 +1,176 @@ +--- +title: Selector Universal +slug: Web/CSS/Selectors_Universal +tags: + - CSS + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Reference + - Selectors +translation_of: Web/CSS/Universal_selectors +--- +<div>{{CSSRef}}</div> + +<p>El <strong>selector</strong> <strong>universal </strong>CSS<strong> </strong> (<code>*</code>) <span class="short_text" id="result_box" lang="ca"><span>coincideix amb elements de qualsevol tipus</span></span>.</p> + +<pre class="brush: css no-line-numbers">/* Selecciona tots els elements */ +* { + color: green; +}</pre> + +<p>A partir de CSS3, l'asterisc pot ser usat en combinació amb {{cssxref("CSS_Namespaces", "namespaces")}}:</p> + +<ul> + <li><code>ns|*</code> - coincideix amb tots els elements de l'espai de noms <em>ns</em></li> + <li><code>*|*</code> - coincideix amb tots els elements</li> + <li><code>|*</code> - coincideix amb tots els elements sense cap espai de noms declarat</li> +</ul> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">* { <em>style properties</em> }</pre> + +<p><span id="result_box" lang="ca"><span>L'asterisc és opcional amb selectors simples</span></span> . <span id="result_box" lang="ca"><span>Per exemple</span></span> , <code>*.warning</code> i <code>.warning</code> són equivalents.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">* [lang^=en] { + color: green; +} + +*.warning { + color: red; +} + +*#maincontent { + border: 1px solid blue; +} + +.floating { + float: left +} + +/* automatically clear the next sibling after a floating element */ +.floating + * { + clear: left; +} +</pre> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p class="warning"> + <span lang="en-us">A green span</span> in a red paragraph.</span> +</p> +<p id="maincontent" lang="en-gb"> + <span class="warning">A red span</span> in a green paragraph.</span> +</p></pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Examples')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Selectors', '#the-universal-selector', 'universal selector')}}</td> + <td>{{Spec2('CSS4 Selectors')}}</td> + <td>Sense canvis</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Selectors', '#universal-selector', 'universal selector')}}</td> + <td>{{Spec2('CSS3 Selectors')}}</td> + <td><span id="result_box" lang="ca"><span>Defineix el comportament pel que fa als espais de noms i afegeix suggeriments que permeten ometre el selector dins de pseudo-elements</span></span></td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'selector.html#universal-selector', 'universal selector')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>7</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Combinació amb suport d'espai de noms</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>9</td> + <td>8</td> + <td>1.3</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Combinació amb suport d'espai de noms</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/css/sintaxi/index.html b/files/ca/web/css/sintaxi/index.html new file mode 100644 index 0000000000..51931c11f0 --- /dev/null +++ b/files/ca/web/css/sintaxi/index.html @@ -0,0 +1,79 @@ +--- +title: Sintaxi +slug: Web/CSS/Sintaxi +tags: + - CSS + - Guide + - Reference + - Web +translation_of: Web/CSS/Syntax +--- +<div>{{cssref}}</div> + +<p>L'objectiu bàsic del llenguatge de la Fulla d'Estil en Cascada (CSS) és permetre que un motor del navegador pinti elements de la pàgina amb característiques específiques, com ara colors, posicionament o decoracions. La <em>sintaxi CSS</em> reflecteix aquest objectiu i els seus components bàsics són:</p> + +<ul> + <li>La <strong>propietat</strong> és un identificador, és un <em>nom</em> legible per humans, que defineix quina característica es considera.</li> + <li>El <strong>valor</strong> descriu com el motor ha de manejar la característica. Cada propietat té un conjunt de valors vàlids, definits per una gramàtica formal, així com un significat semàntic, implementat pel motor del navegador.</li> +</ul> + +<h2 id="Declaracions_CSS">Declaracions CSS</h2> + +<p>Establir propietats CSS a valors específics és la funció principal del llenguatge CSS. Un parell de propietats i valors s'anomena <strong>declaració</strong>, i qualsevol motor CSS calcula quines declaracions s'apliquen a cada element d'una pàgina per tal d'establir-la de forma adequada i definir-la.</p> + +<p>Les dues propietats i els valors no són sensibles a majúscules i minúscules de manera predeterminada a CSS. El parell està separat per dos punts, ':' (U + 003A COLON), i els espais en blanc abans, entre i després de les propietats i valors, però no necessàriament a l'interior, s'ignoren.</p> + +<p><img alt="css syntax - declaration.png" class="default internal" src="/@api/deki/files/6164/=css_syntax_-_declaration.png" style="border: 1px solid black; padding: 1em;"></p> + +<p>Hi ha més de <a href="/en/CSS/CSS_Reference" title="en/CSS/CSS_Reference">100 propiertats diferents</a> en CSS i un nombre gairebé infinit de valors diferents. No es permeten tots els parells de propietats i valors i cada propietat defineix quins són els valors vàlids. Quan un valor no és vàlid per a una propietat determinada, la declaració es considera <em>invàlida</em> i és totalment ignorada per el motor CSS .</p> + +<h2 id="Blocs_de_declaracions_CSS">Blocs de declaracions CSS</h2> + +<p>Les declaracions s'agrupen en <strong>blocs</strong>, és a dir, en una estructura delimitada per una clau d'obertura, '<code>{</code>' (<code>U+007B LEFT CURLY BRACKET</code>), i una de tancament, '<code>}</code>' (<code>U+007D RIGHT CURLY BRACKET</code>). Els blocs de vegades poden ser niats, de manera que les claus d'oberture i tancament han de coincidir.</p> + +<p><img alt="css syntax - block.png" class="default internal" src="/@api/deki/files/6165/=css_syntax_-_block.png" style="border: 1px solid black; padding: 1em;"></p> + +<p>Aquests blocs són naturalment anomenats blocs de declaració i les declaracions dins d'elles estan separades per un punt i coma, ';' (U + 003B SEMICOLON). Un bloc de declaració pot estar buit, aixó és, que conté una declaració nul·la. Els espais en blanc al voltant de les declaracions s'ignoren. L'última declaració d'un bloc no necessita ser acabada per un punt i coma, tot i que sovint es considera un bon estil per fer-ho ja que evita oblidar-se d'afegir-lo quan s'estén el bloc amb una altra declaració.</p> + +<p><img alt="css syntax - declarations block.png" class="default internal" src="/@api/deki/files/6166/=css_syntax_-_declarations_block.png" style="border: 1px solid black; padding: 1em;"></p> + +<div class="note">El contingut d'un bloc de declaració CSS, és una llista de declaracions separades per punt i coma, sense les claus inicials i de tancament, es pot incloure dins d'un atribut d'<a href="/en/HTML/Global_attributes#attr-style" title="https://developer.mozilla.org/en/HTML/Global_attributes#attr-style"><code>estil</code></a>.</div> + +<h2 id="Regles_de_CSS">Regles de CSS</h2> + +<p>Si les fulles d'estil només poguessin aplicar una declaració a cada element d'una pàgina web, serien bastant inútils. L'objectiu real és aplicar diferents declaracions a diferents parts del document.</p> + +<p>CSS ho permet associant condicions amb blocs de declaracions. Cada bloc de declaració (vàlid) està precedit d'un o més selectors que són condicions que seleccionen alguns elements de la pàgina. El bloc de declaracions d'un grup de parells de selectors s'anomena un <strong>conjunt de regles</strong> (<strong>ruleset</strong>), o sovint només una <strong>regla</strong> (<strong>rule</strong>).</p> + +<p><img alt="css syntax - ruleset.png" class="default internal" src="/@api/deki/files/6167/=css_syntax_-_ruleset.png" style="border: 1px solid black; padding: 1em;"></p> + +<p>Com que un element de la pàgina pot coincidir amb diversos selectors i, per tant, amb diverses regles que poden incloure una propietat determinada en diverses ocasions, amb valors diferents, l'estàndard CSS defineix quina té prioritat sobre l'altra i s'ha d'aplicar: això s'anomena algorisme en <a href="/en/CSS/Getting_Started/Cascading_and_inheritance" title="Cascading and inheritance">cascade</a>.</p> + +<div class="note">És important notar que fins i tot si un conjunt de regles caracteritzat per un grup de selectors és una espècie d'abreviatura que reemplaça els conjunts de regles amb un sol selector cadascun, això no s'aplica a la validesa del conjunt de regles en si.<br> +<br> +Això dóna lloc a una conseqüència important: si un únic selector bàsic no és vàlid, com quan s'utilitza un pseudo-element o pseudo-classe desconegut, el selector sencer és invàlid i per tant s'ignora tota la regla (no és vàlida).</div> + +<h2 id="Sentències_CSS"><span id="result_box" lang="ca"><span>Sentències CSS</span></span></h2> + +<p>Els conjunts de regles són els blocs principals de construcció d'una fulla d'estil, que sovint només consisteixen en una gran llista d'elles. Però hi ha una altra informació que un autor web vol transmetre en la fulla d'estil, com el joc de caràcters, altres fulles d'estil externes per importar, descripcions de tipus de fonts o comptadors de llistes i molts més. Utilitzarà altres tipus específics de declaracions per fer-ho.</p> + +<p>Una <strong>declaració</strong> és un bloc de construcció que comença amb qualsevol caràcter que no sigui l'espai i que finalitza en la primera clau de tancament o punt i coma (fora d'una cadena, no escapada i no s'inclou en un altre parell de {}, () o []).</p> + +<p><img alt="css syntax - statements Venn diag.png" class="default internal" src="/@api/deki/files/6168/=css_syntax_-_statements_Venn_diag.png" style="padding: 1em;"></p> + +<p>Hi ha dos tipus de declaracions:</p> + +<ul> + <li><strong>Conjunt de regles</strong> (<strong>Rulesets</strong>) (o regles) que, com es veu, associen una col·lecció de declaracions CSS a una condició descrita per un selector.</li> + <li><strong>Regles-At </strong>(<strong>At-rules</strong>) comencen amb un signe, '<code>@</code>' (<code>U+0040 COMMERCIAL AT</code>), seguit d'un identificador i, després continuen fins al final de la sentència, és a dir fins al següent punt i coma (;) fora d'un bloc o al final del bloc següent. Cada tipus de <a href="/en/CSS/At-rule" title="At-rule">regles-at</a>, definides per l'identificador, poden tenir la seva pròpia sintaxi interna, i la semàntica per descomptat. S'utilitzen per transmetre informació de metadades (com {{cssxref("@charset")}} o {{cssxref("@import")}}), informació condicional (com {{cssxref("@media")}} o {{cssxref("@document")}}), o informació descriptiva (com {{cssxref("@font-face")}}).</li> +</ul> + +<p>Qualsevol declaració que no sigui un conjunt de regles (ruleset) o una at-rule no és vàlida i és ignorada.</p> + +<p><a name="nested_statements">Hi ha un altre grup de declaracions – les <strong>declaracions niades.</strong> Aquestes són declaracions que es poden utilitzar en un subconjunt específic de regles-at – les <em>regles de grup condicional</em>. Aquestes declaracions només s'apliquen si es compleix una condició específica: el contingut de la regla-at <code>@media</code> només s'aplica si el dispositiu en què el navegador s'executa coincideix amb la condició expressada; el contingut de la regla-at <code>@document</code> només s'aplica si la pàgina actual coincideix amb algunes condicions, i així successivament. En CSS1 i CSS2.1, només es podien utilitzar <em>conjunts de regles</em> dins de les regles de grup condicional. Això va ser molt restrictiu i aquesta restricció es va aixecar en </a><a href="/en/CSS/CSS3#Conditionals" title="en/CSS/CSS3#Conditionals"><em>CSS Conditionals Level 3</em></a>. Ara, tot i que encara és experimental i no és compatible amb tots els navegadors, les regles de grup condicional poden contenir un rang de contingut més ampli: però també alguns conjunts de regles, però no totes les regles-at.</p> + +<h2 id="Vegeu_també"><span class="short_text" id="result_box" lang="ca"><span>Vegeu també</span></span></h2> + +<ul> + <li>{{ CSS_key_concepts()}}</li> +</ul> diff --git a/files/ca/web/css/visibility/index.html b/files/ca/web/css/visibility/index.html new file mode 100644 index 0000000000..ce3e835ec9 --- /dev/null +++ b/files/ca/web/css/visibility/index.html @@ -0,0 +1,242 @@ +--- +title: visibility +slug: Web/CSS/visibility +tags: + - CSS + - CSS Box Model + - CSS Property + - Layout + - Reference + - Web +translation_of: Web/CSS/visibility +--- +<div>{{CSSRef}}</div> + +<p>La propietat CSS <strong><code>visibility</code></strong> pot mostrar o ocultar un element sense afectar el disseny d'un document (és a dir, es crea espai per a elements, independentment de si són visibles o no). La propietat també pot ocultar files o columnes en un {{HTMLElement("table")}}.</p> + +<pre class="brush: css no-line-numbers">/* Valors de les paraules claus */ +visibility: visible; +visibility: hidden; +visibility: collapse; + +/* Valors globals */ +visibility: inherit; +visibility: initial; +visibility: unset; +</pre> + +<div class="note"> +<p><strong>Nota:</strong> Per ocultar un element <em><strong>i eliminar-lo del disseny del document</strong></em>, establiu la propietat {{cssxref("display")}} a <code>none</code> en comptes d'utilitzar <code>visibility</code>.</p> +</div> + +<p>{{cssinfo}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>La propietat <code>visibility</code> s'especifica com un dels valors de les paraules clau que es detallen a continuació.</p> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt><code>visible</code></dt> + <dd>La caixa de l'element és visible.</dd> + <dt><code>hidden</code></dt> + <dd>La caixa de l'element és invisible (no dibuixada), però encara afecta el disseny normal. Els descendents de l'element seran visibles si tenen <code>visibility</code> establert a <code>visible</code>. L'element no pot rebre el focus (com ara quan navegueu pels <a href="/en-US/docs/Web/HTML/Global_attributes/tabindex">índexs de pestanyes</a>).</dd> + <dt><code>collapse</code></dt> + <dd>Per {{HTMLElement("table")}} files, columnes, grups de columnes i grups de files, les files o columnes estan ocults i l'espai que han ocupat s'elimina (com si <code>{{Cssxref("display")}}: none</code> s'apliqués a la columna/fila de la taula). Tanmateix, la grandària d'altres files i columnes encara es calcula com si les cel·les de les files o columnes col·lapsades estiguessin presents. Aquest valor permet l'eliminació ràpida d'una fila o columna d'una taula sense forçar el recàlcul d'amplades i alçades per a tota la taula. Per als elements XUL, la grandària calculada de l'element sempre és zero, independentment d'altres estils que normalment afectarien la grandària, tot i que els marges encara tenen efecte. Per a altres elements, <code>collapse</code> es tracta igual que <code>hidden</code>.</dd> +</dl> + +<h3 id="Sintaxi_formal">Sintaxi formal</h3> + +<pre class="syntaxbox">{{csssyntax}}</pre> + +<h2 id="Interpolació">Interpolació</h2> + +<p>Els valors de visibilitat són interpolables entre <em>visible</em> i <em>no visible</em>. Per tant, un dels valors d'inici o de finalització ha de ser <code>visible</code> o no es pot produir interpolació. El valor s'interpola com un pas discret, on els valors de la funció de temporització entre <code>0</code> i <code>1</code> es corresponen amb <code class="css">visible</code> i altres valors de la funció de temporització (que només es produeixen a l'inici/final de la transició o com a resultat de funcions <code class="css">cubic-bezier()</code> amb valors y fora de [0, 1]) aplicat fins a l'extrem més proper.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_bàsic">Exemple bàsic</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><p class="visible">The first paragraph is visible.</p> +<p class="not-visible">The second paragraph is NOT visible.</p> +<p class="visible">The third paragraph is visible. Notice the second paragraph is still occupying space.</p> +</pre> + +<h4 id="CSS">CSS</h4> + +<pre class="brush: css">.visible { + visibility: visible; +} + +.not-visible { + visibility: hidden; +} +</pre> + +<p>{{EmbedLiveSample('Basic_example')}}</p> + +<h3 id="Exemple_de_taula"><span class="short_text" id="result_box" lang="ca"><span>Exemple de taula</span></span></h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><table> + <tr> + <td>1.1</td> + <td class="collapse">1.2</td> + <td>1.3</td> + </tr> + <tr class="collapse"> + <td>2.1</td> + <td>2.2</td> + <td>2.3</td> + </tr> + <tr> + <td>3.1</td> + <td>3.2</td> + <td>3.3</td> + </tr> +</table></pre> + +<h4 id="CSS_2">CSS</h4> + +<pre class="brush: css">.collapse { + visibility: collapse; +} + +table { + border: 1px solid red; +} + +td { + border: 1px solid gray; +} +</pre> + +<p>{{EmbedLiveSample('Table_example')}}</p> + +<h2 id="Notes">Notes</h2> + +<ul> + <li>Suport per <code>visibility: collapse</code> és inexistent o parcialment incorrecte en alguns navegadors moderns. Pot ser que no es tracti correctament com <code>visibility: hidden</code> en elements diferents de les files i columnes de la taula.</li> + <li><code>visibility: collapse</code> pot canviar el disseny d'una taula si la taula té taules niades dins de les cel·les que estan col·lapsades, tret que <code>visibility: visible</code> s'especifiqui explícitament en les taules niades.</li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Flexbox', '#visibility-collapse', 'visibility')}}</td> + <td>{{Spec2('CSS3 Flexbox')}}</td> + <td>Defineix el valor de <code>collapse</code> tal com s'aplica als elements flex.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Box', '#visibility-prop', 'visibility')}}</td> + <td>{{Spec2('CSS3 Box')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha cap canvi</span></span>.</td> + </tr> + <tr> + <td>{{SpecName('CSS3 Transitions', '#animatable-css', 'visibility')}}</td> + <td>{{Spec2('CSS3 Transitions')}}</td> + <td>Defineix <code>visibility</code> com animable.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'visufx.html#visibility', 'visibility')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup>[2]</sup></td> + <td>4.0<sup>[4]</sup></td> + <td>4.0<sup>[3]</sup></td> + <td>1.0<sup>[1]</sup></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>col.lapse</span></span></td> + <td>62</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Descripció</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Edge</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>1.0<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[2]</sup></td> + <td>6.0</td> + <td>6.0<sup>[3]</sup></td> + <td>1.0<sup>[1]</sup></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>col.lapse</span></span></td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Chrome i Safari tractant <code>visibility: collapse</code> com <code>hidden</code>, deixant un buit blanc; només ho suporten {{HTMLElement("tr")}}, {{HTMLElement("thead")}}, {{HTMLElement("tbody")}} i {{HTMLElement("tfoot")}}, però no als elements {{HTMLElement("col")}} i {{HTMLElement("colgroup")}}.</p> + +<p>[2] Firefox no amaga les vores quan s'amaguen els elements {{HTMLElement("col")}} i {{HTMLElement("colgroup")}} si està establert <code>border-collapse: collapse</code>.</p> + +<p>[3] A Opera, <code>visibility: collapse</code> funciona en elements de taula, però no sembla amagar un {{HTMLElement("tfoot")}} si és adjacent a un {{HTMLElement("tbody")}} visible.</p> + +<p>[4] Internet Explorer no admet <code>visibility: initial</code>. Fins a IE7, els descendents d'elements <code>hidden</code> seguiran sent invisibles fins i tot si tenen <code>visibility</code> definida com <code>visible</code>.</p> diff --git a/files/ca/web/css/width/index.html b/files/ca/web/css/width/index.html new file mode 100644 index 0000000000..ced3086fa8 --- /dev/null +++ b/files/ca/web/css/width/index.html @@ -0,0 +1,204 @@ +--- +title: width +slug: Web/CSS/width +tags: + - CSS + - CSS Property + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Reference +translation_of: Web/CSS/width +--- +<p>{{CSSRef}}</p> + +<p>La propietat CSS <strong><code>width</code></strong> especifica l'amplada d'un element. Per defecte, estableix l'amplada de l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model#content-area">àrea de contingut</a>. però si {{cssxref("box-sizing")}} està establert a <code>border-box</code>, aquest determina l'amplada de l'<a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model#border-area">àrea de vora</a>.</p> + +<div>{{EmbedInteractiveExample("pages/css/width.html")}}</div> + +<div class="hidden">L'origen d'aquest exemple interactiu s'emmagatzema en un repositori GitHub. Si es vol contribuir al projecte d'exemples interactius, clonar <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> i enviar una sol·licitud d'extracció.</div> + +<p>Les propietats {{cssxref("min-width")}} i {{cssxref("max-width")}} anul·la {{cssxref("width")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="brush:css no-line-numbers notranslate">/* <length> values */ +width: 300px; +width: 25em; + +/* <percentage> value */ +width: 75%; + +/* Keyword values */ +width: max-content; +width: min-content; +width: fit-content(20em); +width: auto; + +/* Global values */ +width: inherit; +width: initial; +width: unset; +</pre> + +<p>La propietat <code>width</code> s'especifica com a:</p> + +<ul> + <li>un dels següents valors de paraules clau:: <code><a href="#min-content">min-content</a></code>, <code><a href="#max-content">max-content</a></code>, <code><a href="#fit-content">fit-content</a></code>, <code><a href="#auto">auto</a></code>.</li> + <li>una <code><a href="#<length>"><length></a></code> o una <code><a href="#<percentage>"><percentage></a></code>.</li> +</ul> + +<h3 id="Valors">Valors</h3> + +<dl> + <dt>{{cssxref("<length>")}}</dt> + <dd>Defineix l'amplada com un valor absolut.</dd> + <dt>{{cssxref("<percentage>")}}</dt> + <dd>Defineix l'amplada com a percentatge de l'amplada del bloc que conté.</dd> + <dt><code>auto</code></dt> + <dd>El navegador calcularà i seleccionarà una amplada per a l'element especificat.</dd> + <dt><code>max-content</code></dt> + <dd>L'amplada intrínseca preferida.</dd> + <dt><code>min-content</code></dt> + <dd>L'amplada mínima intrínseca.</dd> + <dt><code>fit-content({{cssxref("<length-percentage>")}})</code></dt> + <dd>Utilitza la fórmula fit-content amb l'espai disponible substituït per l'argument especificat, i. e. <code>min(max-content, max(min-content, <length-percentage>))</code>.</dd> +</dl> + +<h2 id="Qüestions_daccessibilitat">Qüestions d'accessibilitat</h2> + +<p>Ens hem d'assegurar que els elements establerts amb un <code>width</code> no estan truncats i que no enfosqueixin altres continguts quan la pàgina s'ampliï per augmentar la mida del text.</p> + +<ul> + <li><a href="/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.4_Make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background">MDN Understanding WCAG, Guideline 1.4 explanations</a></li> + <li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html" rel="noopener">Understanding Success Criterion 1.4.4 | Understanding WCAG 2.0</a></li> +</ul> + +<h2 id="Definició_formal">Definició formal</h2> + +<p>{{CSSInfo}}</p> + +<h2 id="Sintaxi_formal">Sintaxi formal</h2> + +<pre class="syntaxbox notranslate">{{csssyntax}}</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Amplada_per_defecte">Amplada per defecte</h3> + +<pre class="brush:css notranslate">p.goldie { + background: gold; +}</pre> + +<pre class="brush:html notranslate"><p class="goldie">The Mozilla community produces a lot of great software.</p></pre> + +<p>{{EmbedLiveSample('Default_width', '500px', '64px')}}</p> + +<h3 id="Pixels_i_ems">Pixels i ems</h3> + +<pre class="brush: css notranslate">.px_length { + width: 200px; + background-color: red; + color: white; + border: 1px solid black; +} + +.em_length { + width: 20em; + background-color: white; + color: red; + border: 1px solid black; +} +</pre> + +<pre class="brush: html notranslate"><div class="px_length">Width measured in px</div> +<div class="em_length">Width measured in em</div></pre> + +<p>{{EmbedLiveSample('Pixels_and_ems', '500px', '64px')}}</p> + +<h3 id="Percentatge">Percentatge</h3> + +<pre class="brush: css notranslate">.percent { + width: 20%; + background-color: silver; + border: 1px solid red; +}</pre> + +<pre class="brush: html notranslate"><div class="percent">Width in percentage</div></pre> + +<p>{{EmbedLiveSample('Percentage', '500px', '64px')}}</p> + +<h3 id="max-content">max-content</h3> + +<pre class="brush:css; notranslate">p.maxgreen { + background: lightgreen; + width: intrinsic; /* Safari/WebKit uses a non-standard name */ + width: -moz-max-content; /* Firefox/Gecko */ + width: -webkit-max-content; /* Chrome */ + width: max-content; +}</pre> + +<pre class="brush:html notranslate"><p class="maxgreen">The Mozilla community produces a lot of great software.</p></pre> + +<p>{{EmbedLiveSample('max-content', '500px', '64px')}}</p> + +<h3 id="min-content">min-content</h3> + +<pre class="brush:css notranslate">p.minblue { + background: lightblue; + width: -moz-min-content; /* Firefox */ + width: -webkit-min-content; /* Chrome */ +}</pre> + +<pre class="brush:html notranslate"><p class="minblue">The Mozilla community produces a lot of great software.</p></pre> + +<p>{{EmbedLiveSample('min-content', '500px', '155px')}}</p> + +<h2 id="Epecificacions">Epecificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS4 Sizing', '#width-height-keywords', 'width')}}</td> + <td>{{Spec2('CSS4 Sizing')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('CSS3 Sizing', '#width-height-keywords', 'width')}}</td> + <td>{{Spec2('CSS3 Sizing')}}</td> + <td>Added the <code>max-content</code>, <code>min-content</code>, <code>fit-content</code> keywords.</td> + </tr> + <tr> + <td>{{SpecName('CSS2.1', 'visudet.html#the-width-property', 'width')}}</td> + <td>{{Spec2('CSS2.1')}}</td> + <td>Precises on which element it applies to.</td> + </tr> + <tr> + <td>{{SpecName('CSS1', '#width', 'width')}}</td> + <td>{{Spec2('CSS1')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div class="hidden">La taula de compatibilitat d'aquesta pàgina es genera a partir de dades estructurades. Si es vol contribuir a les dades, consultar <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> i enviar una sol·licitud d'extracció.</div> + +<p>{{Compat("css.properties.width")}}</p> + +<h2 id="Veure_també">Veure també</h2> + +<ul> + <li><a href="/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model">box model</a></li> + <li>{{cssxref("height")}}</li> + <li>{{cssxref("box-sizing")}}</li> + <li>{{cssxref("min-width")}}, {{cssxref("max-width")}}</li> + <li>Les propietats lògiques assignades: {{cssxref("block-size")}}, {{cssxref("inline-size")}}</li> +</ul> diff --git a/files/ca/web/guide/ajax/index.html b/files/ca/web/guide/ajax/index.html new file mode 100644 index 0000000000..4531a6fd92 --- /dev/null +++ b/files/ca/web/guide/ajax/index.html @@ -0,0 +1,26 @@ +--- +title: AJAX +slug: Web/Guide/AJAX +tags: + - AJAX + - Totes_les_categories +translation_of: Web/Guide/AJAX +--- +<p> </p> +<div class="callout-box"><strong><a href="/ca/AJAX/Primers_passos" title="ca/AJAX/Primers_passos">Primers passos</a></strong><br> +Una introducció a AJAX.</div> +<div> +<p>El <strong>JavaScript asincrònic i XML</strong>, (<em>Asynchronous JavaScript and XML, <strong>AJAX</strong>, en anglès</em>), no és una tecnologia per si mateixa, sinó un terme que descriu una «nova aproximació» davant de tecnologies ja existents com ara: <a href="/ca/HTML" title="ca/HTML">HTML</a> o <a href="/ca/XHTML" title="ca/XHTML">XHTML</a>, <a href="/ca/CSS" title="ca/CSS">fulls d'estil en cascada</a>, <a href="/ca/JavaScript" title="ca/JavaScript">JavaScript</a>, <a href="/ca/DOM" title="ca/DOM">el model d'objectes de document</a>, <a href="/ca/XML" title="ca/XML">XML</a>, <a href="/ca/XSLT" title="ca/XSLT">XSLT</a>, i l'<a href="/ca/XMLHttpRequest" title="ca/XMLHttpRequest">l'objecte XMLHttpRequest</a>. En combinar-les totes en el model d'AJAX, les aplicacions web poden fer actualitzacions ràpides i incrementals de la interfície d'usuari sense que calgui tornar a actualitzar la pàgina des del navegador. Això fa que l'aplicació respongui més ràpidament a les accions de l'usuari.</p> +</div> +<h4 id="Documentaci.C3.B3_d.27AJAX"><a href="/Special:Tags?tag=AJAX&language=ca" title="Special:Tags?tag=AJAX&language=ca">Documentació d'AJAX</a></h4> +<dl> <dt><a href="/ca/AJAX/Primers_passos" title="ca/AJAX/Primers_passos">AJAX:Primers passos</a></dt> <dd><small>Aquest article us guiarà a través dels principis bàsics d'AJAX i amb dos pràctics exemples per a anar per feina.</small></dd> +</dl> +<dl> <dt><a class="external" href="http://oriolmorell.cat/arxiu/categories/tecnologia/ajax/">Notes sobre AJAX</a></dt> <dd><small>Col·lecció d'apunts sobre AJAX.</small></dd> +</dl> +<h4 id="Temes_relacionats">Temes relacionats</h4> +<dl> <dd><a href="/ca/HTML" title="ca/HTML">HTML</a>, <a href="/ca/XHTML" title="ca/XHTML">XHTML</a>, <a href="/ca/CSS" title="ca/CSS">CSS</a>, <a href="/ca/DOM" title="ca/DOM">DOM</a>, <a href="/ca/JavaScript" title="ca/JavaScript">JavaScript</a>, <a href="/ca/XML" title="ca/XML">XML</a>, <a href="/ca/XMLHttpRequest" title="ca/XMLHttpRequest">XMLHttpRequest</a>, <a href="/ca/XSLT" title="ca/XSLT">XSLT</a>, <a href="/ca/DHTML" title="ca/DHTML">DHTML</a></dd> +</dl> +<p><span>Categories</span></p> +<p><span>Interwiki Language Links</span></p> +<p> </p> +<p>{{ languages( { "en": "en/AJAX", "es": "es/AJAX", "fr": "fr/AJAX", "ja": "ja/AJAX", "nl": "nl/AJAX", "pl": "pl/AJAX", "pt": "pt/AJAX" } ) }}</p> diff --git a/files/ca/web/guide/ajax/primers_passos/index.html b/files/ca/web/guide/ajax/primers_passos/index.html new file mode 100644 index 0000000000..ea59270ae8 --- /dev/null +++ b/files/ca/web/guide/ajax/primers_passos/index.html @@ -0,0 +1,192 @@ +--- +title: Primers passos +slug: Web/Guide/AJAX/Primers_passos +tags: + - AJAX + - Totes_les_categories +translation_of: Web/Guide/AJAX/Getting_Started +--- +<p> +Aquest article us guiarà a través dels principis bàsics d'AJAX i amb dos pràctics exemples per a anar per feina. +</p> +<h3 id="Qu.C3.A8_.C3.A9s_l.27AJAX.3F" name="Qu.C3.A8_.C3.A9s_l.27AJAX.3F"> Què és l'AJAX? </h3> +<p>El <b>JavaScript asincrònic i XML</b>, (<i>Asynchronous JavaScript and XML, <b>AJAX</b>, en anglès</i>) és un neologisme per a dues potents característiques de navegació que fa anys que existeixen, però que han estat ignorades per molts desenvolupadors web fins a la recent arribada d'aplicacions com Gmail, Google suggest o Google Maps. +</p><p>Les dues característiques en qüestió són poder: +</p> +<ul><li> Fer sol·licituds al vostre servidor sense haver d'actualitzar la pàgina +</li><li> Analitzar i treballar amb documents XML +</li></ul> +<h3 id="Primer_pas_.E2.80.93_Com_fer_una_sol.C2.B7licitud_HTTP" name="Primer_pas_.E2.80.93_Com_fer_una_sol.C2.B7licitud_HTTP"> Primer pas – Com fer una sol·licitud HTTP </h3> +<p>Per a fer una sol·licitud HTTP (HTTP request) al servidor fent servir JavaScript, us cal una instància d'una classe que us en proporcioni la funcionalitat. Aquest tipus de classe va introduir-se originalment a l'Internet Explorer com a objecte ActiveX, anomenant-se <code>XMLHTTP</code>. Més endavant, Mozilla i Safari implementaren una classe, <code>XMLHttpRequest</code>, que funciona amb els mètodes i propietats de l'objecte original ActiveX de Microsoft. +</p><p>Com a resultat, per a crear una instància (objecte) de la classe perquè funcioni a tots els navegadors, heu de fer: +</p> +<pre>if (window.XMLHttpRequest) { // Mozilla, Safari, ... + sol·licitud_HTTP = new XMLHttpRequest(); +} else if (window.ActiveXObject) { // IE + sol·licitud_HTTP = new ActiveXObject("Microsoft.XMLHTTP"); +} +</pre> +<p>(L'exemple anterior és una versió simplificada il·lustrativa del codi que s'utilitza per a crear una instància XMLHTTP. Per a un exemple del dia a dia, consulteu el tercer pas d'aquest article.) +</p><p>Algunes versions dels navegadors Mozilla no funcionaran correctament si la resposta del servidor no té una capçalera MIME XML. Per a satisfer aquesta exigència, podeu utilitzar una crida d'un mètode extra per a ignorar la capçalera que pogués enviar el servidor, si aquesta no fos <code>text/xml</code>. +</p> +<pre>sol·licitud_HTTP = new XMLHttpRequest(); +sol·licitud_HTTP.overrideMimeType('text/xml'); +</pre> +<p>Tot seguit, cal decidir què voleu fer després de rebre la resposta del servidor a la vostra sol·licitud. En aquest estadi, només cal que especifiqueu a l'objecte de sol·licitud HTTP quina funció de JavaScript processarà la resposta. +Això es fa definint la propietat <code>onreadystatechange</code> de l'objecte per al nom de la funció de JavaScript que penseu fer sevir, tal com es mostra a continuació: +</p><p><code>sol·licitud_HTTP.onreadystatechange = nom_de_la_funció;</code> +</p><p>Tingueu en compte que no hi ha parèntesis després del nom de la funció i no es passa cap paràmetre. A més, en comptes de donar un nom de funció, podeu utilitzar la tècnica de JavaScript de definir funcions al vol i les accions que en processaran la resposta, tal com es mostra a continuació: </p> +<pre>sol·licitud_HTTP.onreadystatechange = function(){ + // fes el que calgui +}; +</pre> +<p>Després d'haver declarat allò que passarà després de rebre la resposta, cal fer-ne la sol·licitud. Heu de cridar els mètodes <code>open()</code> i <code>send()</code> de la classe de sol·licitud HTTP, tal com es mostra a continuació: +</p> +<pre>sol·licitud_HTTP.open('GET', 'http://www.exemple.org/algun.fitxer', true); +sol·licitud_HTTP.send(null); +</pre> +<ul><li> El primer paràmetre de la crida a <code>open()</code> és el mètode de sol·licitud HTTP – GET, POST, HEAD o qualsevol altre mètode que ja vulgueu utilitzar i funcioni al vostre servidor. Escriviu-lo en majúscules atès que és un estàndard de l'HTTP; per altra banda, alguns navegadors (com el Firefox) podrien no processar la sol·licitud. Per a més informació dels mètodes de sol·licitud HTTP, podeu consultar les <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html" class="external">especificacions W3C</a> </li><li> El segon paràmetre és l'URL de la pàgina que esteu sol·licitant. Com a mesura de seguretat, no podeu cridar a pàgines en dominis de tercers. Assegureu-vos que utilitzeu el nom de domini exacte en totes les vostres pàgines o tindreu un error de «permís denegat» quan crideu a open(). Una trampa comuna és accedir al vostre lloc web amb domini.tld, però intentar cridar les pàgines amb www.domini.tld. +</li><li> El tercer paràmetre defineix si la sol·licitud és asincrònica. Si és així, <code>TRUE</code>, l'execució de la funció de JavaScript continuarà mentre la resposta del servidor no hagi arribat. Aquesta és l'A d'AJAX. +</li></ul> +<p>El paràmetre al mètode <code>send()</code> pot ser qualsevol dada que vulgueu enviar al servidor si s'envia la sol·licitud amb POST. Les dades cal que siguin de la forma d'una cadena de consulta com aquesta: +</p><p><code>nom=valor&un_altre_nom=un_altre_valor&i_així=anar_fent</code> +</p><p>Tingueu en compte que si voleu enviar dades amb POST, heu de canviar el tipus MIME de la sol·licitud utilitzant la següent línia: +</p> +<pre>sol·licitud_HTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); +</pre> +<p>Si no ho feu així, el servidor rebutjarà les dades que hi hàgiu enviat. +</p> +<h3 id="Segon_pas_.E2.80.93_Gestionar_la_resposta_del_servidor" name="Segon_pas_.E2.80.93_Gestionar_la_resposta_del_servidor"> Segon pas – Gestionar la resposta del servidor </h3> +<p>Recordeu que quan envieu la sol·licitud, també proporcioneu el nom de la funció JavaScript destinada a gestionar-ne la resposta. +</p><p><code>sol·licitud_HTTP.onreadystatechange = nom_de_la_funció;</code> +</p><p>Observem què hauria de fer aquesta funció. Primer, cal que comprovi l'estat de la sol·licitud. Si aquesta té el valor 4, vol dir que s'ha rebut una resposta total del servidor i podeu continuar processant-la. </p> +<pre>if (sol·licitud_HTTP.readyState == 4) { + // tot va bé, s'ha rebut la resposta +} else { + // encara no està preparada +} +</pre> +<p>La llista sencera de valors d'estat, <code>readyState</code>, és la següent: +</p> +<ul><li> 0 (sense inicialitzar) +</li><li> 1 (s'està carregant) +</li><li> 2 (carregat) +</li><li> 3 (interactiu) +</li><li> 4 (complerta) +</li></ul> +<p>(<a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readystate_1.asp" class="external">Font</a>) +</p><p>A continuació, cal que comproveu el codi d'estat de la resposta de servidor HTTP. Tots els codis possible es llisten al <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" class="external">lloc del W3C</a>. Per als nostres objectius, només ens interessa la resposta <code>200 OK</code>. +</p> +<pre>if (sol·licitud_HTTP.status == 200) { + // perfecte! +} else { + // hi ha hagut algun problema amb la sol·licitud + // per exemple, la resposta podria ser uns codis de resposta + // 404 (Not Found) o 500 (Internal Server Error) +} +</pre> +<p>Després d'haver comprovat l'estat de la sol·licitud i el codi d'estat HTTP de la resposta, heu de decidir què voleu fer amb les dades que el servidor us ha enviat. Teniu dues opcions per a accedir a les dades: +</p> +<ul><li> <code>sol·licitud_HTTP.responseText</code> – retornarà la resposta del servidor com una cadena de text. +</li><li> <code>sol·licitud_HTTP.responseXML</code> – retornarà la resposta com un objecte document XML, <code>XMLDocument</code>, que podeu recórrer utilitzant les funcions DOM de JavaScript. +</li></ul> +<h3 id="Tercer_pas_.E2.80.93_Un_exemple_simple" name="Tercer_pas_.E2.80.93_Un_exemple_simple"> Tercer pas – Un exemple simple </h3> +<p>Posem-ho tot junt i fem una sol·licitud HTTP simple. El nostre codi JavaScript sol·licitarà un document HTML, <code>prova.html</code>, que conté el text «Açò és un text.» i llavors notificarà, <code>alert()</code>, els continguts del fitxer <code>prova.html</code>. +</p> +<pre><script type="text/javascript" language="javascript"> + + + + function fes_sol·licitud(url) { + + var sol·licitud_HTTP = false; + + if (window.XMLHttpRequest) { // Mozilla, Safari,... + sol·licitud_HTTP = new XMLHttpRequest(); + if (sol·licitud_HTTP.overrideMimeType) { + sol·licitud_HTTP.overrideMimeType('text/xml'); + // Vegeu la nota a sota + } + } else if (window.ActiveXObject) { // IE + try { + sol·licitud_HTTP = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + sol·licitud_HTTP = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) {} + } + } + + if (!sol·licitud_HTTP) { + alert('S\'abandona :( No es pot crear una instància d'XMLHTTP'); + return false; + } + sol·licitud_HTTP.onreadystatechange = function() { notifica_continguts(sol·licitud_HTTP); }; + sol·licitud_HTTP.open('GET', url, true); + sol·licitud_HTTP.send(null); + + } + + function notifica_continguts(sol·licitud_HTTP) { + + if (sol·licitud_HTTP.readyState == 4) { + if (sol·licitud_HTTP.status == 200) { + alert(sol·licitud_HTTP.responseText); + } else { + alert('Hi ha hagut un problema amb la sol·licitud.'); + } + } + + } +</script> +<span + style="cursor: pointer; text-decoration: underline" + onclick="fes_sol·licitud('prova.html')"> + Fes una sol·licitud +</span> +</pre> +<p><br> +En aquest exemple: +</p> +<ul><li> L'usuari fa un clic a l'enllaç «Fes una sol·licitud»; +</li><li> Açò crida a la funció <code>fes_sol·licitud()</code> amb un paràmetre – el nom <code>prova.html</code> d'un fitxer HTML en el mateix directori; +</li><li> Es fa la sol·licitud i llavors (<code>onreadystatechange</code>) l'execució es passa a <code>notifica_continguts()</code>; +</li><li> <code>notifica_continguts()</code> comprova si la resposta s'ha rebut, i si és correcta, llavors <code>alert()</code> notifica dels continguts al fitxer <code>prova.html</code>. +</li></ul> +<p>Podeu provar l'exemple <a href="http://www.w3clubs.com/mozdev/httprequest_test.html" class="external">ací</a> i veure el fitxer de prova <a href="http://www.w3clubs.com/mozdev/test.html" class="external">també ací</a>. +</p><p><b>Nota</b>: La línia <code>sol·licitud_HTTP.overrideMimeType('text/xml');</code> anterior donarà errors a la consola de Javascript al Firefox 1.5b tal com es documenta a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=311724" class=" link-https" rel="freelink">https://bugzilla.mozilla.org/show_bug.cgi?id=311724</a> si la pàgina que es crida per XMLHttpRequest no és un XML vàlid (p.ex., si és text net). +</p><p>Si obteniu un error de sintaxi (Syntax Error) o de mal format (Not Well Formed Error) en el navegador, i no esteu intentant carregar una pàgina XML per XMLHttpRequest, suprimiu aquesta línia del codi. +</p><p><b>Nota 2</b>: si envieu una sol·licitud a un codi que retorni XML, en comptes d'un fitxer XML estàtic, heu d'especificar-ne algunes capçaleres de resposta si la vostra pàgina ha de funcionar amb l'Internet Explorer a més d'amb el Mozilla. Si no hi definiu la capçalera, <code>Content-Type: application/xml</code>, l'IE llançarà un error de Javascript 'Object Expected' després de la línia des d'on intenteu accedir a un element XML. Si no hi definiu una capçalera, <code>Cache-Control: no-cache</code>, el navegador emmagatzemarà a la memòria cau la resposta i no tornarà mai a trametre la sol·licitud, fent llavors que la depuració sigui tot un repte. +</p><p><b>Nota 3</b>: si la variable sol·licitud_HTTP s'utilitza globalment, aquelles funcions «competidores» que cridin a fes_sol·licitud() poden anul·lar-se unes a les altres, provocant doncs una condició de cursa. En declarar sol·licitud_HTTP com una variable local a la funció i passar-la a la funció notifica_continguts() ho evita. +</p><p><b>Note 4</b>: Per a registrar la funció de resposta onreadystatechange, no podeu tenir cap argument: +</p> +<pre>sol·licitud_HTTP.onreadystatechange = function() { notifica_continguts(sol·licitud_HTTP); }; //1 (sol·licitud simultània) +sol·licitud_HTTP.onreadystatechange = notifica_continguts(sol·licitud_HTTP); //2 (no funciona) +sol·licitud_HTTP.onreadystatechange = notifica_continguts; //3 (variable global) +</pre> +<p>El mètode 1 us permet tenir diferent sol·licituds fetes simultàniament, el 2 no funciona, i el 3 s'utilitza si sol·licitud_HTTP és una variable global. +</p> +<h3 id="Quart_pas_.E2.80.93_Treballant_amb_la_resposta_XML" name="Quart_pas_.E2.80.93_Treballant_amb_la_resposta_XML"> Quart pas – Treballant amb la resposta XML </h3> +<p>En l'anterior exemple, després que es rebés la resposta a la sol·licitud HTTP, vam fer servir la propietat <code>reponseText</code> de l'objecte de sol·licitud i contenia els continguts del fitxer <code>prova.html</code>. Provem-ho ara amb la propietat <code>responseXML</code>. +</p><p>Comencem creant un document XML vàlid, que sol·licitarem més endavant. El document (prova.xml) conté el següent: +</p> +<pre><?xml version="1.0" ?> +<root> + Açò és una prova. +</root> +</pre> +<p>A la seqüència, només cal que canviar-hi la línia de sol·licitud per: +</p> +<pre>... +onclick="fes_sol·licitud('prova.xml')"> +... +</pre> +<p>Llavors a <code>notifica_continguts()</code> cal que reemplacem la línia amb <code>alert()</code> d'<code>alert(sol·licitud_HTTP.responseText);</code> per: +</p> +<pre>var document_xml = sol·licitud_HTTP.responseXML; +var node_arrel = document_xml.getElementsByTagName('root').item(0); +alert(node_arrel.firstChild.data); +</pre> +<p>D'aquesta forma prenem l'objecte <code>XMLDocument</code> donat per <code>responseXML</code> i utilitzem els mètodes DOM per a accedir a algunes dades que es troben al document XML. Podeu veure-ho a <code>prova.xml</code> <a href="http://www.w3clubs.com/mozdev/test.xml" class="external">ací</a> i la seqüència de prova actualizada <a href="http://www.w3clubs.com/mozdev/httprequest_test_xml.html" class="external">ací</a>. +</p><p>Per a més informació dels mètodes DOM, consulteu els documents de la <a href="http://www.mozilla.org/docs/dom/" class="external">implementació DOM de Mozilla</a>. +</p>{{ languages( { "de": "de/AJAX/Getting_Started", "en": "en/AJAX/Getting_Started", "es": "es/AJAX/Primeros_Pasos", "fr": "fr/AJAX/Premiers_pas", "ja": "ja/AJAX/Getting_Started", "pl": "pl/AJAX/Na_pocz\u0105tek", "pt": "pt/AJAX/Como_come\u00e7ar" } ) }} diff --git a/files/ca/web/guide/css/inici_en_css/caixes/index.html b/files/ca/web/guide/css/inici_en_css/caixes/index.html new file mode 100644 index 0000000000..536ea9b5e1 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/caixes/index.html @@ -0,0 +1,341 @@ +--- +title: Caixes +slug: Web/Guide/CSS/Inici_en_CSS/Caixes +tags: + - Basic + - Beginner + - CSS + - CSS Borders + - CSS Margin + - CSS Padding + - 'CSS:Getting_Started' + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/Building_blocks +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Lists", "Llistes") }}Aquesta és la 11th secció del tutorial <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a> descriu com podeu utilitzar CSS per controlar l'espai que ocupa un element quan es mostra. En el document d'exemple, canviareu l'espaiat i afegireu regles decoratives.</p> + +<h2 class="clearLeft" id="Informació_Caixes">Informació: Caixes</h2> + +<p>Quan el navegador mostra un element, l'element ocupa espai. Hi ha quatre parts en l'espai que ocupa.</p> + +<p>Al mig, és l'espai que l'<em>element</em> necessita per mostrar el seu contingut. Al voltant d'això, hi ha un <em>padding (farciment)</em>. Al voltant d'això, hi ha un <em>border (vora)</em>. Al voltant d'això, hi ha un <em>margin (marge)</em> que separa l'element d'altres elements.</p> + +<table> + <tbody> + <tr> + <td style="width: 22em;"> + <div style="background-color: #eee; padding: 0px 2em 2em 2em; width: 16em;"> + <p style="text-align: center; margin: 0px;">margin (marge)</p> + + <p style="text-align: center; margin: 0px 0px -.75em 0px;">border (vora)</p> + + <div style="background-color: #fff; padding: 0px 2em 2em 2em; border: 4px solid #fd9;"> + <p style="text-align: center;">padding (farciment)</p> + + <div style="background-color: #eee;"> + <p style="text-align: center; padding: 0px; margin: 0px; font-size: 200%; font-weight: bold; color: #999;">element</p> + </div> + </div> + </div> + + <p><em><span class="short_text" id="result_box" lang="ca"><span>El gris</span> <span>pàl·lid</span> <span>mostra</span> <span>parts</span> <span>de la disposició.</span></span></em></p> + </td> + <td> + <div style="background-color: #fff; padding: 0px 2em 2em 2em; width: 16em;"> + <p style="text-align: center; margin: 0px;"> </p> + + <p style="text-align: center; margin: 0px 0px -.75em 0px;"> </p> + + <div style="background-color: #fff; padding: 0px 2em 2em 2em; border: 4px solid #fd9;"> + <p style="text-align: center;"> </p> + + <div style="background-color: #fff;"> + <p style="text-align: center; padding: 0px; margin: 0px; font-size: 200%; font-weight: bold; color: #999;">element</p> + </div> + </div> + </div> + + <p><em>Això és el que es veu en el vostre navegador.</em></p> + </td> + </tr> + </tbody> +</table> + +<p>El farcit, vora i marge poden tenir diferents mides en la part superior, dret, inferior i esquerra de l'element. Qualsevol o totes aquestes mides poden ser zero.</p> + +<h3 id="Acolorir">Acolorir</h3> + +<p>El farcit és sempre del mateix color que el fons de l'element. Així que quan s'estableix el color de fons, es veu el color aplicat a l'element en si i el seu farcit. El marge és sempre transparent.</p> + +<table> + <tbody> + <tr> + <td style="width: 22em;"> + <div style="background-color: #eee; padding: 0px 2em 2em 2em; width: 16em;"> + <p style="text-align: center; margin: 0px;">margin</p> + + <p style="text-align: center; margin: 0px 0px -.75em 0px;">border</p> + + <div style="background-color: #efe; padding: 0px 2em 2em 2em; border: 4px solid #fd9;"> + <p style="text-align: center;">padding</p> + + <div style="background-color: #ded;"> + <p style="text-align: center; padding: 0px; margin: 0px; font-size: 200%; font-weight: bold; color: #898;">element</p> + </div> + </div> + </div> + + <p><em><span class="short_text" id="result_box" lang="ca"><span>L'element</span> <span>té</span> <span>un fons</span> <span>verd.</span></span></em></p> + </td> + <td> + <div style="background-color: #fff; padding: 0px 2em 2em 2em; width: 16em;"> + <p style="text-align: center; margin: 0px;"> </p> + + <p style="text-align: center; margin: 0px 0px -.75em 0px;"> </p> + + <div style="background-color: #efe; padding: 0px 2em 2em 2em; border: 4px solid #fd9;"> + <p style="text-align: center;"> </p> + + <div style="background-color: #efe;"> + <p style="text-align: center; padding: 0px; margin: 0px; font-size: 200%; font-weight: bold; color: #898;">element</p> + </div> + </div> + </div> + + <p><em>Això és el que es veu en el vostre navegador.</em></p> + </td> + </tr> + </tbody> +</table> + +<h3 id="Vores">Vores</h3> + +<p>Podeu utilitzar les vores per decorar elements amb línies o caixes.</p> + +<p>Per especificar la mateixa vora a tot al voltant d'un element, utilitzeu la propietat {{ cssxref("border") }}. Especificar l'ample (en píxels en general per a la seva visualització en una pantalla), l'estil i el color.</p> + +<p>Els estils són:</p> + +<table style="margin-left: 2em;"> + <tbody> + <tr> + <td style="width: 6em;"> + <div style="border: 2px solid #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>solid</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 2px dotted #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>dotted</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 2px dashed #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>dashed</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 4px double #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>double</code></div> + </td> + </tr> + <tr> + <td style="width: 6em;"> + <div style="border: 2px inset #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>inset</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 2px outset #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>outset</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 4px ridge #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>ridge</code></div> + </td> + <td style="width: 6em;"> + <div style="border: 4px groove #4a4; margin: .5em; padding: .5em; width: 5em; text-align: center;"><code>groove</code></div> + </td> + </tr> + </tbody> +</table> + +<p>També podeu establir l'estil a <code>none</code> o <code>hidden</code> per eliminar de forma explícita la vora, o establir el color a transparent per fer la vora invisible sense canviar el disseny.</p> + +<p>Especificar vores a un costat alhora, utilitzeu les propietats: {{ cssxref("border-top") }}, {{ cssxref("border-right") }}, {{cssxref("border-bottom")}}, {{cssxref("border-left")}}. Podeu utilitzar aquests per especificar una vora en un sol costat, o diferentes vores en diferents costats.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla estableix el color de fons i la vora de la part superior dels elements d'encapçalament:</p> + +<pre class="brush:css">h3 { + border-top: 4px solid #7c7; /* mid green */ + background-color: #efe; /* pale green */ + color: #050; /* dark green */ + } +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<table> + <tbody> + <tr> + <td> + <p style="font-size: 133%; font-weight: bold; background-color: #efe; border-top: 4px solid #7c7; color: #050; padding-right: 6em;">Stylish heading</p> + </td> + </tr> + </tbody> +</table> + +<p>Aquesta regla fa que les imatges siguin més fàcils de veure, donant-los una vora gris mig en tot:</p> + +<pre class="brush:css">img {border: 2px solid #ccc;} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<table> + <tbody> + <tr> + <td>Imatge:</td> + <td style="border: 2px solid #ccc;"><img alt="Image:Blue-rule.png" class="internal" src="/@api/deki/files/47/=Blue-rule.png"></td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Marges_i_farciment">Marges i farciment</h3> + +<p>Utilitzeu marges i farciment per ajustar les posicions dels elements i crear l'espai que els envolta.</p> + +<p>Utilitzeu la propietat {{ cssxref("margin") }} o la propietat {{ cssxref("padding") }} per establir els amples dels marges o de farciment, respectivament.</p> + +<p>Si s'especifica una amplada, s'aplica al voltant de tot l'element (a dalt, dreta, a sota i a l'esquerra).</p> + +<p>Si s'especifica dos amples, la primera s'aplica a la part superior i inferior, la segona a la dreta i l'esquerra.</p> + +<p>Podeu definir els quatre amplades en l'ordre: dalt, dreta, a sota, a l'esquerra.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla distingeix els paràgrafs amb la classe <code>remark</code>, donant-los una vora vermella al seu voltant.</p> + +<p>El farciment al seu voltant separa la vora del text una mica.</p> + +<p>Un marge esquerre sagna el paràgraf en relació amb la resta del text:</p> + +<pre class="brush:css">p.remark { + border: 2px solid red; + padding: 4px; + margin-left: 24px; + } +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<table> + <tbody> + <tr> + <td> + <p>Here is a normal paragraph.</p> + + <p style="border: 2px solid red; padding: 4px 6em 4px 4px; margin: 0px 0px 0px 24px;">Here is a remark.</p> + </td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Quan s'utilitzan marges i farcit per ajustar la forma en què els elements es disposen, les seves regles d'estil interactuen amb els valors per defecte del navegador en formes que poden ser complexes.</p> + +<p>Els diferents navegadors posen elements de manera diferent. Els resultats podrien ser similar fins que la vostre fulla d'estil canvia les coses. A vegades això pot fer que les vostres fulles d'estil donin resultats sorprenents.</p> + +<p>Per obtenir el resultat desitjat, és possible que hàgiu de canviar el marcat del document. La pàgina següent d'aquest tutorial teniu més informació sobre això.</p> + +<p>Per a més informació sobre el farciment, marges i vores, vegeu la pàgina de referència <a href="/en-US/docs/Web/CSS/box_model" title="en-US/docs/Web/Guide/CSS/box model"><span class="external">Model de caixa</span></a>.</p> +</div> + +<h2 id="Acció_Afegir_vores">Acció: Afegir vores</h2> + +<p>Editeu l'arxiu CSS, <code>style2.css</code>. Afegiu aquesta regla per dibuixar una línia a través de la pàgina sobre cada capçalera:</p> + +<pre class="brush:css">h3 {border-top: 1px solid gray;} +</pre> + +<p>Si vau prendre el repte de l'última pàgina, modifiqueu la regla que heu creat, en cas contrari afegiu aquesta nova regla, la d'afegir un espai sota cada element de la llista:</p> + +<pre class="brush:css">li { + list-style: lower-roman; + margin-bottom: 8px; + } +</pre> + +<p>Actualitzeu el navegador per veure el resultat:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(A) The oceans</p> + + <ul style=""> + <li style="margin-bottom: 8px;">Arctic</li> + <li style="margin-bottom: 8px;">Atlantic</li> + <li style="margin-bottom: 8px;">Pacific</li> + <li style="margin-bottom: 8px;">Indian</li> + <li style="margin-bottom: 8px;">Southern</li> + </ul> + + <p style="font-weight: bold; font-size: 133%; margin-top: 1em; margin-bottom: .3em; padding: .4em 4em .16em 0; border-top: 1px solid gray;">(B) Numbered paragraphs</p> + + <p><strong>1: </strong>Lorem ipsum</p> + + <p><strong>2: </strong>Dolor sit</p> + + <p><strong>3: </strong>Amet consectetuer</p> + + <p><strong>4: </strong>Magna aliquam</p> + + <p><strong>5: </strong>Autem veleum</p> + </td> + </tr> + </tbody> +</table> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>Afegiu una regla a la fulla d'estils, fent una vora àmpla al voltant dels oceans en un color que recordi al mar, alguna cosa com això:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(A) The oceans</p> + + <div style="border: 12px solid #69b; padding-left: 1em;"> + <ul style=""> + <li style="margin-bottom: 8px;">Arctic</li> + <li style="margin-bottom: 8px;">Atlantic</li> + <li style="margin-bottom: 8px;">Pacific</li> + <li style="margin-bottom: 8px;">Indian</li> + <li style="margin-bottom: 8px;">Southern</li> + </ul> + </div> + + <p style="font-weight: bold; font-size: 133%; margin-top: 1em; margin-bottom: .3em; padding: .4em 4em .16em 0; border-top: 1px solid gray;">(B) Numbered paragraphs</p> + + <p><strong>. . .</strong></p> + </td> + </tr> + </tbody> +</table> + +<p> </p> + +<p>(No hi ha necessitat perquè coincideixi amb l'amplada i el color que es veu aquí exactament.)</p> +</div> + +<p><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Boxes" title="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Boxes">Veure la solució per el repte.</a></p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Layout", "Disseny") }}En definir marges i farcit, heu modificat el disseny del document. A la pàgina següent es canvia el <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Layout">disseny</a> del vostre document d'altres maneres.</p> diff --git a/files/ca/web/guide/css/inici_en_css/cascada_i_herència/index.html b/files/ca/web/guide/css/inici_en_css/cascada_i_herència/index.html new file mode 100644 index 0000000000..5fba4aea87 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/cascada_i_herència/index.html @@ -0,0 +1,150 @@ +--- +title: Cascada i herència +slug: Web/Guide/CSS/Inici_en_CSS/Cascada_i_herència +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Guide + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/How_CSS_works", "Com funciona el CSS")}}Aquesta és la quarta secció del tutorial <span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started" title="en/CSS/Getting Started">CSS Getting Started</a></span> ; descriu com els fulls d'estil interactuenen en cascada, i com els elements hereten l'estil dels seus pares. S'agrega a la vostre fulla d'estils d'exemple, utilitzant l'herència per alterar l'estil de moltes parts del document en un sol pas.</p> + +<h2 class="clearLeft" id="Informació_Cascada_i_herència"><span class="short_text" id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>Cascada i</span> <span>herència</span></span></h2> + +<p>L'estil final per a un element es pot especificar en molts llocs diferents, que poden interactuar d'una manera complexa. Aquesta interacció complexa fa que el CSS sigui de gran abast, però també pot fer que sigui confús i difícil de depurar.</p> + +<p><span id="result_box" lang="ca"><span>Tres</span> <span>fonts</span> <span>principals</span> <span>d'informació</span> <span>d'estil</span> <span>formen una</span> <span>cascada.</span> <span>Aqueste son:</span></span></p> + +<ul> + <li>Estils per defecte del navegador per al llenguatge de marques.</li> + <li>Estils especificats per un usuari que està llegint el document.</li> + <li>Els estils relacionats amb el document pel seu autor. Aquests es poden especificar en tres llocs: + <ul> + <li>En un arxiu extern: aquest tutorial discuteix principalment aquest mètode de definició d'estils.</li> + <li>En una definició al començament del document: utilitzar aquest mètode només per als estils que s'utilitzen només en aquesta pàgina.</li> + <li>En un element específic en el cos del document: aquest és el mètode menys mantenible, però pot ser utilitzat per a les proves.</li> + </ul> + </li> +</ul> + +<p>L'estil de l'usuari modifica l'estil per defecte del navegador. L'estil de l'autor del document modifica l'estil una mica més. En aquest tutorial, vosaltres sou l'autor del document d'exemple, i només es treballa amb fulls d'estil d'autor.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Quan llegiu aquest document en un navegador, part de l'estil que es veu prové dels valors per defecte del navegador per HTML.</p> + +<p>Part de l'estil podria venir de la configuració del navegador a mida o un arxiu de definició d'estil personalitzat. A Firefox, la configuració es pot personalitzar en el quadre de diàleg Preferències, o es pot especificar estils en un arxiu <code>userContent.css </code>arxiu anomenat en el vostre perfil de navegador.</p> + +<p>Part de l'estil prové de les fulles d'estil vinculades al document per part del servidor.</p> +</div> + +<p>En obrir el document d'exemple en el navegador, els elements {{ HTMLElement("strong") }} destacan més que la resta del text. Això ve de l'estil per defecte del navegador per HTML.</p> + +<p>Els elements {{ HTMLElement("strong") }} són de color vermell. Això ve de la pròpia fulla d'estils d'exemple.</p> + +<p>Els elements {{ HTMLElement("strong") }} també hereten gran part de l'estil de l'element {{HTMLElement ("p")}}, perquè són els seus fills. De la mateixa manera, l'element {{ HTMLElement("p") }} hereta gran part de l'estil de l'element {{ HTMLElement("body") }}.</p> + +<p>Per estils en cascada, els fulls d'estil d'autor tenen prioritat, a continuació els fulls d'estil del lector i seguidament els valors per defecte del navegador.</p> + +<p>Per estils heretats, l'estil propi d'un node fill té prioritat sobre l'estil heretat del seu pare.</p> + +<p>Aquestes no són les úniques prioritats que s'apliquen. Una pàgina més endavant en aquest tutorial s'explica més.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>CSS proporciona una manera perquè el lector pugui anul·lar l'estil de l'autor del document, mitjançant l'ús de la paraula clau <code>!important</code>.</p> + +<p>Això vol dir que, com a autor del document, no sempre es pot predir amb exactitud el que els vostres lectors veuran.</p> + +<p>Si vols conèixer tots els detalls de cascada i herència, consulteu <a class="external" href="https://www.w3.org/TR/CSS/#css">Assignació de valors de les propietats, Cascada i herència</a> en l'especificació CSS.</p> +</div> + +<h2 id="Acció_L'ús_de_l'herència"><span class="short_text" id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>L'ús</span> <span>de l'herència</span></span></h2> + +<ol> + <li><span class="short_text" id="result_box" lang="ca"><span class="alt-edited">Edita l'arxiu CSS d'exemple.</span></span></li> + <li>Afegir aquesta línia copiant-la i enganxant-la. Realment no importa si l'afegeixes per damunt o per sota de la línia ja existent. No obstant això, afegir-la en la part superior és el mes lògic, ja que en el document l'element {{ HTMLElement("p") }} és el pare de l'element {{ HTMLElement("strong") }}: + <pre class="brush:css">p {color: blue; text-decoration: underline;} +</pre> + </li> + <li>Actualitzar el navegador per veure l'efecte en el document d'exemple. El subratllat afecta a tot el text en el paràgraf, incloent les lletres inicials. Els elements {{ HTMLElement("strong") }} han hagut d'heretar l'estil subratllat del seu pare, l'element {{ HTMLElement("p") }}.<br> + + <p>Però els elements {{ HTMLElement("strong") }} estan sent vermells. El color vermell correspont el seu propi estil, pel que té prioritat sobre el color blau del seu pare, l'element {{ HTMLElement("p") }}.</p> + </li> +</ol> + +<h2 id="Before" name="Before">Abans</h2> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><p> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets +</p> +</pre> + +<h3 id="Contingut_CSS">Contingut CSS</h3> + +<pre class="brush: css">strong {color:red} +</pre> + +<p>{{ EmbedLiveSample('Before') }}</p> + +<h2 id="After" name="After">Després</h2> + +<h3 id="Contingut_HTML_2">Contingut HTML</h3> + +<pre class="brush: html"><p> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets +</p></pre> + +<h3 id="Contingut_CSS_2">Contingut CSS</h3> + +<pre class="brush:css" dir="rtl">p {color:blue; text-decoration:underline} +strong {color:red}</pre> + +<p>{{ EmbedLiveSample('After') }}</p> + +<p> </p> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> +Modifiqueu el full d'estils perquè només les lletres vermelles estiguin subratllades: + +<table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="color: blue;"><strong style="color: red; text-decoration: underline;">C</strong>ascading <strong style="color: red; text-decoration: underline;">S</strong>tyle <strong style="color: red; text-decoration: underline;">S</strong>heets</td> + </tr> + </tbody> +</table> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>Move the declaration for underlining from the rule for {{ HTMLElement("p") }} to the one for {{ HTMLElement("strong") }}. The resulting file looks like this:</p> + +<pre class="brush: css">p {color: blue; } +strong {color: red; text-decoration: underline;} +</pre> + +<p> </p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<p> </p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors", "Selectors")}}El full d'estils d'exemple especifica els estils per a les etiquetes <p> i <strong>, modificant l'estil dels elements corresponents a tot el document. La següent secció descriu com especificar l'estil de <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors" title="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors">manera més selectiva</a>.</p> diff --git a/files/ca/web/guide/css/inici_en_css/color/index.html b/files/ca/web/guide/css/inici_en_css/color/index.html new file mode 100644 index 0000000000..3dfb2be55c --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/color/index.html @@ -0,0 +1,353 @@ +--- +title: Color +slug: Web/Guide/CSS/Inici_en_CSS/Color +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/Introduction_to_CSS/Values_and_units#Colors +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Text_styles", "Estils de text")}}Aquesta és la 8th secció del tutorial<span class="seoSummary"><a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started"> CSS Getting Started</a> tutorial;</span>explica com especificar el color en CSS. En la vostre fulla d'estil d'exemple, s'introdueix colors de fons.</p> + +<h2 class="clearLeft" id="Informació_Color">Informació: Color</h2> + +<p>En aquest tutorial fins al moment, s'ha utilitzat un nombre limitat de colors amb nom. CSS2 suporta 17 colors amb nom en tots. Alguns dels noms pot ser que no sigui l'esperat:</p> + +<table style="border: 0px; margin-left: 2em; text-align: right;"> + <tbody> + <tr> + <td> </td> + <td>negre (black)</td> + <td style="width: 2em; height: 2em; background-color: black;"> </td> + <td>gris (gray)</td> + <td style="width: 2em; height: 2em; background-color: gray;"> </td> + <td>plata (silver)</td> + <td style="width: 2em; height: 2em; background-color: silver;"> </td> + <td>blanc (white)</td> + <td style="width: 2em; height: 2em; background-color: white; border: 1px dotted gray;"> </td> + </tr> + <tr> + <td>primaris</td> + <td>vermell (red)</td> + <td style="width: 2em; height: 2em; background-color: red;"> </td> + <td>Llima (lime)</td> + <td style="width: 2em; height: 2em; background-color: lime;"> </td> + <td>blau (blue)</td> + <td style="width: 2em; height: 2em; background-color: blue;"> </td> + </tr> + <tr> + <td>secundaris</td> + <td>groc (yellow)</td> + <td style="width: 2em; height: 2em; background-color: yellow;"> </td> + <td>aigua (aqua)</td> + <td style="width: 2em; height: 2em; background-color: aqua;"> </td> + <td>fúcsia (fuchsia)</td> + <td style="width: 2em; height: 2em; background-color: fuchsia;"> </td> + </tr> + <tr> + <td> </td> + <td>marró (maroon)</td> + <td style="width: 2em; height: 2em; background-color: maroon;"> </td> + <td>taronge (orange)</td> + <td style="width: 2em; height: 2em; background-color: orange;"> </td> + <td>oliva (olive)</td> + <td style="width: 2em; height: 2em; background-color: olive;"> </td> + <td>porpra (purple)</td> + <td style="width: 2em; height: 2em; background-color: purple;"> </td> + <td>verd (green)</td> + <td style="width: 2em; height: 2em; background-color: green;"> </td> + <td>blau marí (navy)</td> + <td style="width: 2em; height: 2em; background-color: navy;"> </td> + <td><span class="short_text" id="result_box" lang="ca"><span>verd</span> <span>blavós</span></span> (teal)</td> + <td style="width: 2em; height: 2em; background-color: teal;"> </td> + </tr> + </tbody> +</table> + +<p> </p> + +<div class="tuto_details"> +<div class="tuto_type">Detalls</div> + +<p>El vostre navegador pot suportar molts més colors amb nom, com:</p> + +<table style="background-color: inherit; border: 0px; margin: .5em 0px .5em 2em; text-align: right;"> + <tbody> + <tr> + <td>dodgerblue</td> + <td style="width: 2em; height: 2em; background-color: dodgerblue;"> </td> + <td>peachpuff</td> + <td style="width: 2em; height: 2em; background-color: peachpuff;"> </td> + <td>tan</td> + <td style="width: 2em; height: 2em; background-color: tan;"> </td> + <td>firebrick</td> + <td style="width: 2em; height: 2em; background-color: firebrick;"> </td> + <td>aquamarine</td> + <td style="width: 2em; height: 2em; background-color: aquamarine;"> </td> + </tr> + </tbody> +</table> + +<p>Per a més detalls d'aquesta llista ampliada, consulteu: <a class="external" href="http://www.w3.org/TR/2003/CR-css3-color-20030514/#svg-color">SVG color keywords</a> en CSS 3 mòdul de colors. Aneu amb compte d'utilitzar noms de colors que els lectors dels navegadors no siguin compatibles.</p> +</div> + +<p>Per a una paleta gran, especifiqueu els components vermell, verd i blau del color que desitgeu mitjançant l'ús d'un signe de nombre (hash) i tres dígits hexadecimals en el rang de 0 - 9, a - f. Les lletres a - f representen els valors de 10 - 15:</p> + +<table style="border: 0px; margin-left: 2em;"> + <tbody> + <tr> + <td>negre (black)</td> + <td style="width: 2em; height: 2em; background-color: #000;"> </td> + <td><code>#000</code></td> + </tr> + <tr> + <td>vermell (pure red)</td> + <td style="width: 2em; height: 2em; background-color: #f00;"> </td> + <td><code>#f00</code></td> + </tr> + <tr> + <td>verd (pure green)</td> + <td style="width: 2em; height: 2em; background-color: #0f0;"> </td> + <td><code>#0f0</code></td> + </tr> + <tr> + <td>blau (pure blue)</td> + <td style="width: 2em; height: 2em; background-color: #00f;"> </td> + <td><code>#00f</code></td> + </tr> + <tr> + <td>blanc (white)</td> + <td style="width: 2em; height: 2em; background-color: #fff; border: 1px dotted gray;"> </td> + <td><code>#fff</code></td> + </tr> + </tbody> +</table> + +<p><br> + <span id="result_box" lang="ca"><span>Per a la</span> <span>paleta</span> <span>completa,</span> <span>especificar</span> <span>dos dígits</span> <span>hexadecimals</span> <span>per a cada</span> <span>component</span><span>:</span></span></p> + +<table style="border: 0px; margin-left: 2em;"> + <tbody> + <tr> + <td>negre (black)</td> + <td style="width: 2em; height: 2em; background-color: #000;"> </td> + <td><code>#000000</code></td> + </tr> + <tr> + <td>vermell (pure red)</td> + <td style="width: 2em; height: 2em; background-color: #f00;"> </td> + <td><code>#ff0000</code></td> + </tr> + <tr> + <td>verd (pure green)</td> + <td style="width: 2em; height: 2em; background-color: #0f0;"> </td> + <td><code>#00ff00</code></td> + </tr> + <tr> + <td>blau (pure blue)</td> + <td style="width: 2em; height: 2em; background-color: #00f;"> </td> + <td><code>#0000ff</code></td> + </tr> + <tr> + <td>blanc (white)</td> + <td style="width: 2em; height: 2em; background-color: #fff; border: 1px dotted gray;"> </td> + <td><code>#ffffff</code></td> + </tr> + </tbody> +</table> + +<p>Normalment, es poden obtenir aquests codis hexadecimals de sis dígits d'un programa de gràfics o alguna altra eina.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Amb una mica de pràctica, podeu ajustar els colors de tres dígits manualment per a la majoria de propòsits:</p> + +<table style="background-color: #fffff4; border: 0px; margin-left: 2em;"> + <tbody> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Comenceu</span> <span>amb</span> <span>el vermell</span> <span>pur</span></span> :</td> + <td style="width: 2em; height: 2em; background-color: #f00;"> </td> + <td><code>#f00</code></td> + </tr> + <tr> + <td><span id="result_box" lang="ca"><span>Perquè sigui</span> <span>més</span> <span>clar</span><span>, afegir una mica</span> <span>de verd</span> <span>i blau</span></span> :</td> + <td style="width: 2em; height: 2em; background-color: #f77;"> </td> + <td><code>#f77</code></td> + </tr> + <tr> + <td>Perquè sigui més taronja, afegir una mica de verd addicional:</td> + <td style="width: 2em; height: 2em; background-color: #fa7;"> </td> + <td><code>#fa7</code></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Per enfosquir</span><span>, reduir</span> <span>tots els seus</span> <span>components</span></span>:</td> + <td style="width: 2em; height: 2em; background-color: #c74;"> </td> + <td><code>#c74</code></td> + </tr> + <tr> + <td>Per reduir la saturació, fer els seus components més iguals:</td> + <td style="width: 2em; height: 2em; background-color: #c98;"> </td> + <td><code>#c98</code></td> + </tr> + <tr> + <td>Si feu tots ells exactament iguals, s'obté gris:</td> + <td style="width: 2em; height: 2em; background-color: #ccc;"> </td> + <td><code>#ccc</code></td> + </tr> + </tbody> +</table> + +<p><span class="short_text" id="result_box" lang="ca"><span>Per</span> <span>un to</span> <span>pastís</span> <span>com</span> <span>el blau</span> <span>pàl·lid</span><span>:</span></span></p> + +<table style="background-color: #fffff4; border: 0px none; height: 83px; margin-left: 2em; width: 376px;"> + <tbody> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Comenceu</span> <span>amb</span> <span>blanc</span> <span>pur</span><span>:</span></span></td> + <td style="width: 2em; height: 2em; background-color: #fff; border: 1px dotted gray;"> </td> + <td><code>#fff</code></td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Reduir els</span> <span>altres</span> <span>components</span> <span>una mica</span><span>:</span></span></td> + <td style="width: 2em; height: 2em; background-color: #eef; border: 1px dotted gray;"> </td> + <td><code>#eef</code></td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>També podeu especificar un color utilitzant valors decimals RGB en el rang de 0-255 o percentatges.</p> + +<p>Per exemple, aquest és de color granat (vermell fosc):</p> + +<pre class="brush:css">rgb(128, 0, 0) +</pre> + +<p>Per a més detalls sobre com especificar els colors, consulteu: <a class="external" href="http://www.w3.org/TR/CSS21/syndata.html#color-units">Colors</a> en l'especificació CSS.</p> + +<p>Per obtenir informació sobre l'adequació dels colors del sistema de Menú i ThreeDFace, consulteu: <a class="external" href="http://www.w3.org/TR/CSS21/ui.html#system-colors">Colors del Sistema en CSS2</a> en l'especificació CSS.</p> +</div> + +<h3 id="Propietats_de_color"><span class="short_text" id="result_box" lang="ca"><span>Propietats de</span> <span>color</span></span></h3> + +<p>Ja heu utilitzat la propietat {{ cssxref("color") }} en el text.</p> + +<p>També podeu utilitzar la propietat {{ cssxref("background-color") }} per canviar el fons dels elements.</p> + +<p>Els fons els podeu configurar com <code>transparent</code> per eliminar de forma explícita qualsevol color, deixant al descobert el fons de l'element pare.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Les caixes d'<strong>exemple</strong> en aquest tutorial utilitza aquest fons de color groc pàl·lid:</p> + +<pre class="brush:css">background-color: #fffff4; +</pre> + +<p>Les caixes de <strong>Més detalls</strong> utilitza aquest color gris pàl·lid:</p> + +<pre class="brush:css">background-color: #f4f4f4; +</pre> +</div> + +<p> </p> + +<h2 id="Acció_L'ús_dels_codis_de_color"><span class="short_text" id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>L'ús dels</span> <span>codis de</span> <span>color</span></span></h2> + +<h2 id="Color_page" name="Color_page">C<span class="short_text" id="result_box" lang="ca"><span>olor</span> <span>de la pàgina</span></span></h2> + +<ol> + <li>Editeu l'arxiu CSS.</li> + <li>Feu el canvi que es mostra aquí sota, per donar a les lletres inicials d'un fons blau pàl·lid. (La disposició i comentaris a l'arxiu probablement difereixen de l'arxiu que es mostra aquí. Mantenir la disposició i els comentaris de la manera que preferiu.)</li> + <li> + <h3 id="Contingut_HTML">Contingut HTML</h3> + + <pre class="brush: html"><p id = "first"> <strong>C</strong>ascading <strong class="spinach">S</strong>tyle <strong class="spinach">S</strong>heets</p> +<p> <strong>C</strong>ascading <strong>S</strong>tyle <strong>S</strong>heets</p> +</pre> + + <h3 id="Contingut_CSS">Contingut CSS</h3> + + <pre class="brush: css">/*** CSS Tutorial: Color page ***/ + +/* page font */ +body { + font: 16px "Comic Sans MS", cursive; +} + +/* paragraphs */ +p { + color: blue; +} +#first { + font-style: italic; +} + +/* initial letters */ +strong { + background-color: #ddf; + color: red; + font: 200% serif; +} + +.spinach { + color: green; + background-color: #ddf; +} + +</pre> + </li> + <li>Deseu el fitxer i actualitzeu el navegador per veure el resultat.</li> + <li>El resultat ha de ser com aquest:</li> +</ol> + +<p>{{ EmbedLiveSample('Color_page', '', '', '', 'Web/Guide/CSS/Getting_started/Color') }}</p> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>A l'arxiu CSS, canviar els noms de colors als codis de color de 3 dígits sense afectar el resultat.</p> + +<p>Això no es pot fer exactament, però es pot aconseguir aproximadament. Per fer-ho exactament es necessita codis de 6 dígits, i cal buscar l'especificació CSS o utilitzar una eina gràfica per a que coincideixi amb els colors.</p> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>The following values are reasonable approximations of the named colors:</p> + +<pre class="brush: css">strong { + color: #f00; /* red */ + background-color: #ddf; /* pale blue */ + font: 200% serif; +} + +.carrot { + color: #fa0; /* orange */ +} + +.spinach { + color: #080; /* dark green */ +} + +p { + color: #00f; /* blue */ +} +</pre> + +<p> </p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Content", "Contingut")}}El document d'exemple i la seva fulla d'estil d'exemple separen el contingut de l'estil de forma estricta. La <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Content">següent secció</a> explica com es pot fer excepcions a aquesta estricta separació.</p> diff --git a/files/ca/web/guide/css/inici_en_css/com_funciona_el_css/index.html b/files/ca/web/guide/css/inici_en_css/com_funciona_el_css/index.html new file mode 100644 index 0000000000..4a2732c584 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/com_funciona_el_css/index.html @@ -0,0 +1,129 @@ +--- +title: Com funciona el CSS +slug: Web/Guide/CSS/Inici_en_CSS/Com_funciona_el_CSS +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Guide + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/First_steps/How_CSS_works +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Why_use_CSS", "Per què utilitzar CSS?") }}Aquesta tercera secció del tutorial<span class="seoSummary"> <a href="/en-US/docs/Web/Guide/CSS/Getting_started" title="en-US/docs/Web/Guide/CSS/Getting_started">CSS Getting Started</a> </span>explica com funciona CSS en el navegador i el propòsit del Document Object Model (DOM). També aprendreu com analitzar el document de mostra.</p> + +<h2 class="clearLeft" id="Informació_Com_funciona_el_CSS">Informació: Com funciona el CSS</h2> + +<p>Quan un navegador mostra un document, s'ha de combinar el contingut del document amb la seva informació d'estil. El document es processa en dues etapes:</p> + +<ol> + <li>El navegador converteix el llenguatge de marcat i el CSS en el <a href="/en-US/docs/DOM" title="/en-US/docs/HTML/DOM"><em>DOM</em></a> (Document Object Model). El DOM representa el document a la memòria de l'ordinador. Combina el contingut del document amb el seu estil.</li> + <li>El navegador mostra el contingut de la DOM.</li> +</ol> + +<p>Un llenguatge de marcat utilitza <em>elements</em> per definir l'estructura del document. Es marca un element mitjançant <em>etiquetes</em>, que són cadenes que comencen amb '<' i acaban amb '>'. La majoria dels elements tenen un parell d'etiquetes, una etiqueta d'inici i una etiqueta final. Per l'etiqueta d'inici, col·locar el nom de l'element entre '<' i '>'. Per l'etiqueta final, col·locar un '/' després que el '<' i abans que el nom de l'element.</p> + +<p>Depenent del llenguatge de marques, alguns elements només tenen una etiqueta d'inici, o una sola etiqueta on el '/' ve després que el nom de l'element. Un element també pot ser un contenidor i incloure altres elements entre la seva etiqueta inicial i final. Recordeu sempre de tancar les etiquetes dins del contenidor.</p> + +<p>Un DOM té una estructura en forma d'arbre. Cada element, atribut i extensió de text, en el llenguatge de marcat, es converteix en un <em>node</em> en l'estructura de l'arbre. Els nodes es defineixen per la seva relació amb altres nodes DOM. Alguns elements són els pares dels nodes fills, i els nodes fills tenen germans.</p> + +<p>La comprensió del DOM ajuda a dissenyar, depurar i mantenir la CSS, pel fet que el DOM és on el CSS i el contingut del document es reuneixen.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<div class="tuto_type"> </div> +En el vostre document d'exemple, l'etiqueta <p> i la seva etiqueta de tancament </p> creen un contenidor: + +<pre class="brush:html"><p> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets +</p> +</pre> + +<p><strong>Exemple en directe</strong></p> + +<p>{{ EmbedLiveSample('Information.3A_How_CSS_works', '', '', '', 'Web/Guide/CSS/Getting_started/How_CSS_works') }}</p> + +<p>En el DOM, el node corresponent P és un pare. Els seus fills són els nodes STRONG i els nodes de text. Els nodes STRONG són ells mateixos els pares, amb els nodes de text com els seus fills;</p> + +<pre><span style="color: black;">P</span> +├─<span style="color: black;">STRONG</span> +│ └─"<span style="color: black;">C</span>" +├─"<span style="color: black;">ascading</span>" +├─<span style="color: black;">STRONG</span> +│ └─"<span style="color: black;">S</span>" +├─"<span style="color: black;">tyle</span>" +├─<span style="color: black;">STRONG</span> +│ └─"<span style="color: black;">S</span>" +└─"<span style="color: black;">heets</span>"</pre> +</div> + +<h2 id="Acció_Anàlisi_d'un_DOM">Acció: Anàlisi d'un DOM</h2> + +<h3 id="L'ús_de_DOM_Inspector">L'ús de DOM Inspector</h3> + +<p>Per analitzar un DOM, es necessita un programari especial. Podeu utilitzar el complement <a href="/en/DOM_Inspector" title="en/DOM_Inspector">DOM Inspector</a> de Mozilla (DOMi) per analitzar un DOM. Només haureu de instal·lar el complement (veure més detalls a continuació).</p> + +<ol> + <li>Utilitzeu el navegador Mozilla per obrir el document HTML d'exemple.</li> + <li>Des de la barra de menú del navegador, seleccioneu <strong>Tools > DOM Inspector</strong>, or <strong>Tools > Web Development > DOM Inspector</strong>. + <div class="tuto_details"> + <div class="tuto_type">Més detalls</div> + + <p>Si el navegador Mozilla no té DOMI, podeu <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622/" title="https://addons.mozilla.org/en-US/firefox/addon/6622/">instalar-ho des de la web de complements</a> i reiniciar el navegador. A continuació, tornar a aquest tutorial.</p> + + <p>Si no voleu instal·lar DOMi (o esteu fent servir un navegador que no és Mozilla), poodeu utilitzar Web X-Ray Goggles, tal com es descriu en la següent secció. O bé, podeu ometre aquesta secció i anar directament a la pàgina següent. Saltar-se aquesta secció no interfereix amb la resta del programa d'aprenentatge.</p> + </div> + </li> + <li>En DOMi, s'expandeixi els nodes del document fent clic a les fletxes. + <p><strong>Nota: </strong>Els espais creats en el arxiu HTML pot causar que DOMi mostri alguns nodes de text buits, que podeu ignorar.</p> + + <p>Part del resultat podria tenir aquest aspecte, depenent de quins nodes heu expandit:</p> + + <pre>│ ▼╴<span style="color: black;">P</span> +│ │ │ ▼╴<span style="color: black;">STRONG</span> +│ │ └<span style="color: darkblue;">#text</span> +│ ├╴<span style="color: darkblue;">#text</span> +│ ►╴<span style="color: black;">STRONG</span> +│ │</pre> + + <p>En seleccionar qualsevol dels nodes, podeu utilitzar el panell de la dreta de DOMi per esbrinar més sobre ell. Per exemple, quan es selecciona un node de text, DOMi mostra el text en el panell de la dreta.</p> + + <p>Quan se selecciona un node element, DOMi analitza i ofereix una enorme quantitat d'informació en el seu panell de la dreta. La informació d'estil és només part de la informació que proporciona.</p> + </li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>En DOMi, feu clic en un node <code>STRONG</code>.</p> + +<p>Utilitzeu el panell de la dreta de DOMi per esbrinar on el color del node és vermell, i on la seva aparença es fa més destacable que el text normal.</p> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>In the menu above the right-hand pane, choose <strong>CSS Rules</strong>. You see two items listed, one that references an internal resource and one that references your stylesheet file. The internal resource defines the <strong>font-weight</strong> property as <code>bolder</code>; your stylesheet defines the <strong>color</strong> property as <code>red</code>.</p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h3 id="Utilitzar_Web_X-Ray_Goggles">Utilitzar Web X-Ray Goggles</h3> + +<p><a class="link-https" href="https://goggles.webmaker.org/" title="https://secure.toolness.com/webxray/">Web X-Ray Goggles </a>mostra menys informació que DOM Inspector, però és més fàcil d'instal·lar i utilitzar.</p> + +<ol> + <li>Anar a la pàgina principal de <a class="link-https" href="https://goggles.webmaker.org/" title="https://secure.toolness.com/webxray/">Web X-Ray Goggles</a>.</li> + <li>Arrossegar el enllaç de marcador a la pàgina de la barra d'eines del navegador.</li> + <li>Obriu el document HTML d'exemple.</li> + <li>Activar Web X-Ray Goggles fent clic al marcador a la barra d'eines.</li> + <li>Moure el punter del ratolí per sobre del document, per veure els elements del document.</li> +</ol> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Cascading_and_inheritance", "Cascada & herència") }}Si heu pres el repte, veureu que la informació d'estil de més d'un lloc interacciona per crear l'estil final per a un element. La <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Cascading_and_inheritance" title="/en-US/docs/Web/Guide/CSS/Getting_Started/Cascading_and_inheritance">pàgina següent</a> explica més sobre aquestes interaccions.</p> diff --git a/files/ca/web/guide/css/inici_en_css/css_llegible/index.html b/files/ca/web/guide/css/inici_en_css/css_llegible/index.html new file mode 100644 index 0000000000..d04a30ab4b --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/css_llegible/index.html @@ -0,0 +1,173 @@ +--- +title: CSS llegible +slug: Web/Guide/CSS/Inici_en_CSS/CSS_llegible +tags: + - CSS + - 'CSS:Getting_Started' + - Guide + - Intermediate + - NeedsBeginnerUpdate + - NeedsLiveSample + - Web +translation_of: Learn/CSS/Introduction_to_CSS/Syntax#Beyond_syntax_make_CSS_readable +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors", "Selectors")}}Aquesta és la 6th secció del tutorial <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started">CSS Getting Started</a>; s'analitza l'estil i la gramàtica del propi llenguatge CSS. Es canvia la forma en què es veu el vostre arxiu CSS d'exemple, perquè sigui més llegible.</p> + +<h2 class="clearLeft" id="Informació_CSS_Llegible"><span class="short_text" id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>CSS</span> <span>Llegible</span></span></h2> + +<p>Podeu afegir espais en blanc i comentaris en les fulles d'estil perquè siguin més llegibles. També es poden agrupar selectors, quan les mateixes regles d'estil s'apliquen als elements seleccionats de diferents maneres.</p> + +<h3 id="Espai_en_blanc">Espai en blanc</h3> + +<p>L'espai en blanc vol dir espais reals, tabuladors i noves línies. Podeu afegir espais en blanc per fer les fulles d'estil més llegible.</p> + +<p>En el context del disseny de la pàgina i composició, l'<strong>espai en blanc</strong> és la part de la pàgina que es deixa sense marcar: marges, separacions, i l'espai entre columnes i línies de text.</p> + +<p>El arxiu CSS d'exemple actualment té una regla per línia, i gairebé el mínim d'espai en blanc. En un full d'estil complex aquesta disposició seria difícil de llegir, de manera que difilcutaria el seu manteniment.</p> + +<p>El disseny escullit sol ser una preferència personal, però si els fulls d'estil són part de projectes compartits, aquests projectes podrian tenir les seves pròpies convencions.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemples</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>Hi ha qui</span></span> els agrada el disseny compacte que hem estat utilitzant, i només divideixen una línia quan es fa molt llarga:</p> + +<pre class="brush: css">.carrot {color: orange; text-decoration: underline; font-style: italic;} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Hi ha qui prefereix</span> <span>una propietat</span><span>-</span><span>valor per</span> <span>línia</span><span>:</span></span></p> + +<pre class="brush: css">.carrot +{ +color: orange; +text-decoration: underline; +font-style: italic; +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Hi ha qui</span></span> utilitza la sagnia de dos espais, quatre espais, o una tabulació són comuns:</p> + +<pre class="brush: css">.carrot { + color: orange; + text-decoration: underline; + font-style: italic; +} +</pre> + +<p>Hi ha qui els agrada que tot estigui alienat verticalment (però un disseny com aquest és difícil de mantenir):</p> + +<pre class="brush: css">.carrot + { + color : orange; + text-decoration : underline; + font-style : italic; + } +</pre> + +<p>Hi ha qui fa servir espais en blanc mixtes per millorar la lectura.</p> + +<pre class="brush: css">.vegetable { color: green; min-height: 5px; min-width: 5px } +.vegetable.carrot { color: orange; height: 90px; width: 10px } +.vegetable.spinach { color: darkgreen; height: 30px; width: 30px } +</pre> +</div> + +<p>Hi ha qui utilitza tabulacions per al disseny. Hi ha qui només utilitza espais.</p> + +<h3 id="Comentaris">Comentaris</h3> + +<p>Els comentaris en CSS comencen amb <code>/*</code> i acaban amb <code>*/</code>.</p> + +<p>Podeu utilitzar els comentaris per fer comentaris reals en el full d'estil, i també per <em>comentar</em> parts d'ell temporalment per a propòsits de prova.</p> + +<p>Per comentar part d'un full d'estil, col·locar aquesta part en un comentari perquè el navegador ho ignori. Aneu amb compte on s'inicia i acaba el comentari. La resta del full d'estil ha de tenir una sintaxi correcta.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<pre class="brush: css">/* style for initial letter C in first paragraph */ +.carrot { + color: orange; + text-decoration: underline; + font-style: italic; + } +</pre> +</div> + +<h3 id="Selectors_agrupats"><span class="short_text" id="result_box" lang="ca"><span>Selectors</span> <span>agrupats</span></span></h3> + +<p>Quan molts elements tenen el mateix estil, podeu especificar un grup de selectors, separant-los per comes. La declaració és vàlida per a tots els elements seleccionats.</p> + +<p>En una altra part del full d'estils es poden especificar els mateixos selectors de nou de forma individual, per aplicar les regles d'estil individuals a ells.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla fa que els elements {{ HTMLElement("h1") }}, {{ HTMLElement("h2") }} i {{ HTMLElement("h3") }} tinguin el mateix color.</p> + +<p>És convenient especificar el color en un sol lloc, en el cas en què hagi de ser canviat.</p> + +<pre class="brush: css">/* color for headings */ +h1, h2, h3 {color: navy;} +</pre> +</div> + +<h2 id="Acció_Afegir_comentaris_i_millorar_el_disseny">Acció: Afegir comentaris i millorar el disseny</h2> + +<ol> + <li>Editeu l'arxiu CSS, i assegurar-se que té aquestes regles (en qualsevol ordre): + <pre class="brush: css">strong {color: red;} +.carrot {color: orange;} +.spinach {color: green;} +#first {font-style: italic;} +p {color: blue;} +</pre> + </li> + <li>Feu que sigui més llegible reordenant-ho d'una manera que ho trobeu lògic, i mitjançant l'afegit d'espais en blanc i comentaris de la millor manera que us sembli.</li> + <li>Deseu el fitxer i refresqueu la pantalla del navegador, per assegurar-se que els canvis no afectin el funcionament de la fulla d'estil: + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font-style: italic; color: blue;"><strong style="color: orange;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td style="color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> + </table> + </li> +</ol> + +<div class="tuto_details"> +<div class="tuto_type">Repte</div> + +<p>Comenteu una part de la fulla d'estils, sense canviar res més, perquè la primera lletra del document sigui vermella:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font-style: italic; color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td style="color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> +</table> + +<p>(Hi ha més d'una manera de fer això.)</p> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> +One way to do this is to put comment delimiters around the rule for <code>.carrot</code>: + +<pre class="brush: css">/*.carrot { + color: orange; +}*/</pre> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Text_styles", "Estil de text") }}En el estil d'exemple s'ha utilitzat el text en cursiva i subratllat. La pàgina següent descriu més formes d'<a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Text_styles" title="/en-US/docs/Web/Guide/CSS/Getting_Started/Text_styles">especificar l'aspecte del text</a> en el document.</p> diff --git a/files/ca/web/guide/css/inici_en_css/dades_xml/index.html b/files/ca/web/guide/css/inici_en_css/dades_xml/index.html new file mode 100644 index 0000000000..8885cbb036 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/dades_xml/index.html @@ -0,0 +1,241 @@ +--- +title: Dades XML +slug: Web/Guide/CSS/Inici_en_CSS/Dades_XML +tags: + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsUpdate + - Web +translation_of: Archive/Beginner_tutorials/XML_data +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p><span id="result_box" lang="ca"><span>Aquesta</span> <span>pàgina</span> <span>conté</span> <span>un exemple</span> <span>de com</span> <span>es</span> <span>pot</span> <span>utilitzar CSS</span> <span>amb</span> <span>dades</span> <span>XML.</span></span></p> + +<p>Es crea un document XML d'exemple, i una fulla d'estil que s'utilitzarà per mostrar en el vostre navegador.</p> + +<p>Aquesta és la 3rd secció de la Part II del <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started">tutorial CSS</a>.<br> + Secció anterior : <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/SVG_and_CSS" title="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/SVG_and_CSS">SVG</a><br> + Secció següent : <a href="/en/CSS/Getting_Started/XBL_bindings" title="https://developer.mozilla.org/en/CSS/Getting_Started/XBL_bindings">XBL binding</a></p> + +<h3 id="Information:_XML_data" name="Information:_XML_data">Informació: Dades XML</h3> + +<p><em><a href="/en/XML" title="en/XML">XML</a></em> (eXtensible Markup Language) és un llenguatge de propòsit general per a qualsevol tipus de dades estructurades.</p> + +<p>Per defecte, el navegador Mozilla mostra XML en un format molt similar a les dades originals d'un arxiu XML. Es veuen les etiquetes reals que defineixen l'estructura de les dades.</p> + +<p>En vincular una fulla d'estil CSS amb el document XML, pot definir altres formes de mostrar la mateixa. Per a això, la fulla d'estils utilitza regles que assignen les etiquetes en el document XML als tipus de visualització que utilitza HTML.</p> + +<table style="background-color: #fffff4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em;"> + <caption>Exemple</caption> + <tbody> + <tr> + <td>Les dades d'un document XML utilitza etiquetes <code><INFO></code>. Voleu que els elements <code>INFO</code> del document es mostrin com paràgrafs HTML. + <p>En la fulla d'estil del document, s'especifica com els elements <code>INFO</code> es mostraran:</p> + + <div style="width: 30em;"> + <pre class="eval"> +INFO { + display: block; + margin: 1em 0; + } +</pre> + </div> + </td> + </tr> + </tbody> +</table> + +<p>Els valors més comuns per a la propietat <code>display</code> són:</p> + +<table style="margin-left: 2em;"> + <tbody> + <tr> + <td style="padding-right: 2em;"><code>block</code></td> + <td>Es mostra com HTML <code>DIV</code> (per a les capçaleres, paràgrafs)</td> + </tr> + <tr> + <td><code>inline</code></td> + <td>Es mostra com HTML <code>SPAN</code> (per major èmfasi en el text)</td> + </tr> + </tbody> +</table> + +<p>Afegiu les vostres pròpies regles d'estil que especifiquin el tipus de lletra, espaiat i altres detalls de la mateixa manera que per a HTML.</p> + +<table style="background-color: #f4f4f4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em;"> + <caption>Més detalls</caption> + <tbody> + <tr> + <td>Altres valors de <code>display</code> mostren l'element com un element de llista, o com un component d'una taula. + <p>Per veure la llista completa de tipus de pantalla, consulteu <a class="external" href="http://www.w3.org/TR/CSS21/visuren.html#propdef-display">La propietat display</a> en l'Especificació CSS.</p> + + <p>Utilitzant CSS sol, l'estructura de la pantalla ha de ser la mateixa que l'estructura del document. Altres tecnologies poden modificar l'estructura de la pantalla - per exemple, XBL pot afegir contingut, JavaScript i pot modificar el DOM.</p> + + <p>Per obtenir més informació sobre XML en Mozilla, vegeu la pàgina <a href="/en/XML" title="en/XML">XML</a> en aquesta wiki.</p> + </td> + </tr> + </tbody> +</table> + +<h3 id="Action:_An_XML_demonstration" name="Action:_An_XML_demonstration"><span id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Una demostració</span> <span>XML</span></span></h3> + +<p><span id="result_box" lang="ca"><span>Fer un</span> <span>nou arxiu</span> <span>XML</span></span> , <code>doc9.xml</code>. <span id="result_box" lang="ca"> <span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí</span><span>,</span> <span>assegurant-se que</span> us <span>desplaceu</span> <span>per obtenir</span> <span>tota ella</span><span>:</span></span></p> + +<div style="width: 48em; height: 12em; overflow: auto;"> +<pre><?xml version="1.0"?> +<!-- XML demonstration --> + +<?xml-stylesheet type="text/css" href="style9.css"?> + +<!DOCTYPE planet> +<planet> + +<ocean> +<name>Arctic</name> +<area>13,000</area> +<depth>1,200</depth> +</ocean> + +<ocean> +<name>Atlantic</name> +<area>87,000</area> +<depth>3,900</depth> +</ocean> + +<ocean> +<name>Pacific</name> +<area>180,000</area> +<depth>4,000</depth> +</ocean> + +<ocean> +<name>Indian</name> +<area>75,000</area> +<depth>3,900</depth> +</ocean> + +<ocean> +<name>Southern</name> +<area>20,000</area> +<depth>4,500</depth> +</ocean> + +</planet> +</pre> +</div> + +<p>Feu un nou arxiu CSS, <code>style9.css</code>. <span id="result_box" lang="ca"><span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí</span><span>,</span> <span>assegurant-se que</span> us <span>desplaceu</span> <span>per obtenir</span> <span>tota ella</span><span>:</span></span></p> + +<div style="width: 48em; height: 12em; overflow: auto;"> +<pre>/*** XML demonstration ***/ + +planet:before { + display: block; + width: 8em; + font-weight: bold; + font-size: 200%; + content: "Oceans"; + margin: -.75em 0px .25em -.25em; + padding: .1em .25em; + background-color: #cdf; + } + +planet { + display: block; + margin: 2em 1em; + border: 4px solid #cdf; + padding: 0px 1em; + background-color: white; + } + +ocean { + display: block; + margin-bottom: 1em; + } + +name { + display: block; + font-weight: bold; + font-size: 150%; + } + +area { + display: block; + } + +area:before { + content: "Area: "; + } + +area:after { + content: " million km\B2"; + } + +depth { + display: block; + } + +depth:before { + content: "Mean depth: "; + } + +depth:after { + content: " m"; + } +</pre> +</div> + +<p>Obriu el document en el navegador:</p> + +<table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <div style="border: 2px solid #cdf; border-bottom: none; padding: .5em 8em 1em .5em;"> + <p style="font-size: 150%; font-weight: bold; margin: -1em 0px 0px 0px; padding: .1em .25em; background-color: #cdf; width: 8em;">Oceans</p> + + <p style="font-size: 75%; margin: .25em 0px 0px 0px; line-height: 110%;"><strong>Arctic</strong><br> + Area: 13,000 million km²<br> + Mean depth: 1,200 m</p> + + <p style="font-size: 75%; margin: .5em 0px 0px 0px; line-height: 110%;"><strong>Atlantic</strong><br> + Area: 87,000 million km²<br> + Mean depth: 3,900 m</p> + + <p style="font-size: 75%; margin: .5em 0px 0px 0px; line-height: 110%;"><strong>. . .</strong></p> + </div> + </td> + </tr> + </tbody> +</table> + +<p><br> + Notes sobre aquesta demostració:</p> + +<ul> + <li>El superíndex 2 (en "milions km²") un caràcter Unicode, codificat com \ B2 a l'arxiu CSS.</li> + <li>La capçalera, "Oceans", té un marge superior negatiu, movent-lo cap amunt de manera que es mostri en la part superior de la vora.</li> +</ul> + +<p> </p> + +<table style="background-color: #fffff4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em;"> + <caption>Repte</caption> + <tbody> + <tr> + <td>Canvieu la fulla d'estils perquè mostri el document com una taula. + <p>(Vegeu el capítol <a class="external" href="http://www.w3.org/TR/CSS21/tables.html">Taules</a> en l'especificació CSS per exemples que es poden adaptar.)</p> + </td> + </tr> + </tbody> +</table> + +<h4 id="What_next.3F" name="What_next.3F">I ara què?</h4> + +<p>Si teniu dificultats per entendre aquesta pàgina o si teniu altres comentaris al respecte, si us plau, contribuïu a la vostre pàgina de <a href="https://developer.mozilla.org/Talk:en/CSS/Getting_Started/JavaScript">discussió</a>.</p> + +<p>Aquesta és l'última pàgina del tutorial. Per obtenir més informació sobre CSS en Mozilla, consulteu la pàgina principal de <a href="/en/CSS" title="en/CSS">CSS</a> en aquesta wiki.</p> diff --git a/files/ca/web/guide/css/inici_en_css/disseny/index.html b/files/ca/web/guide/css/inici_en_css/disseny/index.html new file mode 100644 index 0000000000..3ebf8912d6 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/disseny/index.html @@ -0,0 +1,382 @@ +--- +title: Disseny +slug: Web/Guide/CSS/Inici_en_CSS/Disseny +tags: + - CSS + - CSS Float + - CSS Text Align + - CSS Unit + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsBeginnerUpdate + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Learn/CSS/CSS_layout +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Boxes", "Caixes")}}Aquesta és la 12th secció del tutorial <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a> descriu algunes maneres d'ajustar el disseny del document. Es canvia el disseny del vostre document d'exemple.</p> + +<h2 class="clearLeft" id="Informació_Disseny">Informació: Disseny</h2> + +<p>Feu servir CSS per especificar diversos efectes visuals que canvïin el disseny del document. Algunes de les tècniques especifiques de disseny son avançades, i van més enllà de l'àmbit d'aquest tutorial bàsic.</p> + +<p>En dissenyar una presentació que tingui un aspecte similar en diferents navegadors, la vostre fulla d'estil interactua amb la fulla d'estil i el motor de disseny predeterminats del navegador de formes que poden ser complexes. Aquest és també un tema avançat, que va més enllà de l'àmbit d'aquest tutorial bàsic.</p> + +<p>Aquesta pàgina descriu algunes tècniques simples que podeu intentar.</p> + +<h3 id="Estructura_del_document"><span id="result_box" lang="ca"><span>Estructura del</span> <span>document</span></span></h3> + +<p>Si voleu controlar el disseny del document, llavors és possible que hagiu de canviar la seva estructura.</p> + +<p>El llenguatge de marcat del document podria tenir etiquetes d'ús general per a la creació de l'estructura. Per exemple, en HTML podeu utilitzar l'element {{ HTMLElement("div") }} per crear l'estructura.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>En el vostre document d'exemple, els paràgrafs numerats (Numbered paragraphs), en el marc del segon epígraf, no tenen un contenidor propi.</p> + +<p>La vostre fulla d'estil no pot dibuixar una vora al voltant d'aquests paràgrafs, perquè no hi ha cap element per especificar en el selector.</p> + +<p>Per solucionar aquest problema estructural, es pot afegir una etiqueta {{ HTMLElement("div") }} al voltant dels paràgrafs. Aquesta etiqueta és única, pel que pot ser identificada per un atribut <code>id</code>:</p> + +<pre class="brush:html;highlight:[2,8]"><h3>Numbered paragraphs</h3> +<div id="numbered"> + <p>Lorem ipsum</p> + <p>Dolor sit</p> + <p>Amet consectetuer</p> + <p>Magna aliquam</p> + <p>Autem veleum</p> +</div> +</pre> + +<p>Ara a la vostre fulla d'estil podeu utilitzar una regla per especificar les vores al voltant de les dues llistes:</p> + +<pre class="brush:css">ul, #numbered { + border: 1em solid #69b; + padding-right:1em; +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em; width: 30em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(A) The oceans</p> + + <div style="border: 12px solid #69b; margin-bottom: 16px; padding: 1em;"> + <ul style=""> + <li>Arctic</li> + <li>Atlantic</li> + <li>Pacific</li> + <li>Indian</li> + <li>Southern</li> + </ul> + </div> + + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(B) Numbered paragraphs</p> + + <div style="border: 12px solid #69b; margin-bottom: 8px; padding: 0px 12em 0px .5em;"> + <p><strong>1: </strong>Lorem ipsum</p> + + <p><strong>2: </strong>Dolor sit</p> + + <p><strong>3: </strong>Amet consectetuer</p> + + <p><strong>4: </strong>Magna aliquam</p> + + <p><strong>5: </strong>Autem veleum</p> + </div> + </td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Unitats_de_mida"><span class="short_text" id="result_box" lang="ca"><span>Unitats</span> <span>de mida</span></span></h3> + +<p>Fins ara, en aquest tutorial, s'han especificat les mides en píxels <code>(px)</code>. Aquestes són apropiades, en determinats casos, en un dispositiu de visualització com una pantalla d'ordinador. Però quan l'usuari canvia la mida de la font, el disseny pot semblar inadequat.</p> + +<p>Per a molts propòsits, és millor especificar les mides com un percentatge o en ems <code>(em)</code>. Un em és nominalment la mida de la font actual (l'amplada d'una lletra m). Quan l'usuari canvia la mida de la lletra, el seu disseny s'ajusta automàticament.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>La vora de l'esquerra d'aquest text té la mida definida en píxels.</p> + +<p>La vora de la dreta té la mida definida en ems.</p> + +<p>En el vostre navegador, al canviar la mida de la font veureu com la vora de la dreta s'ajusta, però la vora de l'esquerra no ho fa:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <div style="">RESIZE ME PLEASE</div> + </td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p><span id="result_box" lang="ca"><span>Per a altres</span> <span>dispositius</span><span>, altres unitats</span> <span>de longitud són</span> <span>les adequades.</span></span></p> + +<p><span id="result_box" lang="ca"><span>Hi ha més</span> <span>informació</span> <span>sobre</span> <span>això en una</span> <span>pàgina</span> <span>posterior d'aquest</span> <span>tutorial.</span></span></p> + +<p><span id="result_box" lang="ca"><span>Per als</span> <span>detalls</span> <span>complets dels</span> <span>valors</span> <span>i</span> <span>les</span> <span>unitats que</span> <span>es</span> <span>poden</span> <span>utilitzar</span><span>, consulteu</span></span> <a class="external" href="http://www.w3.org/TR/CSS21/syndata.html#values">Valors</a> <span id="result_box" lang="ca"><span>en</span> <span>l'especificació</span> <span>CSS.</span></span></p> +</div> + +<h3 id="Disposició_del_text">Disposició del text</h3> + +<p>Dues propietats defineixen com el contingut d'un element és alineat. Els podeu utilitzar per realitzar ajustos sencills en el disseny:</p> + +<dl> + <dt>{{ cssxref("text-align") }}</dt> + <dd>Alinea el contingut. Utilitzeu un d'aquests valors: <code>left</code>, <code>right</code>, <code>center</code>, <code>justify</code></dd> + <dt>{{ cssxref("text-indent") }}</dt> + <dd>Sagna el contingut en una quantitat que especifiqueu.</dd> +</dl> + +<p>Aquestes propietats s'apliquen a qualsevol text contingut en l'element, no només al text real. Recordeu que són heretats pels fills de l'element, així que pot ser que hagiu de desactivar-los explícitament en els fills per evitar resultats sorprenents.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Per centrar les capçaleres:</p> + +<pre class="brush:css">h3 { + border-top: 1px solid gray; + text-align: center; +} +</pre> + +<p>Resultant:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em; width: 30em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray; text-align: center;">(A) The oceans</p> + </td> + </tr> + </tbody> +</table> + +<p>En un document HTML, el contingut que es veu per sota d'una capçalera no està estructuralment contingut per la capçalera. Així que quan s'alinea una capçalera com aquesta, les etiquetes sota de l'encapçalament no hereten l'estil.</p> +</div> + +<h3 id="Flotants">Flotants</h3> + +<p>La propietat {{ cssxref("float") }} força un element cap a l'esquerra o cap a la dreta. Aquesta és una forma senzilla per controlar la seva posició i mida.</p> + +<p>La resta del contingut del document flueix normalment al voltant de l'element flotant. Això es pot controlar mitjançant l'ús de la propietat {{ cssxref("clear") }} en altres elements per fer que es quedin allunyats dels flotants.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>En el vostre document d'exemple, les llistes s'estenen a través de la finestra. Això es pot evitar fent que flotin cap a l'esquerra</p> + +<p>Per mantenir les capçaleress en el seu lloc, també heu d'especificar que es mantinguin allunyades dels flotants de la seva esquerra:</p> + +<pre class="brush:css">ul, #numbered {float: left;} +h3 {clear: left;} +</pre> +</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em; width: 30em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(A) The oceans</p> + + <div style="float: left; border: 12px solid #69b; margin-bottom: 16px; padding-left: 1em;"> + <ul style=""> + <li>Arctic</li> + <li>Atlantic</li> + <li>Pacific</li> + <li>Indian</li> + <li>Southern</li> + </ul> + </div> + + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(B) Numbered paragraphs</p> + + <div style="float: left; border: 12px solid #69b; margin-bottom: 8px; padding-left: .5em;"> + <p><strong>1: </strong>Lorem ipsum</p> + + <p><strong>2: </strong>Dolor sit</p> + + <p><strong>3: </strong>Amet consectetuer</p> + + <p><strong>4: </strong>Magna aliquam</p> + + <p><strong>5: </strong>Autem veleum</p> + </div> + </td> + </tr> + </tbody> +</table> + +<p>(Una mica de farciment (padding) es necessita a la dreta de les caixes, on la vora (border) està massa a prop del text.)</p> + +<h3 id="Posicionament">P<span id="result_box" lang="ca"><span>osicionament</span></span></h3> + +<p>Podeu definir la posició d'un element de quatre maneres, especificant la propietat {{ cssxref ("position") }} i un dels següents valors.</p> + +<p>Aquestes són les propietats avançades. És possible utilitzar-les en formes simples, és per això que s'esmenten en aquest tutorial bàsic. Però el seu ús per a dissenys complexos pot ser difícil.</p> + +<dl> + <dt><code>relative</code></dt> + <dd>La posició de l'element es desplaça respecte a la seva posició normal. Utilitzeu aquesta opció per a desplaçar un element en una quantitat especificada. De vegades es pot utilitzar el marge de l'element per aconseguir el mateix efecte.</dd> + <dt><code>fixed</code></dt> + <dd>La posició de l'element és fix. Definir la posició de l'element respecte a la finestra del document. Fins i tot si la resta del document es desplaça, l'element roman fix.</dd> + <dt><code>absolute</code></dt> + <dd>La posició de l'element es fixa en relació amb un element pare. Solsament un pare que estugui posicionat amb <code>relative</code>, <code>fixed</code> o <code>absolute</code>. Es pot fer que qualsevol element pare sigui adequat especificant <code>position:relative</code>; però sense especificar cap canvi.</dd> + <dt><code>static</code></dt> + <dd> + <p>El valor per defecte. Utilitzeu aquest valor si cal desactivar el posicionament de manera explícita.</p> + </dd> +</dl> + +<p>Juntament amb aquests valors de la propietat <code>position</code> (a excepció de <code>static</code>), especifiqueu una o més de les propietats: <code>top</code>, <code>right</code>, <code>bottom</code>, <code>left</code>, <code>width</code>, <code>height</code> per identificar on voleu que aparegui l'element, i potser també la seva grandària.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Per situar dos elements en un sobre l'altre, crear un contenidor pare en el vostre document amb els dos elements en el seu interior:</p> + +<pre class="brush:html"><div id="parent-div"> + <p id="forward">/</p> + <p id="back">\</p> +</div> +</pre> + +<p>En la vostre fulla d'estil, fer la posició dels pares <code>relative</code>. No hi ha necessitat d'especificar qualsevol canvi real. Fer la posició dels fills <code>absolute</code>:</p> + +<pre class="brush:css">#parent-div { + position: relative; + font: bold 200% sans-serif; +} + +#forward, #back { + position: absolute; + margin:0px; /* no margin around the elements */ + top: 0px; /* distance from top */ + left: 0px; /* distance from left */ +} + +#forward { + color: blue; +} + +#back { + color: red; +} +</pre> + +<p>El resultat es veu així, amb la barra invertida a la part superior de la barra inclinada:</p> + +<div style="position: relative; left: .33em; font: bold 300% sans-serif;"> +<p style="position: absolute; margin: 0px; top: 0px; left: 0px; color: blue;">/</p> + +<p style="position: absolute; margin: 0px; top: 0px; left: 0px; color: red;">\</p> +</div> + +<table style="background-color: white; border: 2px outset #3366bb; height: 5em; padding: 1em; width: 30em;"> + <tbody> + <tr> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>La història completa de posicionament ocupa dos capítols complexes en l'especificació CSS <a class="external" href="http://www.w3.org/TR/CSS21/visuren.html">Model de format Visual </a>i <a class="external" href="http://www.w3.org/TR/CSS21/visudet.html">Detalls del model de format visual</a>.</p> + +<p>Si esteu dissenyant fulles d'estil per a treballar en molts navegadors, llavors també cal tenir en compte les diferències en la manera com els navegadors interpreten la norma, i potser els errors en determinades versions de navegadors particulars.</p> +</div> + +<h2 id="Acció_Especificació_del_disseny"><span class="short_text" id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Especificació</span> <span>del disseny</span></span></h2> + +<ol> + <li>Canvieu el document d'exemple, <code>doc2.html</code>, i la fulla d'estil, <code>style2.css</code>, utilitzant els exemples de més amunt en la secció <a href="#Document_structure" title="#Document structure"><strong>Estructura del document</strong></a> i <a href="#Floats" title="#Floats"><strong>Flotants</strong></a>.</li> + <li>En l'exemple <a href="#Floats" title="#Floats"><strong>Flotants</strong></a> afegir farciment per separar el text de la vora dret en 0,5 em.</li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Reptes</div> + +<p>Modifiqueu el document d'exemple, <code>doc2.html</code>, afegint aquesta etiqueta prop del final, just abans de <code></body></code>.</p> + +<pre class="brush:html"><img id="fixed-pin" src="Yellow-pin.png" alt="Yellow map pin"> +</pre> + +<p>Si no heu descarregat l'arxiu d'imatge al principi d'aquest tutorial, descarregar-ho ara, i ho col·loqueu en el mateix directori que els altres arxius d'exemple:</p> + +<table style="border: 2px solid #cccccc;"> + <tbody> + <tr> + <td><img alt="Image:Yellow-pin.png" class="internal" src="https://mdn.mozillademos.org/files/924/Yellow-pin.png"></td> + </tr> + </tbody> +</table> + +<p>Predir on la imatge apareixerà en el document. A continuació, actualitzeu el navegador per veure si és correcte.</p> + +<p>Afegiu una regla a la fulla d'estil que col·loqui la imatge a la part superior dreta del document.</p> + +<p>Actualitzeu el navegador i fer la finestra petita. Comproveu que la imatge es queda a la part superior dreta, fins i tot quan es desplaça el document</p> + +<div style="position: relative; width: 29.5em; height: 18em;"> +<div style="overflow: auto; border: 2px outset #36b; padding: 1em; width: 29em; height: 16em; background-color: white;"> +<p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(A) The oceans</p> + +<div style="float: left; border: 12px solid #69b; margin-bottom: 16px; padding: 0px .5em 0px 1em;"> +<ul style=""> + <li>Arctic</li> + <li>Atlantic</li> + <li>Pacific</li> + <li>Indian</li> + <li>Southern</li> +</ul> +</div> + +<p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em; border-top: 1px solid gray;">(B) Numbered paragraphs</p> + +<div style="float: left; border: 12px solid #69b; padding: 0 .5em 0 .5em;"> +<p><strong>1: </strong>Lorem ipsum</p> + +<p><strong>2: </strong>Dolor sit</p> + +<p><strong>3: </strong>Amet consectetuer</p> + +<p><strong>4: </strong>Magna aliquam</p> + +<p><strong>5: </strong>Autem veleum</p> +</div> + +<p style=""> </p> + +<div style="position: absolute; top: 2px; right: 0px;"><img alt="Yellow map pin" class="internal" src="https://mdn.mozillademos.org/files/924/Yellow-pin.png"></div> +</div> +</div> +</div> + +<p><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Layout" title="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Layout"> Veure la solució per el repte.</a></p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Tables", "Taules") }}S'han cobert gairebé tots els temes d'aquest tutorial bàsic de CSS. La pàgina següent descriu selectors més avançats per a regles CSS, i algunes formes específiques en el disseny de taules.</p> diff --git a/files/ca/web/guide/css/inici_en_css/estils_de_text/index.html b/files/ca/web/guide/css/inici_en_css/estils_de_text/index.html new file mode 100644 index 0000000000..1ed66628e4 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/estils_de_text/index.html @@ -0,0 +1,161 @@ +--- +title: Estils de text +slug: Web/Guide/CSS/Inici_en_CSS/Estils_de_text +tags: + - Beginner + - CSS + - CSS Fonts + - 'CSS:Getting_Started' + - Guide + - NeedsBeginnerUpdate + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Learn/CSS/Styling_text/Fundamentals +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Readable_CSS", "CSS llegible")}} Aquesta és la 7th secció del tutorial<span class="seoSummary"> <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a>; </span>es donen més exemples d'estils de text. Modifiqueu la fulla d'estil d'exemple per utilitzar diferents fonts.</p> + +<h2 class="clearLeft" id="Informació_Estils_de_text"><span class="short_text" id="result_box" lang="ca"><span class="alt-edited">Informació: Estils de text </span></span></h2> + +<p>CSS té diverses propietats d'estil de text.</p> + +<p>Hi ha una propietat abreujada convenient, {{ cssxref("font") }}, que podeu utilitzar per especificar diversos aspectes alhora, per exemple:</p> + +<ul> + <li>Negreta (Bold), Cursiva (Italic) i Majúscula petita (small-caps) (versaleta)</li> + <li>Mida (Size)</li> + <li><span id="result_box" lang="ca"><span>alçada de la</span> <span>línia</span></span> (Line height)</li> + <li><span id="result_box" lang="ca"><span>Tipus de</span> <span>lletra</span></span> (Font typeface)</li> +</ul> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<pre class="brush:css">p { +font: italic 75%/125% "Comic Sans MS", cursive; +} +</pre> + +<p>Aquesta regla estableix diverses propietats de la font, fent tots els paràgrafs en cursiva.</p> + +<p>La mida de la font s'estableix en les tres quartes parts de la mida d'element pare de cada paràgraf, i l'alçada de la línia s'estableix en 125% (una mica més separats del normal).</p> + +<p>El tipus de lletra s'estableix en la Comic Sans MS, però si aquest tipus de lletra no està disponible, el navegador farà ús del seu tipus de lletra cursiva per defecte (escrit a mà).</p> + +<p>La regla té l'efecte secundari de desactivar negreta i small-caps (establint el seu valor a <code>normal</code>).</p> +</div> + +<h3 id="Tipus_de_fonts">Tipus de fonts</h3> + +<p>No es pot predir que tipus de lletra tindran els lectors del vostre document . Quan especifiqueu tipus de lletra de font, és una bona idea proporcionar una llista d'alternatives en ordre de preferència.</p> + +<p>Acabar la llista amb un dels tipus de lletra per defecte incorporats: <code>serif</code>, <code>sans-serif</code>, <code>cursive</code>, <code>fantasy</code> o <code>monospace</code>.</p> + +<p>Si el tipus de lletra no és compatible amb algunes característiques en el document, el navegador pot substituir per un tipus de lletra diferent. Per exemple, el document pot contenir caràcters especials que el tipus de lletra no admet. Si el navegador pot trobar un altre tipus de lletra que té aquests caràcters, llavors farà servir un altre tipus de lletra.</p> + +<p>Per especificar un tipus de lletra, utilitzar la propietat {{ cssxref("font-family") }}.</p> + +<h3 id="Les_mides_de_la_font">Les mides de la font</h3> + +<p>Els usuaris del navegador poden anul·lar les mides de font per defecte o canviar la mida de text mentre llegeixen una pàgina, pel que té sentit el que utilitzeu mides relatives on es pugui.</p> + +<p>Podeu utilitzar alguns valors incorporats per mides de font, com <code>small</code>, <code>medium</code> i <code>large</code>. També podeu utilitzar valors relatius a la mida de font de l'element pare com: <code>smaller</code>, <code>larger</code>, <code>150%</code> o <code>1.5em</code>. Un "em" és equivalent a l'amplada de la lletra "m" (per la mida de font de l'element pare); per tant 1.5em és una vegada i mitja la mida de la font de l'element pare.</p> + +<p>Si cal, podeu especificar una mida real com: <code>14px</code> (14 píxels) per a un dispositiu de visualització o 14pt (14 punts) per a una impressora. Això no és accessible per als usuaris amb discapacitat visual, ja que no els permet canviar la mida. Una estratègia més accessible és establir un valor incorporat com a mitjà en un element de nivell superior del document i, a continuació establir les mides relatives de tots els seus elements descendents.</p> + +<p>Per especificar una mida de font, utilitzar la propietat {{ cssxref("font-size") }}.</p> + +<h3 id="Alçada_de_la_línia"><span class="short_text" id="result_box" lang="ca"><span>Alçada de la</span> <span>línia</span></span></h3> + +<p><span id="result_box" lang="ca"><span>L'alçada de la</span> <span>línia especifica</span> <span>l'espaiat</span> <span>entre línies.</span> <span>Si</span> <span>el document</span> <span>té els</span> <span>paràgrafs</span> <span>llargs</span> <span>amb</span> <span>moltes</span> <span>línies, una</span> <span>separació</span> <span>més</span> <span>gran del normal</span> <span>fa que</span> <span>sigui</span> <span>més</span> <span>fàcil</span> <span>de llegir,</span> <span>especialment si</span> <span>la mida de la</span> <span>font</span> <span>és petita.</span></span></p> + +<p>Per especificar <span class="short_text" id="result_box" lang="ca"><span>l'alçada de la</span> <span>línia</span></span>, utilitzar la propietat {{ cssxref("line-height") }}.</p> + +<h3 id="Decoració">Decoració</h3> + +<p>A part de la propietat {{ cssxref("text-decoration") }} podeu especificar altres estils, com el <code>subratllat(underline)</code> o <code>ratllat(line-through)</code>. Podeu configurar-ho a <code>none</code> per eliminar explícitament qualsevol decoració.</p> + +<h3 id="Altres_propietats">Altres propietats</h3> + +<p><span class="short_text" id="result_box" lang="ca"><span>Per especificar</span> <span>cursiva, utilitzar</span></span> <code>{{ cssxref("font-style") }}: italic;</code><br> + <span class="short_text" id="result_box" lang="ca"><span>Per especificar</span> <span>negreta</span></span> , <span class="short_text" id="result_box" lang="ca"><span>utilitzar</span></span> <code>{{ cssxref("font-weight") }}: bold;</code><br> + <span class="short_text" id="result_box" lang="ca"><span>Per especificar</span></span> majúscules petites , utilitzar <code>{{ cssxref("font-variant") }}: small-caps;</code></p> + +<p>Per desactivar qualsevol d'ells individualment, especificar el valor <code>normal</code> o <code>inherit</code>.</p> + +<div class="tuto_details"> +<div class="tuto_type">Mé detalls</div> + +<p>Podeu especificar els estils de text d'altres maneres variades.</p> + +<p>Per exemple, algunes de les propietats esmentades aquí tenen altres valors que podeu utilitzar.</p> + +<p>En una fulla d'estil complexa, eviteu l'ús de la propietat de font abreujada, causa efectes secundaris (reposició d'altres propietats individuals).</p> + +<p>Per a més detalls de les propietats que es relacionen amb les fonts, vegeu <a class="external" href="http://www.w3.org/TR/CSS21/fonts.html">Fonts</a> en l'especificació CSS. Per a més detalls de decoració del text, vegeu <a class="external" href="http://www.w3.org/TR/CSS21/text.html">Text</a>.</p> + +<p>Si no voleu dependre dels tipus de lletra instal·lats en els sistemes dels usuaris, podeu utilitzar {{ cssxref("@font-face") }} per especificar una font en línia. No obstant això, requereix que els usuaris tinguin un navegador compatible amb aquesta regla.</p> +</div> + +<h2 id="Acció_Especificació_de_les_fonts"><span class="short_text" id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Especificació</span> <span>de les</span> <span>fonts</span></span></h2> + +<p>Per a un document senzill, es pot establir la font de l'element {{ HTMLElement("body") }} i la resta del document hereta la configuració.</p> + +<ol> + <li>Editeu l'arxiu CSS.</li> + <li>Afegiu la següent regla per canviar el tipus de lletra en tot el document. La part superior de l'arxiu CSS és un lloc lògic per a ell, però té el mateix efecte allà on ho posis: + <pre class="eval">body { +font: 16px "Comic Sans MS", cursive; +} +</pre> + </li> + <li>Afegiu un comentari explicant la regla, i afegiu espai en blanc per a que coincideixi amb el vostre disseny preferit.</li> + <li>Deseu el fitxer i actualitzeu el navegador per veure l'efecte. Si el sistema té Comic Sans MS, o una altra font cursiva que no suporta cursiva, l'explorador tria un tipus de lletra diferent per al text en cursiva en la primera línia:: + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font: italic 16px 'Comic Sans MS', cursive; color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td style="font: 16px 'Comic Sans MS', cursive; color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> + </table> + </li> + <li>Des de la barra de menú del navegador, seleccioneu <strong>View > Text Size > Increase</strong> (o <strong>View > Zoom > Zoom In</strong>). Tot i que heu especificat 16 píxels en l'estil, un usuari en llegir el document pot canviar la mida.</li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>Sense canviar res més, fer que totes les sis lletres inicials sigui dues vegades la mida de la font serif per defecte en el navegador:</p> + +<table> + <tbody> + <tr> + <td style="font: italic 16px 'Comic Sans MS', cursive; color: blue;"><strong style="color: red; font: 200% serif;">C</strong>ascading <strong style="color: green; font: 200% serif;">S</strong>tyle <strong style="color: green; font: 200% serif;">S</strong>heets</td> + </tr> + <tr> + <td style="font: 16px 'Comic Sans MS', cursive; color: blue;"><strong style="color: red; font: 200% serif;">C</strong>ascading <strong style="color: red; font: 200% serif;">S</strong>tyle <strong style="color: red; font: 200% serif;">S</strong>heets</td> + </tr> + </tbody> +</table> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>Add the following style declaration to the <code>strong</code> rule:</p> + +<pre class="brush: css"> font: 200% serif; +</pre> +If you use separate declarations for <code>font-size</code> and <code>font-family</code>, then the <code>font-style</code> setting on the first paragraph is <em>not</em> overridden. + +<p> </p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Color", "Color")}}El document d'exemple utilitza diversos colors amb nom. En la següent secció s'enumeren els noms dels colors estàndard i s'explica com es poden especificar altres.</p> diff --git a/files/ca/web/guide/css/inici_en_css/index.html b/files/ca/web/guide/css/inici_en_css/index.html new file mode 100644 index 0000000000..839b8e8341 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/index.html @@ -0,0 +1,55 @@ +--- +title: Inici en CSS +slug: Web/Guide/CSS/Inici_en_CSS +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Guide + - Needs + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/First_steps +--- +<p>Aquest tutorial és una introducció a les característiques bàsiques i llenguatge (la sintaxi) per als <strong><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS">fulls d'estil en cascada</a></strong><span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS"><strong>(Cascading Style Sheets)</strong></a> (CSS). </span>S'utilitza CSS per canviar l'aspecte d'un document estructurat, com ara una pàgina web. El tutorial també inclou exemples d'exercicis que podeu provar en el vostre ordinador per veure els efectes de les CSS i les característiques que funcionen en els navegadors moderns.</p> + +<p>El tutorial és per a principiants i per qualsevol persona que desitji revisar els conceptes bàsics de CSS. Si teniu més experiència amb CSS, la pàgina principal de CSS <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS">enumera</a> els recursos més avançats.</p> + +<nav class="fancyTOC"><a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/What_is_CSS" rel="next" title="Chapter 'What is CSS' of the CSS tutorial">Què és CSS</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Why_use_CSS" title="Chapter 'Why use CSS' of the CSS tutorial">Per què utilitzar CSS</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/How_CSS_works" title="Chapter 'How CSS works' of the CSS tutorial">Com funciona el CSS</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Cascading_and_inheritance" title="Chapter 'Cascading and inheritance' of the CSS tutorial">Cascada i herència</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors" title="Chapter 'Selectors' of the CSS tutorial">Selectors</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Readable_CSS" title="Chapter 'Readable_CSS' of the CSS tutorial">CSS Llegible</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Text_styles" title="Chapter 'Text_styles' of the CSS tutorial">Estils de text</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Color" title="Chapter 'Color' of the CSS tutorial">Color</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Content" title="Chapter 'Content' of the CSS tutorial">Contingut</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Lists" title="Chapter 'Lists' of the CSS tutorial">Llistes</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Boxes" title="Chapter 'Boxes' of the CSS tutorial">Caixes</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Layout" title="Chapter 'Layout' of the CSS tutorial">Disseny</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Tables" title="Chapter 'Tables' of the CSS tutorial">Taules</a> <a class="button" href="/en-US/docs/Web/Guide/CSS/Getting_Started/Media" title="Chapter 'Media' of the CSS tutorial">Media</a></nav> + +<h2 id="Que_es_necessita_per_començar"><span class="short_text" id="result_box" lang="ca"><span>Que</span> <span>es</span> <span>necessita</span> <span>per començar</span></span></h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Un editor</span> <span>de text</span></span></li> + <li><span id="result_box" lang="ca"><span>Un navegador</span> <span>modern</span></span></li> + <li>Alguna experiència treballant amb editor de text i navegador</li> +</ul> + +<p>Encara que els exercicis poden ajudar-te a aprendre, no és necessari realitzar-los. Simplement podeu llegir el tutorial i mirar les imatges.</p> + +<p><strong>Nota:</strong> <span id="result_box" lang="ca"><span>El tutorial</span> <span>s'explica</span> <span>com funciona</span> <span>CSS</span> <span>amb el color.</span> <span>Serà més</span> <span>fàcil</span> <span>per</span> <span>completar aquestes</span> <span>seccions</span> <span>amb una pantalla</span> <span>a color</span> <span>i visió de</span> <span>color</span> <span>normal.</span></span></p> + +<h2 id="Com_utilitzar_aquest_tutorial"><span class="short_text" id="result_box" lang="ca"><span>Com</span> <span>utilitzar</span> <span>aquest tutorial</span></span></h2> + +<p>Per utilitzar aquest tutorial, llegiu les pàgines amb cura i de forma seqüencial. Si es salta una pàgina, pot ser difícil d'entendre les pàgines següents en el tutorial.</p> + +<h3 id="Part_I_Els_fonaments_del_CSS"><span class="short_text" id="result_box" lang="ca"><span>Part</span> <span>I: Els</span> <span>fonaments de</span>l<span> CSS</span></span></h3> + +<p>A cada pàgina, utilitzeu la secció d'<em>informació</em> per entendre com funciona CSS. Utilitzeu la secció Acció per probar l'ús de CSS en el vostre ordinador.</p> + +<p>Per posar a prova la vostre comprensió, prendre el repte al final de cada pàgina. Les solucions als reptes estan vinculats en virtut dels reptes, pel que no és necessari mirar-los si no ho desitjeu.</p> + +<p>Per comprendre CSS amb més profunditat, llegiu la informació que es troba en les caselles de subtítols <em>Més detalls</em>. Utilitzeu els enllaços que hi ha per trobar informació de referència sobre CSS</p> + +<h3 id="Part_II_L'Abast_del_CSS"><span class="short_text" id="result_box" lang="ca"><span>Part II</span><span>:</span> <span>L'Abast</span> <span>del CSS</span></span></h3> + +<p><span id="result_box" lang="ca"><span>Una segona</span> <span>part</span> <span>del programa d'aprenentatge</span> <span>proporciona</span> <span>exemples, que</span> <span>mostren l'abast</span> <span>de CSS</span> <span>amb</span> <span>altres tecnologies</span> <span>web i</span> <span>Mozilla</span></span>.</p> + +<ol> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/JavaScript" title="en/CSS/Getting_Started/JavaScript">JavaScript</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/SVG_and_CSS" title="en/CSS/Getting_Started/SVG_graphics">SVG graphics</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/XML_data" title="en/CSS/Getting_Started/XML_data">XML data</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/XBL_bindings" title="en/CSS/Getting_Started/XBL_bindings">XBL bindings</a></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/XUL_user_interfaces" title="en/CSS/Getting_Started/XUL_user_interfaces">XUL user interfaces</a></li> +</ol> diff --git a/files/ca/web/guide/css/inici_en_css/javascript/index.html b/files/ca/web/guide/css/inici_en_css/javascript/index.html new file mode 100644 index 0000000000..8fd453b50c --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/javascript/index.html @@ -0,0 +1,146 @@ +--- +title: JavaScript i CSS +slug: Web/Guide/CSS/Inici_en_CSS/JavaScript +tags: + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsUpdate + - Web +translation_of: Learn/JavaScript/Client-side_web_APIs/Manipulating_documents +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>Aquesta és la primera secció de la Part II del <a href="/en/CSS/Getting_Started" title="https://developer.mozilla.org/en/CSS/Getting_Started">tutorial CSS</a>. La Part II conté alguns exemples que mostren l'abast de CSS utilitzat amb altres tecnologies web i Mozilla.</p> + +<p>Cada pàgina en la part II il·lustra com interactua amb CSS alguna altra tecnologia. Aquestes pàgines no estan dissenyades per ensenyar com utilitzar aquestes altres tecnologies. Aneu a altres tutorials per aprendre sobre elles en detall.</p> + +<p>En lloc d'això, aquestes pàgines estan dissenyades per il·lustrar els molts usos de CSS. Per utilitzar aquestes pàgines, heu de tenir algun coneixement de CSS, però no cal cap coneixement d'unes altres tecnologies.</p> + +<p>Secció anterior (Part I): <a href="/en/CSS/Getting_Started/Media" title="https://developer.mozilla.org/en/CSS/Getting_Started/Media">Mitjà</a><br> + Secció següent: <a href="/en/CSS/Getting_Started/SVG_graphics" title="https://developer.mozilla.org/en/CSS/Getting_Started/SVG_graphics">SVG</a></p> + +<h3 id="Information:_JavaScript" name="Information:_JavaScript"><span id="result_box" lang="ca"><span>Informació</span><span>: JavaScript</span></span></h3> + +<p>JavaScript és un <em>llenguatge de programació</em>. JavaScript s'utilitza àmpliament per proporcionar interactivitat en els llocs web i aplicacions.</p> + +<p>JavaScript pot interactuar amb les fulles d'estil, permetent-li escriure programes que canvien l'estil d'un document de forma dinàmica.</p> + +<p>Hi ha tres maneres de fer això:</p> + +<ul> + <li>Treballant amb la llista de fulles d'estil del document, per exemple: afegir, eliminar o modificar una fulla d'estil.</li> + <li>Treballant amb les regles en una fulla d'estil, per exemple: afegir, eliminar o modificar una regla.</li> + <li>Treballant amb un element individual en el DOM, modificant el seu estil independentment de les fulles d'estil del document.</li> +</ul> + +<table style="background-color: #f4f4f4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em; width: 100%;"> + <caption>Més detalls</caption> + <tbody> + <tr> + <td>Per obtenir més informació sobre JavaScript, vegeu la pàgina de <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> en aquest wiki.</td> + </tr> + </tbody> +</table> + +<h3 id="Action:_A_JavaScript_demonstration" name="Action:_A_JavaScript_demonstration"><span id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Una demostració</span> <span>de JavaScript</span></span></h3> + +<p>Feu un nou document HTML, <code>doc5.html</code>. Copieu i enganxeu el contingut d'aquí, assegurar-vos de deplaçar-vos per obtenir tota ella;</p> + +<div style="width: 48em;"> +<pre class="brush:html;"><!DOCTYPE html> +<html> + +<head> +<title>Mozilla CSS Getting Started - JavaScript demonstration</title> +<link rel="stylesheet" type="text/css" href="style5.css" /> +<script type="text/javascript" src="script5.js"></script> +</head> + +<body> +<h1>JavaScript sample</h1> +<div id="square"></div> +<button>Click Me</button> + +</body> +</html> +</pre> +</div> + +<p>Feu una nova fulla d'estil CSS, <code>style5.css</code>. Copieu i enganxeu el contingut d'aquí:</p> + +<div style="width: 48em;"> +<pre class="brush:css;"> #square { + width: 120px; + height: 120px; + border: 2px inset gray; + margin-bottom: 1em; + } + + button { + padding: .5em 2em; + }</pre> +</div> + +<p>Feu un nou arxiu de text, <code>script5.js</code>. Copieu i enganxeu el contingut d'aquí:</p> + +<div style="width: 48em;"> +<pre class="brush:js;">// JavaScript demonstration +var changeBg = function (event) { + console.log("method called"); + var me = event.target + , square = document.getElementById("square"); + square.style.backgroundColor = "#ffaa44"; + me.setAttribute("disabled", "disabled"); + setTimeout(function () { clearDemo(me) }, 2000); +} + +function clearDemo(button) { + var square = document.getElementById("square"); + square.style.backgroundColor = "transparent"; + button.removeAttribute("disabled"); +} + +var button = document.querySelector("button"); +button.addEventListener("click", changeBg); +console.log(button); +</pre> +</div> + +<p><span id="result_box" lang="ca"><span>Obriu el</span> <span>document</span> <span>en el navegador i</span> <span>premeu el</span> <span>botó</span> <span>o vegeu</span> <span>una mostra</span> <span>del treball</span> <span>a continuació.</span></span></p> + +<p>{{ EmbedLiveSample('Action:_A_JavaScript_demonstration', 320,320) }}</p> + +<div class="note"><strong>Notes importants</strong> sobre aquesta demostració: + +<ul> + <li>El document HTML vincula la fulla d'estil com de costum, i també vincula el script.</li> + <li>L'script funciona amb elements individuals en el DOM. Modifica l'estil del cuadrat directament. Modifica l'estil del botó indirectament pel canvi d'un atribut.</li> + <li>En JavaScript, <code>document.getElementById("square")</code> és similar en funció al selector CSS <code>#square</code>.</li> + <li>En JavaScript, backgroundColor correspon a la propietat CSS <code>background-color</code>. JavaScript no permet guions en noms, de manera que "camelCase" s'utilitza en el seu lloc.</li> + <li>El vostre navegador té una regla CSS incorporada per <code>button{{ mediawiki.external('disabled=\"true\"') }}</code> que canvia l'aspecte del botó quan està desactivat.</li> +</ul> +</div> + +<div class="warning"> +<p>De fet, el document HTML anterior pot tenir una condició de competència (informació relacionada en aquesta pàgina <a href="http://www.w3.org/TR/2014/REC-html5-20141028/single-page.html#common-pitfalls-to-avoid-when-using-the-scripting-apis">W3C</a>), ja que té l'element <em>script</em> dins de l'element head podent inicar-se l'execució del codi JavaScript abans que la pàgina acabi de carregar-se i el codi no funcionarà perquè la variable <em>button</em> serà nul.la. En moure l'element <em>script</em> sota de l'element button (just damunt de l'etiqueta de tancament <em>body</em>) en el marcat HTML hauria de resoldre aquest problema.</p> +</div> + +<table style="background-color: #fffff4; border: 1px solid #3366bb; margin-bottom: .5em; padding: 1em;"> + <caption>Repte</caption> + <tbody> + <tr> + <td>Canvieu el script perquè el quadre salti a la dreta 20 em quan el seu color canviï, i salti cap a enrere després.</td> + </tr> + </tbody> +</table> + +<p><a href="/en/CSS/Getting_Started/Challenge_solutions#JavaScript" title="https://developer.mozilla.org/en/CSS/Getting_Started/Challenge_solutions#JavaScript">Veure la solució per el repte.</a></p> + +<h3 id="I_ara_què">I ara què?</h3> + +<p>Si teniu dificultats per entendre aquesta pàgina o si teniu altres comentaris al respecte, si us plau, contribuïu a la vostre pàgina de <a href="https://developer.mozilla.org/Talk:en/CSS/Getting_Started/JavaScript">discussió</a>.</p> + +<p>En aquesta demostració, el document HTML vincula el script tot i que només l'element button utilitza el script. Mozilla estén CSS de manera que pugui vincular codi JavaScript (i també contingut i altres fulles d'estil) per als elements seleccionats. La pàgina següent mostra això: <strong><a href="https://developer.mozilla.org/en/CSS/Getting_Started/XBL_bindings">vincles XBL</a></strong></p> diff --git a/files/ca/web/guide/css/inici_en_css/llistes/index.html b/files/ca/web/guide/css/inici_en_css/llistes/index.html new file mode 100644 index 0000000000..6792f86eb7 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/llistes/index.html @@ -0,0 +1,275 @@ +--- +title: Llistes +slug: Web/Guide/CSS/Inici_en_CSS/Llistes +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsBeginnerUpdate + - NeedsUpdate + - Web +translation_of: Learn/CSS/Styling_text/Styling_lists +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Content", "Contingut") }} Aquesta és la 10th secció del tutorial <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a>; descriu com es pot utilitzar CSS per especificar l'aspecte de les llistes. Heu de crear un nou document d'exemple que contindrà les llistes, i un nova fulla d'estil que és el estil de les llistes.</p> + +<h2 class="clearLeft" id="Informació_Llistes">Informació: Llistes</h2> + +<p>Si vau aprendre el repte en l'<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Content">última secció</a>, llavors va veure com es podia afegir contingut abans de qualsevol element perquè aparegués com un element de la llista.</p> + +<p>CSS proporciona propietats especials que estan dissenyades per a les llistes. En general, és convenient utilitzar aquestes propietats sempre que pugueu.</p> + +<p>Per especificar l'estil a una llista, utilitzeu la propietat {{ cssxref("list-style") }} per especificar el tipus de marcador.</p> + +<p>El selector en la seva regla CSS pot seleccionar els elements de la llista d'elements (per exemple, {{ HTMLElement("li") }} ) o es pot seleccionar l'element de la llista dels pares (per exemple, {{ HTMLElement ("ul") }}) de manera que els elements de la llista hereten l'estil.</p> + +<h3 id="Llistes_no_ordenades">Llistes no ordenades</h3> + +<p>En una llista <em>no ordenada</em>, cada element de la llista està marcat de la mateixa manera.</p> + +<p>CSS té tres tipus de marcadors, i aquí es veu com el navegador els mostra:</p> + +<ul style="padding-left: 2em;"> + <li style="list-style-type: disc;"><code>disc</code></li> + <li style="list-style-type: circle;"><code>circle</code></li> + <li style="list-style-type: square;"><code>square</code></li> +</ul> + +<p>També podeu especificar l'adreça URL d'una imatge.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p><span id="result_box" lang="ca"><span>Aquestes</span> <span>regles</span> <span>especifiquen</span> <span>diferents</span> <span>marcadors</span> <span>per a diferents</span> <span>classes</span> <span>d'element</span>s <span>de la llista</span><span>:</span></span></p> + +<pre class="brush:css">li.open {list-style: circle;} +li.closed {list-style: disc;} +</pre> + +<p>Quan aquestes classes s'utilitzen en una llista, distingeix entre els elements oberts i tancats (per exemple, en una llista de tasques pendents):</p> + +<pre class="brush: html"><ul> + <li class="open">Lorem ipsum</li> + <li class="closed">Dolor sit</li> + <li class="closed">Amet consectetuer</li> + <li class="open">Magna aliquam</li> + <li class="closed">Autem veleum</li> +</ul> +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<p>{{ EmbedLiveSample('Unordered_lists', '', '', '') }}</p> +</div> + +<h3 id="Llistes_ordenades">Llistes ordenades</h3> + +<p>En una llista <em>ordenada</em>, cada element de la llista es marca de manera diferent per mostrar la seva posició en la seqüència.</p> + +<p>Utilitzeu la propietat {{ cssxref("list-style") }} per especificar el tipus de marcador:</p> + +<ul style="padding-left: 2em;"> + <li style=""><code>decimal</code></li> + <li style=""><code>lower-roman</code></li> + <li style=""><code>upper-roman</code></li> + <li style=""><code>lower-latin</code></li> + <li style=""><code>upper-latin</code></li> +</ul> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla especifica que els elements en {{ HTMLElement ("ol") }} amb la classe <code>info</code>, els elements s'identifiquen amb lletres majúscules.</p> + +<pre class="brush: html"><ol class="info"> + <li>Lorem ipsum</li> + <li>Dolor sit</li> + <li>Amet consectetuer</li> + <li>Magna aliquam</li> + <li>Autem veleum</li> +</ol></pre> + +<pre class="brush:css">ol.info {list-style: upper-latin;} +</pre> + +<p>El elements {{ HTMLElement ("li") }} en la llista hereten aquest estil:</p> + +<p>{{ EmbedLiveSample('Ordered_lists', '', '', '') }}</p> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>La propietat {{ cssxref ("list-style") }} és una propietat abreujada. En les fulles d'estil complexes és possible que preferiu utilitzar les propietats independents per establir els valors per separat. Per als enllaços a aquestes propietats separades, i més detalls de com CSS especifica les llistes, consulteu la pàgina de referència {{ cssxref ("list-style") }}.</p> + +<p>Si utilitzeu un llenguatge de marques com l'HTML que proporciona marques convencionals per llistes no ordenades ({{ HTMLElement("ul") }}) i llistes ordenades ({{ HTMLElement("ol") }}), llavors és una bona pràctica utilitzar les etiquetes en la forma en què estan destinades. No obstant això, podeu utilitzar CSS per fer que {{ HTMLElement("ul") }} aparegui ordenat i {{ HTMLElement("ol") }} aparegui desordenat si ho desitjeu.</p> + +<p>Els navegadors difereixen en la forma d'aplicar els estils de llistes. No espereu que la vostre fulla d'estil doni resultats idèntics en tots els navegadors.</p> +</div> + +<h3 id="Comptadors">C<span class="short_text" id="result_box" lang="ca"><span>omptadors</span></span></h3> + +<div style="border: 1px solid red; padding: 6px; margin: 0 0 .5em -6px; width: 100%;"> +<p><strong>Note: </strong> Alguns navegadors no suporten comptadors. La pàgina <a class="external" href="http://www.quirksmode.org/css/contents.html" title="http://www.quirksmode.org/css/contents.html">continguts CSS i compatibilitat del navegador</a> en el <a class="external" href="http://www.quirksmode.org/" title="http://www.quirksmode.org/">lloc Quirks Mode</a> conté un gràfic detallat de la compatibilitat dels navegadors per això i altres característiques CSS. Pàgines individuals en la <a href="/en-US/docs/Web/CSS/Reference" title="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS_Reference">Referència CSS</a> d'aquest lloc, també tenen taules de compatibilitat del navegador.</p> +</div> + +<p>Podeu utilitzar comptadors per enumerar els elements, no només els elements de la llista. Per exemple, en alguns documents és possible que vulgueu numerar les capçaleres o paràgrafs.</p> + +<p>Per especificar la numeració, es necessita un comptador amb un nom que definiu.</p> + +<p>En algun element abans que el recompte s'iniciï, reinicieu el comptador amb la propietat {{ cssxref("counter-reset") }} i el nom del seu comptador. El pare dels elements que està comptant és un bon lloc per fer-ho, però podeu utilitzar qualsevol element que vingui abans que els elements de la llista.</p> + +<p>Per cada element en el qual s'incrementa el comptador, utilitzeu la propietat {{ cssxref("counter-increment") }} i el nom del seu comptador.</p> + +<p>Per mostrar el comptador, afegiu {{ cssxref("::before") }} o {{ cssxref("::after") }} per al selector i l'ús de la propietat <code>content</code> (com ho va fer en la pàgina anterior, <strong><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Content" title="en-US/docs/Web/Guide/CSS/Getting_Started/Content">Content</a></strong>).</p> + +<p>En el valor de la propietat <code>content</code>, especifiqueu <code>counter()</code> amb el nom del vostre comptador. També podeu indicar un tipus. Els tipus són els mateixos que en la secció anterior de <strong>llistes ordenades</strong>.</p> + +<p>Normalment, l'element que mostra el comptador també l'incrementa.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla inicialitza un comptador per a cada element {{ HTMLElement("h3") }} amb la classe <code>numbered</code>:</p> + +<pre class="brush:css">h3.numbered {counter-reset: mynum;} +</pre> + +<p>Aquesta regla mostra i incrementa el comptador per a cada element {{ HTMLELement("p") }} amb la classe <code>numbered</code>:</p> + +<pre class="brush: html"><p class="numbered">Lorem ipsum</p> +<p class="numbered">Dolor sit</p> +<p class="numbered">Amet consectetuer</p> +<p class="numbered">Magna aliquam</p> +<p class="numbered">Autem veleum</p> +</pre> + +<pre class="brush:css">body { + counter-reset: mynum; +} +p.numbered:before { + content: counter(mynum) ": "; + counter-increment: mynum; + font-weight: bold; +} +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>El resultat</span> <span>és el</span> <span>següent</span><span>:</span></span></p> + +<p>{{ EmbedLiveSample("Counters", '300', '200', '') }}</p> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>No podeu utilitzar comptadors a menys que sàpigueu que tot el que llegeixi el document té un navegador compatible amb ells.</p> + +<p>Si sou capaços d'utilitzar els comptadors, tenen l'avantatge que podeu donar estil els comptadors per separat dels elements de la llista. En l'exemple anterior, els comptadors estan en negreta, però els elements de la llista no ho estan.</p> + +<p>També podeu utilitzar els comptadors en formes més complexes, per exemple, al nombre de seccions, títols, subtítols i paràgrafs en els documents formals. Per a més detalls, consulteu <a class="external" href="http://www.w3.org/TR/CSS21/generate.html#counters">Comptadors i numeració automàtica</a> en l'especificació CSS.</p> +</div> + +<h2 id="Acció_Llistes_amb_estil">Acció: Llistes amb estil</h2> + +<p>Feu un nou document HTML, <code>doc2.html</code>. Copieu i enganxeu el contingut d'aquí:</p> + +<pre class="brush:html;"><!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Sample document 2</title> + <link rel="stylesheet" href="style2.css"> + </head> + <body> + + <h3 id="oceans">The oceans</h3> + <ul> + <li>Arctic</li> + <li>Atlantic</li> + <li>Pacific</li> + <li>Indian</li> + <li>Southern</li> + </ul> + + <h3 class="numbered">Numbered paragraphs</h3> + <p class="numbered">Lorem ipsum</p> + <p class="numbered">Dolor sit</p> + <p class="numbered">Amet consectetuer</p> + <p class="numbered">Magna aliquam</p> + <p class="numbered">Autem veleum</p> + + </body> +</html> +</pre> + +<p>Feu un nova fulla d'estil, <code>style2.css</code>. Copieu i enganxeu el contingut d'aquí:</p> + +<pre class="brush:css;">/* numbered paragraphs */ +h3.numbered {counter-reset: mynum;} + +p.numbered:before { + content: counter(mynum) ": "; + counter-increment: mynum; + font-weight: bold; +} +</pre> + +<p>Si la disposició i el comentari no són del vostre gust, canvieu-los.</p> + +<p>Obriu el document en el navegador. Si el navegador és compatible amb els comptadors, es veurà alguna cosa semblant com l'exemple a continuació. Si el vostre navegador no suporta comptadors, llavors no veureu els números (i probablement ni tan sols els dos punts):</p> + +<p>{{ EmbedLiveSample('Action_Styled_lists', '300', '400', '') }}</p> + +<div class="tuto_example"> +<div class="tuto_type">Reptes</div> + +<p>Afegiu una regla a la fulla d'estil, per numerar els oceans utilitzant nombres romans de l'I al V:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 0 6em 1em 1em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em;">The oceans</p> + + <ul style=""> + <li>Arctic</li> + <li>Atlantic</li> + <li>Pacific</li> + <li>Indian</li> + <li>Southern</li> + </ul> + </td> + </tr> + </tbody> +</table> + +<p> </p> + +<p>Canvieu la fulla d'estil per identificar les capçaleres amb lletres majúscules i en parèntesi com aquest:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 0 6em 1em 1em;"> + <tbody> + <tr> + <td> + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em;">(A) The oceans</p> + + <p><strong>. . .</strong></p> + + <p style="font-weight: bold; font-size: 133%; margin-bottom: .3em; padding-top: .4em; padding-bottom: .16em;">(B) Numbered paragraphs</p> + + <p><strong>. . .</strong></p> + </td> + </tr> + </tbody> +</table> +</div> + +<p><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Lists" title="en-US/docs/Web/Guide/CSS/Getting started/Challenge solutions#Lists">Veure la solució per el repte.</a></p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{ nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Boxes", "Caixes") }}Quan el navegador mostra el document d'exemple, es crea un espai al voltant dels elements quan els col·loca a la pàgina. La pàgina següent descriu com podeu utilitzar CSS per treballar amb les formes subjacents d'elements, <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Boxes" title="en-US/docs/Web/Guide/CSS/Getting_Started/Boxes">caixes</a>.</p> diff --git a/files/ca/web/guide/css/inici_en_css/mitjà/index.html b/files/ca/web/guide/css/inici_en_css/mitjà/index.html new file mode 100644 index 0000000000..f3b14fb062 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/mitjà/index.html @@ -0,0 +1,402 @@ +--- +title: Mitjà +slug: Web/Guide/CSS/Inici_en_CSS/Mitjà +tags: + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsBeginnerUpdate + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Web/Progressive_web_apps/Responsive/Media_types +--- +<p>{{CSSTutorialTOC}} {{previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Tables", "Taules")}}</p> + +<p>Aquesta és la 14th secció de la Part I del tutorial <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a> Moltes de les pàgines d'aquest tutorial s'han centrat en les propietats CSS i els valors que es poden utilitzar per especificar com mostrar un document. Aquesta pàgina es veu de nou en el propòsit i l'estructura de les fulles d'estil CSS.</p> + +<h2 class="clearLeft" id="Informació_Mitjà">Informació: Mitjà</h2> + +<p>El propòsit de CSS és especificar com els documents es presenten a l'usuari. La presentació pot tenir més d'una forma.</p> + +<p>Per exemple, és probable que estigueu llegint aquesta pàgina en un dispositiu de visualització. Però també pot ser que el vulgueu projectar en una pantalla per a una gran audiència, o imprimir-ho. Aquests diferents mitjans poden tenir característiques diferents. CSS proporciona formes de presentar un document de manera diferent en diferents mitjans.</p> + +<p>Per especificar regles que són específiques d'un tipus de mitjà, utilitzeu {{CSSXref("@media")}} seguit pel tipus de mitjà, seguit de claus que tanquen les regles.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Un document, en un lloc web, té una àrea de navegació per permetre a l'usuari moure's pel lloc.</p> + +<p>En el llenguatge de marcat, l'element pare de l'àrea de navegació té el <strong>id</strong> <code>nav-area</code>. (A {{HTMLVersionInline (5)}}, això pot ser marcat amb l'element {{HTMLElement("nav")}} en lloc de {{HTMLElement("div")}} amb un atribut id.)</p> + +<p>Quan s'imprimeix el document, l'àrea de navegació no té cap propòsit, de manera que la fulla d'estil l'elimina per complet:</p> + +<pre class="brush:css">@media print { + #nav-area {display: none;} + } +</pre> +</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>Alguns dels tipus</span> <span>de mitjans</span> <span>comuns</span> <span>són</span><span>:</span></span></p> + +<table class="standard-table"> + <tbody> + <tr> + <td><code>screen</code></td> + <td>Color pantalla ordinador</td> + </tr> + <tr> + <td><code>print</code></td> + <td>Mitjans paginats</td> + </tr> + <tr> + <td style="padding-right: 1em;"><code>projection</code></td> + <td>Pantalla projectada</td> + </tr> + <tr> + <td><code>all</code></td> + <td>Tots els mitjans (per defecte)</td> + </tr> + </tbody> +</table> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Hi ha altres formes d'especificar el tipus de mitjà d'un conjunt de regles.</p> + +<p>El llenguatge de marcat del document pot permetre que s'especifiqui el tipus de mitjà quan la fulla d'estil està vinculada al document. Per exemple, en HTML es pot especificar opcionalment el tipus de mitjà amb un atribut <code>media</code> en l'etiqueta LINK.</p> + +<p>En CSS podeu utilitzar {{CSSXref("@import")}} a l'inici d'una fulla d'estil per importar un altre fulla d'estil des d'una URL, especificant opcionalment el tipus de mitjà.</p> + +<p>Mitjançant l'ús d'aquestes tècniques es poden separar regles d'estil per a diferents tipus de mitjans en diferents arxius. Això de vegades és una forma útil d'estructurar les fulles d'estil.</p> + +<p>Per a més detalls sobre els tipus de mitjans, vegeu <a href="http://www.w3.org/TR/CSS21/media.html">Mtjà</a> en l'especificació CSS.</p> + +<p>Hi ha més exemples de la propietat {{cssxref ("display")}} en una pàgina posterior d'aquest tutorial: <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/XML_data" title="en-US/docs/Web/Guide/CSS/Getting_Started/XML_data">dades XML</a>.</p> +</div> + +<h3 id="Impressió">I<span id="result_box" lang="ca"><span>mpressió</span></span></h3> + +<p>CSS té algun suport específic per a la impressió i dels mitjans paginats en general.</p> + +<p>Un regla {{cssxref("@page")}} pot establir els marges de pàgina. Per a la impressió a doble cara, es poden definir els marges per separat per a <code>@page:left</code> i <code>@page:right</code>.</p> + +<p>Per als mitjans d'impressió, normalment s'utilitza com a unitats de longitud les polzades (<code>in</code>) i punts (pt = 1/72 polzades) o centímetres (<code>cm</code>) i mil·límetres (<code>mm</code>). És igualment apropiat utilitzar ems (<code>em</code>) perquè coincideixi amb la mida de font i percentatges (<code>%</code>).</p> + +<p>Podeu controlar la forma en què el contingut del document es divideix entre els límits de pàgina, mitjançant l'ús de les propietats {{cssxref("page-break-before")}}, {{cssxref("page-break-after")}} i {{cssxref("page-break-inside")}}.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquesta regla estableix els marges de pàgina a una polzada en els quatre costats:</p> + +<pre class="brush:css">@page {margin: 1in;} +</pre> + +<p>Aquesta regla assegura que cada element <code>H1</code> comença en una nova pàgina:</p> + +<pre class="brush:css">h1 {page-break-before: always;} +</pre> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Per als detalls complets de suport de CSS per als mitjans paginats, veure <a href="http://www.w3.org/TR/CSS21/page.html">Mitjans paginats</a> en l'especificació CSS.</p> + +<p>Igual que altres característiques de CSS, la impressió depèn del navegador i la seva configuració. Per exemple, el navegador Mozilla subministra marges predeterminats, capçaleres i peus quan s'imprimeix. Quan altres usuaris imprimeixin el document, és probable que no sapigan quin navegador és i quina configuració té, de manera que és possible que no poguin controlar completament els resultats.</p> +</div> + +<h3 id="Interfícies_d'usuari">I<span id="result_box" lang="ca"><span>nterfícies</span> <span>d'usuari</span></span></h3> + +<p>CSS té algunes propietats especials per als dispositius que suporten una interfície d'usuari, com pantalles d'ordinador. Això fa que l'aspecte del document canvii dinàmicament a mesura que l'usuari treballa amb la interfície.</p> + +<p>No hi ha cap tipus de mitjà especial per als dispositius amb interfícies d'usuari.</p> + +<p>Hi ha cinc selectors especials:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Selector</strong></td> + <td><strong>Selects</strong></td> + </tr> + <tr> + <td><code>E{{cssxref(":hover")}}</code></td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>E</span> <span>que té</span> <span>el punter</span> <span>sobre ell</span></span></td> + </tr> + <tr> + <td><code>E{{cssxref(":focus")}}</code></td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>E</span> <span>que té</span> <span>el focus del</span> <span>teclat</span></span></td> + </tr> + <tr> + <td><code>E{{cssxref(":active")}}</code></td> + <td><span id="result_box" lang="ca"><span>L'element</span> <span>E</span> <span>que està</span> <span>implicat</span> <span>en l'acció</span> <span>de l'usuari actual</span></span></td> + </tr> + <tr> + <td><code>E{{cssxref(":link")}}</code></td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>E que és</span> <span>un hipervincle</span> <span>a una adreça</span> <span>URL</span> <span>que l'usuari <em>no</em></span> <span>ha visitat</span> <span>recentment</span></span></td> + </tr> + <tr> + <td><code>E{{cssxref(":visited")}}</code></td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>E que és</span> <span>un hipervincle</span> <span>a una adreça</span> <span>URL</span> <span>que l'usuari ha</span> <span>visitat</span> <span>recentment</span></span></td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota: </strong>La informació que es pot obtenir del selector :visited està restringida a {{gecko("2.0")}}. Veure <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Privacy_and_the_:visited_selector" title="en-US/docs/Web/Guide/CSS/Privacy and the :visited selector">Privacitat i el selector :visited</a> per a més detalls.</p> +</div> + +<p>La propietat {{cssxref("cursor")}} especifica la forma del punter: Algunes de les formes comunes són els següents. Col·loqueu el ratolí sobre els elements de la llista per veure les formes de punter reals en el vostre navegador:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Selector</strong></td> + <td><strong>Selects</strong></td> + </tr> + <tr style="cursor: pointer;"> + <td><code>pointer</code></td> + <td>Indica un vincle</td> + </tr> + <tr style="cursor: wait;"> + <td><code>wait</code></td> + <td>Indica que el programa no pot acceptar l'entrada</td> + </tr> + <tr style="cursor: progress;"> + <td><code>progress</code></td> + <td>Indica que el programa està funcionant, encara pot acceptar l'entrada</td> + </tr> + <tr style="cursor: default;"> + <td><code>default</code></td> + <td><span class="short_text" id="result_box" lang="ca"><span>El</span> <span>valor per</span> <span>defecte</span> <span>(</span><span>normalment una</span> <span>fletxa</span><span>)</span></span></td> + </tr> + </tbody> +</table> + +<p>Una propietat {{cssxref("outline")}} crea un contorn que sovint s'utilitza per indicar el focus del teclat. Els seus valors són similars a la propietat {{cssxref("border")}}, excepte que no es poden definir els costats individualment.</p> + +<p>Algunes altres característiques de les interfícies d'usuari s'implementen utilitzant atributs, en la forma normal. Per exemple, un element que és deshabilitat o de només lectura té l'atribut <strong>disabled</strong> o l'atribut <strong>readonly</strong>. Els selectors poden especificar aquests atributs com qualsevol altre atribut, mitjançant l'ús de claudàtors: <code>{{mediawiki.external('disabled')}}</code> o <code>{{mediawiki.external('readonly')}}</code>.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p><span id="result_box" lang="ca"><span>Aquestes regles</span> <span>especifiquen els</span> <span>estils</span> <span>per a un</span> <span>botó</span> <span>que canvia</span> <span>dinàmicament</span> <span>a mesura</span> <span>que l'usuari</span> <span>interactua</span> <span>amb</span> <span>ell</span><span>:</span></span></p> + +<pre class="brush:css">.green-button { + background-color:#cec; + color:#black; + border:2px outset #cec; + } + +.green-button[disabled] { + background-color:#cdc; + color:#777; + } + +.green-button:active { + border-style: inset; + } +</pre> + +<p>Aquest wiki no és compatible amb una interfície d'usuari en la pàgina, pel que aquests botons no "fan clic". Aquestes són algunes de les imatges estàtiques per il·lustrar la idea:</p> + +<table style="background-color: #ffffff; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <table> + <tbody> + <tr> + <td><span style="background-color: #ccddcc; border: 2px outset #cceecc; color: #777777; cursor: default; height: 2em; margin-right: 1em; padding: .5em 1em; width: 8em;">Click Me</span></td> + <td><span style="background-color: #cceecc; border: 2px outset #cceecc; cursor: move; height: 2em; margin-right: 1em; padding: .5em 1em; width: 8em;">Click Me</span></td> + <td><span style="background-color: #cceecc; border: 2px inset #cceecc; cursor: move; height: 2em; margin-right: 1em; padding: .5em 1em; width: 8em;">Click Me</span></td> + </tr> + <tr style="line-height: 25%;"> + <td> </td> + </tr> + <tr style="font-style: italic;"> + <td>deshabilitat</td> + <td>normal</td> + <td>actiu</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> +</table> + +<p>Un botó completament funcional també té un contorn fosc al voltant de tot el botó quan el valor és per defecte, i un contorn en línia de punts a la cara del botó quan té el focus del teclat. També podria tenir un efecte estacionari quan el punter es troba a sobre d'ell.</p> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Per obtenir més informació sobre les interfícies d'usuari en el CSS, vegeu <a href="http://www.w3.org/TR/CSS21/ui.html">Interfície d'usuari</a> en l'especificació CSS.</p> + +<p>Hi ha un exemple del llenguatge de marcat de Mozilla per a interfícies d'usuari, XUL, en la Part II d'aquest tutorial.</p> +</div> + +<h2 id="Acció_Impressió_d'un_document">A<span id="result_box" lang="ca"><span>cció</span><span>:</span> <span>Impressió</span> <span>d'un</span> <span>document</span></span></h2> + +<ol> + <li><span id="result_box" lang="ca"><span>Feu</span> <span>un nou</span> <span>document HTML,</span> <code><span>doc4.html</span></code><span>.</span> <span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí:</span></span> + + <pre class="brush:html"><!DOCTYPE html> +<html> + <head> + <title>Print sample</title> + <link rel="stylesheet" href="style4.css"> + </head> + <body> + <h1>Section A</h1> + <p>This is the first section...</p> + <h1>Section B</h1> + <p>This is the second section...</p> + <div id="print-head"> + Heading for paged media + </div> + <div id="print-foot"> + Page: + </div> +</body> +</html> +</pre> + </li> + <li>Feu una nova fulla d'estil, <code>style4.css</code>. <span id="result_box" lang="ca"><span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí:</span></span> + <pre class="brush:css">/*** Print sample ***/ + +/* defaults for screen */ +#print-head, +#print-foot { + display: none; + } + +/* print only */ +@media print { + +h1 { + page-break-before: always; + padding-top: 2em; + } + +h1:first-child { + page-break-before: avoid; + counter-reset: page; + } + +#print-head { + display: block; + position: fixed; + top: 0pt; + left:0pt; + right: 0pt; + + font-size: 200%; + text-align: center; + } + +#print-foot { + display: block; + position: fixed; + bottom: 0pt; + right: 0pt; + + font-size: 200%; + } + +#print-foot:after { + content: counter(page); + counter-increment: page; + } + +} /* end print only */ +</pre> + </li> + <li>Vegeu aquest document en el vostre navegador; utilitza l'estil per defecte del navegador.</li> + <li>Imprimir (o vista prèvia d'impressió) el document; la fulla d'estil col·loca cada secció en una pàgina separada, i s'afegeix una capçalera i peu de pàgina per a cada pàgina. Si el navegador és compatible amb els comptadors, s'agrega un número de pàgina al peu de pàgina. + <table> + <tbody> + <tr> + <td> + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <table style="margin-right: 2em; width: 15em;"> + <tbody> + <tr> + <td> + <div style="font-size: 110%; text-align: center; margin-bottom: .5em;">Heading for paged media</div> + + <div style="font-size: 150%; font-weight: bold;">Section A</div> + + <div style="font-size: 75%;">This is the first section...</div> + + <div style="font-size: 150%; text-align: right; margin-top: 12em;">Page: 1</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + <td> + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <table style="margin-right: 2em; width: 15em;"> + <tbody> + <tr> + <td> + <div style="font-size: 110%; text-align: center; margin-bottom: .5em;">Heading for paged media</div> + + <div style="font-size: 150%; font-weight: bold;">Section B</div> + + <div style="font-size: 75%;">This is the second section...</div> + + <div style="font-size: 150%; text-align: right; margin-top: 12em;">Page: 2</div> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </li> +</ol> + +<table style="background-color: #fffff4; border: 1px solid #3366bb; padding: 1em; width: 100%;"> + <caption>Reptes</caption> + <tbody> + <tr> + <td>Moveu les regles d'estil específiques d'impressió en un fitxer CSS independent. + <p>Llegiu la pàgina de referència {{CSSXref("@import")}} per trobar detalls de com importar el nou arxiu CSS específic de la impressió en el vostre full d'estil <code>style4.css</code>.</p> + + <p>Feu que els encapçalaments es tornin blaus quan el punter del ratolí estigui sobre ells.</p> + </td> + </tr> + </tbody> +</table> + +<p><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Media" title="en-US/docs/Web/Guide/CSS/Getting_started/Challenge_solutions#Media">Veure la solució per el repte.</a></p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>Si teniu dificultats per entendre aquesta pàgina, o si teniu altres comentaris al respecte, si us plau, contribuïu a la vostre pàgina de <a href="/Talk:en-US/docs/Web/Guide/CSS/Getting_Started/Media" title="Talk:en-US/docs/Web/Guide/CSS/Getting_Started/Media">Discussió</a>.</p> + +<p>Fins al moment, totes les regles d'estil en aquest tutorial s'han especificat en els arxius. Les regles i els seus valors són fixos. La pàgina següent descriu com poden canviar les regles de forma dinàmica mitjançant l'ús d'un llenguatge de programació: <strong><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/JavaScript" title="en-US/docs/Web/Guide/CSS/Getting_Started/JavaScript">JavaScript</a></strong></p> diff --git a/files/ca/web/guide/css/inici_en_css/per_què_utilitzar_css/index.html b/files/ca/web/guide/css/inici_en_css/per_què_utilitzar_css/index.html new file mode 100644 index 0000000000..d69cf9cdcf --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/per_què_utilitzar_css/index.html @@ -0,0 +1,110 @@ +--- +title: Per què utilitzar CSS? +slug: Web/Guide/CSS/Inici_en_CSS/Per_què_utilitzar_CSS +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - NeedsBeginnerUpdate + - Web +translation_of: Learn/CSS/First_steps/How_CSS_works +--- +<p><span style="line-height: 1.5;">{{ CSSTutorialTOC() }}</span></p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/What_is_CSS", "Que és CSS?") }}Aquesta segona secció del tutorial <span class="seoSummary"> <a href="/en-US/docs/Web/Guide/CSS/Getting_started" title="en-US/docs/Web/Guide/CSS/Getting_started">CSS Getting Started</a> </span>explica la relació entre la CSS i els documents. En l'exercici aprendreu com afegir un full d'estil CSS en el document d'exemple que vam crear en la primera secció.</p> + +<h2 class="clearLeft" id="Informació_Per_què_utilitzar_CSS">Informació: Per què utilitzar CSS?</h2> + +<p>S'utilitza CSS per definir estils en els documents, incloent el disseny, la disposició i les variacions en la imatge per als diferents dispositius i mides de pantalla. Podeu posar el CSS en el <head> d'un document amb un full d'estils incrustat, o adjuntar un arxiu separat que defineix els estils amb un full d'estils extern. Per enllaçar un full d'estils extern al document, se li afegeix simplement un enllaç al full d'estils en el <head> del document.</p> + +<p>Un full d'estil extern té molts avantatges. Mantenir els estils separats del seu contingut HTML:</p> + +<ul> + <li>Ajuda a evitar la duplicació</li> + <li>Facilita el manteniment</li> + <li>Permet fer un canvi de tot el lloc en un sol lloc</li> +</ul> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>L'ús de CSS, permet emmagatzemar la informació d'estil en arxius comuns que comparteixen totes les pàgines. Per exemple, quan els documents enllaçan amb el mateix full d'estil que defineix el color de les capçaleres h2, es pot aplicar l'estil de les etiquetes de capçalera h2 globalment, canviant un atribut css.</p> + +<p>Quan un usuari visualitza una pàgina web, el navegador de l'usuari carrega la informació d'estil juntament amb el contingut de la pàgina.</p> + +<p>Quan un usuari imprimeix una pàgina web, pot proporcionar informació de diferent estil que fa que la pàgina impresa sigui fàcil de llegir.</p> +</div> + +<p>Com fer que HTML i CSS treballin junts? En general, s'utilitza HTML per descriure el contingut del document, no el seu estil. CSS s'utilitza per especificar l'estil del document, no el seu contingut. Més endavant en aquest tutorial, veureu algunes excepcions a aquesta disposició.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Un llenguatge de marcatge com l'HTML també proporciona algunes formes d'establir estil.</p> + +<div>Per exemple, en HTML es pot utilitzar una etiqueta <b> per fer el text en negreta, i establir el color de fons d'una pàgina en la seva etiqueta <body>.</div> + +<div> </div> + +<p>Quan s'utilitza CSS, normalment s'evita l'ús d'aquestes característiques del llenguatge de marcat, de manera que tota la informació d'estil del document està en un sol lloc.</p> +</div> + +<h2 id="Acció_Crear_un_full_d'estil"><span>Acció</span><span>:</span> C<span>rear un full</span> <span>d'estil</span></h2> + +<ol> + <li>Creeu un altre arxiu de text en el mateix directori que el document doc1.html que vau crear en la primera secció.</li> + <li>Guardeu el document com: style1.css. Aquest fitxer serà el full d'estil.</li> + <li>A l'arxiu CSS, copieu i enganxeu aquesta línia, a continuació, deseu el fitxer: + <pre class="brush: css">strong {color: red;} +</pre> + </li> +</ol> + +<h3 id="Vincular_el_document_al_full_d'estils"><span class="short_text" id="result_box" lang="ca"><span>Vincular el</span> <span>document</span> <span>al full</span> <span>d'estils</span></span></h3> + +<ol> + <li><span>Per</span> <span>enllaçar</span> <span>el document</span> <span>al full</span> <span>d'estils</span><span>, editar</span> <span>l'arxiu HTML.</span> <span>Afegiu-hi la</span> <span>línia</span> <span>ressaltada</span> <span>aquí</span><span>:</span> + + <pre class="brush: html; highlight:[6];"><!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Sample document</title> + <link rel="stylesheet" href="style1.css"> + </head> + <body> + <p> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets + </p> + </body> +</html> +</pre> + </li> + <li>Deseu el fitxer i refrescar la pantalla del navegador. El full d'estil fa que les lletres inicials siguin de color vermell, com aixó:</li> +</ol> + +<p>{{ EmbedLiveSample('Action_Creating_a_stylesheet', '', '', '', 'Web/Guide/CSS/Getting_started/Why_use_CSS') }}</p> + +<p>{{ LiveSampleLink('Action.3A_Creating_a_stylesheet', 'View above Demo') }}</p> + +<div class="tuto_example" id="challenge"> +<div class="tuto_type">Repte</div> + +<p><span id="result_box" lang="ca"><span>A més de</span> <span>vermell</span><span>, CSS</span> <span>permet a alguns</span> <span>altres noms</span> <span>de colors.</span></span></p> + +<p>Sense buscar una referència, trobar cinc noms més de colors que treballin en el full d'estil.</p> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<p>CSS supports common color names like <code>orange</code>, <code>yellow</code>, <code>blue</code>, <code>green</code>, or <code>black</code>. It also supports some more exotic color names like <code>chartreuse</code>, <code>fuschia</code>, or <code>burlywood</code>. See <a href="/en-US/docs/CSS/color_value" title="The CSS color data type">CSS Color value</a> for a complete list as well as other ways of specifying colors.</p> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte</a></div> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_started/How_CSS_works", "Com funciona el CSS.")}}Ara teniu un document de mostra vinculat a un full d'estil separat, ja esteu llestos per <a href="/en-US/docs/Web/Guide/CSS/Getting_started/How_CSS_works" title="/en-US/docs/Web/Guide/CSS/Getting_started/How_CSS_works">aprendre més</a> sobre com el navegador les combina quan es mostra el document.</p> diff --git a/files/ca/web/guide/css/inici_en_css/que_és_css/index.html b/files/ca/web/guide/css/inici_en_css/que_és_css/index.html new file mode 100644 index 0000000000..70d89e8306 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/que_és_css/index.html @@ -0,0 +1,119 @@ +--- +title: Que és CSS? +slug: Web/Guide/CSS/Inici_en_CSS/Que_és_CSS +tags: + - Beginner + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - NeedsBeginnerUpdate + - Web +translation_of: Learn/CSS/First_steps/How_CSS_works +--- +<div>{{CSSTutorialTOC}}</div> + +<p>{{previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started", "Inici en CSS")}} Aquesta primera secció del tutorial <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started">CSS Getting Started</a> explica breument les fulles d'estil en cascada (CSS). També es crearà un document senzill per utilitzar en els exercicis CSS en les seccions següents.</p> + +<h2 class="clearLeft" id="Informació_Que_és_CSS">Informació: Que és CSS?</h2> + +<p><span id="result_box" lang="ca"><span>Fulles</span> <span>d'estil en</span> <span>cascada</span></span> (<dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn>) <span lang="ca"><span>és un llenguatge</span> <span>per</span> <span>especificar com</span> <span>els</span> <span>documents</span> <span>es</span> <span>presenten als</span> <span>usuaris.</span> <span>Aquests</span> <span>documents</span> <span>estan</span> <span>escrits</span> <span>en un llenguatge</span> <span>de marcat</span> <span>com ara <a href="https://developer.mozilla.org/en-US/docs/Glossary/HTML">HTML</a></span><span>.</span></span></p> + +<p>Un document és un recull d'informació que s'estructura utilitzant un <em>llenguatge de marcat</em>.</p> + +<p>La <em>presentació</em> d'un document a un usuari vol dir convertir-lo en una format utilitzable per al seu públic. Navegadors, com Firefox, Chrome o Internet Explorer, estan dissenyats per a presentar documents visuals, per exemple, en una pantalla d'ordinador, un projector o una impressora.</p> + +<div class="tuto_example"> +<p><strong>Exemples</strong></p> + +<ul> + <li>Una pàgina web com la què esteu llegint és un document. La informació que es veu en una pàgina web sol estructurar-se utilitzant el llenguatge de marcat HTML (HyperText Markup Language).</li> + <li>Quadres de diàleg en una aplicació, també anomenades finestres modals, són sovint documents.Tals diàlegs també es poden estructurar utilitzant un llenguatge de marcat, com XUL (XML User Interface Language), que es troba en algunes aplicacions de Mozilla.</li> +</ul> +</div> + +<p>En aquest tutorial, caixes amb el subtítol, <strong>Més detalls</strong>, com la de baix, contenen informació opcional i enllaços a més recursos en un concepte o tema tractat en una secció. Llegir-los com els veieu, seguir els enllaços, o ometre aquestes caixes i tornar a llegir-los més tard.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>Un document no és el mateix que un arxiu. Però, es pot desar un document en un arxiu.</p> + +<p>El document que esteu llegint en aquest moment no està emmagatzemat en un arxiu. Quan el navegador demana aquesta pàgina, el servidor consulta una base de dades i genera el document, recollint les parts del document de diferents arxius. No obstant això, aquest tutorial també pot treballar amb documents emmagatzemats en arxius.</p> + +<p>Podeu trobar més informació sobre els documents i llenguatges de marcatge en altres àrees d'aquest lloc web:</p> + +<table style="background-color: inherit; margin-left: 2em;"> + <tbody> + <tr> + <td><a href="/en-US/docs/Web/HTML" title="/en-US/docs/Web/HTML">HTML</a></td> + <td>per pàgines web</td> + </tr> + <tr> + <td><a href="/en-US/docs/XML" title="/en-US/docs/XML">XML</a></td> + <td><span id="result_box" lang="ca"><span>per documents</span> <span>estructurats en</span> <span>general</span></span></td> + </tr> + <tr> + <td><a href="/en-US/docs/Web/SVG" title="/en-US/docs/Web/SVG">SVG</a></td> + <td>per gràfics</td> + </tr> + <tr> + <td><a href="/en-US/docs/XUL" title="/en-US/docs/XUL">XUL</a></td> + <td><span id="result_box" lang="ca"><span>per interfícies</span> <span>d'usuari en</span> <span>Mozilla</span></span></td> + </tr> + </tbody> +</table> + +<p>A la Part II d'aquest tutorial podreu veure exemples d'aquests llenguatges de marques.</p> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>En la terminologia formal de CSS, el programa que presenta un document a un usuari se anomenat un <em>agent d'usuari</em> (UA). Un navegador és un tipus d'UA. CSS no és només per a navegadors o presentació visual, però en la part I d'aquesta guia, solament es treballarà amb CSS en un navegador.</p> + +<p>Per a les definicions formals de terminologia relatives a la CSS, consulteu <a class="external" href="http://www.w3.org/TR/CSS21/conform.html#q1">Definitions</a> en l'especificació CSS del World Wide Web Consortium (W3C), una comunitat internacional que estableix estàndards oberts per al web.</p> +</div> + +<h2 id="Acció_Creació_d'un_document"><span class="short_text" id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Creació</span> <span>d'un</span> <span>document</span></span></h2> + +<ol> + <li>Creeu un nou directori en l'ordinador per guardar i organitzar els exercicis del tutorial.</li> + <li>Obriu un editor de text i crear un nou arxiu de text. Aquest arxiu contindrà el document per als pròxims exercicis tutorials.</li> + <li>Copieu i enganxeu el codi HTML que es mostra a continuació. Deseu el fitxer amb el nom doc1.html + <pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Sample document</title> + </head> + + <body> + <p> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets + </p> + </body> +</html></pre> + + <p>{{ LiveSampleLink('Action_Creating_a_document', 'View above Demo') }}</p> + </li> + <li>Obriu una nova pestanya o una nova finestra, a continuació, obriu el fitxer que acabeu de crear. + <p>Hauria de veure el text amb les lletres inicials en negreta, com aquestes:</p> + + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td><strong>C</strong>ascading <strong>S</strong>tyle <strong>S</strong>heets</td> + </tr> + </tbody> + </table> + + <p>El que veieu en el navegador pot no ser exactament el mateix a causa de la configuració del navegador i d'aquesta wiki. Algunes diferències en el tipus de lletra, espaiat i colors no són importants.</p> + </li> +</ol> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Why_use_CSS", "Per què utilitzar CSS?")}} El document encara no utilitza CSS. A la següent secció farem servir CSS per l'estil del document.</p> diff --git a/files/ca/web/guide/css/inici_en_css/selectors/index.html b/files/ca/web/guide/css/inici_en_css/selectors/index.html new file mode 100644 index 0000000000..32eaccf00b --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/selectors/index.html @@ -0,0 +1,455 @@ +--- +title: Selectors +slug: Web/Guide/CSS/Inici_en_CSS/Selectors +tags: + - Beginner + - CSS + - CSS Selector + - 'CSS:Getting_Started' + - Example + - Guide + - NeedsBeginnerUpdate + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Learn/CSS/Building_blocks/Selectors +--- +<p>{{ CSSTutorialTOC() }}</p> + +<p>{{ previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Cascading_and_inheritance", "Cascada & herència")}}Aquesta 5th secció del tutorial <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started">CSS Getting Started</a>; s'explica com es poden aplicar estils de forma selectiva, i com els diferents tipus de selectors tenen diferents prioritats. Afegir alguns atributs a les etiquetes en el document d'exemple, i utilitzar aquests atributs en el full d'estils d'exemple.</p> + +<h2 class="clearLeft" id="Informació_Selectors">Informació: Selectors</h2> + +<p>CSS té la seva pròpia terminologia per descriure el llenguatge CSS. Anteriorment en aquest tutorial, heu creat una línia al full d'estils com aquesta:</p> + +<pre class="brush: css">strong { + color: red; +} +</pre> + +<p>En la terminologia de CSS, tota aquesta línia és una <em>regla</em>. Aquesta regla s'inicia amb strong, que és un <em>selector</em> (o una llista de <em>selectors</em>). Es selecciona quins elements del DOM s'aplica la regla.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>La part dins de les claus és la <em>declaració</em>.</p> + +<p>L'identificador color és una <em>propietat</em>, i el vermell és un <em>valor</em>.</p> + +<p>El punt i coma després del parell propietat-valor fa de separació d'altres parells propietat-valor en la mateixa declaració.</p> + +<p>En aquest tutorial es refereix a un selector com strong com un selector d'etiquetes. L'especificació CSS es refereix a ell com un selector de <em>tipus</em>.</p> +</div> + +<p>Aquesta pàgina del tutorial explica més sobre els selectors que es poden utilitzar en les regles CSS.</p> + +<p>A més dels noms de les etiquetes, podeu utilitzar els valors dels atributs en els selectors. Això permet que les regles siguin més específiques.</p> + +<p>Dos atributs tenen un estatus especial per CSS. Són <a href="/en-US/docs/Web/HTML/Global_attributes#attr-class" title="en-US/docs/Web/HTML/Global_attributes#attr-class"><code>class</code></a> i <a href="/en-US/docs/Web/HTML/Global_attributes#id" title="en-US/docs/Web/HTML/Global_attributes#id"><code>id</code></a>.</p> + +<h3 id="Selectors_class">Selectors class</h3> + +<p>Utilitzeu l'atribut <a href="/en-US/docs/Web/HTML/Global_attributes#attr-class" title="en-US/docs/Web/HTML/Global_attributes#attr-class"><code>class</code></a> en un element per assignar l'element un nom de classe. Depèn de vosaltres el nom que trieu per a la classe. Múltiples elements d'un document poden tenir el mateix valor de classe.</p> + +<p>En el full d'estil, escriviu un punt (. punt) abans del nom de la classe, quan s'utilitza en un selector.</p> + +<h3 id="Selectors_ID">Selectors ID</h3> + +<p>Utilitzeu l'atribut <a href="/en-US/docs/Web/HTML/Global_attributes#id" title="en-US/docs/Web/HTML/Global_attributes#id"><code>id</code></a> en un element per assignar un identificador a l'element. Depèn de vosaltres el nom que trieu per a l'identificador. El nom de l'identificador ha de ser únic en el document.</p> + +<p>En el full d'estil, escriviu un signe (# hash) abans de l'identificador quan s'utilitza en un selector.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> +Aquesta etiqueta HTML té tant un atribut <code>class</code> com un atribut <code>id</code>: + +<pre class="brush: html"><p class="key" id="principal"> +</pre> + +<p>El valor <strong>id</strong>, <code>principal</code>, ha de ser únic en el document, però altres etiquetes en el document poden tenir el mateix nom de la class, <code>key</code>.</p> + +<p>En un full d'estil CSS, aquesta regla fa que tots els elements amb la class <code>key</code> siguin verds. (Pot ser que no tots siguin elements {{ HTMLElement("p") }}.)</p> + +<pre class="brush: css">.key { + color: green; +} +</pre> + +<p>Aquesta regla fa que l'únic element amb el <strong>id</strong> <code>principal</code> sigui negreta:</p> + +<pre class="brush: css">#principal { + font-weight: bolder; +} +</pre> +</div> + +<h3 id="Selectors_d'atributs"><span class="short_text" id="result_box" lang="ca"><span>Selectors</span> <span>d'atributs</span></span></h3> + +<p>No està limitat als dos atributs especials, <code>class</code> i <code>id</code>. Podeu especificar <a href="/en-US/docs/Web/CSS/Attribute_selectors" title="/en-US/docs/Web/CSS/Attribute selectors">altres atributs</a> mitjançant claudàtors. Dins dels claudàtors es posa el nom de l'atribut, opcionalment seguit d'un operador coincident i un valor. A més, es pot fer entre majúscules i minúscules afegint una "i" després del valor, però no molts navegadors són compatibles amb aquesta funció fins al moment. Exemples:</p> + +<dl> + <dt><code>[disabled]</code></dt> + <dd>Selecciona tots els elements amb un atribut "disabled".</dd> + <dt><code>[type='button']</code></dt> + <dd>Selecciona els elements amb un tipus "button".</dd> + <dt><code>[class~=key]</code></dt> + <dd>Selecciona elements amb la class "key" (però no, per exemple, "keyed", "monkey", "buckeye"). Funcionalment equivalent a <code>.key</code>.</dd> + <dt><code>[lang|=es]</code></dt> + <dd>Selecciona els elements especificats com espanyol. Això inclou "es" i "es-MX", però no "eu-ES" (que és basca).</dd> + <dt>[title*="example" i]</dt> + <dd>Selecciona elements title els quals conté "example", <span id="result_box" lang="ca"><span>ignorant</span> <span>majúscules i</span> <span>minúscules</span></span> . En els navegadors que no admeten l'indicador "i", aquest selector probablement no coincidirà amb cap element.</dd> + <dt><code>a[href^="https://"]</code></dt> + <dd>Especifica com ha de començar el valor de l'atribut; en aquest cas, es selecciona enllaços segurs.</dd> + <dt><code>img[src$=".png"]</code></dt> + <dd>Selecciona elements el valor dels quals finalitza amb la cadena proporcionada. Indirectament selecciona imatges PNG; les imatges són PNGs però la URL de les quals no acabi en ".png" no seràn seleccionades (e.g. `src="some-image.png?_=cachebusterhash"`).</dd> +</dl> + +<h3 id="Selectors_de_pseudo-classes">Selectors de pseudo-classes</h3> + +<p>Un pseudo-classe CSS és una paraula clau afegida als selectors que especifica un estat especial de l'element a seleccionar. Per exemple {{ Cssxref(":hover") }} aplicarà un estil quan l'usuari es desplaci sobre l'element especificat pel selector.</p> + +<p>Les pseudo-classes, juntament amb els pseudo-elements, permeten aplicar un estil a un element no només en relació amb el contingut de l'estructura del document, sinó també en relació als factors externs com l'historial del navegador ({{ cssxref(":visited") }}, per exemple), l'estat del seu contingut (com {{ cssxref(":checked") }} en alguns elements de formulari), o la posició del ratolí (com {{ cssxref(":hover") }} que permet saber si el ratolí està sobre un element o no). Per veure una llista completa dels selectors, visiteu <a href="http://www.w3.org/TR/selectors/#selectors">especificació CSS3 Selectors working</a>.</p> + +<div class="tuto_example"> +<div class="tuto_type">Sintaxi</div> + +<pre class="brush:css">selector:pseudo-class { + property: value; +} +</pre> +</div> + +<h4 id="Llista_de_pseudo-classes">Llista de pseudo-classes</h4> + +<ul> + <li>{{ Cssxref(":link") }}</li> + <li>{{ Cssxref(":visited") }}</li> + <li>{{ Cssxref(":active") }}</li> + <li>{{ Cssxref(":hover") }}</li> + <li>{{ Cssxref(":focus") }}</li> + <li>{{ Cssxref(":first-child") }}</li> + <li>{{ Cssxref(":last-child") }}</li> + <li>{{ Cssxref(":nth-child") }}</li> + <li>{{ Cssxref(":nth-last-child") }}</li> + <li>{{ Cssxref(":nth-of-type") }}</li> + <li>{{ Cssxref(":first-of-type") }}</li> + <li>{{ Cssxref(":last-of-type") }}</li> + <li>{{ Cssxref(":empty") }}</li> + <li>{{ Cssxref(":target") }}</li> + <li>{{ Cssxref(":checked") }}</li> + <li>{{ Cssxref(":enabled") }}</li> + <li>{{ Cssxref(":disabled") }}</li> +</ul> + +<h3 id="Llista_de_selectors">Llista de selectors</h3> + +<p>Una regla pot ser compartida per molts selectors mitjançant una coma (,) per separar els selectors.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> +En l'exemple, ambdós elements que tenen la classe "content-1" i elements que tenen la classe "content-2" per visualitzar el text en negreta. + +<pre class="brush:css">.content-1, .content-2 { + font-weight: bold; +} +</pre> +</div> + +<h2 id="Informació_Especificitat"><span class="short_text" id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>Especificitat</span></span></h2> + +<p>Diverses regles poden tenir selectors que coincideixin amb el mateix element. Si una propietat es dóna en una sola regla, no hi ha conflicte i la propietat s'estableix en l'element. Si més d'una regla s'aplica a un element i estableix la mateixa propietat, llavors CSS dóna prioritat a la regla que té el selector més específic. Un selector de ID és més <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity">específic</a> que una classe, pseudo-classe o selector d'atribut, que al seu torn són més específics que un selector d'etiquetes o pseudo-element.</p> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>També es poden combinar selectors, fent un selector més específic. Per exemple, el selector <code>.key</code> selecciona tots els elements que tenen el nom de classe <code>key</code>. El selector <code>p.key</code> selecciona només elements {{ HTMLElement("p") }} que tenen el nom de classe <code>key</code>.</p> +</div> + +<p>Si el full d'estil té un conflicte de regles i són igualment específiques, llavors CSS doneu prioritat a la regla que és més posterior en el full d'estil.</p> + +<p>Quan tingueu un problema amb regles en conflicte, tracteu de resoldre-ho fent una de les regles més específiques, de manera que tingui prioritat. Si no podeu fer-ho, tracteu de moure una de les regles el més prop del final de la fulla d'estils perquè tingui prioritat.</p> + +<h2 id="Informació_Els_selectors_basats_en_relacions"><span class="short_text" id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>Els</span> <span>selectors</span> <span>basats</span> <span>en relacions</span></span></h2> + +<p>CSS té algunes maneres de seleccionar elements en funció de les relacions entre els elements. Podeu utilitzar aquests per fer selectors que siguin més específics.</p> + +<table id="relselectors"> + <caption>Selectors comuns basats en les relacions</caption> + <tbody> + <tr> + <td style="width: 10em;"><strong>Selector</strong></td> + <td><strong>Seleccions</strong></td> + </tr> + <tr> + <td><code>A E</code></td> + <td>Qualsevol element E que és un <em>descendent</em> d'un element A (que és: un fill, o un fill d'un fill, <em>etc</em>.)</td> + </tr> + <tr> + <td><code>A > E</code></td> + <td>Qualsevol element E que és un <em>fill</em> (és a dir, descendent directe) d'un element A</td> + </tr> + <tr> + <td><code>E:first-child</code></td> + <td>Qualsevol element E que és el <em>primer fill</em> del seu pare</td> + </tr> + <tr> + <td><code>B + E</code></td> + <td>Qualsevol element E que és el següent <em>germà</em> d'un element B (és a dir: el següent fill del mateix pare)</td> + </tr> + </tbody> +</table> + +<p>Es poden combinar aquests per expressar relacions complexes.</p> + +<p>També es pot utilitzar el símbol * (asterisc) en el sentit de "qualsevol element".</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Una taula HTML té un atribut <code>id</code>, però les seves files i cel·les no tenen identificadors individuals:</p> + +<pre class="brush: html"><table id="data-table-1"> +... +<tr> +<td>Prefix</td> +<td>0001</td> +<td>default</td> +</tr> +... +</pre> + +<p>Aquestes regles fan que la primera cel·la de cada fila estigui subratllat, i el germà de la primera cel·la de cada fila estigui tachat (en l'exemple la 2a cel·le). Només afecta a una taula específica en el document:</p> + +<pre class="brush:css"> #data-table-1 td:first-child {text-decoration: underline;} + #data-table-1 td:first-child + td {text-decoration: line-through;} +</pre> + +<p>Aquest és el resultat:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td> + <table style="margin-right: 2em; width: 18em;"> + <tbody> + <tr> + <td><u>Prefix</u></td> + <td><s>0001</s></td> + <td>default</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Més detalls</div> + +<p>En la forma habitual, si feu un selector més específic, llavors s'augmenta la seva prioritat.</p> + +<p>Si utilitzeu aquestes tècniques, s'evita la necessitat d'especificar els atributs <code>class</code> o <code>id</code> en tantes etiquetes en el document. En el seu lloc, CSS fa la feina.</p> + +<p>En grans dissenys on la velocitat és important, podeu fer que les vostres fulles d'estil siguin més eficients, evitant regles complexes que depenen de les relacions entre els elements.</p> + +<p>Per a més exemples sobre taules, consulteu <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Tables" title="en-US/docs/Web/Guide/CSS/Getting_Started/Tables">Taules</a> en la pàgina Referència CSS..</p> +</div> + +<h2 id="Acció_Ús_dels_selectors_class_i_ID">Acció: Ús dels selectors class i ID</h2> + +<ol> + <li>Editeu l'arxiu HTML, i duplicar el paràgraf copiant i enganxant.</li> + <li>A continuació, afegir els atributs <strong>id</strong> i <strong>class</strong> a la primera còpia, i un atribut <strong>id</strong> a la segona còpia com es mostra a continuació. Com a alternativa, copiar i enganxar tot l'arxiu de nou: + <pre class="brush: html"><!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Sample document</title> + <link rel="stylesheet" href="style1.css"> + </head> + <body> + <p id="first"> + <strong class="carrot">C</strong>ascading + <strong class="spinach">S</strong>tyle + <strong class="spinach">S</strong>heets + </p> + <p id="second"> + <strong>C</strong>ascading + <strong>S</strong>tyle + <strong>S</strong>heets + </p> + </body> +</html> +</pre> + </li> + <li><span id="result_box" lang="ca"><span>Ara</span> <span>editeu el fitxer</span> <span>CSS.</span> <span>Substituir</span> <span>tot</span> <span>el contingut</span> <span>per</span><span>:</span></span> + <pre class="brush:css">strong { color: red; } +.carrot { color: orange; } +.spinach { color: green; } +#first { font-style: italic; } +</pre> + </li> + <li>Guardeu els arxius i actualitzar el navegador per veure el resultat: + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font-style: italic;"><strong style="color: orange;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> + </table> + + <p>Podeu tractar de reordenar les línies de l'arxiu CSS per mostrar que l'ordre no té efecte.</p> + + <p>Els selectors class <code>.carrot</code> i <code>.spinach</code> tenen prioritat sobre el selector d'etiqueta <code>strong</code>.</p> + + <p>El selector ID <code>#first</code> té prioritat sobre els selectors class i tag.</p> + </li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Reptes</div> + +<ol> + <li>Sense canviar el arxiu HTML, afegiu una sola regla a l'arxiu CSS que mantingui totes les lletres inicials en el mateix color que estan ara, però faci que tot l'altre text en el segon paràgraf sigui blau: + <table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font-style: italic;"><strong style="color: orange;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td style="color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> + </table> + </li> + <li>Ara canvieu la regla que acabeu d'afegir (sense canviar res més), per fer el primer paràgraf també blau: + <table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="font-style: italic; color: blue;"><strong style="color: orange;">C</strong>ascading <strong style="color: green;">S</strong>tyle <strong style="color: green;">S</strong>heets</td> + </tr> + <tr> + <td style="color: blue;"><strong style="color: red;">C</strong>ascading <strong style="color: red;">S</strong>tyle <strong style="color: red;">S</strong>heets</td> + </tr> + </tbody> + </table> + </li> +</ol> + +<div class="tuto_details" id="tutochallenge"> +<div class="tuto_type">Possible solution</div> + +<ol> + <li>Add a rule with an ID selector of <code>#second</code> and a declaration <code>color: blue;</code>, as shown below: + + <pre class="brush: css">#second { color: blue; } +</pre> + A more specific selector, <code>p#second</code> also works.</li> + <li>Change the selector of the new rule to be a tag selector using <code>p</code>: + <pre class="brush: css">p { color: blue; } +</pre> + </li> +</ol> +<a class="hideAnswer" href="#challenge">Hide solution</a></div> +<a href="#tutochallenge" title="Display a possible solution for the challenge">Veure la solució per el repte.</a></div> + +<h2 id="Acció_L'ús_de_selectors_de_pseudo-classes">Acció: L'ús de selectors de pseudo-classes</h2> + +<ol> + <li><span class="short_text" id="result_box" lang="ca"><span>Creeu un arxiu</span> <span>HTML amb el</span> <span>següent</span> <span>contingut</span><span>:</span></span> + + <pre class="brush: html"><!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Sample document</title> + <link rel="stylesheet" href="style1.css"> + </head> + <body> + <p>Go to our <a class="homepage" href="http://www.example.com/" title="Home page">Home page</a>.</p> + </body> +</html> +</pre> + </li> + <li>Ara editeu el fitxer CSS. Substituir tot el contingut per: + <pre class="brush: css">a.homepage:link, a.homepage:visited { + padding: 1px 10px 1px 10px; + color: #fff; + background: #555; + border-radius: 3px; + border: 1px outset rgba(50,50,50,.5); + font-family: georgia, serif; + font-size: 14px; + font-style: italic; + text-decoration: none; +} + +a.homepage:hover, a.homepage:focus, a.homepage:active { + background-color: #666; +} +</pre> + </li> + <li>Guardeu els arxius i actualitzar el navegador per veure el resultat (posar el ratolí sobre el següent enllaç per veure l'efecte): + <table style="border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td>Anem-nos <a class="tutospecial" href="#" title="Home page">Home page</a><span style="display: none;"> </span><span style="display: none;"> </span></td> + </tr> + </tbody> + </table> + </li> +</ol> + +<h2 id="Acció_L'ús_de_selectors_basats_en_les_relacions_i_pseudo-classes"><span id="result_box" lang="ca"><span>Acció</span><span>: L'ús de</span> <span>selectors</span> <span>basats en</span> <span>les</span> <span>relacions</span> <span>i pseudo</span><span>-</span><span>classes</span></span></h2> + +<p>Amb els selectors basats en relacions i pseudo-classes es poden crear complexes algoritmes en cascada. Aquesta és una tècnica comuna que s'utilitza, per exemple, amb la finalitat de crear <strong>menús desplegables en CSS pur</strong> (això només és CSS, sense necessitat d'utilitzar<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript"> JavaScript</a>). L'essència d'aquesta tècnica és la creació d'una regla com la següent:</p> + +<pre class="brush: css">div.menu-bar ul ul { + display: none; +} + +div.menu-bar li:hover > ul { + display: block; +}</pre> + +<p><span id="result_box" lang="ca"><span class="alt-edited">per a ser aplicat a una estructura HTML com la següent:</span></span></p> + +<pre class="brush: html"><div class="menu-bar"> + <ul> + <li> + <a href="example.html">Menu</a> + <ul> + <li> + <a href="example.html">Link</a> + </li> + <li> + <a class="menu-nav" href="example.html">Submenu</a> + <ul> + <li> + <a class="menu-nav" href="example.html">Submenu</a> + <ul> + <li><a href="example.html">Link</a></li> + <li><a href="example.html">Link</a></li> + <li><a href="example.html">Link</a></li> + <li><a href="example.html">Link</a></li> + </ul> + </li> + <li><a href="example.html">Link</a></li> + </ul> + </li> + </ul> + </li> + </ul> +</div> +</pre> + +<p>Vegeu el exemple complet d'un menú desplegable basat en CSS com a possible referència.</p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>La vostre fulla d'estils, d'exemple, està començant a semblar densa i complicada. La següent secció descriu la manera de fer més <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Readable_CSS" title="/en-US/docs/Web/Guide/CSS/Getting_Started/Readable_CSS">fàcil de llegir</a> la CSS.{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Readable_CSS", "CSS llegible")}}</p> diff --git a/files/ca/web/guide/css/inici_en_css/svg_i_css/index.html b/files/ca/web/guide/css/inici_en_css/svg_i_css/index.html new file mode 100644 index 0000000000..6dac20b5a6 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/svg_i_css/index.html @@ -0,0 +1,223 @@ +--- +title: SVG i CSS +slug: Web/Guide/CSS/Inici_en_CSS/SVG_i_CSS +tags: + - CSS + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsLiveSample + - NeedsUpdate + - SVG + - Web +translation_of: Web/SVG/Tutorial/SVG_and_CSS +--- +<div>{{CSSTutorialTOC}}</div> + +<p>Aquesta pàgina il·lustra l'aplicació de CSS per al llenguatge especialitzat en la creació de gràfics: <a href="/en-US/docs/SVG">SVG</a>.</p> + +<p>Crea una demostració senzilla que s'executa en el vostre navegador habilitat per SVG.</p> + +<p>Aquesta és la 2nd secció de la Part II del <a href="/en-US/docs/Web/Guide/CSS/Getting_started">tutorial CSS</a>.<br> + Secció anterior: <a href="/en-US/docs/Web/JavaScript/Getting_Started">JavaScript</a><br> + Secció següent: <a href="/en-US/docs/Web/Guide/CSS/Getting_started/XML_data">XML data</a></p> + +<h3 id="Information:_SVG" name="Information:_SVG"><span id="result_box" lang="ca"><span>Informació</span><span>:</span> <span>SVG</span></span></h3> + +<p><span id="result_box" lang="ca"><em><span>SVG</span></em> <span>(</span><span>Scalable</span> <span>Vector</span> <span>Graphics</span><span>)</span> <span>és</span> <span>un llenguatge</span> <span>basat</span> <span>en XML</span> <span>per a la</span> <span>creació</span> <span>de gràfics</span><span>.</span></span></p> + +<p><span id="result_box" lang="ca"><span>Es</span> <span>pot</span> <span>utilitzar</span> <span>per a imatges</span> <span>estàtiques,</span> <span>i</span> <span>també</span> <span>per a animacions</span> <span>i interfícies</span> <span>d'usuari.</span></span></p> + +<p>Igual que altres llenguatges basats en XML, SVG suporta fulles d'estil CSS perquè pugui separar l'estil d'un gràfic del seu contingut.</p> + +<p>A més, les fulles d'estil que s'utilitzen amb altres llenguatges de marcat de documents poden especificar l'adreça URL d'un gràfic SVG on es requereix una imatge. Per exemple, una fulla d'estil que s'utilitza amb un document HTML pot especificar l'adreça URL d'un gràfic SVG en el valor d'una propietat <code>background</code>.</p> + +<table style="background-color: #f4f4f4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em; width: 100%;"> + <caption>Més detalls</caption> + <tbody> + <tr> + <td> + <p>En el moment d'escriure (mitjans 2011), la majoria dels navegadors moderns tenen suport bàsic per a SVG, incloent Internet Explorer 9 o superior. Algunes de les característiques de SVG són compatibles parcialment o no en alguns navegadors. Consulteu les <a href="http://caniuse.com/#search=SVG">taulae SVG en caniuse.com</a> per a una visió general de suport per SVG, o les taules de compatibilitat <a href="/en-US/docs/SVG/Element">referència de l'element SVG</a> per al suport de determinats elements.</p> + + <p>Podeu afegir suport SVG a altres versions mitjançant la instal·lació d'un plug-in, com el proporcionat per <a href="http://www.adobe.com/svg/viewer/install/main.html">Adobe</a>.</p> + + <p>Per obtenir més informació sobre SVG en Mozilla, consulteu la pàgina principal de <a href="/en-US/docs/SVG">SVG</a> al wiki.</p> + </td> + </tr> + </tbody> +</table> + +<h3 id="Action:_An_SVG_demonstration" name="Action:_An_SVG_demonstration"><span id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Una demostració</span> <span>SVG</span></span></h3> + +<p><span id="result_box" lang="ca"><span>Feu</span> <span>un nou</span> <span>document</span> <span>SVG</span> <span>com</span> <span>un arxiu de</span> <span>text</span> <span>pla,</span> <code><span>doc8.svg</span></code><span>.</span> <span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí</span><span>,</span> <span>assegurant-se que</span> us <span>desplaceu</span> <span>per obtenir</span> <span>tota ella</span><span>;</span></span></p> + +<pre class="brush: xml"><?xml version="1.0" standalone="no"?> + +<?xml-stylesheet type="text/css" href="style8.css"?> + +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> + +<svg width="600px" height="600px" viewBox="-300 -300 600 600" + xmlns="http://www.w3.org/2000/svg" version="1.1" + xmlns:xlink="http://www.w3.org/1999/xlink"> + +<title>SVG demonstration</title> +<desc>Mozilla CSS Getting Started - SVG demonstration</desc> + +<defs> + <g id="segment" class="segment"> + <path class="segment-fill" d="M0,0 v-200 a40,40 0 0,0 -62,10 z"/> + <path class="segment-edge" d="M0,-200 a40,40 0 0,0 -62,10"/> + </g> + <g id="quadrant"> + <use xlink:href="#segment"/> + <use xlink:href="#segment" transform="rotate(18)"/> + <use xlink:href="#segment" transform="rotate(36)"/> + <use xlink:href="#segment" transform="rotate(54)"/> + <use xlink:href="#segment" transform="rotate(72)"/> + </g> + <g id="petals"> + <use xlink:href="#quadrant"/> + <use xlink:href="#quadrant" transform="rotate(90)"/> + <use xlink:href="#quadrant" transform="rotate(180)"/> + <use xlink:href="#quadrant" transform="rotate(270)"/> + </g> + <radialGradient id="fade" cx="0" cy="0" r="200" + gradientUnits="userSpaceOnUse"> + <stop id="fade-stop-1" offset="33%"/> + <stop id="fade-stop-2" offset="95%"/> + </radialGradient> + </defs> + +<text id="heading" x="-280" y="-270"> + SVG demonstration</text> +<text id="caption" x="-280" y="-250"> + Move your mouse pointer over the flower.</text> + +<g id="flower"> + <circle id="overlay" cx="0" cy="0" r="200" + stroke="none" fill="url(#fade)"/> + <use id="outer-petals" xlink:href="#petals"/> + <use id="inner-petals" xlink:href="#petals" + transform="rotate(9) scale(0.33)"/> + </g> + +</svg> +</pre> + +<p>Feu una nou arxiu CSS, <code>style8.css</code>. <span id="result_box" lang="ca"><span>Copieu</span> <span>i enganxeu el</span> <span>contingut</span> <span>d'aquí</span><span>,</span> <span>assegurant-se que</span> us <span>desplaceu</span> <span>per obtenir</span> <span>tota ella</span><span>;</span></span></p> + +<pre class="brush: css">/*** SVG demonstration ***/ + +/* page */ +svg { + background-color: beige; + } + +#heading { + font-size: 24px; + font-weight: bold; + } + +#caption { + font-size: 12px; + } + +/* flower */ +#flower:hover { + cursor: crosshair; + } + +/* gradient */ +#fade-stop-1 { + stop-color: blue; + } + +#fade-stop-2 { + stop-color: white; + } + +/* outer petals */ +#outer-petals { + opacity: .75; + } + +#outer-petals .segment-fill { + fill: azure; + stroke: lightsteelblue; + stroke-width: 1; + } + +#outer-petals .segment-edge { + fill: none; + stroke: deepskyblue; + stroke-width: 3; + } + +#outer-petals .segment:hover > .segment-fill { + fill: plum; + stroke: none; + } + +#outer-petals .segment:hover > .segment-edge { + stroke: slateblue; + } + +/* inner petals */ +#inner-petals .segment-fill { + fill: yellow; + stroke: yellowgreen; + stroke-width: 1; + } + +#inner-petals .segment-edge { + fill: none; + stroke: yellowgreen; + stroke-width: 9; + } + +#inner-petals .segment:hover > .segment-fill { + fill: darkseagreen; + stroke: none; + } + +#inner-petals .segment:hover > .segment-edge { + stroke: green; + } +</pre> + +<p>Obriu el document en el navegador habilitat per SVG. Moure el punter del ratolí sobre el gràfic.</p> + +<p>Aquest wiki no suporta SVG en les pàgines, de manera que no es pot mostrar la demostració aquí. El gràfic es veu així:</p> + +<table style="border: 2px outset #3366bb;"> + <tbody> + <tr> + <td><img alt="SVG demonstration" src="https://mdn.mozillademos.org/files/719/SVG-flower.png"></td> + </tr> + </tbody> +</table> + +<p>Notes sobre aquesta demostració:</p> + +<ul> + <li><span id="result_box" lang="ca"><span>El document</span> <span>SVG</span> <span>vincula</span> la<span> fulla</span> <span>d'estil de</span> <span>la forma</span> <span>habitual.</span></span></li> + <li>SVG té les seves pròpies propietats i valors CSS. Algunes d'elles són similars a les propietats CSS per a HTML.</li> +</ul> + +<table style="background-color: #fffff4; border: 1px solid #3366bb; margin-bottom: 1em; padding: 1em;"> + <caption>Repte</caption> + <tbody> + <tr> + <td>Canvieu la fulla d'estil perquè els pètals interns es tornin tots de color rosa quan el punter del ratolí està sobre qualsevol d'ells, sense canviar la forma en què els pètals externs funcionen.</td> + </tr> + </tbody> +</table> + +<p><a href="/en/CSS/Getting_Started/Challenge_solutions#SVG_and_CSS" title="https://developer.mozilla.org/en/CSS/Getting_Started/Challenge_solutions#SVG_and_CSS">Veure la solució per el repte.</a></p> + +<h4 id="What_next.3F" name="What_next.3F">I ara què?</h4> + +<p>En aquesta demostració, el vostre navegador habilitat per SVG ja sap com mostrar els elements SVG. La fulla d'estil només modifica la visualització de certes maneres. Això també és cert per als documents HTML i XUL. Però es pot utilitzar CSS per a documents XML d'ús general, on no hi ha un camí predefinit per mostrar els elements. La pàgina següent mostra això: <a href="/en-US/docs/Web/Guide/CSS/Getting_started/XML_data">dades XML</a></p> diff --git a/files/ca/web/guide/css/inici_en_css/taules/index.html b/files/ca/web/guide/css/inici_en_css/taules/index.html new file mode 100644 index 0000000000..c12e76f397 --- /dev/null +++ b/files/ca/web/guide/css/inici_en_css/taules/index.html @@ -0,0 +1,474 @@ +--- +title: Taules +slug: Web/Guide/CSS/Inici_en_CSS/Taules +tags: + - CSS + - CSS Tables + - 'CSS:Getting_Started' + - Example + - Guide + - Intermediate + - NeedsBeginnerUpdate + - NeedsLiveSample + - NeedsUpdate + - Web +translation_of: Learn/CSS/Building_blocks/Styling_tables +--- +<p>{{CSSTutorialTOC}}{{previousPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Layout", "Disseny")}}</p> + +<p>Aquesta és la 13th secció del tutorial <a href="/en-US/docs/Web/Guide/CSS/Getting_Started" title="en-US/docs/Web/Guide/CSS/Getting Started">CSS Getting Started</a> tutorial; descriu selectors més avançats, i algunes formes específiques en el disseny de taules. Es crea un nou document d'exemple que conté una taula, i un full d'estil per a això.</p> + +<h2 class="clearLeft" id="Informació_Taules">Informació: Taules</h2> + +<p>Una taula és una disposició de la informació en una reixeta rectangular. Algunes taules poden ser complexes, i per a taules complexes, diferents navegadors poden donar resultats diferents.</p> + +<p>En dissenyar el vostre document, utilitzeu una taula per expressar les <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors#relselectors" title="en-US/docs/Web/Guide/CSS/Getting_Started/Selectors#relselectors">relacions</a> entre els elements d'informació. Llavors no importa si els diferents navegadors presenten la informació de manera lleugerament diferent, ja que el significat segueix sent clar.</p> + +<p>No utilitzeu taules en formes inusuals per produir determinats dissenys visuals. Les tècniques de la pàgina anterior d'aquest tutorial (<strong><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Layout" title="en-US/docs/Web/Guide/CSS/Getting_Started/Layout">Disseny</a></strong>) són millors per a aquest propòsit.</p> + +<h3 id="Estructura_de_la_taula">E<span id="result_box" lang="ca"><span>structura de la taula</span></span></h3> + +<p>En una taula, cada peça d'informació es mostra en una <em>cel·la</em>.</p> + +<p>Les cel·les en una línia de la pàgina constitueix una <em>fila</em>.</p> + +<p>En algunes taules, les files poden ser agrupades. Un grup especial de files en l'inici de la taula és la <em>capçalera (header)</em>. Un grup especial de files al final de la taula és el <em>peu de pàgina (footer)</em>. Les principals files de la taula són el <em>cos (body)</em>, i que també podrien estar en grups.</p> + +<p>Les cel·les en una línia de la pàgina conformen una columna, però les columnes tenen un ús limitat en la CSS de les taules.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>La taula de <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors#relselectors" title="en-US/docs/Web/Guide/CSS/Getting_Started/Selectors#relselectors">Selectors basats en relacion</a> en la pàgina <a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors" title="en-US/docs/Web/Guide/CSS/Getting_Started/Selectors">Selectors</a> té deu cel·les en cinc files.</p> + +<p>La primera fila és la capçalera. Les altres quatre files són el cos. No hi ha peu de pàgina.</p> + +<p>Té dues columnes.</p> +</div> + +<p>Aquest tutorial només cobreix taules simples, on els resultats són bastant predictibles. En una taula simple, cada cel·la ocupa només una fila i columna. Es pot utilitzar CSS per a taules complexes en les cel·les que s'estenen (s'estenen a través) més d'una fila o columna, però les taules com aquestes estan més enllà de l'abast d'aquest tutorial bàsic.</p> + +<h3 id="Vores">Vores</h3> + +<p>Les cel·les no tenen marges.</p> + +<p>Les cel·les tenen vores i farciment. Per defecte, les vores estan separades pel valor de la propietat {{cssxref("border-spacing")}} de la taula. També podeu eliminar completament l'espai mitjançant l'establiment de la propietat {{cssxref ("border-collapse")}} de la taula a <code>col·lapsar (collapse)</code>.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquí hi ha tres taules.</p> + +<p>La taula de l'esquerra té 0,5 em espaiat de vores. La taula del centre té espaiat de vores zero. La taula de la dreta ha col·lapsat les vores:</p> + +<pre class="hidden brush: html"><table style="background-color:white; border:2px outset #36b; padding:1em"> + <tbody> + <tr> + <td style="padding-right:2em;"> + <table style="border-spacing:.5em"> + <tbody> + <tr> + <td style="border:1px solid #c00;text-align:center;">Clubs</td> + <td style="border:1px solid #c00;text-align:center;">Hearts</td> + </tr> + <tr> + <td style="border:1px solid #c00;text-align:center;">Diamonds</td> + <td style="border:1px solid #c00;text-align:center;">Spades</td> + </tr> + </tbody> + </table> + </td> + <td style="padding-right:2em;"> + <table style="border-spacing:0px"> + <tbody> + <tr> + <td style="border:1px solid #c00;text-align:center;">Clubs</td> + <td style="border:1px solid #c00;text-align:center;">Hearts</td> + </tr> + <tr> + <td style="border:1px solid #c00;text-align:center;">Diamonds</td> + <td style="border:1px solid #c00;text-align:center;">Spades</td> + </tr> + </tbody> + </table> + </td> + <td style="padding-right:6em;"> + <table style="border-collapse:collapse"> + <tbody> + <tr> + <td style="border:1px solid #c00;text-align:center;">Clubs</td> + <td style="border:1px solid #c00;text-align:center;">Hearts</td> + </tr> + <tr> + <td style="border:1px solid #c00;text-align:center;">Diamonds</td> + <td style="border:1px solid #c00;text-align:center;">Spades</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> +</table> +</div></pre> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em 6em 1em 1em;"> + <tbody> + <tr> + </tr> + </tbody> +</table> + +<p>{{embedLiveSample('Borders', 600)}}</p> +</div> + +<h3 id="Llegendes">Llegendes</h3> + +<p>Un element {{HTMLElement("caption")}} és una etiqueta que s'aplica a tota la taula. Per defecte, es mostra a la part superior de la taula.</p> + +<p>Per moure'l a la part inferior, establiu la seva propietat {{cssxref("caption-side")}} a baix. La propietat s'hereta, de manera que, alternativament, es pot establir sobre la taula o un altre element antecessor.</p> + +<p>Per l'estil del text de la Llegenda, utilitzeu qualsevol de les propietats usuals de text.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquesta taula</span> <span>té</span> <span>una llegenda</span> <span>a la part inferior</span></span>.</p> + +<pre class="brush: css">#demo-table > caption { + caption-side: bottom; + font-style: italic; + text-align: right; +} +</pre> + +<pre class="hidden brush: html"><table style="background-color:white; border:2px outset #36b; padding:1em 6em 1em 1em"> + <tbody> + <tr> + <td> + <table> + <caption style="caption-side: bottom;font-style: italic;text-align: right;">Suits</caption> + <tbody> + <tr> + <td> + <table style="border-collapse:collapse"> + <tbody> + <tr> + <td style="border:1px solid gray;text-align:center;">Clubs</td> + <td style="border:1px solid gray;text-align:center;">Hearts</td> + </tr> + <tr> + <td style="border:1px solid gray;text-align:center;">Diamonds</td> + <td style="border:1px solid gray;text-align:center;">Spades</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> +</table></pre> + +<p>{{embedLiveSample('Captions', 300)}}</p> +</div> + +<h3 id="Cel·les_buides"><span id="result_box" lang="ca"><span>Cel·les</span> <span>buides</span></span></h3> + +<p>Es poden mostrar cel·les buides (és a dir, les seves vores i fons) especificant {{cssxref("empty-cells")}}: show; per a l'element de la taula.</p> + +<p>Es poden amagar mitjançant l'especificació <code>empty-cells: hide</code>;. Llavors, si l'element pare d'una cel·la té un fons, es mostra a través de la cel.la buida.</p> + +<div class="tuto_example"> +<div class="tuto_type">Exemple</div> + +<p>Aquestes taules tenen un fons de color verd pàl·lid. Les seves cel·les tenen un fons gris clar i unes vores gris fosc.</p> + +<p>A la taula de l'esquerra, es mostra la cel·la buida. A la dreta, està oculta:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em;"> + <tbody> + <tr> + <td style="padding-right: 2em;"> + <table style="background-color: #ddffdd;"> + <tbody> + <tr> + <td style="border: 1px solid #555; background-color: #eee;"> </td> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Hearts</td> + </tr> + <tr> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Diamonds</td> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Spades</td> + </tr> + </tbody> + </table> + </td> + <td style="padding-right: 6em;"> + <table style="background-color: #ddffdd;"> + <tbody> + <tr> + <td> </td> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Hearts</td> + </tr> + <tr> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Diamonds</td> + <td style="border: 1px solid #555; background-color: #eee; text-align: center;">Spades</td> + </tr> + </tbody> + </table> + </td> + </tr> + </tbody> +</table> +</div> + +<div class="tuto_details"> +<div class="tuto_type">Detalls</div> + +<p>Per obtenir informació detallada sobre les taules, vegeu <a href="http://www.w3.org/TR/CSS21/tables.html">Taules</a> en l'especificació CSS.</p> + +<p>La informació no va més enllà d'aquest tutorial, però no cobreix les diferències entre els navegadors que poden afectar a taules complexes.</p> +</div> + +<h2 id="Acció_Estil_d'una_taula"><span id="result_box" lang="ca"><span>Acció</span><span>:</span> <span>Estil</span> <span>d'una</span> <span>taula</span></span></h2> + +<ol> + <li>Feu un nou document HTML, <code>doc3.html</code>. Copieu i enganxeu el contingut d'aquí, assegurant-se que es desplaça per obtenir tota ella; + + <pre class="brush: html"><!DOCTYPE html> +<html> + <head> + <title>Sample document 3</title> + <link rel="stylesheet" href="style3.css"> + </head> + <body> + <table id="demo-table"> + <caption>Oceans</caption> + <thead> + <tr> + <th></th> + <th>Area</th> + <th>Mean depth</th> + </tr> + <tr> + <th></th> + <th>million km<sup>2</sup></th> + <th>m</th> + </tr> + </thead> + <tbody> + <tr> + <th>Arctic</th> + <td>13,000</td> + <td>1,200</td> + </tr> + <tr> + <th>Atlantic</th> + <td>87,000</td> + <td>3,900</td> + </tr> + <tr> + <th>Pacific</th> + <td>180,000</td> + <td>4,000</td> + </tr> + <tr> + <th>Indian</th> + <td>75,000</td> + <td>3,900</td> + </tr> + <tr> + <th>Southern</th> + <td>20,000</td> + <td>4,500</td> + </tr> + </tbody> + <tfoot> + <tr> + <th>Total</th> + <td>361,000</td> + <td></td> + </tr> + <tr> + <th>Mean</th> + <td>72,000</td> + <td>3,800</td> + </tr> + </tfoot> + </table> + </body> +</html> +</pre> + </li> + <li>Feu un nova fulla d'estil, <code>style3.css</code>. Copieu i enganxeu el contingut d'aquí, assegurant-se que es desplaça per obtenir tota ella; + <pre class="brush: css">/*** Style for doc3.html (Tables) ***/ + +#demo-table { + font: 100% sans-serif; + background-color: #efe; + border-collapse: collapse; + empty-cells: show; + border: 1px solid #7a7; +} + +#demo-table > caption { + text-align: left; + font-weight: bold; + font-size: 200%; + border-bottom: .2em solid #4ca; + margin-bottom: .5em; +} + + +/* basic shared rules */ +#demo-table th, +#demo-table td { + text-align: right; + padding-right: .5em; +} + +#demo-table th { + font-weight: bold; + padding-left: .5em; +} + + +/* header */ +#demo-table > thead > tr:first-child > th { + text-align: center; + color: blue; +} + +#demo-table > thead > tr + tr > th { + font-style: italic; + color: gray; +} + +/* fix size of superscript */ +#demo-table sup { + font-size: 75%; +} + +/* body */ +#demo-table td { + background-color: #cef; + padding:.5em .5em .5em 3em; +} + +#demo-table tbody th:after { + content: ":"; +} + + +/* footer */ +#demo-table tfoot { + font-weight: bold; +} + +#demo-table tfoot th { + color: blue; +} + +#demo-table tfoot th:after { + content: ":"; +} + +#demo-table > tfoot td { + background-color: #cee; +} + +#demo-table > tfoot > tr:first-child td { + border-top: .2em solid #7a7; +} +</pre> + </li> + <li>Obriu el document en el navegador. Ha de tenir un aspecte molt similar a aquest:<br> + {{EmbedLiveSample("Action_Styling_a_table", 400, 380)}}</li> + <li>Compareu les regles de la fulla d'estil amb la taula que es mostra, per assegurar-se que compreneu l'efecte de cada regla. Si trobeu una regla que no esteu segur sobre ella, comentar-la i refresqueu el navegador per veure què passa. Aquí hi ha algunes notes sobre aquesta taula: + <ul> + <li>La llegenda es troba fora de la vora de la taula.</li> + <li>Si teniu una mida de punt mínim establert en les Opcions, podria afectar el superíndex en km<sup>2</sup>.</li> + <li>Hi ha tres cel·les buides. Dos d'elles permeten mostrar el fons de la taula a través. El tercer té un fons i una vora superior.</li> + <li>Els dos punts son afegits per la fulla d'estil.</li> + </ul> + </li> +</ol> + +<div class="tuto_example"> +<div class="tuto_type">Repte</div> + +<p>Modifiqueu la fulla d'estils per fer que la taula tingui aquest aspecte:</p> + +<table style="background-color: white; border: 2px outset #3366bb; padding: 1em 6em 1em 1em;"> + <tbody> + <tr> + <td> + <div> + <div style="border: 1px solid #7a7; background-color: #efe;"> + <table style="background-color: #eeffee; border-collapse: collapse; font: 100% sans-serif; padding-right: .5em; text-align: right;"> + <tbody> + <tr style="text-align: center; color: blue;"> + <th> </th> + <th>Area</th> + <th style="padding-left: .5em; padding-right: .5em;">Mean depth</th> + </tr> + <tr style="font-style: italic; color: gray;"> + <th> </th> + <th style="padding-left: .5em; padding-right: .5em;">million km<sup>2</sup></th> + <th style="padding-left: .5em; padding-right: .5em;">m</th> + </tr> + <tr> + <th style="padding-right: .5em;">Arctic:</th> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7;">13,000</td> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7; border-right: 0px;">1,200</td> + </tr> + <tr> + <th style="padding-right: .5em;">Atlantic:</th> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7;">87,000</td> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7; border-right: 0px;">3,900</td> + </tr> + <tr> + <th style="padding-right: .5em;">Pacific:</th> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7;">180,000</td> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7; border-right: 0px;">4,000</td> + </tr> + <tr> + <th style="padding-right: .5em;">Indian:</th> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7;">75,000</td> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7; border-right: 0px;">3,900</td> + </tr> + <tr> + <th style="padding-left: .5em; padding-right: .5em;">Southern:</th> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7;">20,000</td> + <td style="background-color: #cef; padding: .5em .5em .5em 3em; border: 1px solid #7a7; border-right: 0px;">4,500</td> + </tr> + <tr> + <th style="padding-right: .5em; color: blue;">Total:</th> + <td style="background-color: #cee; padding: .5em .5em .5em 3em; border-top: .2em solid #7a7;">361,000</td> + <td style="background-color: #cee; padding: .5em .5em .5em 3em; border-top: .2em solid #7a7;"> </td> + </tr> + <tr> + <th style="padding-right: .5em; color: blue;">Mean:</th> + <td style="background-color: #cee; padding: .5em .5em .5em 3em;">72,000</td> + <td style="background-color: #cee; padding: .5em .5em .5em 3em;">3,800</td> + </tr> + </tbody> + </table> + </div> + + <p style="font: italic 100% sans-serif; text-align: right; border-top: .4em solid #4ca; margin: 1em 0px 0px 0px;">Oceans</p> + </div> + </td> + </tr> + </tbody> +</table> +</div> + +<p><a href="/en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Tables" title="en-US/docs/Web/Guide/CSS/Getting_Started/Challenge_solutions#Tables">Veure la solució per el repte.</a></p> + +<h2 id="I_ara_què">I ara què?</h2> + +<p>{{nextPage("/en-US/docs/Web/Guide/CSS/Getting_Started/Media", "Media")}}Aquesta és l'última pàgina d'aquest tutorial que se centra en les propietats i els valors CSS. Per a un resum complet de les propietats i valors, vegeu <a href="http://www.w3.org/TR/CSS21/propidx.html">Taula de propietats completa </a>en l'especificació CSS</p> + +<p>En la següent pàgina <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Media">es veu de nou</a> el propòsit i l'estructura de les fulles d'estil CSS.</p> diff --git a/files/ca/web/guide/gràfics/index.html b/files/ca/web/guide/gràfics/index.html new file mode 100644 index 0000000000..a65c99ec66 --- /dev/null +++ b/files/ca/web/guide/gràfics/index.html @@ -0,0 +1,49 @@ +--- +title: Gràfics en la Web +slug: Web/Guide/Gràfics +tags: + - 2D + - 3D + - Canvas + - Graphics + - HTML5 + - SVG + - Web + - WebGL + - WebRTC +translation_of: Web/Guide/Graphics +--- +<p>Els llocs web i les aplicacions sovint necessiten presentar gràfics. Les imatges estàtiques poden visualitzar-se fàcilment usant l'element {{HTMLElement("img")}} o configurant el fons dels elements HTML utilitzant la propietat {{cssxref("background-image")}}. També podeu construir gràfics sobre la marxa o manipular imatges després de fetes. Aquests articles proporcionen informació sobre com podeu aconseguir-ho.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Documentation" id="Gràfics_2D">Gràfics 2D</h2> + +<dl> + <dt><a href="/en-US/docs/HTML/Canvas">Canvas</a></dt> + <dd>L'element {{HTMLElement("canvas")}} <span id="result_box" lang="ca"><span>proporciona APIs per dibuixar gràfics 2D utilitzant JavaScript.</span></span></dd> + <dt><a href="/en-US/docs/Web/SVG">SVG</a></dt> + <dd>Els Gràfics Vectorials Escalables (SVG) permeten utilitzar línies, corbes i altres formes geomètriques per representar gràfics. Amb vectors, podeu crear imatges que s'escalen netament a qualsevol grandària.</dd> +</dl> + +<p><span class="alllinks"><a href="/en-US/docs/tag/Graphics">Veure Tot...</a></span></p> +</div> + +<div class="section"> +<h2 class="Documentation" id="Gràfics_3D">Gràfics 3D</h2> + +<dl> + <dt><a href="/en-US/docs/Web/WebGL">WebGL</a></dt> + <dd>Una guia per començar amb WebGL, l'API de gràfics 3D per a la web. Aquesta tecnologia permet utilitzar OpenGL ES estàndard en contingut web.</dd> +</dl> + +<h2 id="Vídeo">Vídeo</h2> + +<dl> + <dt><a href="/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video">Ús d'àudio i vídeo HTML5 </a></dt> + <dd>Incrustar vídeo i/o àudio en una pàgina web i controlar la seva reproducció.</dd> + <dt><a href="/en-US/docs/WebRTC">WebRTC</a></dt> + <dd>El RTC en WebRTC significa Comunicacions en Temps Real, tecnologia que permet la transmissió d'àudio/vídeo i l'intercanvi de dades entre clients del navegador (parells).</dd> +</dl> +</div> +</div> diff --git a/files/ca/web/guide/html/_consells_per_crear_pàgines_html_de_càrrega_ràpida/index.html b/files/ca/web/guide/html/_consells_per_crear_pàgines_html_de_càrrega_ràpida/index.html new file mode 100644 index 0000000000..6c683a8156 --- /dev/null +++ b/files/ca/web/guide/html/_consells_per_crear_pàgines_html_de_càrrega_ràpida/index.html @@ -0,0 +1,186 @@ +--- +title: Consells per crear pàgines HTML de càrrega ràpida +slug: Web/Guide/HTML/_Consells_per_crear_pàgines_HTML_de_càrrega_ràpida +tags: + - Advanced + - Guide + - HTML + - NeedsUpdate + - Performance + - Web +translation_of: Learn/HTML/Howto/Author_fast-loading_HTML_pages +--- +<p><span id="result_box" lang="ca"><span>Aquests consells</span> <span>es</span> <span>basen</span> <span>en el coneixement</span> <span>i</span> <span>l'experimentació</span> <span>comuna.</span></span></p> + +<p>Una pàgina web optimitzada no només preveu un lloc més sensible per als seus visitants, sinó que també redueix la càrrega dels servidors web i la connexió a Internet. Això pot ser crucial per als llocs d'alt volum o dels llocs que tenen un pic en el tràfic a causa de circumstàncies inusuals, com ara notícies d'última hora.</p> + +<p>Optimitzar el rendiment de càrrega de pàgina no és només per a contingut que serà vist pels visitants de dispositius telefònics o mòbils de banda estreta. És igual d'important que el contingut en banda ampla i pot conduir a millores espectaculars fins i tot per als seus visitants amb les connexions més ràpides.</p> + +<h2 id="Consells">Consells</h2> + +<h3 id="Reduir_el_pes_de_la_pàgina"><span class="short_text" id="result_box" lang="ca"><span>Reduir</span> <span>el pes</span> <span>de la pàgina</span></span></h3> + +<p>El pes de la pàgina és, de bon tros, el factor més important en el rendiment de càrrega de pàgines.</p> + +<p>La reducció del pes de la pàgina a través de l'eliminació d'espais en blanc i comentaris innecessaris, comunament coneguda com la reducció al mínim, i movent el script en línia i CSS en arxius externs, pot millorar el rendiment de descàrrega amb una necessitat mínima d'altres canvis en l'estructura de la pàgina.</p> + +<p>Eines com ara <a class="external" href="http://www.html-tidy.org">HTML Tidy</a> pot treure automàticament espais en blanc i les línies en blanc addicionals del codi HTML vàlid. Altres eines poden "comprimir" JavaScript canviant el format o per ofuscació de la font i la substitució dels identificadors llargs amb versions més curtes.</p> + +<h3 id="Reduir_al_mínim_el_nombre_d'arxius"><span class="short_text" id="result_box" lang="ca"><span>Reduir al</span> <span>mínim el</span> <span>nombre d'arxius</span></span></h3> + +<p>La reducció del nombre d'arxius que es fa referència en una pàgina web redueix el nombre de connexions <a href="/en-US/docs/HTTP" title="en-US/docs/HTTP">HTTP</a> necessaries per descarregar una pàgina.</p> + +<p>Depenent de la configuració de la memòria cau d'un navegador, es pot enviar una petició <code>If-Modified-Since</code> al servidor web per a cada arxiu CSS, JavaScript o imatge, preguntant si l'arxiu ha estat modificat des de l'última vegada que es va descarregar.</p> + +<p>En reduir el nombre d'arxius que es fa referència en una pàgina web, es redueix el temps necessari perquè aquestes peticions siguin enviades, i per les respostes que es rebin.</p> + +<p>Si utilitzeu moltes imatges de fons en el vostre CSS, es pot reduir la quantitat de cerques HTTP necessaries mitjançant la combinació de les imatges en una, conegut com un sprite d'imatge. A continuació, només s'aplica la mateixa imatge cada vegada que ho necessiteu per a un fons, i ajustant les coordenades x/y de manera apropiada. Aquesta tècnica funciona millor amb els elements que tenen dimensions limitades, i no funcionarà per a cada ús d'una imatge de fons. No obstant això, el menor nombre de peticions HTTP i l'emmagatzematge en memòria cau d'una sola imatge pot ajudar a reduir el temps pageload.</p> + +<p>L'excés de temps dedicat a la consulta de l'última modificació dels arxius de referència pot retardar la visualització inicial d'una pàgina web, ja que el navegador ha de comprovar el temps de modificació per a cada arxiu CSS o JavaScript, abans de processar la pàgina.</p> + +<h3 id="Reduir_la_recerca_de_dominis"><span class="short_text" id="result_box" lang="ca"><span>Reduir</span> <span>la recerca</span> <span>de dominis</span></span></h3> + +<p>Atès que cada domini per separat porta temps en la recerca de DNS, el temps de càrrega de la pàgina creixerà juntament amb el nombre de dominis independents que apareguin en link(s) CSS i src(es) JavaScript i imatge.</p> + +<p>Això no sempre és pràctic; no obstant això, sempre s'ha de tenir en compte d'utilitzar només el nombre mínim necessari dels diferents dominis en les vostres pàgines.</p> + +<h3 id="Contingut_reutilitzat_en_memòria_cau"><span class="short_text" id="result_box" lang="ca"><span>Contingut</span> <span>reutilitzat</span> <span>en memòria cau</span></span></h3> + +<p>Assegureu-vos que qualsevol contingut que es pugui emmagatzemar en memòria cau, s'emmagatzemi en memòria cau, i amb els temps de caducitat apropiades.</p> + +<p>En concret, presteu atenció a la capçalera <code>Last-Modified</code>. Permet d'una manera eficient l'emmagatzematge en memòria cau de la pàgina; per mitjà d'aquesta capçalera, la informació es transmet a l'agent d'usuari sobre l'arxiu que vol carregar, com quan es va modificar per última vegada. La majoria dels servidors web afegeixen automàticament la capçalera <code>Last-Modified</code> a pàgines estàtiques (per exemple <code>.html, .css</code>), d'acord amb la data d'última modificació emmagatzemada en el sistema d'arxius. Amb les pàgines dinàmiques (per exemple, <code>.php, .aspx</code>), això, per descomptat, no es pot fer, i la capçalera no s'envia.</p> + +<p>Així, en particular, per a les pàgines que es generen de forma dinàmica, una mica de recerca sobre aquest tema és beneficiós. Pot ser una mica complicat, però s'estalviarà molt en les sol·licituds de pàgina en les pàgines que normalment no serien emmagatzemades en memòria cau.</p> + +<p>Més informació:</p> + +<ol> + <li><a class="external" href="http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers">HTTP Conditional Get for RSS Hackers</a></li> + <li><a class="external" href="http://annevankesteren.nl/archives/2005/05/http-304">HTTP 304: Not Modified</a></li> + <li><a class="external" href="http://en.wikipedia.org/wiki/HTTP_ETag">HTTP ETag on Wikipedia</a></li> + <li><a class="external" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">Caching in HTTP</a></li> +</ol> + +<h3 id="Ordenar_de_manera_òptima_els_components_de_la_pàgina">Ordenar de manera òptima els components de la pàgina</h3> + +<p>Descarregar el contingut de la pàgina en primer lloc, juntament amb qualsevol CSS o JavaScript que pugui ser necessàri per a la seva visualització inicial, de manera que l'usuari obté una resposta aparent més ràpida durant la càrrega de les pàgines. Aquest contingut és normalment de text, i per tant pot beneficiar-se de la compressió del text en trànsit, proporcionant així una resposta fins i tot més ràpida per a l'usuari.</p> + +<p>Cap característica dinàmica que requereixi la pàgina per completar la càrrega abans de ser utilitzada, ha de ser desactivada inicialment, i només es permet després que la pàgina s'hagi carregat. Això farà que el JavaScript es carregui després del contingut de la pàgina, el que millorarà l'aspecte general de la càrrega de la pàgina.</p> + +<h3 id="Reduce_the_number_of_inline_scripts" name="Reduce_the_number_of_inline_scripts">Reduir el nombre de scripts en línia</h3> + +<p>Els scripts en línia poden ser costosos per a la càrrega de la pàgina, ja que l'analitzador ha d'assumir que un script en línia podria modificar l'estructura de la pàgina, mentre que l'anàlisi està en curs. Reduir l'ús de scripts en línia en general, i reduir l'ús de <code>document.write()</code> per a continguts de sortida en particular, pot millorar la càrrega total de la pàgina. Utilitzeu mètodes moderns d'<a href="https://developer.mozilla.org/en-US/docs/AJAX">AJAX</a> per manipular el contingut de la pàgina per als navegadors moderns, en lloc dels antics enfocaments basats en <code>document.write()</code>.</p> + +<h3 id="Utilitzar_CSS_modern_i_marcat_vàlid"><span class="short_text" id="result_box" lang="ca"><span>Utilitzar</span> <span>CSS</span> <span>modern</span> <span>i</span> <span>marcat</span> <span>vàlid</span></span></h3> + +<p>L'ús de CSS modern redueix la quantitat de marcat, pot reduir la necessitat d'imatges (spacer), en termes de disseny, i molt sovint pot substituir les imatges de text estilitzat - el "cost" és molt més que l'equivalent de text-i-CSS.</p> + +<p>L'ùs del marcat vàlid té altres avantatges. En primer lloc, els navegadors no tenen necessitat de dur a terme la correcció d'errors a l'analitzar el codi HTML (això és, a part de la qüestió filosòfica, de si s'ha de permetre la variació de format a l'entrada de l'usuari, i després mitjançant programació "corregir" o normalitzar aquest o si, en canvi, fer complir un estricte format d'entrada, no tolerància).</p> + +<p>D'altra banda, el marcat vàlid permet el lliure ús d'altres eines les quals poden pre-processar les vostres pàgines web. Per exemple, <a href="http://tidy.sourceforge.net/">HTML Tidy</a> pot eliminar espais en blanc i les etiquetes opcionals de tancament; però, es negarà a executar una pàgina amb greus errors de marcat.</p> + +<h3 id="Part_del_teu_contingut">Part del teu contingut</h3> + +<p>Les taules de dissenys són un mètode llegat que no ha de ser utilitzat més. Dissenys que utilitzen blocs {{HTMLElement ("div")}}, i en un futur pròxim, <a href="/en-US/docs/CSS/Using_CSS_multi-column_layouts" title="en-US/docs/CSS3_Columns">CSS3 Multi-column Layout</a> o <a href="/en-US/docs/Using_flexbox" title="en-US/docs/Using_flexbox">CSS3 Flexible Box Layout</a>, s'han d'utilitzar al seu lloc.</p> + +<p>Les taules encara es consideren marcat vàlid, però han de ser utilitzades per a la visualització de dades tabulars. Per ajudar al navegador a processar la vostre pàgina més ràpidament, heu d'evitar niar les vostres taules.</p> + +<p>En lloc de niar profundament les taules com en:</p> + +<pre><TABLE> + <TABLE> + <TABLE> + ... + </TABLE> + </TABLE> +</TABLE></pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>utilitzar</span> <span>taules no</span> <span>niats</span> <span>o</span> <span>divs</span> <span>com</span> <span>a</span></span>:</p> + +<pre><TABLE>...</TABLE> +<TABLE>...</TABLE> +<TABLE>...</TABLE> +</pre> + +<p>Veure: <a class="external" href="http://www.w3.org/TR/css3-multicol/" title="http://www.w3.org/TR/css3-multicol/">CSS3 Multi-column Layout Spec</a> i <a class="external" href="http://www.w3.org/TR/css3-flexbox/" title="http://www.w3.org/TR/css3-flexbox/">CSS3 Flexible Box Layout</a></p> + +<h3 id="Minimitzar_i_comprimir_recursos_SVG">Minimitzar i comprimir recursos SVG</h3> + +<p>SVG produït per la majoria de les aplicacions de dibuix, sovint conté metadades innecessaries que es poden treure. Configureu els servidors per aplicar la compressió gzip per als recursos SVG.</p> + +<h3 id="Especificar_les_mides_de_les_imatges_i_taules"><span class="short_text" id="result_box" lang="ca"><span>Especificar</span> <span>les mides de les</span> <span>imatges</span> <span>i</span> <span>taules</span></span></h3> + +<p>Si el navegador pot determinar immediatament l'altura i/o amplada de les vostres imatges i taules, serà capaç de mostrar una pàgina web sense haver de reorganitzar el contingut. Això no només accelera la visualització de la pàgina, sinó que evita els molestos canvis en el disseny d'una pàgina quan la pàgina completa la càrrega. Per aquesta raó, <code>height</code> i <code>width</code> s'han d'especificar per a les imatges, sempre que sigui possible.</p> + +<p><span id="result_box" lang="ca"><span>Les</span> <span>taules</span> <span>han d'utilitzar la combinació CSS</span> <span>selector:propietat</span><span>:</span></span></p> + +<pre> table-layout: fixed; +</pre> + +<p>i ha de precisar les amplades de les columnes utilitzant les etiquetes HTML <code>COL</code> i <code>COLGROUP</code>.</p> + +<h3 id="Trieu_els_vostres_requisits_d'agent_d'usuari_sàviament">Trieu els vostres requisits d'agent d'usuari sàviament</h3> + +<p>Per aconseguir les millores més importants en el disseny de la pàgina, assegureu-vos que els requisits raonables d'agent d'usuari s'especifiquin en els projectes. No requereix que el seu contingut aparegui un píxel perfecte en tots els navegadors, especialment no en els navegadors de versions més antigues.</p> + +<p>L'ideal és que, els requisits mínims bàsics s'han de basar en la consideració dels navegadors moderns que suporten les normes pertinents. Això pot incloure les versions recents de Firefox, Internet Explorer, Google Chrome, Opera i Safari.</p> + +<p>Recordeu, però, que molts dels consells que apareixen en aquest article són tècniques de sentit comú que s'apliquen a qualsevol agent d'usuari, i que es poden aplicar a qualsevol pàgina web, independentment dels requisits de compatibilitat amb els navegadors.</p> + +<h2 id="Example_page_structure" name="Example_page_structure">Exemple de l'estructura d'una pàgina</h2> + +<p>· <code>HTML</code></p> + +<dl> + <dd>· <code>HEAD</code></dd> +</dl> + +<dl> + <dd> + <dl> + <dd>· <code>LINK </code>...<br> + arxius CSS necessaris per l'aparença de la pàgina. Minimitzar el nombre d'arxius per el rendiment, mentre es manté CSS no relacionat en arxius separats per al manteniment.</dd> + </dl> + </dd> +</dl> + +<dl> + <dd> + <dl> + <dd>· <code>SCRIPT </code>...<br> + arxius JavaScript per a funcions requerides durant la càrrega de la pàgina, però no qualsevol DHTML que només es pot executar després de càrrega de la pàgina.</dd> + <dd>Minimitzar el nombre d'arxius per el rendiment, mentre es manté JavaScript no relacionat en arxius separats per al manteniment.</dd> + </dl> + </dd> +</dl> + +<dl> + <dd>· <code>BODY</code></dd> + <dd>· Contingut de la pàgina, visible per a l'usuari, en trossos petits (taules/divs) que es poden visualitzar sense esperar que la pàgina completi la seva descàrrega.</dd> +</dl> + +<dl> + <dd> + <dl> + <dd>· <code>SCRIPT </code>...<br> + Qualsevol script que s'utilitzarà per realitzar DHTML. El script DHTML normalment es pot executar després que la pàgina s'hagi carregat completament i tots els objectes necessaris hagin estat inicialitzats. No hi ha necessitat de carregar aquests scripts abans que el contingut de la pàgina. Això només ralenteix l'aparença inicial de la càrrega de la pàgina.</dd> + <dd>Minimitzar el nombre d'arxius per el rendiment, mentre es manté JavaScript no relacionat en arxius separats per al manteniment.</dd> + <dd>Si s'utilitzen les imatges per a efectes rollover, s'ha de carregar prèviament aquí després que el contingut de la pàgina s'hagi descarregat.</dd> + </dl> + </dd> +</dl> + +<h2 id="Utilitzar_asyn_i_defer_si_és_possible">Utilitzar asyn i defer, si és possible</h2> + +<p>Fer que els scripts de JavaScript siguin compatibles tant amb <a href="https://developer.mozilla.org/en-US/docs/HTML/Element/script#Attributes" title="https://developer.mozilla.org/en-US/docs/HTML/Element/script">async</a> i <a href="https://developer.mozilla.org/en-US/docs/HTML/Element/script#Attributes" title="https://developer.mozilla.org/en-US/docs/HTML/Element/script">defer</a> i utilitzar <a href="https://developer.mozilla.org/en-US/docs/HTML/Element/script#Attributes" title="https://developer.mozilla.org/en-US/docs/HTML/Element/script">async</a> sempre que sigui possible, especialment si té diverses etiquetes de script. Amb això, la pàgina pot aturar el processament, mentre que encara s'estigui carregant JavaScript. En cas contrari, el navegador no renderizará res que estigui darrere de les etiquetes de script que no tinguin aquests atributs.</p> + +<p>Nota: Tot i que aquests atributs ens ajuden molt per a la primera vegada que es carrega una pàgina, s'han d'usar, però no dependre de que funcionarà en tots els navegadors. Si seguiu totes les pautes per fer un bon codi JavaScript, no hi ha necessitat de canviar el codi.</p> + +<h2 id="Enllaços_relacionats"><span class="short_text" id="result_box" lang="ca"><span>Enllaços</span> <span>relacionats</span></span></h2> + +<ul> + <li>Llibre: <a class="external" href="http://www.websiteoptimization.com/">"Speed Up Your Site" by Andy King</a></li> + <li><span id="result_box" lang="ca"><span>Les</span> <span>excel·lents i</span> <span>molt</span> <span>completes</span></span> <a class="external" href="http://developer.yahoo.com/performance/rules.html" title="http://developer.yahoo.com/performance/rules.html">Best Practices for Speeding Up Your Web Site</a> (Yahoo!)</li> + <li><span id="result_box" lang="ca"><span>Eines</span> <span>per a l'anàlisi</span> <span>i</span> <span>l'optimització</span> <span>del rendiment</span></span> : <a href="https://developers.google.com/speed/pagespeed/" title="https://developers.google.com/speed/pagespeed/">Google PageSpeed Tools</a></li> + <li><a href="/en-US/docs/Tools/Paint_Flashing_Tool">Paint Flashing Tool</a></li> +</ul> diff --git a/files/ca/web/guide/html/html5/index.html b/files/ca/web/guide/html/html5/index.html new file mode 100644 index 0000000000..6ed392c033 --- /dev/null +++ b/files/ca/web/guide/html/html5/index.html @@ -0,0 +1,171 @@ +--- +title: HTML5 +slug: Web/Guide/HTML/HTML5 +tags: + - Guide + - HTML + - HTML5 + - Overview + - Web + - Web Development +translation_of: Web/Guide/HTML/HTML5 +--- +<p><span class="seoSummary"><strong>HTML5</strong></span> <span id="result_box" lang="ca"><span>és l'última</span> <span>evolució</span> <span>de la norma que</span> <span>defineix</span> <a href="https://developer.mozilla.org/en-US/docs/HTML">HTML</a><span>.</span> <span>El terme</span> <span>representa</span> <span>dos conceptes</span> <span>diferents</span><span>:</span></span></p> + +<ul> + <li>És una nova versió del llenguatge HTML, amb nous elements, atributs i comportaments<span class="seoSummary">,</span></li> + <li>i un ampli conjunt de tecnologies que permet les més diverses i potents aplicacions i llocs web. Aquest conjunt es diu de vegades <em>HTML5 i amics</em> i, sovint escurçat a simplement <em>HTML5</em>.</li> +</ul> + +<p>Dissenyat per a ser utilitzable per tots els desenvolupadors de la Web Oberta, aquesta pàgina de referència enllaça a nombrosos recursos sobre tecnologies HTML5, que es classifiquen en diversos grups segons la seva funció.</p> + +<ul> + <li><em>Semàntica: </em>us permet descriure amb major precisió quin és el seu contingut.</li> + <li><em>Connectivitat</em>: us permet comunicar-vos amb el servidor de formes noves i innovadores.</li> + <li><em>Fora de línia i emmagatzematge</em>: permetre que les pàgines web emmagatzemin les dades localment en el client i funcionin de forma més eficient.</li> + <li><em>Multimèdia</em>: fer ciutadans de primera classe d'àudio i vídeo a la Web Oberta.</li> + <li><em>Gràfics i efectes 2D/3D</em>: permetre una gamma molt més àmplia d'opcions de presentació.</li> + <li><em>Rendiment i integració</em>: proporcionar una major optimització de la velocitat i un millor ús del maquinari de l'equip.</li> + <li><em>Accés al dispositiu</em>: permetre l'ús de diversos dispositius d'entrada i de sortida..</li> + <li><em>Estil</em>: deixar que els autors escriuen temes més sofisticats.</li> +</ul> + +<div class="cleared row topicpage-table"> +<div class="section"> +<h2 id="SemàntIcA" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3827/HTML5_Semantics_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">SemàntIcA</h2> + +<dl> + <dt><a href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i esquemes en HTML5</a></dt> + <dd>Una ullada als nous elements d'esquema i secció en HTML5: {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("nav")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}} i {{HTMLElement("aside")}}.</dd> + <dt><a href="/en-US/docs/Using_HTML5_audio_and_video" title="Using_audio_and_video_in_Firefox">Ús d'àudio i vídeo en HTML5</a></dt> + <dd>Els elements {{HTMLElement ("àudio")}} i {{HTMLElement ("vídeo")}} incrustats, permeten la manipulació dels nous continguts multimèdia.</dd> + <dt><a href="/en-US/docs/HTML/Forms_in_HTML" title="Forms in HTML5">Formularis en HTML5</a></dt> + <dd>Una mirada a les millores en els formularis web en HTML5: l'API de validació restringida, diversos atributs nous, nous valors per l'atribut {{htmlattrxref("type", "input")}} de l'element {{HTMLElement("input")}} i l'element nou {{HTMLElement("output")}}.</dd> + <dt><span id="result_box" lang="ca"><span class="alt-edited">Nous elements semàntics</span></span></dt> + <dd>Al costat dels elements de seccions, de medis i de formularis, hi ha nombrosos elements nous, com {{HTMLElement("mark")}}, {{HTMLElement("figure")}}, {{HTMLElement("figcaption")}}, {{HTMLElement("data")}}, {{HTMLElement("time")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} o {{HTMLElement("meter")}} i {{HTMLElement("main")}}, <span class="short_text" id="result_box" lang="ca"><span>augmentant la</span> <span>quantitat</span> <span>d'</span></span><a href="/en-US/docs/HTML/HTML5/HTML5_element_list" title="HTML/HTML5/HTML5_element_list">elements HTML5 vàlids</a>.</dd> + <dt><span id="result_box" lang="ca"><span>Millora en</span> <span>{</span><span>{</span><span>HTMLElement</span> <span>(</span><span>"</span><span>iframe</span><span>"</span><span>)</span><span>}</span><span>}</span></span></dt> + <dd>Utilitzant els atributs {{htmlattrxref("sandbox", "iframe")}} i {{htmlattrxref("srcdoc", "iframe")}}, els autors ara poden ser precisos sobre el nivell de seguretat i la representació desitjada d'un element {{HTMLElement("iframe")}}.</dd> + <dt><a href="/en-US/docs/MathML" title="MathML">MathML</a></dt> + <dd><span id="result_box" lang="ca"><span>Permet la</span> <span>incorporació directa</span> <span>de fórmules</span> <span>matemàtiques.</span></span></dd> + <dt><a href="/en-US/docs/HTML/HTML5/Introduction_to_HTML5" title="HTML/HTML5/Introduction_to_HTML5">Introducció a HTML5</a></dt> + <dd>Aquest article presenta com indicar al navegador que utilitzeu HTML5 en el vostre disseny web o una aplicació web.</dd> + <dt><a href="/en-US/docs/HTML/HTML5/HTML5_Parser" title="HTML/HTML5/HTML5 parser">Analitzador HTML5 compatible</a></dt> + <dd>L'analitzador, que converteix els bytes d'un document HTML en un DOM, s'ha ampliat i ara defineix amb precisió el comportament d'utilitzar en tots els casos, fins i tot quan s'enfronten amb HTML vàlid. Això condueix a una major previsibilitat i interoperabilitat entre els navegadors compatibles amb HTML5.</dd> +</dl> + +<h2 id="Conectivitat" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3839/HTML5_Connectivity_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">Conectivitat</h2> + +<dl> + <dt><a href="/en-US/docs/WebSockets" title="WebSockets">Web Sockets</a></dt> + <dd><span id="result_box" lang="ca"><span>Permet la</span> <span>creació</span> <span>d'una connexió</span> <span>permanent</span> <span>entre la pàgina</span> <span>i el servidor</span> <span>i l'intercanvi</span> <span>de dades no</span> <span>HTML</span> <span>a través d'</span><span>aquest mitjà.</span></span></dd> + <dt><a href="/en-US/docs/Server-sent_events/Using_server-sent_events" title="Server-sent_events/Using_server-sent_events">Esdeveniments enviats pel servidor</a></dt> + <dd>Permet a un servidor enviar esdeveniments a un client, en lloc del paradigma clàssic en què el servidor podria enviar les dades només en resposta a la petició d'un client.</dd> + <dt><a href="/en-US/docs/WebRTC" title="WebRTC">WebRTC</a></dt> + <dd>Aquesta tecnologia, on RTC és sinònim de comunicació en temps real, permet la connexió amb altres persones i el control de la videoconferència directament en el navegador, sense necessitat d'un complament o una aplicació externa.</dd> +</dl> + +<h2 id="Sense_connexió_emmagatzematge" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3833/HTML5_Offline_Storage_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">Sense connexió & emmagatzematge</h2> + +<dl> + <dt><a href="/en-US/docs/HTML/Using_the_application_cache" title="Offline_resources_in_Firefox">Recursos sense connexió: El cau de l'aplicació</a></dt> + <dd>Firefox és totalment compatible amb l'especificació de recursos sense connexió d'HTML5. La majoria dels altres recursos sense connexió tenen suport en un cert nivell.</dd> + <dt><a href="/en-US/docs/Online_and_offline_events" title="Online_and_offline_events">Esdeveniments amb i sense connexió</a></dt> + <dd>Firefox 3 suporta WHATWG, esdeveniments amb i sense connexió, que permeten a les aplicacions i extensions detectar si hi ha o no una connexió a Internet, així com tambien, detectar quan la connexió es perd o es recupera.</dd> + <dt><a href="/en-US/docs/DOM/Storage" title="DOM/Storage">WHATWG sessió del costat client i emmagatzamatge continu (emmagatzamatge DOM)</a></dt> + <dd><span id="result_box" lang="ca"><span>Sessió</span> <span>del costat</span> <span>client</span> <span>i</span> <span>l'emmagatzematge</span> <span>continu</span> <span>permet a les</span> <span>aplicacions</span> <span>web emmagatzemar</span> <span>dades estructurades</span> <span>al</span> <span>costat</span> <span>del client.</span></span></dd> + <dt><a href="/en-US/docs/IndexedDB" title="IndexedDB">IndexedDB</a></dt> + <dd><span id="result_box" lang="ca"><span>IndexedDB</span> <span>és</span> <span>un estàndard</span> <span>web</span> <span>per a l'emmagatzematge</span> <span>de grans</span> <span>quantitats</span> <span>de dades estructurades</span> <span>en el navegador i</span> <span>per a les</span> <span>recerques</span> <span>d'alt</span> <span>rendiment</span> <span>d'aquestes dades</span> <span>mitjançant</span> <span>índexs</span></span> .</dd> + <dt><a href="/en-US/docs/Using_files_from_web_applications" title="Using_files_from_web_applications">Ús d'arxius des d'aplicacions web</a></dt> + <dd>El suport per a la nova API d'arxius d'HTML5 ha estat afegit a Gecko, per la qual cosa és possible que les aplicacions d'Internet accedeixin als arxius locals seleccionats per l'usuari. Això inclou el suport per a la selecció de diversos arxius utilitzant l'element HTML <span style="font-family: monospace;">{{HTMLElement("input")}}</span> de <a href="/en-US/docs/HTML/Element/Input#attr-type" title="HTML/Element/input#attr-type"><strong>type</strong></a> <span style="font-family: courier new;">file</span> amb el nou atribut <a href="/en-US/docs/HTML/Element/Input#attr-multiple" title="HTML/Element/input#attr-multiple"><strong>multiple</strong></a>. També hi ha <a href="/en-US/docs/DOM/FileReader" title="DOM/FileReader"><code>FileReader</code></a>.</dd> +</dl> + +<h2 id="Multimèdia" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3835/HTML5_Multimedia_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">Multimèdia</h2> + +<dl> + <dt><a href="/en-US/docs/Using_HTML5_audio_and_video" title="Using_audio_and_video_in_Firefox">L'ús àudio i vídeo en HTML5</a></dt> + <dd>Els elements {{HTMLElement("audio")}} i {{HTMLElement("video")}} incrustats permeten la manipulació dels nous continguts multimèdia.</dd> + <dt><a href="/en-US/docs/WebRTC" title="WebRTC">WebRTC</a></dt> + <dd>Aquesta tecnologia, on RTC és sinònim de comunicació en temps real, permet la connexió amb altres persones i el control de la videoconferència directament en el navegador, sense necessitat d'un complement o una aplicació externa.</dd> + <dt><a href="/en-US/docs/DOM/Using_the_Camera_API" title="DOM/Using_the_Camera_API">Ús de l'API de la càmera</a></dt> + <dd>Permet utilitzar, manipular i emmagatzemar una imatge des de la càmera de l'ordinador.</dd> + <dt>Pista i WebVTT</dt> + <dd>L'element {{HTMLElement("track")}} permet subtítols i capítols. <a href="/en-US/docs/HTML/WebVTT" title="HTML/WebVTT">WebVTT</a> és un format de pista de text.</dd> +</dl> + +<h2 id="Gràfics_i_efectes_3D" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3841/HTML5_3D_Effects_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">Gràfics i efectes 3D</h2> + +<dl> + <dt><a href="/en-US/docs/Canvas_tutorial" title="Canvas tutorial">Tutorial Canvas</a></dt> + <dd>Aprendre sobre el nou element {{HTMLElement("canvas")}} i com dibuixar gràfics i altres objectes en Firefox.</dd> + <dt><a href="/en-US/docs/Drawing_text_using_a_canvas" title="Drawing_text_using_a_canvas">API de text HTML5 per elements <code><canvas></code></a></dt> + <dd>L'API de text HTML5 és ara compatible amb elements {{HTMLElement("canvas")}}..</dd> + <dt><a href="/en-US/docs/WebGL" title="WebGL">WebGL</a></dt> + <dd>WebGL porta gràfics en 3D a la web mitjançant la introducció d'una API que s'ajusta estretament a OpenGL ÉS 2.0 que pot ser utilitzat en elements HTML5 {{HTMLElement("canvas")}}.</dd> + <dt><a href="/en-US/docs/SVG" title="SVG">SVG</a></dt> + <dd>Un format basat en XML d'imatges vectorials que pot ser directament incrustat en el codi HTML.</dd> +</dl> +</div> + +<div class="section"> +<h2 id="Rendiment_i_Integració" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3831/HTML5_Performance_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;"><span id="result_box" lang="ca"><span>Rendiment</span> <span>i Integració</span></span></h2> + +<dl> + <dt><a href="/en-US/docs/DOM/Using_web_workers" title="Using web workers">Web Workers</a></dt> + <dd>Permet delegar l'avaluació de JavaScript a subprocessos en segon pla, permetent que aquestes activitats evitin alentir esdeveniments interactius.</dd> + <dt><code><a href="/en-US/docs/DOM/XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a></code> nivell 2</dt> + <dd>Permet anar a buscar de forma asíncrona algunes parts de la pàgina, la qual cosa li permet mostrar contingut dinàmic, variant segons el temps i les accions de l'usuari. Aquesta és la tecnologia que hi ha darrere d'<a href="/en-US/docs/AJAX" title="AJAX">Ajax</a>.</dd> + <dt>Motors JavaScript un compilador JIT</dt> + <dd><span id="result_box" lang="ca"><span>La nova</span> <span>generació</span> <span>de motors</span> <span>de JavaScript</span> <span>són</span> <span>molt més</span> <span>potents</span><span>, el que porta</span> <span>a un major</span> <span>rendiment</span></span>.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history" title="DOM/Manipulating_the_browser_history">API historial</a></dt> + <dd>Permet la manipulació del històrial del navegador. Això és especialment útil per a les pàgines que carreguen interactivament nova informació.</dd> + <dt><a href="/en-US/docs/HTML/Content_Editable" title="HTML/Content Editable">L'atribut contentEditable: Transformeu el vostre lloc web en una wiki!</a></dt> + <dd>HTML5 ha estandarditzat l'atribut contentEditable. Més informació sobre aquesta característica.</dd> + <dt><a href="/en-US/docs/DragDrop/Drag_and_Drop" title="DragDrop/Drag_and_Drop">Arrosegar i deixar anar</a></dt> + <dd>El API d'arrossegar i deixar anar d'HTML5 permet el suport per arrossegar i deixar anar elements dins i entre llocs web. Això també proporciona una API senzilla per a l'ús d'extensions i aplicacions basats en Mozilla.</dd> + <dt><a href="/en-US/docs/Focus_management_in_HTML" title="Focus_management_in_HTML">Gestió del focus en HTML</a></dt> + <dd>Els nous atributs d'HTML5 <code>activeElement</code> i <code>hasFocus</code> són compatibles.</dd> + <dt><a href="/en-US/docs/Web-based_protocol_handlers" title="Web-based_protocol_handlers">Controladors de protocols basats en la Web</a></dt> + <dd>Ara podeu registrar aplicacions web com controladors de protocol utilitzant el mètode <code>navigator.registerProtocolHandler()</code>.</dd> + <dt><a href="/en-US/docs/Web/API/Window/requestAnimationFrame" style="font-weight: bold;" title="Web-based_protocol_handlers">requestAnimationFrame</a></dt> + <dd>Permet controlar les animacions de renderitzat per obtenir un rendiment òptim.</dd> + <dt><a href="/en-US/docs/DOM/Using_full-screen_mode" title="DOM/Using_full-screen_mode">API Pantalla completa</a></dt> + <dd>Controla l'ús de tota la pantalla per a una pàgina Web o aplicació, sense que es mostri la interfície d'usuari del navegador.</dd> + <dt><a href="/en-US/docs/API/Pointer_Lock_API" title="API/Pointer_Lock_API">API Bloqueig del punter</a></dt> + <dd>Permet bloquejar el punter al contingut, de manera que els jocs i aplicacions similars no perdin el focus quan el punter arriba al límit de la finestra.</dd> + <dt><a href="/en-US/docs/Online_and_offline_events" title="Online_and_offline_events">Esdeveniments amb línia i sense línia</a></dt> + <dd>Amb la finalitat de construir una bona aplicació web sense connexió, necessiteu saber quan la vostra aplicació està realment fora de línia. Per cert, també necessiteu saber quan la vostra aplicació ha tornat a un estat en línia de nou.</dd> +</dl> + +<h2 id="accés_al_dispositiu" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3837/HTML5_Device_Access_512.png" style="height: 66px; padding-right: 0.5em; vertical-align: middle; width: 77px;">accés al dispositiu</h2> + +<dl> + <dt><a href="/en-US/docs/DOM/Using_the_Camera_API" title="DOM/Using_the_Camera_API">Ús de l'API de la càmera</a></dt> + <dd>Permet utilitzar, manipular i emmagatzemar una imatge des de la càmera de l'ordinador.</dd> + <dt><a href="/en-US/docs/DOM/Touch_events" title="DOM/Touch_events">Esdeveniments tàctils</a></dt> + <dd>Manipuladors per reaccionar als esdeveniments creats per un usuari pressionant pantalles tàctils.</dd> + <dt><a href="/en-US/docs/Using_geolocation" title="Using geolocation">Ús de la geolocalització</a></dt> + <dd>Permet als navegadors localitzar la posició de l'usuari mitjançant la geolocalització.</dd> + <dt><a href="/en-US/docs/Detecting_device_orientation" title="Detecting_device_orientation">Detecció de l'orientació del dispositiu</a></dt> + <dd>Obtenir la informació quan el dispositiu en el qual s'executa el navegador canvia l'orientació. Això pot ser usat com un dispositiu d'entrada (per exemple, per fer jocs que reaccionen a la posició del dispositiu) o per adaptar el disseny d'una pàgina a l'orientació de la pantalla (vertical o horitzontal)..</dd> + <dt><a href="/en-US/docs/API/Pointer_Lock_API" title="API/Pointer_Lock_API">API Bloqueig del punter</a></dt> + <dd>Permet bloquejar el punter al contingut, de manera que els jocs i aplicacions similars no perdin el focus quan el punter arriba al límit de la finestra.</dd> +</dl> + +<h2 id="ESTIL" style="margin: 0pt 0pt 0.25em; font: 200 24px/1 'Bebas Neue','League Gothic',Haettenschweiler,'Arial Narrow',sans-serif; letter-spacing: 1px; text-transform: uppercase; border: medium none;"><img alt="" src="/files/3829/HTML5_Styling_512.png" style="height: 64px; padding-right: 0.5em; vertical-align: middle; width: 64px;">ESTIL</h2> + +<p id="CSS_has_been_extended_to_be_able_to_style_elements_in_a_much_more_complex_way._This_is_often_referred_as_CSS3_though_CSS_is_not_a_monolithic_specification_any_more_and_the_different_modules_are_not_all_at_level_3_some_are_at_level_1_and_others_at_level_4_with_all_the_intermediate_levels_covered."><a href="/en-US/docs/CSS" title="CSS">CSS</a> s'ha ampliat per ser capaç de poder donar estil als elements en una forma molt més complexa. Això es coneix com <a href="/en-US/docs/CSS/CSS3" title="CSS/CSS3">CSS3</a>, encara que CSS no és una especificació monolítica i els diferents mòduls no estan tots en el nivell 3: alguns són en el nivell 1 i altres al nivell 4, amb tots els nivells intermedis coberts.</p> + +<dl> + <dt>Noves característiques d'estil de fons</dt> + <dd>Ara és possible posar una ombra a una caixa, mitjançant {{cssxref ("box-shadow")}} i es poden configurar <a href="/en-US/docs/CSS/Multiple_backgrounds" title="CSS/Multiple_backgrounds">diversos fons</a>.</dd> + <dt>Més vores de luxe</dt> + <dd>No només ara és possible usar imatges per a l'estil de vores, usant {{cssxref ("border-image")}} i les seves propietats associades, també les vores arrodonides són suportades a través de la propietat {{cssxref("border-radius")}}.</dd> + <dt>Animació del vostre estil</dt> + <dd>Usant <a href="/en-US/docs/CSS/Using_CSS_transitions" title="CSS/Using_CSS_transitions">CSS Transitions</a> per animar entre diferents estats o usar <a href="/en-US/docs/CSS/Using_CSS_animations" title="CSS/Using_CSS_animations">CSS Animations</a> per animar parts de la pàgina sense un esdeveniment desencadenant, ara podeu controlar elements mòbils en la vostra pàgina.</dd> + <dt>Tipografia millorada</dt> + <dd>Els autors tenen un millor control per arribar a una millor tipografia. Poden controlar {{cssxref ("text-overflow")}} i la separació de síl·labes <a href="/en-US/docs/CSS/hyphens" title="CSS/hyphens">(hyphenation)</a>, però també poden afegir una ombra <a href="/en-US/docs/CSS/text-shadow" title="CSS/text-shadow">(shadow)</a> a ella o controlar amb més precisió les seves decoracions <a href="/en-US/docs/CSS/text-decoration" title="SVG/Attribute/text-decoration">(decorations)</a>. Tipus de lletra personalitzades poden ser descarregades i aplicades gràcies a la nova regla {{cssxref ("@ font-face")}}.</dd> + <dt>Nous dissenys de presentació</dt> + <dd>Per tal de millorar la flexibilitat dels dissenys, s'han afegit dos nous dissenys: el <a href="/en-US/docs/CSS/Using_CSS_multi-column_layouts" title="CSS/Using_CSS_multi-column_layouts">CSS multi-column layouts</a> i <a href="/en-US/docs/CSS/Flexbox" title="CSS/Flexbox">CSS flexible box layout</a>.</dd> +</dl> +</div> +</div> diff --git a/files/ca/web/guide/html/us_de_seccions_i_esquemes_en_html/index.html b/files/ca/web/guide/html/us_de_seccions_i_esquemes_en_html/index.html new file mode 100644 index 0000000000..5da074b341 --- /dev/null +++ b/files/ca/web/guide/html/us_de_seccions_i_esquemes_en_html/index.html @@ -0,0 +1,341 @@ +--- +title: Us de seccions i esquemes en HTML 5 +slug: Web/Guide/HTML/Us_de_seccions_i_esquemes_en_HTML +tags: + - Advanced + - Example + - Guide + - HTML + - HTML5 + - Outlines + - Overview + - Sections + - Web +translation_of: Web/Guide/HTML/Using_HTML_sections_and_outlines +--- +<div class="warning"> +<p><strong>Important</strong>: Actualment no existeixen implementacions de l'algorisme d'esquema en els navegadors gràfics o agents d'usuari de tecnologia d'assistència, encara que l'algorisme s'executa a un altre programari, com comprobadors de conformitat. Per tant, l'algorisme d'<a href="http://www.w3.org/TR/html5/sections.html#outline">esquema</a> no pot ser invocat per transmetre l'estructura dels documents als usuaris. Es recomana als autors a utilitzar les capçaleres de <a href="http://www.w3.org/TR/html5/sections.html#rank">rang</a> (<code><a href="http://www.w3.org/TR/html5/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h1</a></code>-<code><a href="http://www.w3.org/TR/html5/sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements">h6</a></code>) per transmetre l'estructura.</p> +</div> + +<p>L'especificació HTML5 aporta diversos elements nous als desenvolupadors web que els permet descriure l'estructura d'un document web amb la semàntica estàndard. En aquest document es descriuen aquests elements i la forma d'utilitzar-los per definir el contorn desitjat per a qualsevol document.</p> + +<h2 id="Estructura_de_un_document_en_HTML_4">Estructura de un document en HTML 4</h2> + +<p>L'estructura d'un document, és a dir, l'estructura semàntica del que està entre <code><body></code> i <code></body></code>, és fonamental per a la presentació de la pàgina a l'usuari. HTML 4 utilitza la noció de seccions i subseccions d'un document per a descriure la seva estructura. Una secció està definida per un element ({{HTMLElement("div")}}) amb elements de capçalera ({{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}} o {{HTMLElement("h6")}}) dins d'ella, definint el seu títol. Les relacions d'aquests elements dóna lloc a l'estructura del document i el seu contorn.</p> + +<p>Així que el següent marcat:</p> + +<div style="overflow: hidden;"> +<pre class="brush:xml"><div class="section" id="forest-elephants" > + <h1>Forest elephants</h1> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <div class="subsection" id="forest-habitat" > + <h2>Habitat</h2> + <p>Forest elephants do not live in trees but among them. + ...this subsection continues... + </div> +</div> +</pre> +</div> + +<p><span id="result_box" lang="ca"><span>condueix</span> <span>al següent</span> <span>esquema</span><span>:</span></span></p> + +<pre>1. Forest elephants + 1.1 Habitat +</pre> + +<p>Els elements {{HTMLElement("div")}} no són obligatoris per definir una nova secció. La mera presència d'un element capçalera és suficient perquè impliqui una nova secció. Per tant aixó,</p> + +<pre class="brush:xml"><h1>Forest elephants</h1> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <h2>Habitat</h2> + <p>Forest elephants do not live in trees but among them. + ...this subsection continues... + <h2>Diet</h2> +<h1>Mongolian gerbils</h1> +</pre> + +<p>condueix al següent esquema:</p> + +<pre>1. Forest elephants + 1.1 Habitat + 1.2 Diet +2. Mongolian gerbils +</pre> + +<h2 id="Problemes_resolts_per_HTML5">Problemes resolts per HTML5</h2> + +<p>La definició d'HTML 4 de l'estructura d'un document i el seu algoritme d'esquematització implícit és molt perillos i condueix a nombrosos problemes:</p> + +<ol> + <li>L'ús de {{HTMLElement("div")}} per definir seccions semàntiques, sense definir valors específics per als atributs class fa impossible l'automatització de l'algoritme d'esquema ( "És que {{HTMLElement("div")}} part de la esquema de la pàgina, defineix una secció o un subsecció? "o" és només una presentació de {{HTMLElement ( "div")}}, unicament utilitzat per a l'estil? "). En altres termes, l'especificació HTML 4 és molt imprecisa en el que és una secció i com es defineix el seu àmbit. La generació automàtica dels esquemes és important, especialment per la <a class="external" href="http://en.wikipedia.org/wiki/Assistive_technology" title="http://en.wikipedia.org/wiki/Assistive_technology">tecnologia d'assistència</a>, que és possible adaptar-la a la forma en què es presenta la informació als usuaris, d'acord a l'estructura del document. HTML5 elimina la necessitat d'elements {{HTMLElement ( "div")}} de l'algoritme d'esquema mitjançant la introducció d'un nou element, {{HTMLElement("section")}}, l'element HTML Section.</li> + <li>La fusió de diversos documents és difícil: la inclusió d'un sub-document en un document principal significa canviar el nivell de elements d'encapçalament HTML de manera que es mantigui l'esquema. Això es soluciona en HTML5 amb els elements de seccionament recentment introduïts ({{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("nav")}} i {{HTMLElement("aside")}}), són sempre subseccions de la secció del seu ancestre més proper, independentment de quines seccions són creades per les capçaleres internes.</li> + <li>En HTML 4, cada secció és part de l'esquema del document. Però els documents sovint no són tan lineals. Un document pot tenir seccions especials que contenen informació que no és part de, tot i que està relacionat amb el flux principal, com un bloc d'anunci o una caixa d'explicació. HTML 5 introdueix l'element {{HTMLElement("aside")}} que permet aquestes seccions per no ser part de l'esquema principal.</li> + <li>Un cop més, en HTML 4, ja que cada secció és part de l'esquema del document, no hi ha manera de tenir seccions que continguin informació relacionada no amb el document, sinó a tot el lloc, com logotips, menús, taula de continguts, o la informació de copyright i avisos legals . Amb aquesta finalitat, HTML 5 introdueix tres nous elements: {{HTMLElement("nav")}} per a les col·leccions d'enllaços, com una taula de continguts, {{HTMLElement("footer")}} i {{HTMLElement("header")}} per obtenir informació relacionada amb el lloc. Recordeu que {{HTMLElement("header")}} i {{HTMLElement("footer")}} no seccionan el contingut com {{HTMLElement("section")}}, sinó que hi són per a marcar semànticament parts d'una secció.</li> +</ol> + +<p>De manera més general, HTML5 aporta precisió a les característiques de seccionament i encapçalament, permetent que l'esquema del document pogui ser predictible i utilitzat pel navegador per millorar l'experiència de l'usuari.</p> + +<h2 id="Algoritme_d'esquema_HTML5">A<span class="short_text" id="result_box" lang="ca"><span>lgoritme</span> <span>d'esquema</span> <span>HTML5</span></span></h2> + +<p>Anem a considerar els algoritmes subjacents la forma en que HTML s'encarrega de les seccions i esquemes.</p> + +<h3 id="Definir_seccions">Definir seccions</h3> + +<p>Tot el contingut situat a l'interior de l'element {{HTMLElement("body")}} és part d'una secció. Les seccions en HTML5 es poden niar. Al costat de la secció principal, definit per l'element {{HTMLElement("body")}}, els límits de secció es defineixen de manera explícita o implícita. Les seccions definides de forma explícita, són els continguts dins de les etiquetes {{HTMLElement("body")}}, {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}} i {{HTMLElement("nav")}}.</p> + +<div class="note">Cada secció pot tenir la seva pròpia jerarquia de encapçalaments. Per tant, fins i tot una secció niada pot tenir un {{HTMLElement("h1")}}. Veure {{anch("Defining headings")}}</div> + +<p>Vegem un exemple - aquí tenim un document amb una secció de nivell superior i un peu de pàgina definit. Dins de la secció de nivell superior tenim tres subseccions, que es defineixen per dos elements {{htmlelement("section")}} i un element {{htmlelement("aside")}}:</p> + +<pre class="brush:xml"><section> + + <h1>Forest elephants</h1> + + <section> + <h1>Introduction</h1> + <p>In this section, we discuss the lesser known forest elephants.</p> + </section> + + <section> + <h1>Habitat</h1> + <p>Forest elephants do not live in trees but among them.</p> + </section> + + <aside> + <p>advertising block</p> + </aside> + +</section> + +<footer> + <p>(c) 2010 The Example company</p> +</footer></pre> + +<p>Això ens porta al següent esquema::</p> + +<pre>1. Forest elephants + 1.1 Introduction + 1.2 Habitat +</pre> + +<h3 id="Definir_encapçalaments">Definir encapçalaments</h3> + +<p>Mentre que els elements de seccionament HTML defineixen l'estructura del document, un esquema també necessita encapçalaments per ser útil. La regla bàsica és simple: el primer element d'encapçalament HTML (un de {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}})) defineix el encapçalament de la secció actual.</p> + +<p>Els elements de capçalera tenen un <em>rang</em> donat pel nombre en el nom de l'element, on {{HTMLElement ("h1")}} té el rang més <em>alt</em>, i {{HTMLElement ("H6")}} té el rang més <em>baix</em>. Temes de classificació relativa només dins d'una secció; l'estructura de les seccions determina el esquema, no el rang d'encapçalament de les seccions. Per exemple, considereu aquest codi:</p> + +<pre class="brush:xml"><section> + <h1>Forest elephants</h1> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <section> + <h2>Habitat</h2> + <p>Forest elephants do not live in trees but among them. + ...this subsection continues... + </section> +</section> +<section> + <h3>Mongolian gerbils</h3> + <p>In this section, we discuss the famous mongolian gerbils. + ...this section continues... +</section></pre> + +<p>Aixó crea el següent esquema:</p> + +<pre>1. Forest elephants + 1.1 Habitat +2. Mongolian gerbils</pre> + +<p>Recordeu que el rang de l'element d'encapçalament (en l'exemple {{HTMLElement("h1")}} per a la primera secció de nivell superior, {{HTMLElement("h2")}} per a la subsecció i {{HTMLElement("h3")}} per a la segona secció de nivell superior) no és important. (Qualsevol rang es pot utilitzar com l'encapçalament d'una secció definida de manera explícita, encara que no es recomana aquesta pràctica.)</p> + +<h3 id="Seccionament_implícit">Seccionament implícit</h3> + +<p>A causa que el Seccionament d'elements HTML5 no són obligatoris per definir un esquema, per mantenir la compatibilitat amb la web existent, dominat per HTML 4, hi ha una manera de definir seccions sense ells. Això es diu <em>seccionament implícit</em>.</p> + +<p>Els elements de capçalera ({{HTMLElement("h1")}} a {{HTMLElement("h6")}}) defineixen una nova secció implícita, quan no són el primer encapçalament de les seccions explícites dels seue pares. La forma implícita d'aquesta secció es posiciona en l'esquema que es defineix per la seu rang relatiu amb l'encapçalat anterior en la seva secció per a pares. Si es tracta d'un rang inferior al de l'encapçalat anterior, s'obre una subsecció de la secció implícita. Aquest codi:</p> + +<pre class="brush:xml"><section> + <h1>Forest elephants</h1> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <h3 class="implicit subsection">Habitat</h3> + <p>Forest elephants do not live in trees but among them. + ...this subsection continues... +</section></pre> + +<p><span id="result_box" lang="ca"><span>condueix</span> <span>al següent</span> <span>esquema</span><span>:</span></span></p> + +<pre>1. Forest elephants + 1.1 Habitat <em>(implicitly defined by the h3 element)</em> +</pre> + +<p>Si es tracta del mateix rang que l'encapçalat anterior, es tanca la secció anterior (que pot haver estat explícit!) I s'obre una nova implícita en el mateix nivell: </p> + +<pre class="brush:xml"><section> + <h1>Forest elephants</h1> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <h1 class="implicit section">Mongolian gerbils</h1> + <p>Mongolian gerbils are cute little mammals. + ...this section continues... +</section></pre> + +<p><span id="result_box" lang="ca"><span>condueix</span> <span>al següent</span> <span>esquema</span><span>:</span></span></p> + +<pre>1. Forest elephants +2. Mongolian gerbils <em>(implicitly defined by the h1 element, which closed the previous section at the same time)</em> +</pre> + +<p>Si es tracta d'un rang més alt que l'encapçalat anterior, es tanca la secció anterior i s'obre una nova implícita en el nivell superior:</p> + +<pre class="brush:xml"><body> + <h1>Mammals</h1> + <h2>Whales</h2> + <p>In this section, we discuss the swimming whales. + ...this section continues... + <section> + <h3>Forest elephants</h3> + <p>In this section, we discuss the lesser known forest elephants. + ...this section continues... + <h3>Mongolian gerbils</h3> + <p>Hordes of gerbils have spread their range far beyond Mongolia. + ...this subsection continues... + <h2>Reptiles</h2> + <p>Reptiles are animals with cold blood. + ...this section continues... + </section> +</body></pre> + +<p><span id="result_box" lang="ca"><span>condueix</span> <span>al següent</span> <span>esquema</span><span>:</span></span></p> + +<pre>1. Mammals + 1.1 Whales <em>(implicitly defined by the h2 element)</em> + 1.2 Forest elephants <em>(explicitly defined by the section element)</em> + 1.3 Mongolian gerbils <em>(implicitly defined by the h3 element, which closes the previous section at the same time)</em> +2. Reptiles <em>(implicitly defined by the h2 element, which closes the previous section at the same time)</em> +</pre> + +<p>Aquest no és l'esquema que es podria esperar fent una ullada ràpida a les etiquetes d'encapçalament. Per fer un marcat humà comprensible, és una bona pràctica utilitzar etiquetes explícites per a l'obertura i tancament de seccions, i per a que coincideixi amb el rang d'encapçalament a nivell de niament de secció previst. No obstant això, no és requerit per l'especificació HTML5. Si trobeu que els navegadors mostran el seu esquema de document de manera inesperada, comproveu si té seccions que es tanquen de manera implícita pels elements d'encapçalament.</p> + +<p>Una excepció a la regla general és que el rang d'encapçalament ha de coincidir amb el nivell de niament de secció, és per a les seccions que poden ser reutilitzades en múltiples documents. Per exemple, una secció podria ser emmagatzemada en un sistema de gestió de continguts i muntada en documents en temps d'execució. En aquest cas, una bona pràctica és començar per {{HTMLElement("h1")}} per al nivell d'encapçalament superior de la secció reutilitzable. El nivell de niament de la secció reutilitzable serà determinat per la jerarquia de les seccions del document en què apareix. Les etiquetes de secció explícites són encara útils en aquest cas.</p> + +<h3 id="Arrels_de_seccionament"><a name="sectioning_root">Arrels de seccionament</a></h3> + +<p>Una <a id="sectioning root" name="sectioning root">arrel de seccionament</a> és un element HTML que pot tenir el seu propi esquema, però les seccions i encapçalaments en el seu interior no contribueixen a l'esquema del seu ancestre. Al costat de {{HTMLElement("body")}} que és l'arrel de seccionament lògica d'un document, aquests són sovint elements que introdueixen contingut extern a la pàgina: {{HTMLElement("blockquote")}}, {{HTMLElement("details")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("figure")}} i {{HTMLElement("td")}}.</p> + +<p>Exemple:</p> + +<pre class="brush:xml"><section> + <h1>Forest elephants</h1> + <section> + <h2>Introduction</h2> + <p>In this section, we discuss the lesser known forest elephants</p> + </section> + <section> + <h2>Habitat</h2> + <p>Forest elephants do not live in trees but among them. Let's + look what scientists are saying in "<cite>The Forest Elephant in Borneo</cite>":</p> + <blockquote> + <h1>Borneo</h1> + <p>The forest element lives in Borneo...</p> + </blockquote> + </section> +</section> +</pre> + +<p>El resultat d'aquest exemple en el següent esquema:</p> + +<pre>1. Forest elephants + 1.1 Introduction + 1.2 Habitat</pre> + +<p>Aquest esquema no conté el esquema intern de l'element {{HTMLElement("blockquote")}}, que sent una citació externa, és una arrel de seccionament i aïlla el seu esquema intern.</p> + +<h3 id="Seccions_fora_de_l'esquema">Seccions fora de l'esquema</h3> + +<p>HTML 5 introdueix dos nous elements que permeten definir seccions que no pertanyen el esquema principal d'un document web:</p> + +<ol> + <li>L'element de secció HTML Aside ({{HTMLElement("aside")}}) defineix una secció que, encara que es relaciona amb l'element principal, no pertany al corrent principal, com un quadre d'explicació o un anunci. Té el seu propi esquema, però no pertany a la principal.</li> + <li>L'element de secció HTML de navegació ({{HTMLElement("nav")}}) defineix una secció que conté enllaços de navegació. Pot haver-hi diversos d'ells en un document, per exemple, una pàgina amb enllaços interns com una taula de continguts, i un altre amb el lloc d'enllaços de navegació. Aquests enllaços no són part del flux principal del document i esquema, i en general no són mostrats inicialment pels lectors de pantalla i tecnologies de suport similars.</li> +</ol> + +<h3 id="Encapçalats_i_peus_de_pàgina">Encapçalats i peus de pàgina</h3> + +<p>HTML5 també introdueix dos nous elements que es poden utilitzar per marcar la capçalera i el peu de pàgina d'una secció:</p> + +<ol> + <li>L'element Header HTML ({{HTMLElement("header")}}) defineix una capçalera de la pàgina - en general conté el logotip i el nom del lloc i, possiblement, un menú horitzontal - o encapçalament de secció, que potser conté la capçalera de la secció, el nom de l'autor, etc.. {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}} i {{HTMLElement("nav")}} poden tenir la seva pròpia {{HTMLElement("header")}}. Malgrat el seu nom, no necessàriament es col·locat al començament de la pàgina o secció.</li> + <li>L'element Footer HTML ({{HTMLElement("footer")}}) defineix un peu de pàgina - en general conté el dret d'autor i avisos legals i, de vegades alguns enllaços - o secció de peu de pàgina, que potser conté la data de publicació de la secció, la informació de llicència, etc. {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}} i {{HTMLElement("nav")}} poden tenir el seu pròpi {{HTMLElement("footer")}}. Malgrat el seu nom, no necessàriament es col·locat al final de la pàgina o secció.</li> +</ol> + +<p>Aquests no creen noves seccions en l'esquema, més aviat, marcan el contingut dins de les seccions de la pàgina.</p> + +<h2 id="Adreces_en_elements_de_seccionament">Adreces en elements de seccionament</h2> + +<p>L'autor d'un document, sovint, vol publicar alguna informació de contacte, com el nom i l'adreça de l'autor. HTML 4 permet això a través de l'element {{HTMLElement("address")}}, que s'ha ampliat en HTML5.</p> + +<p>Un document pot estar fet de diferentes seccions per diferents autors. Una secció d'un altre autor, que el de la pàgina principal, es defineix mitjançant l'element {{HTMLElement("article")}}. En conseqüència, l'element {{HTMLElement("address")}} està enllaçat al seu més proper ancestre {{HTMLElement("body")}} o {{HTMLElement("article")}}.</p> + +<h2 id="Usar_elements_HTML5_en_navegadors_no_HTML5">Usar elements HTML5 en navegadors no HTML5</h2> + +<p>Els elements de seccions i capçaleres han de treballar en la majoria dels navegadors no HTML5. Tot i que no són compatibles, no necessiten una interfície especial DOM i només necessiten un estil CSS específic com a elements desconeguts, que son, se'ls dóna estil amb <code>display:inline</code> per defecte:</p> + +<pre class="brush: css">section, article, aside, footer, header, nav, hgroup { + display:block; +} +</pre> + +<p>Per descomptat, el desenvolupador web els pot donar estil de manera diferent però tinguen en compte que en un navegador no HTML5, l'estil per defecte és diferent del que s'espera per a aquest tipus d'elements. També tingueu en compte que l'element {{HTMLElement("time")}} no s'ha inclòs, ja que l'estil predeterminat per a ell en un navegador no HTML 5 és el mateix que en un amb HTML5 compatible.</p> + +<p>Aquest mètode té les seves limitacions, ja que alguns navegadors no permeten un estil d'elements no compatibles. Aquest és el cas d'Internet Explorer (versió 8 i anteriors), que necessiten un script específic per permetre això:</p> + +<pre class="brush:xml"><!--[if lt IE 9]> + <script> + document.createElement("header" ); + document.createElement("footer" ); + document.createElement("section"); + document.createElement("aside" ); + document.createElement("nav" ); + document.createElement("article"); + document.createElement("hgroup" ); + document.createElement("time" ); + </script> +<![endif]--></pre> + +<p>Aquest script significa que, en el cas d'Internet Explorer (8 i anteriors), el script ha d'estar habilitat per tal de mostrar els elements de seccionament HTML5 i de capçaleres correctament. Si no és així, no es mostraran, la qual cosa pot ser problemàtic, ja que aquests elements són propensos a definir l'estructura de la pàgina sencera. És per això que un element explícit {{HTMLElement( "noscript")}} ha de ser afegit per a aquest cas:</p> + +<pre class="brush:xml"><noscript> + <strong>Warning !</strong> + Because your browser does not support HTML5, some elements are simulated using JScript. + Unfortunately your browser has disabled scripting. Please enable it in order to display this page. +</noscript></pre> + +<p>Això ens porta al següent codi per permetre el suport dels elements de seccions HTML5 i capçaleres en els navegadors no HTML5, fins i tot per a Internet Explorer (8 i anteiors), amb un retorn adequat per al cas en què aquest últim navegador estigui configurat per no utilitzar scripts:</p> + +<pre class="brush:xml"><!--[if lt IE 9]> + <script> + document.createElement("header" ); + document.createElement("footer" ); + document.createElement("section"); + document.createElement("aside" ); + document.createElement("nav" ); + document.createElement("article"); + document.createElement("hgroup" ); + document.createElement("time" ); + </script> + <noscript> + <strong>Warning !</strong> + Because your browser does not support HTML5, some elements are created using JavaScript. + Unfortunately your browser has disabled scripting. Please enable it in order to display this page. + </noscript> +<![endif]--></pre> + +<h2 id="Conclusió">Conclusió</h2> + +<p>Els nous elements semàntics introduïts en HTML5 tene la capacitat de descriure l'estructura i l'esquema d'un document web d'una manera estàndard. Aporten una gran avantatge per a les persones que tenen navegadors HTML5 i que necessitan l'estructura per ajudar-los a entendre la pàgina, per exemple les persones que necessiten l'ajuda d'una mica de tecnologia d'assistència. Aquests nous elements semàntics són senzills d'usar i, amb molt poques càrregues, es poden fer funcionar també en els navegadors no HTML5. Per tant han de ser utilitzats sense restriccions.</p> + +<div>{{HTML5ArticleTOC()}}</div> diff --git a/files/ca/web/guide/index.html b/files/ca/web/guide/index.html new file mode 100644 index 0000000000..d8bb064439 --- /dev/null +++ b/files/ca/web/guide/index.html @@ -0,0 +1,56 @@ +--- +title: Web developer guides +slug: Web/Guide +tags: + - Guide + - Landing + - NeedsTranslation + - TopicStub + - Web +translation_of: Web/Guide +--- +<p><strong>Aquests articles proporcionen una guia pràctica d'informació per ajudar a fer ús de les tecnologies i les API específiques.</strong></p> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt class="landingPageList"><a href="/en-US/docs/Learn/HTML">HTML Àrea d'Aprenentatge</a></dt> + <dd class="landingPageList"><strong>HyperText Markup Language (HTML)</strong> és el nucli del llenguatge de gairebé tot el contingut web. La major part del que veieu a la pantalla en el vostre navegador es descrit, fonamentalment, amb l'ús d'HTML.</dd> + <dt class="landingPageList"> <a href="/en-US/docs/Learn/CSS">CSS Àrea d'Aprenentatge</a></dt> + <dd class="landingPageList"><span id="result_box" lang="ca"><span>Fulles</span> <span>d'estil en</span> <span>cascada</span> <span>(</span><span>CSS</span><span>)</span> <span>és</span> <span>un llenguatge de</span> <span>full d'estil</span> <span>s'utilitza</span> <span>per descriure la</span> <span>presentació</span> <span>d'un</span> <span>document</span> <span>escrit</span> <span>en HTML.</span></span></dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Events">Esdeveniments guia per a desenvolupador</a></dt> + <dd class="landingPageList">Esdeveniments es refereix tant a un patró de disseny utilitzat per al maneig asíncrona de diversos incidents que es produeixen en el curs de la vida d'una pàgina web i a la nomenclatura, la caracterització i l'ús d'un gran nombre d'incidents de diferents tipus</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Graphics">Gràfics a la Web</a></dt> + <dd class="landingPageList">Els llocs web moderns i aplicacions sovint han de presentar gràfics de complexitat variable.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/API">Guia de les Web APIs</a></dt> + <dd class="landingPageList">Una llista de totes les API Web i el que fan.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/JavaScript" title="/en-US/docs/JavaScript">JavaScript</a></dt> + <dd>JavaScript és un potent llenguatge de scripting usat per crear aplicacions per a la Web.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Localizations_and_character_encodings">Localizacions i codificaciones de caràcter</a></dt> + <dd class="landingPageList">Els navegadors procesan el text internament com Unicode. No obstant això, una forma de representar caràcters en termes de bytes (codificació de caràcters) s'utilitza per a la transferència de text a través de la xarxa al navegador. The <a class="external external-icon" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset">L'especificació HTML recomana l'ùs de la codificació UTF-8 </a> (que pot representar a tots Unicode), i independentment de la codificació utilitzada requereix de contingut web per declarar aquesta codificació.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Mobile">Mòvil Desenvolupament Web</a></dt> + <dd class="landingPageList">Aquesta pàgina ofereix una visió general d'algunes de les principals tècniques necessàries per dissenyar llocs web que funcionen correctament en dispositius mòbils. Si esteu buscant informació sobre el projecte Firefox OS de Mozilla, vegeu la pàgina de <a href="https://developer.mozilla.org/en/Mozilla/Firefox_OS" title="Boot to Gecko">Firefox OS</a>. O si esteu interessat en els detalls sobre <a href="https://developer.mozilla.org/en/Mozilla/Firefox_for_Android">Firefox per Android</a>.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Performance">Optimització i rendiment</a></dt> + <dd class="landingPageList">En la construcció d'aplicacions i llocs web moderns, és important que el seu contingut funcioni de forma ràpida i eficient. Això permetrà que es realitzi de manera efectiva tant per als potents sistemes d'escriptori com per els dispositius portatils més febles.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Parsing_and_serializing_XML">Anàlisi i serialització XML</a></dt> + <dd class="landingPageList">La plataforma web ofereix diferents mètodes d'anàlisi sintàctica i la serialització XML, cadascun amb els seus propis avantatges i desavantatges.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/WOFF">La Web Open Font Format (WOFF)</a></dt> + <dd class="landingPageList"><strong>WOFF</strong> (<strong>Web Open Font Format</strong>) és un format d'arxiu font que és lliure perquè qualsevol el faci servir a la web.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects">L'ùs d'objectes FormData</a></dt> + <dd class="landingPageList">L'objecte <a href="https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData"><code>FormData</code></a> permet compilar un conjunt de parells clau/valor per enviar mitjançant XMLHttpRequest. Està destinat principalment a l'enviament de dades de formularis, però pot ser utilitzat independentment dels formularis per tal de transmetre dades codificades. La transmissió està en el mateix format que el mètode submit() dels formularis per enviar les dades del formulari si el tipus de codificació s'estableix en "multipart/form-data".</dd> + <dt class="landingPageList"><a href="/en-US/docs/Glossary">Glossari</a></dt> + <dd class="landingPageList">Defineix nombrosos termes tècnics relacionats amb la Web i Internet.</dd> +</dl> +</div> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/Reference" title="/en-US/docs/Web/Reference">Web Developer Reference</a></li> +</ul> diff --git a/files/ca/web/html/block-level_elements/index.html b/files/ca/web/html/block-level_elements/index.html new file mode 100644 index 0000000000..91cfcad2de --- /dev/null +++ b/files/ca/web/html/block-level_elements/index.html @@ -0,0 +1,127 @@ +--- +title: Elements a nivell de bloc +slug: Web/HTML/Block-level_elements +translation_of: Web/HTML/Block-level_elements +--- +<p>Els elements HTML (<strong>HyperText Markup Language</strong>) són normalment elements "en bloc" o <a href="https://developer.mozilla.org/en-US/docs/HTML/Inline_elements">elements "en línia"</a>. Un element en bloc ocupa tot l'espai del seu element pare (contenidor), creant així un "bloc". Aquest article ajuda a explicar el que això significa.</p> + +<p><span id="result_box" lang="ca"><span>Els</span> <span>navegadors</span> <span>solen mostrar</span> <span>l'element a</span> <span>nivell</span> <span>de bloc</span> <span>amb</span> <span>un salt de</span> <span>línia abans</span> <span>i</span> <span>després de l'element</span><span>.</span> <span>Es</span> <span>pot</span> <span>visualitzar</span> <span>com una pila</span> <span>de caixes.</span> <span>El següent</span> <span>exemple</span> <span>demostra la influència</span> <span>de l'element</span> <span>en bloc</span><span>:</span></span></p> + +<h2 id="Block-level_Example" name="Block-level_Example"><span style="color: #333333; margin-left: -3px; text-transform: none;">Elements en Bloc</span></h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>This paragraph is a block-level element; its background has been colored to display the paragraph's parent element.</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">p { background-color: #8ABB55; } +</pre> + +<p>{{ EmbedLiveSample('Block-level_Example') }}</p> + +<h2 id="Ús">Ús</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Els Elements</span> <span>en bloc</span> <span>poden aparèixer</span> <span>només</span> <span>dins d'un element</span></span> {{ HTMLElement("body") }}.</li> +</ul> + +<h2 id="En_bloc_vs._En_línia">En bloc vs. En línia</h2> + +<p>Hi ha un parell de diferències clau entre els elements en bloc i els elements en línia:</p> + +<dl> + <dt>Formateig</dt> + <dd>Per defecte, els elements de bloc comencen en línies noves, però els elements en línia poden començar en qualsevol part d'una línia.</dd> + <dt>Model de contingut</dt> + <dd>En general, els elements de bloc poden contenir elements en línia i altres elements en bloc. Inherent a aquesta distinció estructural és la idea que els elements de bloc creen estructures "més gran" que els elements en línia.</dd> +</dl> + +<p>La distinció entre els elements en bloc vs. línia s'utilitza en les especificacions d'HTML fins 4.01. En HTML5, aquesta distinció binària se substitueix amb un conjunt més complex de <a href="https://developer.mozilla.org/en-US/docs/HTML/Content_categories">categories de contingut</a>. La categoria "en bloc" correspon aproximadament a la categoria de <a href="https://developer.mozilla.org/en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a> en HTML 5, mentre que "en línia" es correspon amb el <a href="https://developer.mozilla.org/en-US/docs/HTML/Content_categories#Phrasing_content">contingut fraseig</a>, però hi ha categories addicionals.</p> + +<h2 id="Elements">Elements</h2> + +<p>La següent és una llista completa de tots els elements HTML de bloc (encara que "a nivell de bloc" no es defineix tècnicament per als elements que són nous en HTML5).</p> + +<div class="threecolumns"> +<dl> + <dt>{{ HTMLElement("address") }}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Informació de contacte</span></span></dd> + <dt>{{ HTMLElement("article") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Contingut Article.</dd> + <dt>{{ HTMLElement("aside") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Contingut Aside.</dd> + <dt>{{ HTMLElement("blockquote") }}</dt> + <dd>Cita extensa ("bloc").</dd> + <dt>{{ HTMLElement("br") }}</dt> + <dd>Salt de línia.</dd> + <dt>{{ HTMLElement("canvas") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Gràfic canvas.</dd> + <dt>{{ HTMLElement("dd") }}</dt> + <dd><span id="result_box" lang="ca"><span>Descripció </span><span>Definició.</span></span></dd> + <dt>{{ HTMLElement("div") }}</dt> + <dd>Divisió document.</dd> + <dt>{{ HTMLElement("dl") }}</dt> + <dd>Llista de definicions.</dd> + <dt>{{ HTMLElement("fieldset") }}</dt> + <dd>Etiquetes de camp.</dd> +</dl> + +<dl> + <dt>{{ HTMLElement("figcaption") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Llegenda de la imatge.</dd> + <dt>{{ HTMLElement("figure") }} {{ HTMLVersionInline(5) }}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Contingut</span> <span>multimèdia,</span> <span>grups</span> <span>amb</span> <span>una llegenda</span></span> (veure {{ HTMLElement("figcaption") }}).</dd> + <dt>{{ HTMLElement("footer") }} {{ HTMLVersionInline(5) }}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Secció</span> <span>o peu</span> <span>de pàgina.</span></span></dd> + <dt>{{ HTMLElement("form") }}</dt> + <dd>Formulari d'entrada.</dd> + <dt>{{ HTMLElement("h1") }}, {{ HTMLElement("h2") }}, {{ HTMLElement("h3") }}, {{ HTMLElement("h4") }}, {{ HTMLElement("h5") }}, {{ HTMLElement("h6") }}</dt> + <dd>Nivells de capçalera 1-6.</dd> + <dt>{{ HTMLElement("header") }} {{ HTMLVersionInline(5) }}</dt> + <dd><span id="result_box" lang="ca"><span>Secció</span> <span>o encapçalament</span> <span>de pàgina.</span></span></dd> + <dt>{{ HTMLElement("hgroup") }} {{ HTMLVersionInline(5) }}</dt> + <dd> + <div class="textArea" id="destText" style="direction: ltr;"> + <div><span id="ouHighlight__14_24TO0_9">Informació</span><span id="noHighlight_0.4118407506703824"> de </span><span class="highlighted" id="ouHighlight__7_12TO14_22">capçalera</span><span id="noHighlight_0.5902863558947251"> de </span><span id="ouHighlight__0_5TO27_31">grups</span><span id="noHighlight_0.5463873009180821">.</span></div> + </div> + </dd> + <dt>{{ HTMLElement("hr") }}</dt> + <dd><span id="result_box" lang="ca"><span>Regla</span> <span>horitzontal</span> <span>(</span><span>línia</span> <span>divisòria</span><span>)</span><span>.</span></span></dd> + <dt>{{ HTMLElement("li") }}</dt> + <dd>Element de la llista..</dd> + <dt>{{ HTMLElement("main") }}</dt> + <dd>Conté el contingut central únic per aquest document.</dd> + <dt>{{ HTMLElement("nav") }}</dt> + <dd><span id="result_box" lang="ca"><span>Conté</span> <span>enllaços</span> <span>de navegació.</span></span></dd> +</dl> + +<dl> + <dt>{{ HTMLElement("noscript") }}</dt> + <dd>Contingut d'ùs si scripting no és compatible o apagat.</dd> + <dt>{{ HTMLElement("ol") }}</dt> + <dd>Llista ordenada.</dd> + <dt>{{ HTMLElement("output") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Formulari de sortida.</dd> + <dt>{{ HTMLElement("p") }}</dt> + <dd>Paràgraf.</dd> + <dt>{{ HTMLElement("pre") }}</dt> + <dd>Text amb format predefinit.</dd> + <dt>{{ HTMLElement("section") }} {{ HTMLVersionInline(5) }}</dt> + <dd><span id="result_box" lang="ca"><span>Secció d'una</span> <span>pàgina</span> <span>web.</span></span></dd> + <dt>{{ HTMLElement("table") }}</dt> + <dd>Taula.</dd> + <dt>{{ HTMLElement("tfoot") }}</dt> + <dd><span id="result_box" lang="ca">P<span>eu</span> <span>de pàgina de la taula</span></span>.</dd> + <dt>{{ HTMLElement("ul") }}</dt> + <dd>Llista desordenada.</dd> + <dt>{{ HTMLElement("video") }} {{ HTMLVersionInline(5) }}</dt> + <dd><span id="result_box" lang="ca"><span>Reproductor</span> <span>de vídeo.</span></span></dd> +</dl> +</div> + +<h3 id="See_also" name="See_also">Veure</h3> + +<ul> + <li><a href="/en-US/docs/Web/HTML/Inline_elements" title="en/HTML/Inline_elements">Elements en línia</a></li> +</ul> diff --git a/files/ca/web/html/element/a/index.html b/files/ca/web/html/element/a/index.html new file mode 100644 index 0000000000..be0d62e025 --- /dev/null +++ b/files/ca/web/html/element/a/index.html @@ -0,0 +1,531 @@ +--- +title: <a> +slug: Web/HTML/Element/a +translation_of: Web/HTML/Element/a +--- +<p>The <em>HTML <code>Anchor</code> Element</em> (<strong><code><a></code></strong>) defines a hyperlink to a location on the same page or any other page on the Web. It can also be used (in an obsolete way) to create an anchor point—a destination for hyperlinks within the content of a page, so that links aren't limited to connecting simply to the top of a page.</p> + +<pre class="brush: html"><a href="https://developer.mozilla.org">MDN</a> +</pre> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut interactiu, contingut palpable.</li> + <li><dfn>Contingut permès</dfn> <a href="/en-US/docs/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">Transparent</a>, conté o <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">contingut de flux</a> o <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content"> phrasing content </a>.</li> + <li><dfn>Omissió de l'etiqueta</dfn> {{no_tag_omission}}</li> + <li><dfn>Elements pares permesos</dfn> Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>, o qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">contingut de flux</a>.</li> + <li><dfn>Interfície DOM</dfn> {{domxref("HTMLAnchorElement")}}</li> +</ul> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element només inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt><strong>{{htmlattrdef("download")}} {{HTMLVersionInline(5)}}</strong></dt> + <dd>This attribute, if present, indicates that the author intends the hyperlink to be used for downloading a resource so that when the user clicks on the link they will be prompted to save it as a local file. If the attribute has a value, the value will be used as the pre-filled file name in the Save prompt that opens when the user clicks on the link (the user can change the name before actually saving the file of course). There are no restrictions on allowed values (though / and \ will be converted to underscores, preventing specific path hints), but you should consider that most file systems have limitations with regard to what punctuation is supported in file names, and browsers are likely to adjust file names accordingly. + <div class="note"> + <p><strong>Note: </strong></p> + + <ul> + <li>Can be used with blob: URLs and data: URLs, to make it easy for users to download content that is generated programmatically using JavaScript (e.g. a picture created using an online drawing Web app.</li> + <li>If the HTTP header Content-Disposition: is present and gives a different filename than this attribute, the HTTP header has priority over this attribute.</li> + <li>If this attribute is present and Content-Disposition: is set to inline, Firefox gives priority to Content-Disposition, like for the filename case, while Chrome gives priority to the download attribute.</li> + <li>This attribute is only honored for links to resources with the same-origin.</li> + </ul> + </div> + </dd> + <dt><strong>{{htmlattrdef("href")}}</strong></dt> + <dd>This was the single required attribute for anchors defining a hypertext source link, but the attribute may now be omitted (as of HTML5) in order to create a placeholder link. A <a>placeholder link</a> presents itself like a traditional hyperlink but when activated does not result in redirection to a new page or a sub-section of the same document. The href is still required when specifying a link target, either a URL or a URL fragment. A URL fragment is a name preceded by a hash mark (#), which specifies an internal target location (an ID of an HTML element) within the current document. URLs are not restricted to Web (HTTP)-based documents. URLs might use any protocol supported by the browser. For example, file, ftp, and mailto work in most user agents. + <div class="note"> + <p><strong>Note: </strong>You can use the special fragment "top" to create a link back to the top of the page; for example <a>href="#top">Return to top</a>. This behavior is specified by HTML5.</p> + </div> + </dd> + <dt><strong>{{htmlattrdef("hreflang")}}</strong></dt> + <dd>This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by BCP47 for HTML5 and by RFC1766 for HTML4. Use this attribute only if the {{htmlattrxref("href", "a")}} attribute is present.</dd> + <dt><strong>{{htmlattrdef("ping")}} {{HTMLVersionInline(5)}}</strong></dt> + <dd>The 'ping' attribute, if present, sends the URLs of the resources a notification/ping if the user follows the hyperlink.</dd> + <dt><strong>{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}</strong></dt> + <dd>A string indicating which referrer to use when fetching the resource: + <ul> + <li>'no-referrer' meaning that the Referer: header will not be sent.</li> + <li>'no-referrer-when-downgrade' meaning that no Referer: header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.</li> + <li>'origin' meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the port.</li> + <li>'origin-when-cross-origin' meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.</li> + <li>'unsafe-url' meaning that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.</li> + </ul> + </dd> + <dt><strong>{{htmlattrdef("rel")}}</strong></dt> + <dd>For anchors containing the href attribute, this attribute specifies the relationship of the target object to the link object. The value is a space-separated list of link types values. The values and their semantics will be registered by some authority that might have meaning to the document author. The default relationship, if no other is given, is void. Use this attribute only if the href attribute is present.</dd> + <dt><strong>{{htmlattrdef("target")}}</strong></dt> + <dd>This attribute specifies where to display the linked resource. In HTML4, this is the name of, or a keyword for, a frame. In HTML5, it is a name of, or keyword for, a browsing context (for example, tab, window, or inline frame). The following keywords have special meanings: + <ul> + <li>_self: Load the response into the same HTML4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.</li> + <li>_blank: Load the response into a new unnamed HTML4 window or HTML5 browsing context.</li> + <li>_parent: Load the response into the HTML4 frameset parent of the current frame or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as _self.</li> + <li>_top: In HTML4: Load the response into the full, original window, canceling all other frames. In HTML5: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as _self.</li> + </ul> + Use this attribute only if the href attribute is present. + + <div class="note"> + <p><strong>Note: </strong>When using target you should consider adding rel="noopener noreferrer" to avoid exploitation of the window.opener API.</p> + </div> + </dd> + <dt><strong>{{htmlattrdef("type")}}</strong></dt> + <dd>This attribute specifies the media type in the form of a {{Glossary("MIME type")}} for the link target. Generally, this is provided strictly as advisory information; however, in the future a browser might add a small icon for multimedia types. For example, a browser might add a small speaker icon when type is set to audio/wav. For a complete list of recognized MIME types, see http://www.w3.org/TR/html4/references.html#ref-MIMETYPES. Use this attribute only if the href attribute is present.</dd> +</dl> + +<h3 id="Obsolete">Obsolete</h3> + +<dl> + <dt><strong>{{htmlattrdef("charset")}} {{obsoleteGeneric("inline","HTML5")}}</strong></dt> + <dd>This attribute defines the character encoding of the linked resource. The value is a space- and/or comma-delimited list of character sets as defined in RFC 2045. The default value is ISO-8859-1. +<div class="note"> + <p><strong>Usage note: </strong>This attribute is obsolete in HTML5 and should not be used by authors. To achieve its effect, use the HTTP Content-Type header on the linked resource.</p> +</div> +</dd> + <dt>{{htmlattrdef("coords")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</dt> + <dd>For use with object shapes, this attribute uses a comma-separated list of numbers to define the coordinates of the object on the page. +</dd> + <dt><strong>{{htmlattrdef("name")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</strong></dt> + <dd>This attribute is required in an anchor defining a target location within a page. A value for name is similar to a value for the id core attribute and should be an alphanumeric identifier unique to the document. Under the HTML 4.01 specification, id and name both can be used with the <a> element as long as they have identical values. +<div class="note"> + <p><strong>Usage note: </strong> This attribute is obsolete in HTML5, use global attribute id instead.</p> +</div> +</a></dd><a> + <dt><strong>{{htmlattrdef("rev")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</strong></dt> + <dd>This attribute specifies a reverse link, the inverse relationship of the rel attribute. It is useful for indicating where an object came from, such as the author of a document.</dd> + <dt><strong>{{htmlattrdef("shape")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</strong></dt> + <dd>This attribute is used to define a selectable region for hypertext source links associated with a figure to create an image map. The values for the attribute are circle, default, polygon, and rect. The format of the coords attribute depends on the value of shape. For circle, the value is x,y,r where x and y are the pixel coordinates for the center of the circle and r is the radius value in pixels. For rect, the coords attribute should be x,y,w,h. The x,y values define the upper-left-hand corner of the rectangle, while w and h define the width and height respectively. A value of polygon for shape requires x1,y1,x2,y2,... values for coords. Each of the x,y pairs defines a point in the polygon, with successive points being joined by straight lines and the last point joined to the first. The value default for shape requires that the entire enclosed area, typically an image, be used. +<div class="note"> + <p><strong>Note: </strong>It is advisable to use the usemap attribute for the {{HTMLElement("img")}} element and the associated {{HTMLElement("map")}} element to define hotspots instead of the shape attribute.</p> +</div> +</dd> +</a></dl><a> + +<h3 id="Non_standard">Non standard</h3> + + + + + + + + + + + + + + + + + + + + + + + + + + +</a><dl><a> +<dt>{{htmlattrdef("datafld")}} {{Non-standard_inline}}</dt> + </a><dd><a>This attribute specifies the column name from that data source object that supplies the bound data. + </a><div class="note"><a> + </a><p><a><strong>Usage note: </strong>This attribute is non-standard and <strong>should not be used by authors</strong>. To achieve its effect, use scripting and a mechanism such as </a><a href="/en-US/docs/nsIXMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a> to populate the page dynamically</p> + </div> + + <table class="fullwidth-table"> + <tbody> + <tr> + <td rowspan="2">Support</td> + <td>Gecko</td> + <td>Presto</td> + <td>WebKit</td> + <td>Trident</td> + </tr> + <tr> + <td>Not implemented</td> + <td>Not implemented</td> + <td>Not implemented</td> + <td>IE4, IE5, IE6, IE7 (Removed in IE8)</td> + </tr> + <tr> + <td>Normative document</td> + <td colspan="4"><a class="external" href="http://msdn.microsoft.com/en-us/library/ms533703%28VS.85%29.aspx">Microsoft's Data Binding: dataFld Property (MSDN)</a></td> + </tr> + </tbody> + </table> + </dd> + <dt>{{htmlattrdef("datasrc")}} {{Non-standard_inline}}</dt> + <dd>This attribute indicates the ID of the data source object that supplies the data that is bound to this element. + <div class="note"> + <p><strong>Usage note: </strong>This attribute is non-standard and <strong>should not be used by authors</strong>. To achieve its effect, use scripting and a mechanism such as <a href="/en-US/docs/nsIXMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a> to populate the page dynamically.</p> + </div> + + <table class="fullwidth-table"> + <tbody> + <tr> + <td rowspan="2">Support</td> + <td>Gecko</td> + <td>Presto</td> + <td>WebKit</td> + <td>Trident</td> + </tr> + <tr> + <td>Not implemented</td> + <td>Not implemented</td> + <td>Not implemented</td> + <td>IE4, IE5, IE6, IE7 (Removed in IE8)</td> + </tr> + <tr> + <td>Normative document</td> + <td colspan="4"><a class="external" href="http://msdn.microsoft.com/en-us/library/ms533709(VS.85).aspx" title="http://msdn.microsoft.com/en-us/library/ms533709(VS.85).aspx">Microsoft's Data Binding: dataSrc Property (MSDN)</a></td> + </tr> + </tbody> + </table> + </dd> + <dt>{{htmlattrdef("hreflang")}}</dt> + <dd>This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by <a class="external" href="http://www.ietf.org/rfc/bcp/bcp47.txt" title="http://www.ietf.org/rfc/bcp/bcp47.txt">BCP47</a> for HTML5 and by <a class="external" href="http://www.ietf.org/rfc/rfc1766.txt" title="http://www.ietf.org/rfc/rfc1766.txt">RFC1766</a> for HTML4. Use this attribute only if the {{htmlattrxref("href", "a")}} attribute is present.</dd> + <dt>{{htmlattrdef("methods")}} {{Non-standard_inline}}</dt> + <dd>The value of this attribute provides information about the functions that might be performed on an object. The values generally are given by the HTTP protocol when it is used, but it might (for similar reasons as for the title attribute) be useful to include advisory information in advance in the link. For example, the browser might choose a different rendering of a link as a function of the methods specified; something that is searchable might get a different icon, or an outside link might render with an indication of leaving the current site. This attribute is not well understood nor supported, even by the defining browser, Internet Explorer 4. <a class="external" href="http://msdn.microsoft.com/en-us/library/ms534168(VS.85).aspx">Methods Property (MSDN)</a></dd> + <dt>{{htmlattrdef("name")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</dt> + <dd>This attribute is required in an anchor defining a target location within a page. A value for <strong>name</strong> is similar to a value for the <strong>id</strong> core attribute and should be an alphanumeric identifier unique to the document. Under the HTML 4.01 specification, <strong>id</strong> and <strong>name</strong> both can be used with the <a> element as long as they have identical values. + <div class="note"> + <p><strong>Usage note:</strong> This attribute is obsolete in HTML5, use <a href="/en-US/docs/HTML/Global_attributes#attr-id" title="HTML/Global attributes#id">global attribute <strong>id</strong></a> instead.</p> + </div> + </dd> + <dt>{{htmlattrdef("rev")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</dt> + <dd>This attribute specifies a reverse link, the inverse relationship of the <strong>rel</strong> attribute. It is useful for indicating where an object came from, such as the author of a document.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("shape")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}</dt> + <dd>This attribute is used to define a selectable region for hypertext source links associated with a figure to create an image map. The values for the attribute are <code>circle</code>, <code>default</code>, <code>polygon</code>, and <code>rect</code>. The format of the <strong>coords</strong> attribute depends on the value of shape. For <code>circle</code>, the value is <code>x,y,r</code> where <code>x</code> and <code>y</code> are the pixel coordinates for the center of the circle and <code>r</code> is the radius value in pixels. For <code>rect</code>, the <strong>coords</strong> attribute should be <code>x,y,w,h</code>. The <code>x,y</code> values define the upper-left-hand corner of the rectangle, while <code>w</code> and <code>h</code> define the width and height respectively. A value of <code>polygon</code> for <strong>shape</strong> requires <code>x1,y1,x2,y2,...</code> values for <strong>coords</strong>. Each of the <code>x,y</code> pairs defines a point in the polygon, with successive points being joined by straight lines and the last point joined to the first. The value <code>default</code> for shape requires that the entire enclosed area, typically an image, be used. + <div class="note"><strong>Note: </strong>It is advisable to use the <strong>usemap</strong> attribute for the {{HTMLElement("img")}} element and the associated {{HTMLElement("map")}} element to define hotspots instead of the <strong>shape</strong> attribute.</div> + </dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>This attribute specifies the media type in the form of a MIME type for the link target. Generally, this is provided strictly as advisory information; however, in the future a browser might add a small icon for multimedia types. For example, a browser might add a small speaker icon when type is set to audio/wav. For a complete list of recognized MIME types, see <a class="linkification-ext external" href="http://www.w3.org/TR/html4/references.html#ref-MIMETYPES" title="Linkification: http://www.w3.org/TR/html4/references.html#ref-MIMETYPES">http://www.w3.org/TR/html4/references.html#ref-MIMETYPES</a>. Use this attribute only if the <strong>href</strong> attribute is present.</dd> + <dt>{{htmlattrdef("urn")}} {{Non-standard_inline}}</dt> + <dd>This supposedly Microsoft-supported attribute relates a uniform resource name (URN) with the link. While it is based on standards work years back, the meaning of URNs is still not well defined, so this attribute is meaningless. <a class="external" href="http://msdn.microsoft.com/en-us/library/ms534710(VS.85).aspx">urn Property (MSDN)</a></dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<h3 id="Linking_to_an_external_location">Linking to an external location</h3> + +<pre class="brush: html"><!-- anchor linking to external file --> +<a href="<a class="linkification-ext" href="http://www.mozilla.com/" title="Linkification: http://www.mozilla.com/">http://www.mozilla.com/</a>"> +External Link +</a> +</pre> + +<h4 id="Result" name="Result">Result</h4> + +<p><a class="external" href="http://www.mozilla.com/">External Link</a></p> + +<h3 id="Linking_to_another_section_on_the_same_page">Linking to another section on the same page</h3> + +<pre class="brush: html"><!-- anchor link to section on this page named id="attr-href" --> +<a href="#attr-href"> +Description of Same-Page Links +</a> +</pre> + +<h4 id="Result" name="Result">Result</h4> + +<p><a class="external" href="https://developer.mozilla.org/ca/docs/Web/HTML/Element/a$edit#attr-href">Description of Same Page Links</a></p> + +<h3 id="Creating_a_clickable_image">Creating a clickable image</h3> + +<p>This small example use an image to link to the MDN home page. The home page will open in a new browsing context, that is a new page or a new tab.</p> + +<pre class="brush: html"><a href="https://developer.mozilla.org/en-US/" target="_blank"> + <img src="https://mdn.mozillademos.org/files/6851/mdn_logo.png" alt="MDN logo" /> +</a> +</pre> + +<h3 id="Result" name="Result">Result</h3> + +<figure> +<p>{{EmbedLiveSample("Example.3A_Creating_a_clickable_image", "320", "64")}}</p> +</figure> + +<h3 id="Creating_an_email_link">Creating an email link</h3> + +<p>It's common to create buttons or links that will open in the user's email program to allow them to send a new message. This is done by using a mailto link. Here's a simple example:</p> + +<pre class="brush: html"><a href="mailto:nowhere@mozilla.org">Send email to nowhere</a></pre> + +<p>This results in a link that looks like this: <a href="mailto:nowhere@mozilla.org">Send email to nowhere</a>.</p> + +<p>For additional details about the mailto URL scheme, such as how to include the subject, body, or other predetermined content, see <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Email_links">Email links</a> or {{RFC(6068)}}.</p> + +<h3 id="Creating_a_phone_link">Creating a phone link</h3> + +<p>With phones viewing web documents and laptops being connected to phones offering clickable phone links becomes increasingly helpful.</p> + +<pre class="brush: html"><a href="tel:+491570156">+49 157 0156;/a> +</pre> + +<p>For additional details about the tel URL scheme, see {{RFC(2806)}} and {{RFC(2396)}}.</p> + +<h3 id="Using_the_download_attribute_to_save_a_canvas_as_a_PNG">Using the download attribute to save a canvas as a PNG</h3> + +<p>If you want to allow a user to download an HTML Canvas as an image you can create a link with a download attribute and the canvas data as a file URL:</p> + +<pre class="brush: js"><strong style="color: #000066; font-weight: bold;">var</strong> link <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'a'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> +link.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366cc;">'download image'</span><span style="color: #339933;">;</span> +link.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'click'</span><span style="color: #339933;">,</span> <strong style="color: #000066; font-weight: bold;">function</strong><span style="color: #009900;">(</span>ev<span style="color: #009900;">)</span> <span style="color: #009900;">{</span> + link.<span style="color: #660066;">href</span> <span style="color: #339933;">=</span> canvas.<span style="color: #660066;">toDataURL</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> + link.<span style="color: #660066;">download</span> <span style="color: #339933;">=</span> <span style="color: #3366cc;">"mypainting.png"</span><span style="color: #339933;">;</span> +<span style="color: #009900;">}</span><span style="color: #339933;">,</span> <strong style="color: #003366; font-weight: bold;">false</strong><span style="color: #009900;">)</span><span style="color: #339933;">;</span> +document.<span style="color: #660066;">body</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">(</span>link<span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre> + +<p>You can see this in action <a href="http://jsfiddle.net/codepo8/V6ufG/2/">http://jsfiddle.net/codepo8/V6ufG/2/</a></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-a-element', '<a>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-a-element', '<a>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/links.html#h-12.2', '<a>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>href="#top"</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("10.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>download</td> + <td>{{CompatChrome("14")}}</td> + <td>{{CompatGeckoDesktop("20.0")}}</td> + <td>Edge 13 [5]</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>ping</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatChrome(46.0)}} [3]</td> + <td>{{CompatGeckoDesktop("45")}} [4]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>href="#top"</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("10.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>download</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("20.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>ping</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(46.0)}} [3]</td> + <td>{{CompatGeckoMobile("45.0")}} [4]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(46.0)}} [3]</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Starting from Gecko 41 {{geckoRelease("41.0")}}, {{HTMLElement("a")}} without href attribute is no more classified as interactive content. Clicking it inside {{HTMLElement("label")}} will activate labelled content ({{bug(1167816)}}).</p> + +<p>[2] <a href="http://kb.mozillazine.org/Browser.send_pings">Disabled by default</a></p> + +<p>[3] Implemented behind a flag.</p> + +<p>[4] <a href="https://developer.mozilla.org/ca/docs/Web/HTML/Element/14.14357">Attempting to download data URIs causes Edge to crash</a> until v14.14357.</p> + +<h2 id="Clicking_and_focus">Clicking and focus</h2> + +<p>Whether clicking on an {{HTMLElement("a")}} causes it to (by default) become focused varies by browser and OS.</p> + +<table> + <caption>Does clicking on an {{HTMLElement("a")}} give it the focus?</caption> + <tbody> + <tr> + <td>Navegadors d'escriptori</td> + <th>Windows 8.1</th> + <th>OS X 10.9</th> + </tr> + <tr> + <th>Firefox 30.0</th> + <td style="background-color: LawnGreen;">Sí</td> + <td style="background-color: LawnGreen;">Sí</td> + </tr> + <tr> + <th>Chrome ≥39<br> + (<a href="https://code.google.com/p/chromium/issues/detail?id=388666" title="Issue 388666: Focus anchor (A) elements on mousedown">Chromium bug 388666</a>)</th> + <td style="background-color: LawnGreen;">Sí</td> + <td style="background-color: LawnGreen;">Sí</td> + </tr> + <tr> + <th>Safari 7.0.5</th> + <td style="background-color: silver;">N/A</td> + <td style="background-color: yellow;">Només quan <code>tabindex</code><em> </em>està definit</td> + </tr> + <tr> + <th>Internet Explorer 11</th> + <td style="background-color: LawnGreen;">Sí</td> + <td style="background-color: silver;">N/A</td> + </tr> + <tr> + <th>Presto (Opera 12)</th> + <td style="background-color: LawnGreen;">Sí</td> + <td style="background-color: LawnGreen;">Sí</td> + </tr> + </tbody> +</table> + +<table> + <caption>Does tapping on an {{HTMLElement("a")}} give it the focus?</caption> + <tbody> + <tr> + <td>Mobile Browsers</td> + <th>iOS 7.1.2</th> + <th>Android 4.4.4</th> + </tr> + <tr> + <th>Safari Mobile</th> + <td style="background-color: yellow;">Només quan <code>tabindex </code>està definit</td> + <td style="background-color: silver;">N/A</td> + </tr> + <tr> + <th>Chrome 35</th> + <td>???</td> + <td style="background-color: yellow;">Només quan <code>tabindex</code> està definit</td> + </tr> + </tbody> +</table> + +<h2 id="Notes">Notes</h2> + +<p>The following are reserved browser key bindings for the two major browsers and should not be used as values to accesskey: a, c, e, f, g, h, v, left arrow, and right arrow.</p> + +<p>HTML 3.2 defineix només <strong>name</strong>, <strong>href</strong>, <strong>rel</strong>, <strong>rev</strong>, i <strong>title</strong>.</p> + +<p>L'atribut <strong>target</strong> no està definit en navegadors que no suporten<em> frames</em>, com ara la generació de navegadors Netscape 1. Furthermore, target is not allowed under strict variants of <a href="/en-US/docs/XHTML" title="XHTML">XHTML</a> but is limited to frameset or transitional forms.</p> + +<h3 id="Recomanacions_per_JavaScript">Recomanacions per JavaScript</h3> + +<p>It is often the case that an anchor tag is used with the <code>onclick</code> event. In order to prevent the page from refreshing, <strong>href</strong> is often set to either "#" or "javascript:void(0)". Both of these values can lead to some unexpected errors when copying links and opening links in a new tab and/or window. Be aware of this for usability reasons, and when users do use anchor tags and you prevent default behavior.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements pertanyents a <a href="/en-US/docs/HTML/Text_level_semantics_conveying_elements" title="HTML/Text level semantics conveying elements">text-level semantics</a>: {{HTMLElement("abbr")}}, {{HTMLElement("em")}}, {{HTMLElement("strong")}}, {{HTMLElement("small")}}, {{HTMLElement("cite")}}, {{HTMLElement("q")}}, {{HTMLElement("dfn")}}, {{HTMLElement("time")}}, {{HTMLElement("code")}}, {{HTMLElement("var")}}, {{HTMLElement("samp")}}, {{HTMLElement("kbd")}}, {{HTMLElement("sub")}}, {{HTMLElement("sup")}}, {{HTMLElement("b")}}, {{HTMLElement("i")}}, {{HTMLElement("mark")}}, {{HTMLElement("ruby")}}, {{HTMLElement("rp")}}, {{HTMLElement("rt")}}, {{HTMLElement("bdo")}}, {{HTMLElement("span")}}, {{HTMLElement("br")}}, {{HTMLElement("wbr")}}.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/abbr/index.html b/files/ca/web/html/element/abbr/index.html new file mode 100644 index 0000000000..8086ac2a23 --- /dev/null +++ b/files/ca/web/html/element/abbr/index.html @@ -0,0 +1,131 @@ +--- +title: <abbr> +slug: Web/HTML/Element/abbr +translation_of: Web/HTML/Element/abbr +--- +<h2 id="Resum">Resum</h2> + +<p>L'<em>element HTML <code><abbr></code> </em> (de l'Anglès <em>Abbreviation Element</em>) representa una abreviació i opcionalment en proveeix una descripció completa. en cas de ser-hi present, l'atribut <code><strong>title</strong></code> ha de contenir la descripció completa i res més.</p> + +<p class="summary"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token"><</span>p</span><span class="punctuation token">></span></span>I do <span class="tag token"><span class="tag token"><span class="punctuation token"><</span>abbr</span> <span class="attr-name token">title</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>Hypertext Markup Language<span class="punctuation token">"</span></span><span class="punctuation token">></span></span>HTML<span class="tag token"><span class="tag token"><span class="punctuation token"></</span>abbr</span><span class="punctuation token">></span></span><span class="tag token"><span class="tag token"><span class="punctuation token"></</span>p</span><span class="punctuation token">></span></span></code></p> + +<div class="line-number" style="top: 0px;"> </div> + +<p style="margin-top: -1.5em;"><small>Vegeu més exemples en detall en l'article <em><a href="https://developer.mozilla.org/en-US/Learn/HTML/Howto/Mark_abbreviations_and_make_them_understandable">How to mark abbreviations and make them understandable</a></em>.</small></p> + +<ul class="htmlelt"> + <li><dfn>Interfície DOM</dfn>{{domxref("HTMLElement")}}</li> + <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, palpable content</li> + <li><dfn>Contingut permès</dfn><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a></li> + <li><dfn>Elements pares permesos</dfn> Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</li> +</ul> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element només inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<p>Fer servir l'atribut {{htmlattrxref("title")}} per definir la descripció completa de la descripció de l'abreviació. Molts agents d'usuaris presenten això com un suggeriment.</p> + +<div class="note"> +<p><strong>Nota d'ús: </strong>En llengües amb nombres gramaticals (especialment les llengües amb més de dos nombres, com l'Àrab), utilitzeu el mateix nombre gramatical en el vostre atribut <code>title</code> com dins del vostre element <code><abbr></code> .</p> +</div> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-abbr-element', '<abbr>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-abbr-element', '<abbr>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#edef-ABBR', '<abbr>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>2.0</td> + <td>{{CompatGeckoDesktop(1.0)}}</td> + <td>7.0</td> + <td>1.3</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p> </p> + +<h2 id="Estil_per_defecte">Estil per defecte</h2> + +<p>L'objectiu d'aquest element és purament per la conveniència del autor i que tots els navegadors ho mostrin en línia ({{cssxref('display')}}<code>: inline</code>) per defecte, tot i que els estils per defectes varien d'un navegador a un altre:</p> + +<ul> + <li>Alguns navegadors, com l'Internet Explorer, no l'estilitzen de forma diferent a un element {{HTMLElement("span")}}.</li> + <li>Opera, Firefox, i altres navegadors afegeixen un subratllat de punts sota el contingut de l'element.</li> + <li>Uns quants navegadors no només afegeixen un subratllat de punts, sinó que també posen en versaletes; per evitar aquest estil, afegint alguna cosa com {{cssxref('font-variant')}}<code>: none</code> en el CSS es farà càrrec d'això.</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/Learn/HTML/Element/abbr">Utilitzar l'element <abbr></a></li> + <li>Altres elements conveying <a href="/en-US/docs/HTML/Text_level_semantics_conveying_elements" title="HTML/Text level semantics conveying elements">text-level semantics</a>: {{HTMLElement("a")}}, {{HTMLElement("em")}}, {{HTMLElement("strong")}}, {{HTMLElement("small")}}, {{HTMLElement("cite")}}, {{HTMLElement("q")}}, {{HTMLElement("dfn")}}, {{HTMLElement("time")}}, {{HTMLElement("code")}}, {{HTMLElement("var")}}, {{HTMLElement("samp")}}, {{HTMLElement("kbd")}}, {{HTMLElement("sub")}}, {{HTMLElement("sup")}}, {{HTMLElement("b")}}, {{HTMLElement("i")}}, {{HTMLElement("mark")}}, {{HTMLElement("ruby")}}, {{HTMLElement("rp")}}, {{HTMLElement("rt")}}, {{HTMLElement("bdo")}}, {{HTMLElement("span")}}, {{HTMLElement("br")}}, {{HTMLElement("wbr")}}.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/acronym/index.html b/files/ca/web/html/element/acronym/index.html new file mode 100644 index 0000000000..5101ea266d --- /dev/null +++ b/files/ca/web/html/element/acronym/index.html @@ -0,0 +1,125 @@ +--- +title: <acronym> +slug: Web/HTML/Element/acronym +tags: + - Element + - HTML + - 'HTML:Flow content' + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/acronym +--- +<div>{{obsolete_header}}</div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'element HTML acrònim (<code><acronym></code>) permet als autors indicar clarament una seqüència de caràcters que componen un acrònim o l'abreviatura d'una paraula. Aquest element s'ha eliminat en HTML5. Utilitzar l'element {{HTMLElement("abbr")}}.</p> + +<div class="note"> +<p><strong>Nota d'ùs: </strong>Aquest element s'ha eliminat en HTML5 i no s'ha d'utilitzar més. En lloc d'això els desenvolupadors web han d'utilitzar l'element {{HTMLElement("abbr")}}.</p> +</div> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>només </span><span>té</span></span> <a class="new " href="/en-US/docs/HTML/global_attributes" rel="internal" title="HTML/global attributes">atributs globals</a> <span id="result_box" lang="ca"><span>que és comú a</span> <span>tots</span> <span>els</span> <span>elements.</span></span></p> + +<h2 id="DOM_Interface" name="DOM_Interface">Interfície DOM</h2> + +<p>Aquest element implementa la interície {{domxref('HTMLElement')}}.</p> + +<div class="note">Nota d'implementació<strong>: </strong>Fins Gecko 1.9.2 inclosos, Firefox implementa per a aquest element la interfície {{domxref('HTMLSpanElement')}}.</div> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush:html"><p>The <acronym title="World Wide Web">WWW</acronym> is only a component of the Internet.</p> +</pre> + +<h2 id="Default_styling" name="Default_styling">E<span class="short_text" id="result_box" lang="ca"><span>stil</span> <span>per defecte</span></span></h2> + +<p>Encara que el propòsit d'aquesta etiqueta és purament per a la comoditat de l'autor, el seu estil per defecte varia d'un navegador a un altre:</p> + +<ul> + <li>Alguns navegadors, com Internet Explorer, no té un estil diferent que un element {{HTMLElement("span")}} .</li> + <li>Opera, Firefox,Chrome i alguns altres afegeixen un subratllat de punts amb el contingut de l'element.</li> + <li>Uns navegadors no només afegeixen un subratllat de punts, sinó que també ho posen en versals; per evitar aquest estil, afegeixen alguna cosa com {{cssxref('font-variant')}}: <code>none</code> on el CSS s'encarregue d'aquest cas.</li> +</ul> + +<p><span id="result_box" lang="ca"><span>Per</span> <span>tant</span><span>, es recomana</span> <span>encaridament</span> <span>que els</span> <span>autors</span> <span>web no</span> <span>confien </span> <span>totalment</span> <span>en l'estil</span> <span>predeterminat.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#edef-ACRONYM', '<acronym>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>L'element HTML {{HTMLElement("abbr")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/address/index.html b/files/ca/web/html/element/address/index.html new file mode 100644 index 0000000000..c583f49925 --- /dev/null +++ b/files/ca/web/html/element/address/index.html @@ -0,0 +1,161 @@ +--- +title: <address> +slug: Web/HTML/Element/address +tags: + - Element + - HTML + - HTML sections + - Refrència + - Web +translation_of: Web/HTML/Element/address +--- +<p id="Summary">{{HTMLRef}}</p> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'<strong>element HTML <address></strong> proporciona informació de contacte per el seu element mes proper </span></span> {{HTMLElement("article")}} <span lang="ca"><span class="alt-edited"> o ancestre </span></span> {{HTMLElement("body")}} <span lang="ca"><span class="alt-edited">; en aquest últim cas, s'aplica a tot el document.</span></span></p> + +<div class="note"> +<p><strong>Nota d'us:</strong></p> + +<ul> + <li><span id="result_box" lang="ca"><span class="alt-edited">Per representar una adreça arbitrària, que no està relacionada amb la informació de contacte, utilitzar un element</span></span> {{HTMLElement("p")}} <span id="result_box" lang="ca"><span class="alt-edited">en lloc de l'element</span></span> <span style="font-family: courier new;"><address></span>.</li> + <li><span id="result_box" lang="ca"><span class="alt-edited">Aquest element no ha de contenir més informació que la informació de contacte, com una data de publicació (que pertany a un element</span></span> {{HTMLElement("time")}}).</li> + <li><span id="result_box" lang="ca"><span class="alt-edited">Normalment, un element <address> pot ser col·locat dins de l'element </span></span>{{HTMLElement("footer")}}<span lang="ca"><span class="alt-edited"> de la secció actual, si n'hi ha.</span></span></li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux </a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, pero sense cap element <span style="font-family: courier new;"><address></span> niu, sense continguts de capaçalera ({{HTMLElement("hgroup")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}), sense continguts de secció ({{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("section")}}, {{HTMLElement("nav")}}), i sense elements {{HTMLElement("header")}} o {{HTMLElement("footer")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut de flux</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Abans de Gecko 2.0 (Firefox 4), Gecko implementa aquest element utilitzant la interficie {{domxref("HTMLSpanElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>només inclou el</span></span>s <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"> <address> + You can contact author at <a href="http://www.somedomain.com/contact">www.somedomain.com</a>.<br> + If you see any bugs, please <a href="mailto:webmaster@somedomain.com">contact webmaster</a>.<br> + You may also want to visit us:<br> + Mozilla Foundation<br> + 1981 Landings Drive<br> + Building K<br> + Mountain View, CA 94043-0801<br> + USA + </address> +</pre> + +<p>Resultat del codi HTML:</p> + +<p><img alt="Image:HTML-address.png" src="/@api/deki/files/238/=HTML-address.png"></p> + +<p><span id="result_box" lang="ca"><span>Encara que</span> <span>l'element</span> address <span>representa</span> <span>el text</span> <span>amb</span> <span>el mateix estil</span> <span>predeterminat</span> <span>com el</span></span>s elements {{HTMLElement("i")}} o {{HTMLElement("em")}}, <span id="result_box" lang="ca"> <span>és</span> <span>més</span> <span>apropiat utilitzar-la</span> <span>quan</span> <span>es</span> <span>tracta</span> <span>d'informació</span> <span>de contacte,</span> <span>ja</span> <span>que transmet la</span> <span>informació</span> <span>semàntica</span> <span>addicional</span><span>.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-address-element', '<address>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-address-element', '<address>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.5.6', '<address>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>1.0</td> + <td>5.12</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mini</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.7")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Altres</span> <span>elements</span> <span>relacionats</span> <span>amb</span> <span>la secció</span></span>: {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("footer")}}, {{HTMLElement("section")}}, {{HTMLElement("header")}};</li> + <li class="last"><a class="deki-ns current" href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i línies generals d'un document HTML5</a>.</li> +</ul> diff --git a/files/ca/web/html/element/applet/index.html b/files/ca/web/html/element/applet/index.html new file mode 100644 index 0000000000..f46b9a3d63 --- /dev/null +++ b/files/ca/web/html/element/applet/index.html @@ -0,0 +1,121 @@ +--- +title: <applet> +slug: Web/HTML/Element/applet +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/applet +--- +<div>{{obsolete_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML Applet (<code><applet></code>) <span id="result_box" lang="ca"><span>identifica la</span> <span>inclusió</span> <span>d'un applet</span> <span>de Java</span></span> .</p> + +<div class="note"> +<p><strong>Nota d'ùs: </strong>Aquest element s'ha eliminat en HTML5 i no s'ha d'utilitzar més. En lloc d'això els desenvolupadors web han d'utilitzar l'element més genèric {{HTMLElement("object")}}.</p> +</div> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<dl> + <dt>{{htmlattrdef("align")}}</dt> + <dd>Aquest atribut s'utilitza per posicionar l'applet a la pàgina en relació amb el contingut que podria fluir al seu voltant. L'especificació HTML 4.01 defineix els valors bottom, left, middle, right i top, mentre que Microsoft i Netscape també podrien donar suport <strong>absbottom, absmiddle, baseline, center</strong> i <strong>texttop</strong>.</dd> + <dt>{{htmlattrdef("alt")}}</dt> + <dd>Aquest atribut fa que un text descriptiu alternatiu es mostri en els navegadors que no suporten Java. Els dissenyadors de pàgines també han de recordar que el contingut inclòs dins de l'element <code><applet></code> també pot traduir-se com a text alternatiu.</dd> + <dt>{{htmlattrdef("archive")}}</dt> + <dd>Aquest atribut es refereix a una versió arxivada o comprimida de l'applet i els seus arxius de classes associats, el que podria ajudar a reduir el temps de descàrrega.</dd> + <dt>{{htmlattrdef("code")}}</dt> + <dd>Aquest atribut especifica la URL de l'arxiu de classe de l'applet per a ser carregat i executat. Els noms d'arxiu de l'applet s'identifiquen per una extensió d'arxiu .class. La direcció URL especificada pel codi podria ser relativa a l'atribut <code>codebase</code>.</dd> + <dt>{{htmlattrdef("codebase")}}</dt> + <dd>Aquest atribut proporciona la URL absoluta o relativa del directori on s'emmagatzemen els arxius applets' .class, referènciats per l'atribut code.</dd> + <dt>{{htmlattrdef("datafld")}}</dt> + <dd>Aquest atribut, suportat per Internet Explorer 4 i superior, especifica el nom de la columna de l'objecte d'origen de dades que subministra les dades consolidades. Aquest atribut es pot utilitzar per especificar els diversos elements {{HTMLElement("param")}} passats a l'applet de Java.</dd> + <dt>{{htmlattrdef("datasrc")}}</dt> + <dd>Igual que <code>datafld</code>, aquest atribut s'utilitza per a l'enllaç de dades en Internet Explorer 4. Indica l'id de l'objecte d'origen de dades que subministra les dades que estan enllaçades als elements {{HTMLElement("param")}} associats amb el applet.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>l'altura,</span> <span>en píxels</span><span>,</span> <span>que l'applet</span> <span>necessita.</span></span></dd> + <dt>{{htmlattrdef("hspace")}}</dt> + <dd>Aquest atribut especifica l'espai horitzontal addicional, en píxels, que es reservarà a banda i banda del applet.</dd> + <dt>{{htmlattrdef("mayscript")}}</dt> + <dd>En la implementació de Netscape, aquest atribut permet l'accés a un applet de programes en un llenguatge de script incrustat en el document.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>Aquest atribut assigna un nom a l'applet de manera que pugui ser identificat per altres recursos; en particular els scripts.</dd> + <dt>{{htmlattrdef("object")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>l'URL</span> <span>d'una representació</span> <span>serialitzada</span> <span>d'un applet</span><span>.</span></span></dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>Tal com es defineix per a Internet Explorer 4 i superior, aquest atribut especifica una adreça URL d'un fitxer associat per l'applet. El significat i l'ús no està clar i no forma part de l'estàndard HTML.</dd> + <dt>{{htmlattrdef("vspace")}}</dt> + <dd>Aquest atribut especifica l'espai vertical addicional, en píxels, que es reserva per sobre i sota de l'applet.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>Aquest atribut especifica en píxels l'ample que l'applet necessita.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><applet code="game.class" align="left" archive="game.zip" height="250" width="350"> + <param name="difficulty" value="easy"> + <b>Sorry, you need Java to play this game.</b> +</applet> +</pre> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mini</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes">Notes</h2> + +<p>L'especificació W3C no fomenta l'ús de <code><applet></code> i prefereix l'ús de l'etiqueta {{HTMLElement("object")}}. Sota la definició estricta d'HTML 4.01, aquest element no s'utilitza i està totalment obsolet en HTML5.</p> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/area/index.html b/files/ca/web/html/element/area/index.html new file mode 100644 index 0000000000..4c4100d484 --- /dev/null +++ b/files/ca/web/html/element/area/index.html @@ -0,0 +1,247 @@ +--- +title: <area> +slug: Web/HTML/Element/area +translation_of: Web/HTML/Element/area +--- +<p>El <em>element</em> <em>HTML<code> <area></code> </em> <span id="result_box" lang="ca"><span class="alt-edited">defineix una regió dins d'una imatge, i, opcionalment, l'associa amb un </span></span>{{Glossary("Hyperlink", "hypertext link")}}. <span id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>s'utilitza només</span> <span>dins d'un</span> <span>element</span></span> {{HTMLElement("map")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td> + <p><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</p> + </td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és una {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir </span><span>etiqueta d'inici</span> <span>i</span> <span>no ha de tenir</span> <span>etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>que accepti</span></span> <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>. El element <code><area></code> ha de tenir un ancestre {{HTMLElement("map")}}, <span id="result_box" lang="ca"><span>però no té</span> <span>per</span> <span>què ser un</span> <span>pare</span> <span>directa.</span></span></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLAreaElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("accesskey")}} {{HTMLVersionInline("4")}} solsament, {{obsolete_inline("5.0")}}</dt> + <dd>Especifica una tecla d'access de navegació per a l'element. Pressionant ALT o una tecla similar en associació amb el caràcter especificat selecciona el control de forma correlacionada amb la seqüència de tecles. Els dissenyadors de pàgines estan previnguts per evitar seqüències de tecles ja vinculades als navegadors. Aquest atribut és global des de HTML5.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("alt")}}</dt> + <dd>Una cadena de text alternativa, per visualitzar, en navegadors que no mostren les imatges. El text ha de redactar-se de manera que es presenta a l'usuari amb el mateix tipus d'elecció com la imatge oferiria quan apareix sense text alternatiu. En HTML 4, es requereix aquest atribut, però la cadena pot ser buida (""). En HTML5, es requereix aquest atribut només si s'utilitza l'atribut href.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("coords")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Un conjunt de valors que especifiquen les coordenades de la regió. El nombre i el significat dels valors depenen del valor especificat per a l'atribut </span></span><strong>shape</strong>. Per un <code>rect</code> o rectangle, el valor <strong>coords</strong> son dos parelles x,y: left, top, right i bottom. Per un <code>circle</code>, el valor es <code>x,y,r</code> on <code>x,y</code> es una parella que defineix el centre del cercle i <code>r</code> es el valor del radi. Per un <code>poly</code> o poligon, el valor es un conjunt de parells x, y per cada punt en el poligon: <code>x1,y1,x2,y2,x3,y3,</code> i així succesivament. <span id="result_box" lang="ca"><span>En</span> <span>HTML</span> <span>4, els</span> <span>valors</span> <span>són nombres</span> <span>de píxels</span> <span>o percentatges,</span> <span>si s'afegeix</span> <span>un signe</span> <span>de percentatge</span> <span>(</span><span>%</span><span>)</span><span>;</span> <span>en HTML5</span><span>, els</span> <span>valors</span> <span>són nombres</span> <span>de píxels</span> <span>CSS.</span></span></dd> + <dt>{{htmlattrdef("download")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut,</span> <span>si està</span> <span>present</span><span>, indica</span> <span>que l'autor</span> <span>proposa un</span> <span>hipervincle</span> <span>que s'utilitzarà</span> <span>per a la</span> <span>descàrrega d'un</span> <span>recurs.</span> <span>Veure</span> </span>{{HTMLElement("a")}}<span lang="ca"> <span>per a una</span> <span>descripció completa</span> <span>de l'atribut</span> <span>de </span></span>{{htmlattrxref("download", "a")}}.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("href")}}</dt> + <dd><span id="result_box" lang="ca"><span>El destí</span> <span>de</span> <span>hipervincle</span> <span>d</span></span>el element area. <span id="result_box" lang="ca"> <span>El seu valor</span> <span>és</span> <span>un URL vàlid</span><span>.</span> <span>En</span> <span>HTML</span> <span>4,</span> <span>ja</span> <span>sigui</span> <span>aquest</span> <span>atribut o</span> <span>l'atribut</span> <strong><span>nohref</span></strong> <span>han d'estar</span> <span>presents</span> <span>en l'element</span><span>.</span> <span>En</span> <span>HTML5,</span> <span>aquest</span> <span>atribut</span> <span>es</span> <span>pot</span> <span>ometre</span><span>;</span> <span>si</span> <span>és</span> <span>així</span><span>, l'element</span> <span>area</span> <span>no representa un</span> <span>enllaç</span></span>.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("hreflang")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Indica</span> <span>l'idioma del</span> <span>recurs</span> <span>vinculat</span><span>.</span> <span>Els</span> <span>valors</span> <span>permesos són</span> <span>determinats</span> <span>per</span> <a href="http://www.ietf.org/rfc/bcp/bcp47.txt">BCP47</a><span>.</span> <span>Utilitzeu</span> <span>aquest</span> <span>atribut</span> <span>només si</span> <span>l'atribut</span> <strong><span>href</span></strong> <span>és present.</span></span></dd> +</dl> + +<dl> + <dt>{{htmlattrdef("name")}} {{HTMLVersionInline("4")}} only, {{obsolete_inline("5.0")}}</dt> + <dd><span id="result_box" lang="ca"><span>Definir</span> <span>un nom</span> <span>per a l'àrea</span> <span>seleccionable</span> <span>de manera que pugui</span> <span>ser escrit</span> <span>pels navegadors</span> <span>antics.</span></span></dd> +</dl> + +<dl> + <dt>{{htmlattrdef("media")}} {{HTMLVersionInline("5")}}</dt> + <dd>Un mitjà de l'atribut media per els quals es va dissenyar el recurs vinculat, per exemple <code>print i screen</code>. <span id="result_box" lang="ca"><span>Si s'omet</span><span>, el valor predeterminat</span> es <span>per a tothom.</span> <span>Utilitzeu</span> <span>aquest</span> <span>atribut</span> <span>només si</span> <span>l'atribut</span> <strong><span>href</span></strong> <span>és present.</span></span></dd> +</dl> + +<dl> + <dt>{{htmlattrdef("nohref")}} {{HTMLVersionInline("4")}} only, {{obsolete_inline("5.0")}}</dt> + <dd>Indica que no hi ha cap hipervincle per a l'àrea associada. Qualsevol d'aquest atribut o l'atribut <strong>href</strong> han d'estar presents en l'element. + <div class="note"> + <p><strong>Nota d'ús</strong>: Aquest atribut és obsolet en HTML 5, en comptes, ometent l'atribut <strong>href</strong> és suficient.</p> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>cadena que</span> <span>indica</span> <span>el</span></span> referrer <span id="result_box" lang="ca"><span>per</span> <span>utilitzar</span> <span>en recuperar</span> <span>el recurs</span></span> : + <ul> + <li><code>"no-referrer"</code> significa que en el <code>Referrer:</code> la capçalera no s'enviarà.</li> + <li>"<code>no-referrer-when-downgrade</code>" significa que si no hi ha <code>Referrer</code>: la capçalera serà enviada al navegar a un origen sense TLS (HTTPS). Aquest és el comportament per defecte d'un agent d'usuari, si no hi ha política que especifiqui el contrari.</li> + <li><code>"origin"</code> <span id="result_box" lang="ca"><span>significa que</span> <span>el referrer</span> <span>serà l'origen</span> <span>de la pàgina,</span> <span>que és més o</span> <span>menys</span> <span>l'esquema</span><span>, el host</span> <span>i el port.</span></span></li> + <li>"origin-when-cross-origin" <span id="result_box" lang="ca"><span>significa que les</span> <span>navegacions</span> <span>d'altres orígens</span> <span>es</span> <span>limitaràn</span> <span>a l'esquema</span><span>, el</span> <span>host i</span> <span>el port</span><span>, mentre que les</span> <span>navegacions en</span> <span>el mateix origen</span> <span>inclouran el</span> <span>camí dels</span><span> referrer's.</span></span></li> + <li><code>"unsafe-url"</code> <span id="result_box" lang="ca"><span>significa</span> <span>que el referrer </span><span>inclourà</span> <span>l'origen i</span> <span>la ruta d'</span><span>accés</span> <span>(</span><span>però no</span> <span>el fragment</span><span>, la contrasenya</span> <span>o</span> <span>nom d'usuari</span><span>)</span><span>.</span> <span>Aquest cas no</span> <span>és</span> <span>segur</span><span>, ja que pot</span> <span>filtrar-se</span> <span>orígens</span> <span>i</span> <span>trajectòries</span> <span>dels recursos</span> <span>protegits</span><span>-</span><span>TLS</span> <span>a orígens</span> <span>insegurs.</span></span></li> + </ul> + </dd> + <dt>{{htmlattrdef("rel")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Per als</span> <span>ancoratges que</span> <span>contenen</span> <span>l'atribut</span> <strong><span>href</span></strong><span>,</span> <span>aquest</span> <span>atribut</span> <span>especifica la relació</span> <span>de l'objecte</span> <span>de destinació</span> <span>per a l'objecte</span> <span>de vincle.</span> <span>El valor és</span> <span>una llista</span> <span>separada per</span> <span>comes dels</span> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">valors dels tipus d'enllaços</a><span>.</span> <span>Els</span> <span>valors i la seva</span> <span>semàntica</span> <span>seran</span> <span>registrades</span> <span>per alguna</span> <span>autoritat que</span> <span>podria haver</span> <span>significat</span> <span>l'autor del</span> <span>document.</span> <span>La relació</span> <span>per defecte,</span> <span>si</span> <span>no</span> es dóna<span> una altra</span><span>,</span> <span>és</span> <span>nul·la.</span> <span>Utilitzeu</span> <span>aquest</span> <span>atribut</span> <span>només si</span> <span>l'atribut</span> <strong><span>href</span></strong> <span>és present.</span></span></dd> + <dt>{{htmlattrdef("shape")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">La forma de la zona activa associada. Les especificacions per a HTML 5 i HTML 4 defineixen els valors<code> rect</code>, defineix una regió rectangular; <code>circle</code>, defineix una regió circular; <code>poly</code>, defineix un polígon; i per <code>defecte</code>, el que indica tota la regió més enllà de les formes definides. Molts navegadors, especialment Internet Explorer 4 i superior, suportan <code>circ, polygon</code>, i <code>rectangle</code> com a valors vàlids de <strong>shape</strong>; aquests valors són</span></span> {{Non-standard_inline}}.</dd> + <dt>{{htmlattrdef("tabindex")}} {{HTMLVersionInline("4")}} only, {{obsolete_inline("5.0")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un valor</span> <span>numèric</span> <span>que especifica la</span> <span>posició</span> <span>de la zona definida</span> <span>en l'ordre</span> <span>de tabulació</span> <span>del navegador.</span> <span>Aquest</span> <span>atribut</span> <span>és global</span> <span>en HTML5.</span></span></dd> +</dl> + +<dl> + <dt>{{htmlattrdef("target")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>el lloc per</span> <span>visualitzar el</span> <span>recurs</span> <span>vinculat</span><span>.</span> <span>En</span> <span>HTML</span> <span>4,</span> <span>aquest</span> <span>és</span> <span>el nom de,</span> <span>o una paraula</span> <span>clau</span> <span>per a un</span> <span>marc</span><span>.</span> <span>En</span> <span>HTML5</span><span>, que és un</span> <span>nom</span> <span>de</span><span>,</span> <span>o una paraula</span> <span>clau</span> <span>per a un</span> <em><span>context</span> <span>de navegació</span></em> <span>(</span><span>per</span> <span>exemple</span><span>, pestanya</span><span>, finestra</span> <span>o</span> <span>marc en</span> <span>línia</span><span>)</span><span>.</span> <span>Les</span> <span>següents</span> <span>paraules</span> <span>clau</span> <span>tenen</span> <span>un significat</span> <span>especial</span><span>:</span></span> + <ul> + <li><code>_self</code>: <span id="result_box" lang="ca"><span>Carrega la resposta en</span> <span>el mateix marc de</span> <span>HTML 4</span> <span>(</span><span>o</span> <span>context</span> <span>de navegació</span> en <span>HTML 5</span><span>)</span> <span>com l'actual.</span> <span>Aquest</span> <span>valor és el</span> <span>valor per</span> <span>defecte si</span> <span>no s'especifica</span> <span>l'atribut</span><span>.</span></span></li> + <li><code>_blank</code>: <span id="result_box" lang="ca"><span>Carregar</span> <span>la resposta</span> <span>en una nova finestra</span> <span>sense</span> <span>nom</span> <span>HTML</span> <span>4 o</span> <span>en un context</span> <span>de navegació</span> <span>HTML5.</span></span></li> + <li><code>_parent</code>: <span id="result_box" lang="ca"><span>Carregar</span> <span>la resposta en el</span> <span>conjunt</span> <span>de marcs</span> <span>pare</span> <span>HTML 4</span> <span>del quadre</span> <span>actual</span> <span>o</span> <span>HTML5</span> en el <span>context</span> <span>de navegació</span> <span>dels</span> <span>pares</span> <span>de</span> <span>l'actual.</span> <span>Si no hi ha</span> <span>pare</span><span>,</span> <span>aquesta</span> <span>opció</span> <span>es comporta de</span> <span>la mateixa manera que</span><code> <span>_self</span></code><span>.</span></span></li> + <li><code>_top</code>: In HTML4: Carregar la resposta sencera a la finestra original, cancel·lant tots els altres marcs. En HTML 5: Carregar la resposta en el context de navegació de nivell superior (és a dir, el context de navegació que és un ancestre de l'actual, i no té pare). Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + </ul> + <span id="result_box" lang="ca"><span class="alt-edited">Utilitzeu aquest atribut només si l'atribut <strong>href</strong> és present.</span></span></dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest atribut</span> <span>especifica</span> <span>el tipus de suport</span> <span>en forma d'un</span> <span>tipus MIME</span> <span>per a la destinació</span> <span>de l'enllaç.</span> <span>Generalment</span><span>, això</span> <span>proporciona</span> <span>informació</span> <span>estrictament</span> <span>com d'assessorament</span><span>;</span> <span>No obstant</span> <span>això, en el</span> <span>futur</span><span>, un navegador</span> <span>podria afegir</span> <span>una icona</span> <span>petit</span> <span>per a aquest</span> <span>tipus de mitjà.</span> <span>Per exemple</span><span>, un navegador</span> <span>podria afegir</span> <span>una petita icona</span> <span>de l'altaveu</span> <span>quan</span> <span>el tipus</span> <span>s'estableix</span> <span>en l'àudio</span> <span>/</span> <span>wav</span><span>.</span> <span>Per obtenir una</span> <span>llista</span> <span>completa dels</span> <span>tipus MIME</span> <span>reconeguts</span><span>, veure</span><a href="http://www.w3.org/TR/html4/references.html#ref-MIMETYPES"> http://www.w3.org/TR/html4/references.html#ref-MIMETYPES</a><span>.</span> <span>Utilitzeu</span> <span>aquest</span> <span>atribut</span> <span>només si</span> <span>l'atribut</span><strong> <span>href</span></strong> <span>és present.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><map name="primary"> + <area shape="circle" coords="200,250,25" href="another.htm" /> + <area shape="default" nohref /> +</map> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrerpolicy attribute')}}</td> + <td>{{Spec2('Referrer Policy')}}</td> + <td>Afegeix l'atribut <code>referrerpolicy.</code> .</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-map-element.html#the-area-element', '<area>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-area-element', '<area>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/objects.html#h-13.6.1', '<area>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("50")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mini</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("50")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes">Notes</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">En les especificacions l'HTML 3.2, 4.0 i 5, l'etiqueta de tancament <code></area></code> està prohibida</span></span>.</p> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'especificació XHTML 1.0 requereix una barra final: <code><area /></code></span></span>.</p> + +<p>Els atributs <strong>id</strong>, <strong>class</strong>, i <strong>style</strong> tenen el mateix significat que els atributs fonamentals definits en l'especificació HTML 4, però només Netscape i Microsoft els defineixen.</p> + +<p>Netscape, navegadors de nivell 1 no entén l'atribut <strong>target</strong> pel que fa als frames.</p> + +<p>HTML 3.2 només defineix <strong>alt</strong>, <strong>coords</strong>, <strong>href</strong>, <strong>nohref</strong> i <strong>shape</strong>.</p> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/article/index.html b/files/ca/web/html/element/article/index.html new file mode 100644 index 0000000000..a905d37a7f --- /dev/null +++ b/files/ca/web/html/element/article/index.html @@ -0,0 +1,172 @@ +--- +title: <article> +slug: Web/HTML/Element/article +translation_of: Web/HTML/Element/article +--- +<p>{{HTMLRef}}</p> + +<p><span id="result_box" lang="ca"><span>L'<strong>element HTML</strong></span><strong> <code><span><</span><span>article</span><span>></span></code></strong><span> representa</span> <span>una composició</span> autònoma <span>en un document,</span> <span>pàgina</span><span>, aplicació o</span> <span>lloc</span><span>, que està</span> <span>destinada a ser</span> <span>distribuir de forma</span> <span>independent o</span> <span>reutilitzables</span> <span>(</span><span>per</span> <span>exemple, en la</span> <span>sindicació</span><span>)</span><span>.</span> <span>Això podria ser un</span> <span>missatge</span> <span>del fòrum,</span> <span>un article</span> <span>d'una revista o</span> <span>un diari,</span> <span>una entrada de blog</span><span>, un objecte,</span> <span>o qualsevol</span> <span>altre</span> <span>element</span> <span>independent</span> <span>del contingut.</span> <span>Cada</span> <code><span><</span><span>article</span><span>></span></code> <span>ha de ser</span> <span>identificat</span><span>, generalment</span> <span>mitjançant la</span> <span>inclusió</span> <span>d'</span><span>una capçalera</span> <span>(element </span></span><span lang="ca"><code><a href="/en-US/docs/Web/HTML/Element/Heading_Elements"><h1>-<h6></a></code><span>)</span> <span>com</span> <span>un fill</span> <span>de l'element </span></span><code><article>.</code></p> + +<p> + </p><div class="note"> + <p><strong>Notes d'us:</strong></p> + + <ul> + <li><span id="result_box" lang="ca"><span>Quan</span> <span>es nia</span> <span>un element</span> <code><span><article</span><span>></span></code><span>, l'element</span> <span>interior</span> <span>representa</span> <span>un article</span> <span>relacionat</span> <span>amb l'element</span> <span>exterior.</span> <span>Per exemple</span><span>, els comentaris</span> <span>d'un blog</span> <span>poden ser</span> elements <code><span><</span><span>article</span><span>></span></code> <span>niats</span> <span>en <</span><span>article</span><span>></span> <span>representen</span> <span>a l'entrada del</span> <span>bloc.</span></span></li> + <li><span id="result_box" lang="ca"><span class="alt-edited">La informació sobre l'autor d'un element <code><article></code> pot ser proporcionada a través de l'element </span></span>{{HTMLElement("address")}} <span lang="ca"><span class="alt-edited">, però no s'aplica a elements niats <code><article></code></span></span>.</li> + <li>La data de publicació i el temps d'un element <code><article></code> es poden descriure mitjançant l'atribut {{htmlattrxref("datetime", "time")}} d'un element {{HTMLElement("time")}}. <em>Recordeu que el atribut {{htmlattrxref("pubdate", "time")}} de {{HTMLElement("time")}} ja no és una part de l'estàndard HTML 5 del W3C.</em></li> + </ul> + </div> +<p></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de Flux</a>, <span class="short_text" id="result_box" lang="ca"><span>contingut</span> <span>de seccionament</span></span> , contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut de Flux</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>que accepti</span></span> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="https://developer.mozilla.org/en/HTML/Content_categories#Flow_content">contingut de flux</a>. Recordeu que un element <code><article></code> <span id="result_box" lang="ca"><span>no ha de ser</span> <span>un descendent</span> <span>d'un element</span></span> {{HTMLElement("address")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>només inclou el</span></span>s <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><article class="film_review"> + <header> + <h2>Jurassic Park</h2> + </header> + <section class="main_review"> + <p>Dinos were great!</p> + </section> + <section class="user_reviews"> + <article class="user_review"> + <p>Way too scary for me.</p> + <footer> + <p> + Posted on <time datetime="2015-05-16 19:00">May 16</time> by Lisa. + </p> + </footer> + </article> + <article class="user_review"> + <p>I agree, dinos are my favorite.</p> + <footer> + <p> + Posted on <time datetime="2015-05-17 19:00">May 17</time> by Tom. + </p> + </footer> + </article> + </section> + <footer> + <p> + Posted on <time datetime="2015-05-15 19:00">May 15</time> by Staff. + </p> + </footer> +</article> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-article-element', '<article>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'sections.html#the-article-element', '<article>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-article-element', '<article>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th><br> + Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th><br> + Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>4.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres</span> <span>elements</span> <span>relacionats</span> <span>amb</span> <span>la secció</span></span> : {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}}</li> + <li class="last"><a class="deki-ns current" href="/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i línies generals d'un document HTML5</a></li> +</ul> diff --git a/files/ca/web/html/element/aside/index.html b/files/ca/web/html/element/aside/index.html new file mode 100644 index 0000000000..c6d98154ca --- /dev/null +++ b/files/ca/web/html/element/aside/index.html @@ -0,0 +1,126 @@ +--- +title: <aside> +slug: Web/HTML/Element/aside +translation_of: Web/HTML/Element/aside +--- +<p>L'<em>element HTML <code><aside></code> </em>representa una secció de la pàgina amb contingut connectat tangenncialment amb la resta, el qual es podria considerar separat del contingut. Aquestes seccions sovint es representen com a barres laterals o insercions. Sovint contenen les definicions en les barres laterals, com ara definicions del glossari; també hi pot haver altres tipus d'informació, com ara anuncis relacionats; la biografia de l'autor; applicacions web; informació de perfil o enllaços relacionats en el bloc.</p> + +<div class="note"> +<p><em>Notes d'ús:</em></p> + +<ul> + <li>No s'ha de fer servir l'element <code><aside></code> per etiquetarr text en parèntesi, j<span id="result_box" lang="ca"><span class="hps">a</span> <span class="hps">que aquest tipus</span> <span class="hps">de text</span> <span class="hps">es</span> <span class="hps">considera part</span> <span class="hps">del corrent</span> <span class="hps">principal</span><span>.</span></span></li> +</ul> +</div> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Content Categories de contingut</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, sectioning content, palpable content.</li> + <li><dfn>Contingut permès</dfn><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut de flux</a>.</li> + <li><dfn>Omissió de l'etiqueta</dfn> {{no_tag_omission}}</li> + <li><dfn>Elements pares permesos</dfn> Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">contingut de flux</a>. Tingueu en compte que un element <code><aside></code> no ha de ser descendent d'un element {{HTMLElement("address")}}.</li> + <li><dfn>Interfície DOM</dfn> {{domxref("HTMLElement")}}</li> +</ul> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element només inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><article> + <p> + The Disney movie <em>The Little Mermaid</em> was + first released to theatres in 1989. + </p> + <aside> + The movie earned $87 million during its initial release. + </aside> + <p> + More info about the movie... + </p> +</article></pre> + +<p>{{EmbedLiveSample("Examples")}}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-aside-element', '<aside>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-aside-element', '<aside>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0 (iOS 4.2)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Altres elements relacionats: {{HTMLElement("body")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("nav")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};</li> + <li><a href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i contorns d'un document HTML5</a>.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/audio/index.html b/files/ca/web/html/element/audio/index.html new file mode 100644 index 0000000000..ec8e3f81ee --- /dev/null +++ b/files/ca/web/html/element/audio/index.html @@ -0,0 +1,371 @@ +--- +title: <audio> +slug: Web/HTML/Element/audio +tags: + - Element + - HTML + - HTML contingut inserit + - HTML5 + - Media + - Multimedia + - Referencia + - Web +translation_of: Web/HTML/Element/audio +--- +<h2 id="Sumari">Sumari</h2> + +<p class="summary"><span id="result_box" lang="ca"><span>L'element</span> <span>HTML</span> <span><</span><span>àudio</span><span>></span> <span>s'utilitza</span> <span>per inserir</span> <span>contingut</span> <span>de so</span> <span>en els</span> <span>documents.</span> <span>Pot contenir</span> <span>una o més</span> <span>fonts</span> <span>d'àudio,</span> <span>representat</span> <span>mitjançant l'atribut</span> <span>src</span> <span>o</span> <span>l'element</span> </span><span class="seoSummary">{{HTMLElement("source")}}</span><span lang="ca"> <span>el navegador</span> <span>va a triar el</span> <span>més</span> <span>adequat.</span></span></p> + +<p>El contingut alternatiu per als navegadors que no suporten l'element <àudio> es pot també afegir, dins de l'obertura i tancament de les etiquetes <code><audio></audio></code>.</p> + +<p>La funcionalitat de reproducció més bàsica pot posar-se a disposició mitjançant l'atribut controls (vegeu més endavant); per a un ús més avançat, la reproducció d'àudio i els controls poden ser manipulats mitjançant l'HTML Media API, i més específicament les característiques definides a la interfície {{domxref("HTMLAudioElement")}}.</p> + +<p>També pot utilitzar la Web Audio API per generar i manipular directament els fluxos d'àudio des de codi JavaScript. Veure <a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a> per a més detalls.</p> + +<h2 id="Context_d'us">Context d'us</h2> + +<ul> + <li>Contingut permès: Si l'element té un atribut {{htmlattrxref("src", "audio")}}: amb zero o més elements {{HTMLElement("track")}}, seguits pel contingut transparent que no conté elements multmèdia - és a dir, sense elements {{HTMLElement("audio")}} o {{HTMLElement("video")}}.</li> + <li>O bé: amb zero o més elements {{HTMLElement("source")}}, seguit de zero o més elements {{HTMLElement("track")}}, seguit pel contingut transparent que no conté elements multimedia,és a dir, sense elements {{HTMLElement("audio")}} o {{HTMLElement("video")}}.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut de Flux</a>, phrasing content, contingut incrustat. Si té un atribut {{htmlattrxref("controls", "audio")}}: contingut interactiu i contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Si l'element té un atribut {{htmlattrxref("src", "audio")}}: zero o més elements {{HTMLElement("track")}} seguit de contingut transparent que no conté elements mèdia, que no és {{HTMLElement("audio")}} o {{HTMLElement("video")}}<br> + O bé: zero o més elements {{HTMLElement("source")}}, seguit de zero o més elements {{HTMLElement("track")}}, seguit de contingut transparent que no conté elements mèdia, és a dir sense {{HTMLElement("audio")}} o {{HTMLElement("video")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>que accepti</span> <span>contingut</span> <span>incrustat</span></span> .</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLAudioElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>inclou el</span></span>s <span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes">gatributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("autoplay")}}</dt> + <dd>Atribut Booleà; si s'especifica (fins i tot si el valor és "fals"!), l'àudio iniciarà automàticament la reproducció tan aviat com pugui fer-ho, sense esperar que l'arxiu d'àudio complet s'hagi acabat de descarregar.</dd> + <dt>{{htmlattrdef("autobuffer")}} {{obsolete_inline("2.0")}}</dt> + <dd>Atribut booleà; si s'especifica, s'iniciarà automàticament la descàrrega del àudio, fins i tot si no s'ha establert la reproducció automàtica. Això continua fins que la memòria cau multimèdia està plena, o tot l'arxiu d'àudio s'hagi descarregat, el que passi primer. Això només s'ha d'utilitzar quan s'espera que l'usuari esculli per reproduir l'àudio; per exemple, si l'usuari ha navegat a una pàgina mitjançant un enllaç "Reproduir aquest àudio". Aquest atribut es va eliminar al Gecko 2.0 {{geckoRelease ("2,0")}} en favor de l'atribut preload</dd> + <dt>{{htmlattrdef("buffered")}}</dt> + <dd>Un atribut que pot llegir per a veure els intervals de temps del media que han estat emmagatzemades en el buffer. Aquest atribut conté un objecte {{domxref("TimeRanges")}}.</dd> + <dt>{{htmlattrdef("controls")}}</dt> + <dd>Si aquest atribut és present, el navegador ofereix controls per permetre a l'usuari controlar la reproducció d'àudio, incloent el volum, recerca i pausa/reprendre la reproducció.</dd> + <dt>{{htmlattrdef("loop")}}</dt> + <dd>Atribut booleà; si s'especifica, buscarà automàticament de nou al començament en arribar al final de l'àudio.</dd> + <dt>{{htmlattrdef("mozCurrentSampleOffset")}} {{gecko_minversion_inline("2.0")}} {{non-standard_inline}}</dt> + <dd>El desplaçament, especificat com el nombre de mostres des del començament de la seqüència d'àudio, en el qual l'àudio s'està reproduint.</dd> + <dt>{{htmlattrdef("muted")}}</dt> + <dd>Atribut booleà que indica si l'àudio serà silenciat inicialment. El seu valor per defecte és fals.</dd> + <dt>{{htmlattrdef("played")}}</dt> + <dd>Un objecte {{domxref("TimeRanges")}} indicant totes les gammes d'àudio que s'han reproduït.</dd> + <dt>{{htmlattrdef("preload")}}</dt> + <dd>Aquest atribut enumerat està destinat a proporcionar un suggeriment al navegador sobre el que l'autor pensa en que el pot conduir a una millor experiència d'usuari. Pot tenir un dels següents valors: + <ul> + <li><code>none</code>: indica que l'àudio no ha de ser precarregat;</li> + <li><code>metadata</code>: indica que unicament es recupera les metadata d'àudio (per exemple, longitud);</li> + <li><code>auto</code>: indica que el fitxer d'àudio podria ser descarregat sencer, encara que no s'espera que l'usuari ho utilitzi;</li> + <li>la <em>cadena buida</em>: sinònim del valor <code>auto</code>.</li> + </ul> + + <p>Si no s'estableix el valor predeterminat és definit pel propi navegador (és a dir, cada navegador pot tenir el seu propi valor per omissió). L'especificació informa que s'estableixi en les <code>metadata</code>.</p> + + <div class="note"><strong>Notes d'ús:</strong> + + <ul> + <li>L'atribut <code>autoplay</code> té prioritat sobre l'atribut <code>preload.</code>Si s'especifica <code>autoplay</code>, el navegador hauria de començar, òbviament, a descarregar l'àudio per a la seva reproducció.</li> + <li><span id="result_box" lang="ca"><span>El navegador</span> <span>no</span> <span>és</span> <span>forçat</span> <span>per l'especificació</span> <span>a seguir el</span> <span>valor d'aquest</span> <span>atribut</span><span>;</span> <span>és</span> <span>un mer suggeriment</span><span>.</span></span></li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>La direcció URL de l'àudio a inserir. Està subjecte als <a href="/en-US/docs/HTTP_access_control">controls d'access HTTP</a>. És opcional; en el seu lloc podeu utilitzar el element {{htmlelement("source")}} dins del bloc d'àudio per especificar l'àudio a encastar.</dd> + <dt>{{htmlattrdef("volume")}}</dt> + <dd>El volum de reproducció, va del rang 0.0 (silenci) a 1.0 (el més alt).</dd> +</dl> + +<p>Els desplaçaments de temps s'especifiquen com a valors de coma flotant que indica el nombre de segons per compensar.</p> + +<div class="note"><strong>Note:</strong> El valor de definició de desplaçament del temps encara no s'ha completat en l'especificació HTML5 i està subjecte a canvis.</div> + +<h2 id="Events">Events</h2> + +<p><span id="result_box" lang="ca"><span>Un element</span> <span>audio</span> <span>pot disparar</span> <span>diversos</span> </span><a href="/en-US/docs/Web/Guide/Events/Media_events">events</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Us_bàsic">Us bàsic</h3> + +<pre class="brush: html"><!-- Simple audio playback --> +<audio src="http://developer.mozilla.org/@api/deki/files/2926/=AudioTest_(1).ogg" autoplay> + Your browser does not support the <code>audio</code> element. +</audio> + +<!-- Audio playback with captions --> +<audio src="foo.ogg"> + <track kind="captions" src="foo.en.vtt" srclang="en" label="English"> + <track kind="captions" src="foo.sv.vtt" srclang="sv" label="Svenska"> +</audio> +</pre> + +<h3 id="Element_audio_amb_l'element_source">E<span class="short_text" id="result_box" lang="ca"><span>lement</span> <span>audio</span> <span>amb l'element</span> source</span></h3> + +<pre class="brush: html"><audio controls="controls"> + Your browser does not support the <code>audio</code> element. + <source src="foo.wav" type="audio/wav"> +</audio> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-video-element.html#the-audio-element', '<audio>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-audio-element', '<audio>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}} [1]</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>autoplay</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>buffered</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>controls</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("11.0")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>muted</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("11.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>propietat played</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("15.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>preload</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>{{CompatVersionUnknown}} [2]</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>src</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut volume</td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>autoplay</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>buffered</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>controls</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("11.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>muted</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("11.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>propietat played</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("15.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>preload</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>src</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>volume</code></td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Per</span> <span>Gecko,</span> <span>per reproduir</span> <span>l'àudio</span><span>, el servidor</span> <span>ha de servir</span> <span>l'arxiu amb</span> <span>el tipus</span> <span>MIME</span> <span>correcte.</span></span></p> + +<p>[2] <span id="result_box" lang="ca"><span>S</span><span>uportat</span> <span>sota</span> <span>el antic </span></span><span lang="ca"><span>nom</span> <code><span>autobuffer</span></code></span></p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements">Formats media suportats pels elements audio i video</a></li> + <li><a href="/en-US/docs/Web_Audio_API">Web Audio API</a></li> + <li>{{domxref("HTMLAudioElement")}}</li> + <li><a href="/en-US/docs/XPCOM_Interface_Reference/NsIDOMHTMLMediaElement"><code>nsIDOMHTMLMediaElement</code></a></li> + <li>{{htmlelement("source")}}</li> + <li>{{htmlelement("video")}}</li> + <li><a href="/en-US/docs/Using_HTML5_audio_and_video">L'ús d'àudio i vídeo</a></li> + <li><a href="http://www.whatwg.org/specs/web-apps/current-work/#audio">El element <code>audio</code></a> (HTML5 specification)</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/b/index.html b/files/ca/web/html/element/b/index.html new file mode 100644 index 0000000000..6d9d6ac518 --- /dev/null +++ b/files/ca/web/html/element/b/index.html @@ -0,0 +1,155 @@ +--- +title: <b> +slug: Web/HTML/Element/b +translation_of: Web/HTML/Element/b +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <b></strong> representa un fragment de text estilísticament diferent de text normal, sense transmetre cap importància o rellevància especial. S'utilitza típicament per a les paraules clau en un resum, noms de producte en els seus comentaris o altres unitats de text, la presentació típica seria en negreta. Un altre exemple del seu ús és per marcar l'oració principal de cada paràgraf d'un article.</p> + +<p> + </p><div class="note"> + <p><strong>Notes d'ús :</strong></p> + + <ul> + <li>No s'ha de confondre l'element <code><b></code> amb els elements {{HTMLElement("strong")}}, {{HTMLElement("em")}}, o {{HTMLElement("mark")}}. L'element {{HTMLElement("strong")}} representa text de certa importància, l'element {{HTMLElement("em")}} posa cert èmfasi en el text i l'element {{HTMLElement("mark")}} representa text de certa rellevància. L'element <code><b></code> no transmet aquesta informació semàntica especial; utilitzar només quan no hi ha altres que encaixin.</li> + <li>De la mateixa manera, no s'ha de marcar títols i capçaleres utilitzant l'element <code><b></code>. Per a aquest propòsit, utilitzeu les etiquetes {{HTMLElement("h1")}} a {{HTMLElement("h6")}}. A més, els fulls d'estil poden canviar l'estil per defecte d'aquests elements, amb el resultat de que no <em>necessàriament</em> es mostrin en negreta</li> + <li>És una bona pràctica utilitzar l'atribut class en l'element <code><b></code> a fi de transmetre informació semàntica addicional (per exemple,<code> <b class = "lead"></code> per a la primera oració en un paràgraf). Això facilita el desenvolupament de diversos estils d'un document web, sense la necessitat de canviar el seu codi HTML.</li> + <li>Històricament, l'element <code><b></code> estava destinat a fer ressaltar el text. L'estil de la informació és obsoleta des de HTML 4, per la qual cosa el significat de l'element <code><b></code> ha canviat.</li> + <li>Si no hi ha un propòsit semàntic sobre l'ús de l'element <code><b></code>, usant la propietat CSS <a href="/en-US/docs/CSS/font-weight" title="font-weight">font-weight</a> amb valor negreta, seria una millor opció per fer el text en negreta.</li> + </ul> + </div> +<p></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de Flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable..</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}<span lang="ca"><span title="HTMLElement Up to Gecko 1.9.2 (Firefox 4) inclusive, Firefox implements the HTMLSpanElement interface for this element."> Fins Gecko 1.9.2 (Firefox 4) inclosos, Firefox implementa la interfície </span></span><a href="/en-US/docs/DOM/span" title="DOM/span"><code>HTMLSpanElement</code></a> <span id="result_box" lang="ca"><span title="HTMLElement Up to Gecko 1.9.2 (Firefox 4) inclusive, Firefox implements the HTMLSpanElement interface for this element.">per a aquest element.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span title="This element only includes the">Aquest element només inclou el</span></span>s<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p> + This article describes several <b>text-level</b> elements. It explains their usage in an <b>HTML</b> document. +</p> +Keywords are displayed with the default style of the <b> element, likely in bold. +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p><span id="result_box" lang="ca"><span title="This article describes several text-level elements.">En aquest article es descriuen diversos elements a nivell de text. </span><span title="It explains their usage in an HTML document. + +">S'explica el seu ús en un document HTML.</span></span></p> + +<p><span id="result_box" lang="ca"><span title="Keywords are displayed with the default style of the <b> element, likely in bold.">Les paraules clau es mostren amb l'estil per defecte de l'element <b>, probablement en negreta.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-b-element', '<b>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-b-element', '<b>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'present/graphics.html#h-15.2.1', '<b>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements que transmeten <a href="/en-US/docs/HTML/Text_level_semantics_conveying_elements" title="HTML/Text level semantics conveying elements">semantica a nivell de tetxt</a>: {{HTMLElement("a")}}, {{HTMLElement("em")}}, {{HTMLElement("strong")}}, {{HTMLElement("small")}}, {{HTMLElement("cite")}}, {{HTMLElement("q")}}, {{HTMLElement("dfn")}}, {{HTMLElement("abbr")}}, {{HTMLElement("time")}}, {{HTMLElement("code")}}, {{HTMLElement("var")}}, {{HTMLElement("samp")}}, {{HTMLElement("kbd")}}, {{HTMLElement("sub")}}, {{HTMLElement("sup")}}, {{HTMLElement("i")}}, {{HTMLElement("mark")}}, {{HTMLElement("ruby")}}, {{HTMLElement("rp")}}, {{HTMLElement("rt")}}, {{HTMLElement("bdo")}}, {{HTMLElement("span")}}, {{HTMLElement("br")}}, {{HTMLElement("wbr")}}.</li> + <li><a class="external" href="http://www.w3.org/International/questions/qa-b-and-i-tags">L'ús dels elements (W3C) <b> i <i></a></li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/base/index.html b/files/ca/web/html/element/base/index.html new file mode 100644 index 0000000000..748a13e13f --- /dev/null +++ b/files/ca/web/html/element/base/index.html @@ -0,0 +1,150 @@ +--- +title: <base> +slug: Web/HTML/Element/base +tags: + - Element + - HTML + - HTML document metada + - Refrència + - Web +translation_of: Web/HTML/Element/base +--- +<p id="Summary">{{HTMLRef}}</p> + +<p><strong>L'element HTML <base></strong> especifica la URL principal que s'utilitzarà per a totes les URL relatives contingudes dins d'un document. Solsament pot haver un element <base> per document.</p> + +<p>La direcció URL base d'un document es pot consultar des del script {{domxref('document.baseURI')}}.</p> + +<div class="note"><strong>Nota d'ús</strong>: Si s'especifiquen diversos elements <code><base></code>, s'utilitzen només la primera secció <strong>href</strong> i el primer valor <strong>target</strong>; tots els altres són ignorats.</div> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Contingut Metadata.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td><span class="short_text" id="result_box" lang="ca"><span>No ha d'haver</span> <span>cap etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Qualsevol {{HTMLElement("head")}} no pot contenir un altre element {{HTMLElement("base")}}.</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLBaseElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>inclou el</span></span>s <span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("href")}}</dt> + <dd><span id="result_box" lang="ca"><span>La direcció</span> <span>URL</span> <span>base</span> <span>que s'usa</span> <span>en tot el document</span> <span>per a les</span> <span>adreces</span> <span>URL</span> <span>relatives.</span> <span class="alt-edited">Si s'especifica</span> <span>aquest</span> <span>atribut,</span> <span>aquest</span> <span>element</span> <span>ha de venir</span> <span>abans</span> <span>de qualssevol</span> <span>altres elements</span> <span>amb atributs,</span> <span>els valors dels quals </span><span>són</span> <span>adreces</span> <span>URL.</span> <span>Es permeten</span> <span>les</span> <span>adreces</span> <span>URL</span> <span>absolutes</span> <span>i</span> <span>relatives.</span></span></dd> + <dt>{{htmlattrdef("target")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Un nom o una paraula clau que indica la ubicació per defecte per mostrar el resultat </span></span> quan naveguem <span lang="ca"><span class="alt-edited">per hipervincles o formularis, elements que no tenen una referència objectiva explícita. És un nom o una paraula clau per a un context de navegació (per exemple: pestanya, finestra o marc en línia). Les següents paraules clau tenen un significat especial:</span></span> + <ul> + <li><code>_self</code>: <span id="result_box" lang="ca"><span>Càrrega</span> <span>el resultat</span> <span>en el mateix context</span> <span>de navegació</span> <span>com l'actual.</span> <span>Aquest</span> <span>valor és el</span> <span>valor per</span> <span>defecte si</span> <span>no s'especifica</span> <span>l'atribut</span><span>.</span></span></li> + <li><code>_blank</code>: <span id="result_box" lang="ca"><span>Càrrega</span></span><span lang="ca"> <span>el resultat en un</span> <span>nou</span> <span>context</span> <span>de navegació sense</span> <span>nom.</span></span></li> + <li><code>_parent</code>: <span id="result_box" lang="ca"><span>Càrrega</span></span><span lang="ca"><span> el</span> <span>resultat</span> <span>en el context</span> <span>de navegació</span> <span>dels</span> <span>pares</span> <span>de</span> <span>l'actual.</span> <span>Si no hi ha</span> <span>pare</span><span>,</span> <span>aquesta</span> <span>opció</span> <span>es comporta de</span> <span>la mateixa manera que</span> <code><span>_self</span></code></span></li> + <li><code>_top</code>: Càrrega el resultat en el context de nivell superior de navegació (és a dir, el context de navegació que és un ancestre de l'actual, i no té pare). Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><base href="http://www.example.com/page.html"> +<base target="_blank" href="http://www.example.com/page.html"> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-base-element', '<base>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última presentació.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'document-metadata#the-base-element', '<base>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Defineix el comportament de <code>target</code></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/links.html#h-12.4', '<base>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td><span id="result_box" lang="ca"><span>S'ha</span> <span>afegit</span> <span>l'atribut</span> </span><code>target</code></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}} [2]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span class="alt-edited">S'ha afegit</span> <span>el suport</span> <span>de</span> <span>URIs relatives</span> <span>per</span> <span>href</span> <span>en Gecko</span> <span>2.0</span> <span>(</span><span>Firefox</span> <span>4.0</span><span>)</span></span></p> + +<p>[2] <span id="result_box" lang="ca"><span>Abans</span> <span>d'Internet Explorer</span> <span>7,</span> <span><</span><span>base</span><span>></span> <span class="alt-edited">podia ser</span> <span>col·locat</span> <span>en qualsevol</span> <span>lloc del</span> <span>document</span> <span>i el valor</span> <span>més proper</span> <span>de</span> <span><</span><span>base</span><span>></span> <span class="alt-edited">es el que s'utilitzava</span>.<span>El suport a les</span> <span>URL</span> <span>relatives</span> <span>s'ha</span> <span>eliminat</span> <span>a Internet</span> <span>Explorer 8</span></span>.</p> diff --git a/files/ca/web/html/element/basefont/index.html b/files/ca/web/html/element/basefont/index.html new file mode 100644 index 0000000000..6c53383c5a --- /dev/null +++ b/files/ca/web/html/element/basefont/index.html @@ -0,0 +1,112 @@ +--- +title: <basefont> +slug: Web/HTML/Element/basefont +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/basefont +--- +<div>{{obsolete_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML basefont (<code><basefont></code>) estableix una mida per defecte de font per a un document. Llavors la mida de la font pot ser variada en relació a la mida de la font base utilitzant l'element {{HTMLElement("font")}}.</p> + +<div class="note"> +<p><em>Nota d'ùs: </em></p> + +<p><strong>No utilitzeu aquest element!</strong> Tot i que un cop (imprecis) normalitzat en HTML 3.2, no era compatible amb tots els navegadors principals. A més, els navegadors, i fins i tot les versions successives dels mateixos, mai es va implementar de la mateixa manera: a la pràctica, la seva utilització sempre ha portat resultats indeterminats.</p> + +<p>L'element <code><basefont></code> va ser desaprovat en la norma al mateix temps que tots els elements només relacionats amb l'estil. A partir d'HTML 4, HTML no transmet més informació d'estil (fora de l'element {{HTMLElement("style")}} o l'atribut <strong>style</strong> de cada element). En HTML5, aquest element s'ha eliminat completament. Per a qualsevol nou desenvolupament web, l'estil ha de ser escrit utilitzant només <a href="https://developer.mozilla.org/en-US/docs/CSS" title="CSS">CSS</a> .</p> + +<p>El comportament anterior de l'element {{HTMLElement("font")}} es pot aconseguir, i fins i tot millorar el control mitjançant les propietats <a href="/en-US/docs/Web/CSS/CSS_Fonts">CSS Fonts</a>.</p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">Com tots els altres elements HTML, aquest element és compatible amb el</span></span>s <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("color")}}</dt> + <dd>Aquest atribut estableix el color de text utilitzant un color amb nom o un color especificat en format hexadecimal #RRGGBB.</dd> + <dt>{{htmlattrdef("face")}}</dt> + <dd> + <p>Aquest atribut conté una llista d'un o més noms de fonts. L'estil per defect en el text del document es representa amb el primer tipus de lletra que és compatible amb el navegador del client. Si no hi ha tipus de lletra que figuri instal·lat en el sistema local, el navegador utilitza per defecte una font proporcional o d'amplada fixa per aquest sistema.</p> + </dd> + <dt>{{htmlattrdef("size")}}</dt> + <dd>Aquest atribut especifica la mida de la font, ja sigui com un valor numèric o relatiu. Els valors numèrics s'estenen d'1 a 7 sent 1 el més petit i 3 el valor predeterminat.</dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la Interfície <code><a href="/en-US/docs/DOM/HTMLBaseFontElement" title="DOM/HTMLBaseFontElement">HTMLBaseFontElement</a></code>.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre><basefont color="#FF0000" face="Helvetica" size="+2" /> +</pre> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes">Notes</h2> + +<ul> + <li>HTML 3.2 suporta l'element basefont però només amb l'atribut size.</li> + <li>Les estrictes especificacions de HTML i XHTML no són compatibles amb aquest element.</li> + <li>Tot i ser part de les normes transitòries, alguns navegadors basats en els estàndards com Mozilla i Opera no són compatibles amb aquest element.</li> + <li>Aquest element pot ser imitat amb una regla CSS en l'element {{HTMLElement("body")}}.</li> + <li>XHTML 1.0 requereix una barra al final del element: <code><basefont /></code>.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/bdi/index.html b/files/ca/web/html/element/bdi/index.html new file mode 100644 index 0000000000..7e5eee05ec --- /dev/null +++ b/files/ca/web/html/element/bdi/index.html @@ -0,0 +1,140 @@ +--- +title: <bdi> +slug: Web/HTML/Element/bdi +tags: + - BiDi + - Element + - HTML + - HTML text-level semantics + - Referencia + - Web +translation_of: Web/HTML/Element/bdi +--- +<h2 id="Sumari">Sumari</h2> + +<p><span id="result_box" lang="ca"><span>El element 'HTML</span> <span><</span><span>BDI</span><span>></span> <span>(o Element d'</span></span><span lang="ca"><span>aïllament</span> <span>bidireccional</span> <span>)</span> <span>Aïlla </span><span>un</span> <span>fragment</span> <span>de text que</span> <span>podrie ser</span> <span>formatat</span> <span>en una direcció</span> <span>diferent d'un altre</span> <span>text</span> <span>fora d'aquest.</span></span></p> + +<p>Aquest element és útil quan s'incrusta text amb una direccionalidad desconeguda, d'una base de dades per exemple, en un text amb una direccionalidad fixa.</p> + +<p class="note"><span id="result_box" lang="ca"><span>Tot i que el</span> <span>mateix</span> <span>efecte visual</span> <span>es</span> <span>pot</span> <span>aconseguir utilitzant</span> <span>la regla</span> <span>CSS</span></span> {{cssxref("unicode-bidi")}}<code>: aïllar</code> en un {{HTMLElement("span")}} <span id="result_box" lang="ca"><span>o un altre</span> <span>element</span> <span>de</span> <span>formatat</span> <span>de text, el</span> <span>significat</span> <span>semàntic</span> <span>és</span> <span>només</span> <span>transmès</span> <span>per l'element</span> </span><code><bdi></code>. <span id="result_box" lang="ca"><span>Especialment</span><span>, els</span> <span>navegadors</span> <span>se'ls permet</span> <span>fer cas</span> <span>omís</span> <span>d'estil</span> <span>CSS</span></span>. <span id="result_box" lang="ca"><span>En aquest cas,</span> <span>el text</span> <span>encara</span> <span>es</span> <span>mostra</span> <span>correctament</span> <span>usant</span> <span>l'element</span> <span>HTML, però</span> <span>arribarà a</span> <span>ser escombraries</span> <span>quan s'utilitza</span> <span>l'estil</span> <span>CSS per</span> <span>transmetre</span> <span>semàntica.</span></span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de Flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Flow_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Flow_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>té els</span><span> </span></span><a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs global</a>, <span id="result_box" lang="ca"><span>amb una</span> <span>lleugera</span> <span>diferència</span> <span>semàntica</span></span>: <span id="result_box" lang="ca"> <span>l'atribut <strong>dir</strong></span> <span>no s'hereta</span></span>. <span id="result_box" lang="ca"> <span>Si</span> <span>no s'estableix</span> <span>el seu valor, per</span> <span>defecte és el</span> <span>d'</span></span><code>auto,</code><span id="result_box" lang="ca"><span class="alt-edited"> deixar el navegador decidir la direcció basat en el contingut de l'element.</span></span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p dir="ltr">This arabic word <bdi>ARABIC_PLACEHOLDER</bdi> is automatically displayed right-to-left.</p> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p dir="ltr"><span id="result_box" lang="ca"><span>Aquesta</span> <span>paraula àrab</span> <span>REDLOHECALP_CIBARA</span> <span>es</span> <span>visualitza</span> <span>automàticament</span> <span>de dreta a</span> <span>esquerra</span><span>.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-bdi-element', '<bdi>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'the-bdi-element.html#the-bdi-element', '<bdi>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Producte</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>16</td> + <td>{{CompatGeckoDesktop("10.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Producte</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("10.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 dir="ltr" id="Veure">Veure</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Element</span> <span>HTML</span> relacionat</span>: {{HTMLElement("bdo")}}</li> + <li><span id="result_box" lang="ca"><span>Propietats</span> <span>HTML</span> <span>relacionades</span></span>: {{cssxref("direction")}}, {{cssxref("unicode-bidi")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/bdo/index.html b/files/ca/web/html/element/bdo/index.html new file mode 100644 index 0000000000..29fb87aa05 --- /dev/null +++ b/files/ca/web/html/element/bdo/index.html @@ -0,0 +1,152 @@ +--- +title: <bdo> +slug: Web/HTML/Element/bdo +tags: + - BiDi + - Element + - HTML + - Referencia + - Web +translation_of: Web/HTML/Element/bdo +--- +<p id="Summary">{{HTMLRef}}</p> + +<h2 id="Sumari">Sumari</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'<strong>element HTML <bdo></strong> (o element HTML d'anul·lació bidireccional) s'utilitza per anul·lar la direccionalitat del text actual. Fa que la direccionalidad dels caràcters sigui ignorada en favor de la direccionalidad especificada</span></span>.</p> + +<h2 id="Context_d'ús">C<span class="short_text" id="result_box" lang="ca"><span>ontext</span> <span>d'ús</span></span></h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclosos, Firefox implementa la interfície <a href="/en-US/docs/DOM/span" title="DOM/span"><span style="font-family: courier new;">HTMLSpanElement</span></a> per aquest element.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("dir")}}</dt> + <dd><span id="result_box" lang="ca"><span>La direcció</span> <span>del text</span> <span>en aquest</span> <span>element.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>ltr</code>: <span id="result_box" lang="ca"><span>Indica que</span> <span>el text</span> <span>ha d'anar</span> <span>en direcció</span> <span>d'esquerra</span> <span>a dreta</span></span>.</li> + <li><code>rtl</code>: <span id="result_box" lang="ca"><span>Indica que</span> <span>el text</span> <span>ha d'anar</span> <span>en direcció</span> <span>de dreta a esquerra</span></span>.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- Switch text direction --> +<p>This text will go left to right.</p> +<p><bdo dir="rtl">This text will go right to left.</bdo></p></pre> + +<h3 id="Result">Result</h3> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquest</span> <span>text</span> <span>anirà</span> <span>d'esquerra</span> <span>a dreta</span></span>.</p> + +<p>.tfel ot thgir og lliw txet sihT</p> + +<h2 id="Notes">Notes</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'especificació HTML 4 no va definir events per a aquest element; es van afegir a XHTML. El més probable és que es tracti d'un descuit.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-bdo-element', '<bdo>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'the-bdo-element.html#the-bdo-element', '<bdo>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'dirlang.html#h-8.2.4', '<bdo>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table" style="height: 75px; width: 902px;"> + <tbody> + <tr> + <th>Caracteristica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Caracteristica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/html/element/bgsound/index.html b/files/ca/web/html/element/bgsound/index.html new file mode 100644 index 0000000000..766b9598eb --- /dev/null +++ b/files/ca/web/html/element/bgsound/index.html @@ -0,0 +1,106 @@ +--- +title: <bgsound> +slug: Web/HTML/Element/bgsound +tags: + - Element + - HTML + - Non-standard + - Reference + - Web +translation_of: Web/HTML/Element/bgsound +--- +<div>{{non-standard_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML So de Fons (<code><bgsound></code>) és un element d'Internet Explorer que associa un so de fons amb una pàgina.</p> + +<div class="note"> +<p><strong>No utilitzeu aquest!</strong> Per poder inserir l'àudio en una pàgina web, heu d'utilitzar l'element {{HTMLElement("audio")}}.</p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<dl> + <dt>{{htmlattrdef("balance")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>defineix un</span> <span>nombre entre</span> <span>-10000</span> <span>i</span> <span>10000</span> <span>que determina com</span> <span>es</span> <span>dividirà el</span> <span>volum</span> <span>entre els</span> <span>altaveus</span></span></dd> + <dt>{{htmlattrdef("loop")}}</dt> + <dd>Aquest atribut indica el nombre de vegades que un so es reproduirà i pot tenir qualsevol valor numèric o la paraula clau infinita.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>l'adreça URL</span> <span>de l'arxiu de</span> <span>so que</span> <span>es</span> <span>reproduirà</span><span>,</span> <span>que ha de ser</span> <span>un dels</span> <span>següents</span> <span>tipus:</span> <span>.wav</span><span>,</span> <span>.au</span><span>,</span> <span>o</span> <span>.mid</span><span>.</span></span></dd> + <dt>{{htmlattrdef("volume")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>defineix un</span> <span>nombre entre</span> <span>0</span> <span>i</span> <span>10.000</span> <span>que determina la</span> <span>intensitat</span> <span>del so</span> <span>de fons</span> <span>d'una pàgina.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><bgsound src="sound1.mid"> + +<bgsound src="sound2.au" loop="infinite"> +</pre> + +<h2 id="Notes">Notes</h2> + +<p><span id="result_box" lang="ca"><span>Funcionalitat</span> <span>similar pot</span> <span>aconseguir-se en</span> <span>algunes</span> <span>versions</span> <span>de Netscape</span> <span>que utilitzen</span> <span>l'etiqueta</span> <code><span><</span><span>embed</span><span>></span></code> <span>per invocar</span> <span>un reproductor</span> <span>d'àudio.</span></span></p> + +<p>Podem escriure bgsound amb una etiqueta de tancament <code><bgsound /></code>. No obstant això, ja que aquest element no és part d'una norma, pel que fa a XHTML no será validat.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Fins Firefox 22, tot i no donar suport a aquest element, Gecko va associar-ho a {{domxref ("HTMLSpanElement")}}. Això va ser corregit i ara l'element associat és un {{domxref ("HTMLUnknownElement")}} com és requerit per l'especificació.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>El {{htmlelement("audio")}}, és l'element estàndard d'àudio per incrustar en un document.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/big/index.html b/files/ca/web/html/element/big/index.html new file mode 100644 index 0000000000..cf7a7a3cd1 --- /dev/null +++ b/files/ca/web/html/element/big/index.html @@ -0,0 +1,107 @@ +--- +title: <big> +slug: Web/HTML/Element/big +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/big +--- +<div>{{obsolete_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'Element HTML gran (<code><big></code>) fa que la mida de la lletra del text sigui d'una mida més gran (per exemple, de petites a mitjanes, o de grans a x-gran) fins a la mida de la font màxima del navegador.</p> + +<div class="note"> +<p><strong>Nota d'ùs: </strong>Com solament era de presentació, aquest element s'ha eliminat en <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5" title="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a> i no s'ha d'utilitzar més. En lloc d'això els desenvolupadors web han d'usar les propietats <a href="https://developer.mozilla.org/en-US/docs/Web/CSS" title="/en-US/docs/Web/CSS">CSS</a> .</p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element no té altres atributs que els <a href="/en-US/docs/HTML/global_attributes" title="HTML/global attributes">atributs globals</a>, comuns a tots els elements.</p> + +<h2 id="Exemple_1">Exemple 1</h2> + +<pre class="brush:xml"><p> + This is the first sentence. <big>This whole + sentence is in bigger letters.</big> +</p></pre> + +<h2 id="Exemple_2_(CSS_alternatiu)">Exemple 2 (CSS alternatiu)</h2> + +<pre class="brush:xml"><p> + This is the first sentence. <span style="font-size:1.2em">This whole + sentence is in bigger letters.</span> +</p></pre> + +<h3 id="Resultat">Resultat</h3> + +<p>This is the first sentence. <span style="font-size: 1.2em;">This whole sentence is in bigger letters.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref('HTMLElement')}}.</p> + +<div class="note"><strong>Nota d'implementació: </strong>Fins Gecko 1.9.2 inclossos, Firefox implementa per aquest element la interfície {{domxref('HTMLSpanElement')}}.</div> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{htmlelement("small")}}, {{htmlelement("font")}}, {{htmlelement("style")}}</li> + <li>Especificacións HTML 4.01: <a class="external" href="http://www.w3.org/TR/html4/present/graphics.html#h-15.2">Font Styles</a></li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/blink/index.html b/files/ca/web/html/element/blink/index.html new file mode 100644 index 0000000000..ebe43128ab --- /dev/null +++ b/files/ca/web/html/element/blink/index.html @@ -0,0 +1,101 @@ +--- +title: <blink> +slug: Web/HTML/Element/blink +tags: + - Deprecated + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/blink +--- +<div>{{Deprecated_header}} {{Non-standard_header}}</div> + +<p>L'element HTML parpelleig (<code><blink></code>) és un element no estàndard que fa que el text adjunt parpellegi lentament.</p> + +<div class="warning"> +<p class="note"><strong>Atenció</strong>: No utilitzeu aquest element, ja que no és estàndard i està <strong>desaprovat</strong>. El text parpellejant està mal vist per diversos estàndards d'accessibilitat i l'especificació CSS permet als navegadors que ignorin el valor de parpelleig.</p> +</div> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element no és compatible i per tant implementa la interfície {{domxref("HTMLUnknownElement")}}.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><blink>Why would somebody use this?</blink> +</pre> + +<h3 id="Resultat_(atenuat!)">Resultat (atenuat!)</h3> + +<p><img alt="Image:HTMLBlinkElement.gif" src="/@api/deki/files/247/=HTMLBlinkElement.gif"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>Aquest element no és estàndard i no forma part de cap especificació. <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#non-conforming-features">sinó us ho creieu consultar l'especificació HTML.</a></p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Suportat fins a la versió 22. Eliminat en la versió 23.</p> + +<p>[2] Suportat fins a la versió 12.1. Eliminat en la versió 15.0.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="http://www.montulli.org/theoriginofthe%3Cblink%3Etag">Historia de la creació de l'element HTML <code><blink></code> </a>.</li> + <li>{{cssxref("text-decoration")}}, encara que existeixi un valor de parpelleig, els navegadors no estan obligats a fer-lo parpellejar.</li> + <li>{{htmlelement("marquee")}}, <span class="short_text" id="result_box" lang="ca"><span>un altre</span> <span>element</span> similar <span>no estàndard</span>.</span></li> + <li><a href="/en-US/docs/Web/Guide/CSS/Using_CSS_animations" title="/en-US/docs/Web/Guide/CSS/Using_CSS_animations">CSS animations</a> és<span class="short_text" id="result_box" lang="ca"><span> el</span> <span>camí a seguir per</span> <span>crear aquest</span> <span>efecte</span></span>.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/blockquote/index.html b/files/ca/web/html/element/blockquote/index.html new file mode 100644 index 0000000000..c16e0dd6ac --- /dev/null +++ b/files/ca/web/html/element/blockquote/index.html @@ -0,0 +1,154 @@ +--- +title: <blockquote> +slug: Web/HTML/Element/blockquote +tags: + - Element + - HTML + - Referencia + - Web +translation_of: Web/HTML/Element/blockquote +--- +<h2 id="Sumari">Sumari</h2> + +<p><strong>L'element HTML <code><blockquote></code></strong> (o <em>Element HTML Bloc de cita</em>) indica que el text adjunt és una cita estesa. Generalment, això es representa visualment per sagnat (veure <a href="/en-US/docs/HTML/Element/blockquote#Notes">Notes</a> per a la forma de canviar-ho). Una adreça URL de la font de la cita es pot administrar mitjançant l'atribut <strong>cite</strong>, mentre que una representació de text de la font es pot administrar utilitzant l'element {{HTMLElement("cite")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de Flux</a>, seccionament arrel, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Phrasing_content">Contingut de Flux</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>que accepti</span></span> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Phrasing_content">Contingut de Flux</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLQuoteElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globlas</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("cite")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un URL</span> <span>que designa un</span> <span>document o</span> <span>missatge</span> <span>per a la</span> <span>informació</span> <span>esmentada</span><span>.</span> <span>Aquest</span> <span>atribut</span> <span>està</span> <span>destinat</span> <span>a assenyalar</span> <span>la informació que</span> <span>explica</span> <span>el context</span> <span>o la referència</span> de<span> la</span> <span class="alt-edited">cita.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><blockquote cite="http://developer.mozilla.org"> + <p>This is a quotation taken from the Mozilla Developer Center.</p> +</blockquote> +</pre> + +<p>Resultat del codi HTML: :</p> + +<blockquote cite="http://developer.mozilla.org"> +<p>This is a quotation taken from the Mozilla Developer Center.</p> +</blockquote> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-blockquote-element', '<blockquote>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-blockquote-element', '<blockquote>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.2', '<blockquote>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes">Notes</h2> + +<p>Per canviar el sagnat de <code><blockquote></code>, s'utilitza la propietat <a href="/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref("margin")}}.</p> + +<p>Per cites curtes s'utilitza l'element<code> </code>{{HTMLElement("q")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("q")}} per a les cites en línia.</li> + <li>L'element {{HTMLElement("cite")}} per a cites de les fonts.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/body/index.html b/files/ca/web/html/element/body/index.html new file mode 100644 index 0000000000..6ed0a3a4c2 --- /dev/null +++ b/files/ca/web/html/element/body/index.html @@ -0,0 +1,229 @@ +--- +title: <body> +slug: Web/HTML/Element/body +tags: + - Element + - HTML + - Referencia + - Sections + - Web +translation_of: Web/HTML/Element/body +--- +<p>{{HTMLRef}}</p> + +<p>L'element <strong>HTML <code><body></code> </strong>representa el contingut de un document HTML. Solament pot haver-hi un element <code><body></code> en un document.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document#Sectioning_roots">Seccionament arrel</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut de Flux</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td> + <p>L'etiqueta d'inici es pot ometre si el primer concepte no és un caràcter espai, comentari, element {{HTMLElement("script")}} o element {{HTMLElement("style")}}. L'etiqueta final es pot ometre si l'element body té continguts o té una etiqueta d'inici, i no és seguit per un comentari.</p> + </td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Ha de ser</span> <span>el segon</span> <span>element</span> <span>d'un element</span></span> {{HTMLElement("html")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLBodyElement")}} + <ul> + <li>T'element <code><body></code> exposa la interfície {{domxref("HTMLBodyElement")}}.</li> + <li><span id="result_box" lang="ca"><span class="alt-edited">Es pot accedir a l'element body a través de l'atribut</span></span> {{domxref("document.body")}}.</li> + </ul> + </td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("alink")}} {{obsolete_inline}}</dt> + <dd>Color del text dels hipervínculos quan se selecciona. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("color")}} en conjunció amb la pseudo-classe {{cssxref(":active")}}.</em></dd> + <dt>{{htmlattrdef("background")}} {{obsolete_inline}}</dt> + <dd>URI d'una imatge per utilitzar com a fons. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS background en l'element.</em></dd> + <dt>{{htmlattrdef("bgcolor")}} {{obsolete_inline}}</dt> + <dd>Color de fons del document. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("background-color")}} en l'element.</em></dd> + <dt>{{htmlattrdef("bottommargin")}} {{obsolete_inline}}</dt> + <dd>El marge de la part inferior del cos del document. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("margin-bottom")}} en l'element.</em></dd> + <dt>{{htmlattrdef("leftmargin")}} {{obsolete_inline}}</dt> + <dd>El marge de l'esquerra del cos del document. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("margin-left")}} en l'element.</em></dd> + <dt>{{htmlattrdef("link")}} {{obsolete_inline}}</dt> + <dd>El color del text per als enllaços d'hipertext no visitats. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("color")}} juntament amb la pseudo-classe la: {{cssxref(":link")}}.</em></dd> + <dt>{{htmlattrdef("onafterprint")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>després que</span> <span>l'usuari ha</span> <span>imprès el</span> <span>document.</span></span></dd> + <dt>{{htmlattrdef("onbeforeprint")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>quan l'usuari</span> <span>sol·licita</span> <span>la impressió del</span> <span>document.</span></span></dd> + <dt>{{htmlattrdef("onbeforeunload")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>quan</span> <span>el document</span> <span>està</span> <span>a punt de ser</span> <span>descarregat.</span></span></dd> + <dt>{{htmlattrdef("onblur")}}</dt> + <dd>Funció a cridar quan el document <span id="result_box" lang="ca"><span class="alt-edited">perd el focus.</span></span></dd> + <dt>{{htmlattrdef("onerror")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Funció a cridar quan el document no es carrega correctament.</span></span></dd> + <dt>{{htmlattrdef("onfocus")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Funció a cridar quan el document rep el focus.</span></span></dd> + <dt>{{htmlattrdef("onhashchange")}}</dt> + <dd>Funció a cridar quan part del identificador del fragment (a partir del caràcter comodí ("#") ) de la direcció actual del document ha canviat.</dd> + <dt>{{htmlattrdef("onlanguagechange")}} {{experimental_inline}}</dt> + <dd>Funció a cridar quan els idiomes preferits han canviat.</dd> + <dt>{{htmlattrdef("onload")}}</dt> + <dd>Funció a cridar quan el document hagi acabat de carregar.</dd> + <dt>{{htmlattrdef("onmessage")}}</dt> + <dd>Funció a cridar quan el document ha rebut un missatge.</dd> + <dt>{{htmlattrdef("onoffline")}}</dt> + <dd>Funció a cridar quan la comunicació de xarxa ha fallat.</dd> + <dt>{{htmlattrdef("ononline")}}</dt> + <dd>Funció a cridar quan la comunicació de xarxa s'ha restaurat.</dd> + <dt>{{htmlattrdef("onpopstate")}}</dt> + <dd>Funció a cridar quan l'usuari ha navegat per el historial de la sessió.</dd> + <dt>{{htmlattrdef("onredo")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>quan</span> <span>l'usuari s'ha</span> <span>mogut</span> <span>cap</span> <span>endavant en</span> <span>l'historial</span> <span>de transaccions de</span> <span>desfer</span></span>.</dd> + <dt>{{htmlattrdef("onresize")}}</dt> + <dd>Funció a cridar quan el document ha estat redimensionat.</dd> + <dt>{{htmlattrdef("onstorage")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>quan l'àrea</span> <span>d'emmagatzematge</span> <span>ha canviat.</span></span></dd> + <dt>{{htmlattrdef("onundo")}}</dt> + <dd><span id="result_box" lang="ca"><span>Funció</span> <span>a cridar</span> <span>quan</span> <span>l'usuari s'ha</span> <span>mogut</span> <span>cap enrere en</span> <span>l'historial</span> <span>de transaccions</span> <span>de desfer.</span></span></dd> + <dt>{{htmlattrdef("onunload")}}</dt> + <dd>Funció a cridar quan el document vagi a desaparèixer.</dd> + <dt>{{htmlattrdef("rightmargin")}} {{obsolete_inline}}</dt> + <dd>El marge de la dreta del cos del document. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("margin-right")}} en l'element.</em></dd> + <dt>{{htmlattrdef("text")}} {{obsolete_inline}}</dt> + <dd>Color de primer pla del text. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("color")}} en l'element.</em></dd> + <dt>{{htmlattrdef("topmargin")}} {{obsolete_inline}}</dt> + <dd>El marge de la part superior del cos del document. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("margin-top")}} en l'element.</em></dd> + <dt>{{htmlattrdef("vlink")}} {{obsolete_inline}}</dt> + <dd>Color del text per als enllaços d'hipertext visitats. <em>Aquest mètode no és conforme, utilitzar en el seu lloc la propietat CSS {{cssxref("color")}} en conjunció amb la pseudo-classe {{cssxref(":visited")}}.</em></dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-body-element', '<body>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span id="result_box" lang="ca"><span>S'ha</span> <span>canviat</span> <span>la llista</span> <span>de característiques no</span> <span>conformes.</span></span></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-body-element', '<body>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Obsolets els atributs anteriorment en desús. Defineix el comportament dels no conformes i no estandarditzats <code>margintop</code>, <code>marginleft</code>, <code>marginright</code> i <code>marginbottom</code>. S'ha afegit en els atributs el *.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.5.1', '<body>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Desaprovats els atributs <code>alink</code>, <code>background</code>, <code>bgcolor</code>, <code>link</code>, <code>text</code> i <code>vlink</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>onlanguagechange</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("32")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>bottommargin</code>, <code>leftmargin</code>, <code>rightmargin</code>, <code>topmargin</code> {{obsolete_inline}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("35")}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>onlanguagechange</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("32")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>bottommargin</code>, <code>leftmargin</code>, <code>rightmargin</code>, <code>topmargin</code> {{obsolete_inline}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("35")}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Abans només comptava amb el suport en Quirk Mode.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("html")}}</li> + <li>{{HTMLElement("head")}}</li> +</ul> diff --git a/files/ca/web/html/element/br/index.html b/files/ca/web/html/element/br/index.html new file mode 100644 index 0000000000..94aedec757 --- /dev/null +++ b/files/ca/web/html/element/br/index.html @@ -0,0 +1,136 @@ +--- +title: <br> +slug: Web/HTML/Element/br +translation_of: Web/HTML/Element/br +--- +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'element <strong>HTML <code><br></code> </strong> (de l'Anglès<em> </em><em>Line Break</em>) produeix un salt de línia en el text (carriage-return). És útil per escriure un poema o una adreça, on la divisió de línies és significatiu.</p> + +<p>No s'ha de fer servir <code><br></code> per augmentar la distància entre línies de text; sinó la propietat <a href="/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref('margin')}} o l'element {{HTMLElement("p")}} .</p> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</li> + <li><dfn>Contingut permès</dfn> Cap, és un {{Glossary("empty element")}}.</li> + <li><dfn>Omissió de l'etiqueta </dfn> Ha de tenir una etiqueta d'entrada, i cap de sortida. En els documents XHTML, s'ha d'escriure aquest element com a <code><br /></code>.</li> + <li><dfn>Elements pares permesos</dfn> Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</li> + <li><dfn>Interfície DOM</dfn> {{domxref("HTMLBRElement")}}</li> +</ul> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("clear")}} {{deprecatedGeneric('inline','HTML4.01')}} {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>Indica on comença la següent línia després del salt de línia<em> .</em> + <div class="note"> + <p><strong>Nota d'ús: </strong>Aquest atribut és obsolet en {{HTMLVersionInline(5)}} i <strong>no s'hauria de fer servir per desenvolupadors</strong>. Es pot fer servir la propietat CSS {{CSSxref('clear')}} per això.</p> + </div> + </dd> +</dl> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush: html">Mozilla Foundation<br> +1981 Landings Drive<br> +Building K<br> +Mountain View, CA 94043-0801<br> +USA +</pre> + +<p>L'HTML de dalt mostra:</p> + +<p>Mozilla Foundation<br> + 1981 Landings Drive<br> + Building K<br> + Mountain View, CA 94043-0801<br> + USA</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-br-element', '<br>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-br-element', '<br>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.3.2.1', '<br>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Comptabilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Basic support</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{HTMLElement("address")}} element</li> + <li>{{HTMLElement("p")}} element</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/button/index.html b/files/ca/web/html/element/button/index.html new file mode 100644 index 0000000000..40567f0bc4 --- /dev/null +++ b/files/ca/web/html/element/button/index.html @@ -0,0 +1,345 @@ +--- +title: <button> +slug: Web/HTML/Element/button +translation_of: Web/HTML/Element/button +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><button></code> representa un botó que es premi.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut de Flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, <a href="/en-US/docs/HTML/Content_categories#Interactive_content" title="HTML/Content categories#Interactive content">Contingut interactiu</a>, <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerat</a>, <a href="/en-US/docs/HTML/Content_categories#Form_labelable" title="HTML/Content categories#Form labelable">etiquetables</a>, i <a href="/en-US/docs/HTML/Content_categories#Form_submittable" title="HTML/Content categories#Form submittable">enviament formularis associats</a> element, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}} </td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLButtonElement")}}</td> + </tr> + <tr> + <th scope="row">Tipus d'element</th> + <td>En línia</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("autofocus")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut booleà permet especificar que el botó ha de tenir un focus d'entrada quan es carrega la pàgina, llevat que l'usuari els redefineixi, per exemple escrivint en un control diferent. Només un element form-associated a un document pot tenir aquest atribut especificat.</dd> + <dt>{{htmlattrdef("autocomplete")}} {{non-standard_inline}}</dt> + <dd>L'ús d'aquest atribut en un {{HTMLElement("button")}} no és estàndard i específic de Firefox. Per defecte, a diferència d'altres navegadors, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">Firefox persisteix l'estat dinàmic desactivat</a> d'un {{HTMLElement("button")}} a través de càrregues de pàgina. Establir el valor d'aquest atribut en <code>off</code> (i.e. <code>autocomplete = "off"</code>) desactiva aquesta funció. Vegeu {{bug(654072)}}.</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd> + <p>Aquest atribut booleà indica que l'usuari no pot interactuar amb el botó. Si no s'especifica aquest atribut, el botó hereta la seva configuració des de l'element que el conté, per exemple {{HTMLElement("fieldset")}} ; si no hi ha cap element que contingui l'atribut <strong>disabled</strong>, llavors el botó està activat.</p> + + <p>Firefox, a diferència d'altres navegadors, per defecte, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">persisteixi l'estat dinàmica desactivat</a> d'un {{HTMLElement("button")}} a través de càrregues de pàgina. Utilitzeu l'atribut {{htmlattrxref("autocomplete","button")}} per a controlar aquesta funció.</p> + </dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline(5)}}</dt> + <dd>L'element form que el botó està associat amb (<em>el propietari del formulari</em>). El valor de l'atribut ha de ser l'atribut id d'un element {{HTMLElement("form")}} en el mateix document. Si no s'especifica aquest atribut, l'element <code><button></code> s'associa a un ancestre element {{HTMLElement("form")}}, si és que existeix. Aquest atribut permet associar elements <code><button></code> a elements {{HTMLElement("form")}} en qualsevol lloc dins d'un document, no només com descendents dels elements {{HTMLElement("form")}}.</dd> + <dt>{{htmlattrdef("formaction")}} {{HTMLVersionInline(5)}}</dt> + <dd>L'URI d'un programa que processa la informació presentada pel botó. Si s'especifica, s'anul·la l'atribut {{htmlattrxref("action","form")}} del propietari del formulari del botó.</dd> + <dt>{{htmlattrdef("formenctype")}} {{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span>Si</span> <span>el botó</span> <span>és</span> <span>un botó</span> <span>d'enviament,</span> <span>aquest</span> <span>atribut</span> <span>especifica</span> <span>el tipus</span> <span>de contingut</span> <span>que s'utilitza</span> <span>per enviar el</span> <span>formulari al</span> <span>servidor.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>application/x-www-form-urlencoded</code>: <span id="result_box" lang="ca"><span>El valor</span> <span>per defecte si</span> <span>no s'especifica</span> <span>l'atribut</span><span>.</span></span></li> + <li><code>multipart/form-data</code>: Utilitzeu aquest valor si està utilitzant un element {{HTMLElement("input")}} amb l'atribut {{htmlattrxref("type","input")}} establert en l<code>'arxiu</code>.</li> + <li><code>text/plain</code></li> + </ul> + + <p>Si s'especifica aquest atribut, s'anul·la l'atribut {{htmlattrxref("enctype","form")}} del propietari del formulari dels botons.</p> + </dd> + <dt>{{htmlattrdef("formmethod")}} {{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span>Si</span> <span>el botó</span> <span>és</span> <span>un botó</span> <span>d'enviament,</span> <span>aquest</span> <span>atribut</span> <span>especifica el</span> <span>mètode</span> <span>HTTP</span> <span>que el navegador</span> <span>utilitza</span> <span>per enviar el</span> <span>formulari.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>post</code>: Les dades del formulari s'incloent en el cos del formulari i s'envia al servidor.</li> + <li><code>get</code>: Les dades del formulari s'afegeixen a l'atribut de formulari URI, amb un '?' com a separador, i l'URI resultant s'envia al servidor. Utilitzeu aquest mètode quan el formulari no té efectes secundaris i conté només caràcters ASCII.</li> + </ul> + + <p>Si s'especifica, aquest atribut reemplaça l'atribut {{htmlattrxref("method","form")}} del propietari del formulari del botó.</p> + </dd> + <dt>{{htmlattrdef("formnovalidate")}} {{HTMLVersionInline(5)}}</dt> + <dd>Si el botó és un botó d'enviament, aquest atribut booleà especifica que el formulari no ha de ser validat quan es presenti. Si s'especifica aquest atribut, s'anul·la l'atribut {{htmlattrxref("novalidate","form")}} del propietari del formulari del botó.</dd> + <dt>{{htmlattrdef("formtarget")}} {{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span>Si</span> <span>el botó</span> <span>és</span> <span>un botó</span> <span>d'enviament,</span> <span>aquest</span> <span>atribut</span> <span>és</span> <span>un nom</span> <span>o una paraula</span> <span>clau que</span> <span>indica on</span> <span>s'ha de mostrar</span> <span>la resposta que</span> <span>es</span> <span>rep</span> <span>després d'enviar</span> <span>el formulari.</span> <span>Es</span> <span>tracta</span> <span>d'un nom de</span><span>,</span> <span>o una paraula</span> <span>clau</span> <span>per a un</span> <span>context</span> <span>de navegació</span> <span>(</span><span>per</span> <span>exemple</span><span>, pestanya</span><span>, finestra</span> <span>o</span> <span>marc en</span> <span>línia</span><span>)</span><span>.</span> <span>Si s'especifica</span> <span>aquest</span> <span>atribut</span><span>, </span></span> reemplaça l'atribut de destinació <span lang="ca"> <span>del propietari del</span> <span>formulari</span> <span>del botó.</span> <span>Les</span> <span>següents</span> <span>paraules</span> <span>clau</span> <span>tenen</span> <span>un significat</span> <span>especial</span><span>:</span></span></dd> + <dd> + <ul> + <li><code>_self</code>: Càrrega la resposta en el mateix context de navegació com l'actual. Aquest valor és el valor per defecte si no s'especifica l'atribut.</li> + <li><code>_blank</code>: Càrrega la resposta en un nou context de navegació sense nom.</li> + <li><code>_parent</code>: Càrrega la resposta en el context de navegació dels pares de l'actual. Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + <li><code>_top</code>: Càrrega la resposta en el context de navegació de nivell superior (és a dir, el context de navegació que és un ancestre de l'actual, i no té pare). Si no hi ha pare, aquesta opció es comporta de la mateixa manera que<code> _self</code>.</li> + </ul> + </dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd><span id="result_box" lang="ca"><span>El nom del</span> <span>botó</span><span>, que es presenta</span> <span>amb</span> <span>les dades del</span> <span>formulari.</span></span></dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd><span id="result_box" lang="ca"><span>Tipus</span> <span>de botó.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>submit</code>: El botó envia les dades del formulari al servidor. Aquest és el valor per defecte si no s'especifica l'atribut, o si l'atribut es canviat dinàmicament a un valor buit o no vàlid.</li> + <li><code>reset</code>: Rstableix tots els controls als seus valors inicials</li> + <li><code>button</code>: El botó no té cap comportament predeterminat. Pot tenir seqüències d'ordres del costat del client, relacionats amb els events de l'element, que s'activen quan es produeixen els events.</li> + <li>menu: El botó obre un menú emergent definit pel seu element {{HTMLElement("menu")}} designat.</li> + </ul> + </dd> + <dt>{{htmlattrdef("value")}}</dt> + <dd><span id="result_box" lang="ca"><span>El valor inicial</span> <span>del botó.</span> <span>Defineix</span> <span>el valor associat</span> <span>amb</span> <span>el botó que</span> <span>es presenta</span> <span>amb</span> <span>les dades del</span> <span>formulari.</span> <span>Aquest</span> <span>valor</span> <span>es passa al</span> <span>servidor</span> <span>en</span> <span>params</span> <span>quan</span> <span>s'envia el</span> <span>formulari.</span></span></dd> +</dl> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush:html"><button name="button">Click me</button> +</pre> + +<p>{{ EmbedLiveSample('Example', 200, 64) }}</p> + +<p><span class="short_text" id="result_box" lang="ca"><span>Recordeu que</span> <span>aquest</span> <span>botó</span> <span>s'ha</span> <span>aplicat</span> <span>CSS.</span></span></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-button-element', '<button>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-button-element', '<button>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.5', '<button>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formaction</code></td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formenctype</code></td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.6</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formmethod</code></td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>autofocus</code></td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.6</td> + <td>5.0</td> + </tr> + <tr> + <td>atribut <code>menu</code> value for <code>type</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formaction</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formenctype</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>formmethod</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>menu</code> value for <code>type</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Gecko no implementa aquesta funció fins el moment. Veure {{bug("1241353")}}.</p> + +<h3 id="En_fer_clic_i_enfocament"><span class="short_text" id="result_box" lang="ca"><span>En fer</span> <span>clic i</span> <span>enfocament</span></span></h3> + +<p><span id="result_box" lang="ca"><span class="alt-edited">Si fem clic a un </span></span>{{HTMLElement("button")}}<span lang="ca"><span class="alt-edited"> fa que (per defecte) aquest es converteixi en el focus i varïi segons el navegador i sistema operatiu. Els resultats de </span></span>{{HTMLElement("input")}}<span lang="ca"><span class="alt-edited"> de <code>type="button"</code> i <code>type="submit"</code> son els mateixos.</span></span></p> + +<table> + <caption>Fer clic en un {{HTMLElement("button")}} donar-li el focus?</caption> + <tbody> + <tr> + <td>Desktop Browsers</td> + <th>Windows 8.1</th> + <th>OS X 10.9</th> + </tr> + <tr> + <th>Firefox 30.0</th> + <td style="background-color: LawnGreen;">Yes</td> + <td style="background-color: red;">No (even with a <code>tabindex</code>)</td> + </tr> + <tr> + <th>Chrome 35</th> + <td style="background-color: LawnGreen;">Yes</td> + <td style="background-color: LawnGreen;">Yes</td> + </tr> + <tr> + <th>Safari 7.0.5</th> + <td style="background-color: silver;">N/A</td> + <td style="background-color: red;">No (even with a <code>tabindex</code>)</td> + </tr> + <tr> + <th>Internet Explorer 11</th> + <td style="background-color: LawnGreen;">Yes</td> + <td style="background-color: silver;">N/A</td> + </tr> + <tr> + <th>Presto (Opera 12)</th> + <td style="background-color: LawnGreen;">Yes</td> + <td style="background-color: LawnGreen;">Yes</td> + </tr> + </tbody> +</table> + +<table> + <caption>Fer un toc en un {{HTMLElement("button")}} donar-li el focus?</caption> + <tbody> + <tr> + <td>Navagadors Mòvils</td> + <th>iOS 7.1.2</th> + <th>Android 4.4.4</th> + </tr> + <tr> + <th>Safari Mobile</th> + <td style="background-color: red;">No (even with a <code>tabindex</code>)</td> + <td style="background-color: silver;">N/A</td> + </tr> + <tr> + <th>Chrome 35</th> + <td style="background-color: red;">No (even with a <code>tabindex</code>)</td> + <td style="background-color: LawnGreen;">Yes</td> + </tr> + <tr> + </tr> + </tbody> +</table> + +<h2 id="Notes">Notes</h2> + +<p>Els elements <code><button></code> són molt més fàcil de donar estil que els elements {{HTMLElement("input")}}. Podeu afegir contingut HTML intern (com <code><em>, <strong></code> o fins i tot <code><img></code>), i fer ús dels pseudo-elements {{Cssxref(":after")}} i {{Cssxref(":before")}} per aconseguir la generació d'elements complexos, mentre que {{HTMLElement("input")}} només accepta un atribut de valor de text.</p> + +<p>Internet Explorer 7 té un error pel qual l'enviar un formulari amb <code><button type="submit" name="myButton" value="foo">Click me</button></code>, les dades POST enviats donarà com a resultat <code>myButton=Click</code> <code>me</code> en lloc de <code>myButton=foo</code>. IE6 té un error encara pitjor quan s'envia un formulari a través d'un botó, presentarà tots els botons del formulari, amb el mateix error com IE7.Aquest error s'ha corregit en IE8.</p> + +<p><span id="result_box" lang="ca"><span class="alt-edited">Firefox afegirà, amb fins d'accessibilitat, una petita vora de punts en un botó que té el focus. Aquesta frontera es declara a través de CSS, en el full d'estil del navegador, però pot substituir-lo en cas necessari, afegin el seu propi estil en el botó enfocat</span></span><code> {{cssxref("::-moz-focus-inner")}} { }.</code></p> + +<p>Firefox, a diferència d'altres navegadors, per defecte, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">persisteixi l'estat desactivat dinàmica</a> d'un {{HTMLElement("button")}} a través de càrregues de pàgina. En establir el valor de l'atribut {{htmlattrxref("autocomplete","button")}} en <code>off</code> desactiva aquesta funció. Vegeu {{bug(654072)}}.</p> + +<p>Firefox <35 per Android estableix per defecte un gradient {{ cssxref("background-image") }} en tots els botons (veure {{bug(763671)}}). Això es pot desactivar usant <code>background-image: none</code>.</p> + +<h2 id="Veure">Veure</h2> + +<p><span id="result_box" lang="ca"><span>Altres elements</span> <span>que s'utilitzen</span> <span>per a la</span> <span>creació</span> <span>de formularis</span></span> : {{HTMLElement("form")}}, {{HTMLElement("datalist")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("input")}},{{HTMLElement("keygen")}}, {{HTMLElement("label")}}, {{HTMLElement("legend")}}, {{HTMLElement("meter")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}}, {{HTMLElement("select")}}, {{HTMLElement("textarea")}}.</p> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/canvas/index.html b/files/ca/web/html/element/canvas/index.html new file mode 100644 index 0000000000..69e61baec9 --- /dev/null +++ b/files/ca/web/html/element/canvas/index.html @@ -0,0 +1,192 @@ +--- +title: <canvas> +slug: Web/HTML/Element/canvas +tags: + - Canvas + - Element + - HTML + - HTML scripting + - HTML5 + - Referencia + - Web +translation_of: Web/HTML/Element/canvas +--- +<p>L'<strong>element HTML <canvas></strong> es pot utilitzar per dibuixar gràfics a través de seqüències d'ordres (normalment <a href="/en-US/docs/Web/JavaScript">JavaScript</a>). Per exemple, es pot utilitzar per dibuixar gràfics, fer composicions de fotos o fins i tot realitzar animacions. Pots (i has de) proporcionar contingut alternatiu dins del bloc <code><canvas></code>. Aquest contingut es representarà tant en navegadors antics que no suporten canvas com en navegadors amb JavaScript desactivat.</p> + +<p>Per a més articles sobre canvas, vegeu la <a href="/en-US/docs/Web/API/Canvas_API">pàgina del tema canvas</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut de Flux</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, <a href="https://developer.mozilla.org/en-US/docs/HTML/Content_categories#Embedded_content">Contingut incrustat</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Transparent, però sense descendents de <a href="/en-US/docs/HTML/Content_categories#Interactive_content">continguts interactius</a> excepte per elements {{HTMLElement("a")}}, elements {{HTMLElement("button")}}, elements {{HTMLElement("input")}} que el seu atribut {{htmlattrxref("type", "input")}} sigui checkbox, radio, o button.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing_content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLCanvasElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("height")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada</span> <span>de l'espai</span> <span>de coordenades en</span> <span>píxels</span> <span>de CSS.</span> <span>El</span> <span>valor per omissió</span> <span>és</span> <span>150</span><span>.</span></span></dd> + <dt>{{htmlattrdef("moz-opaque")}} {{non-standard_inline}}</dt> + <dd>Permet el llenç saber si la transparència serà un factor. Si el llenç sap que no hi ha transparència, el rendiment de la pintura pot ser optimitzat.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>L'amplada de l'espai de coordenades en píxels de CSS. El valor per omissió és 300.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<h3 id="Etiqueta_<canvas>_Requerida">Etiqueta <code></canvas></code> Requerida</h3> + +<p><span id="result_box" lang="ca"><span>A diferència</span> <span>de l'element</span> </span>{{HTMLElement("img")}}<span lang="ca"><span>, l'element</span> </span>{{HTMLElement("canvas")}}<span lang="ca"> <span>requereix</span> <span>l'etiqueta</span> <span>de tancament</span> <span>(</span><code><span><</span><span>/</span> <span>canvas</span><span>></span></code><span>)</span><span>.</span></span></p> + +<h3 id="Dimensionament_del_llenç">Dimensionament del llenç</h3> + +<p>La mida que es mostra del llenç es pot canviar fent servir un full d'estil. La imatge ha estat reduïda durant la representació per adaptar-se a la mida de l'estil. Si les seves representacions semblen distorsionades, intenta especificar els atributsdt <code>width</code> i <code>height</code> de manera explícita en <code><canvas></code>, i no l'ús de CSS.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Aquest fragment de codi afegeix un element el llenç del teu document HTML. Un text alternatiu es proporcionat si un navegador és incapaç de representar el lleç, o si no pot llegir un llenç. És útil proporcionar un text alternatiu o sub DOM ajuda a que <a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility">el llenç sigui més accessible</a>.</p> + +<pre class="brush: html"><canvas id="canvas" width="300" height="300"> + An alternative text describing what your canvas displays. +</canvas> </pre> + +<p>Si el llenç no utilitza la transparència estableix l'atribut moz-opaque a l'etiqueta canvas. Aquesta informació es pot utilitzar internament per optimitzar la representació. Tanmateix, aquest atribut no s'ha estandarditzat i només funciona en motors de renderitzat basats en Mozilla.</p> + +<pre class="brush: html"><canvas id="mycanvas" moz-opaque></canvas></pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-canvas-element.html#the-canvas-element', '<canvas>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'the-canvas-element.html#the-canvas-element', '<canvas>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.8")}}<sup>[1]</sup><br> + {{CompatGeckoDesktop("6.0")}}<sup>[2]</sup><br> + {{CompatGeckoDesktop("12.0")}}<sup>[3]</sup></td> + <td>9.0</td> + <td>9.0<sup>[4]</sup></td> + <td>2.0<sup>[5]</sup></td> + </tr> + <tr> + <td><code>moz-opaque</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatGeckoDesktop("1.8")}}<sup>[1]</sup><br> + {{CompatGeckoDesktop("6.0")}}<sup>[2]</sup><br> + {{CompatGeckoDesktop("12.0")}}<sup>[3]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>1.0</td> + </tr> + <tr> + <td><code>moz-opaque</code></td> + <td>{{CompatGeckoMobile("1.9.1")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Abans de Gecko 5.0 {{geckoRelease("5.0")}} , l'amplada i l'alçada del llenç eran enters amb signe en lloc d'enters sense signe</p> + +<p>[2] Abans de Gecko 6.0 {{geckoRelease("6.0")}} , un element , amb una amplada o l'alçada zero es representava com si tingués dimensions predeterminades.</p> + +<p>[3] Abans de Gecko 12.0 {{geckoRelease("6.0")}}, si Javascript estava desactivat, l'element <canvas> es representava en lloc de mostrar el contingut de reserva segons<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html"> l'especificació</a>. Ara el contingut de reserva es representa en el seu lloc.</p> + +<p>[4] Veura <a href="http://www.opera.com/docs/changelogs/windows/900/">la llista de canvis en Opera 9.0</a>.</p> + +<p>[5] Tot i que les primeres versions del navegador Safari d'Apple no requerien l'etiqueta de tancament, l'especificació indica que s'exigeix, pel que ha de assegurar-se incloure-la per raons de compatibilitat més àmplia. Les versions de Safari (anteriors a la versió 2.0) podrán representar el contingut del recurs a més de la del pròpi llenç, a menys que utilitzi trucs CSS per emmascarar. Afortunadament, els usuaris d'aquestes versions de Safari són rars avui dia.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Canvas_API">Portal MDN canvas</a></li> + <li><a href="/en-US/docs/Web/API/Canvas_API/Tutorial">Tutorial Canvas</a></li> + <li><a href="https://simon.html5.org/dump/html5-canvas-cheat-sheet.html">Full resum de Canvas</a></li> + <li><a href="/en-US/demos/tag/tech:canvas">Demostracions relacionades amb Canvas</a></li> + <li><a href="https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/Introduction/Introduction.html">Introducció de Canvas per Apple</a></li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/caption/index.html b/files/ca/web/html/element/caption/index.html new file mode 100644 index 0000000000..9544eff043 --- /dev/null +++ b/files/ca/web/html/element/caption/index.html @@ -0,0 +1,159 @@ +--- +title: <caption> +slug: Web/HTML/Element/caption +tags: + - Element + - HTML + - HTML dades tabulades + - Referencia + - Taules + - Web +translation_of: Web/HTML/Element/caption +--- +<h2 id="Sumari">Sumari</h2> + +<p><strong>L'element HTML <code><caption></code></strong> (o <em>Element HTML llegenda de la taula</em>) representa el títol d'una taula. Tot i que sempre és el primer descendent d'un element {{HTMLElement("table")}}, el seu disseny, utilitzant CSS, podrà col·locar-la en altres llocs, en relació amb la taula.</p> + +<div class="note">Nota d'ús: Quan l'element {{HTMLElement("table")}} que és el pare d'aquesta {{HTMLElement("caption")}} és l'únic descendent d'un element {{HTMLElement("figure")}} , utilitzeu l'element {{HTMLElement("figcaption")}} en el seu lloc..</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("table")}}, <span class="short_text" id="result_box" lang="ca"><span> com el seu</span> <span>primer descendent</span><span>.</span></span></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTableCaptionElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("align")}} {{deprecatedGeneric('inline','HTML4.01')}} {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd> + <p>Aquest atribut enumerat indica com la llegenda ha d'alinear-se respecte a la taula. Pot tenir els següents valors:</p> + </dd> + <dd> + <ul> + <li><code>left</code>, mostrat a l'esquerra de la taula</li> + <li><code>top</code>, mostrat sobre la taula</li> + <li><code>right</code>, mostrat a la dreta de la taula</li> + <li><code>bottom</code>, mostrat sota la taula</li> + </ul> + + <div class="note"><strong>Nota d'ús</strong>: No utilitzeu aquest atribut, ja que ha quedat en desús: l'element {{HTMLElement("caption")}} s'hauri de donar estil amb <a href="/en-US/docs/CSS">CSS</a>. Per donar un efecte similar a l'atribut align, utilitzeu les propietats <a href="/en-US/docs/CSS">CSS</a> {{cssxref("caption-side")}} i {{cssxref("text-align")}}.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<p><span id="result_box" lang="ca"><span>Si us plau</span><span>, consulteu</span> <span>la </span></span><span lang="ca"><span>pàgina</span> </span>{{HTMLElement("table")}}<span lang="ca"> <span>per</span> <span>exemples</span> <span>de</span> </span>{{HTMLElement("caption")}}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'tabular-data.html#the-caption-element', '<caption>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'tabular-data.html#the-caption-element', '<caption>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/tables.html#h-11.2.2', '<caption>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taula: {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};</li> + <li>Propietats CSS que poden ser especialment útils per estilitzar l'element {{HTMLElement("caption")}}: + <ul> + <li>{{cssxref("text-align")}}, {{cssxref("caption-side")}}.</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/center/index.html b/files/ca/web/html/element/center/index.html new file mode 100644 index 0000000000..f4bad49b75 --- /dev/null +++ b/files/ca/web/html/element/center/index.html @@ -0,0 +1,57 @@ +--- +title: <center> +slug: Web/HTML/Element/center +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/center +--- +<div>{{deprecated_header()}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML Centre (<code><center></code>) és un <a href="https://developer.mozilla.org/en-US/docs/HTML/Block-level_elements">element a nivell de bloc</a> que pot contenir paràgrafs i altres elements a nivell de bloc i en línia. Tot el contingut d'aquest element és centrat horitzontalment dins del seu element contenidor (en general, {{HTMLElement("body")}}).</p> + +<p>Aquest etiqueta s'ha desaprovat en HTML 4 (i XHTML 1) en favor de la propietat <a href="https://developer.mozilla.org/en-US/docs/Web/CSS" title="/en-US/docs/Web/CSS">CSS</a> {{Cssxref("text-align")}}, la qual es pot aplicar a l'element {{HTMLElement ("div")}} o a un individu {{HTMLElement ("p")}}. Per centrar blocs, utilitzar altres propietats CSS com {{Cssxref("margin-left")}} i {{Cssxref("margin-right")}} ajustant-los a <code>auto</code> (o posar {{Cssxref("margin")}} <code>auto</code> a 0).</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLElement")}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació:</strong> Fins Gecko 1.9.2 inclos, Firefox implementa per aquest element la interfície {{domxref("HTMLSpanElement")}}.</p> +</div> + +<h2 id="Example_1" name="Example_1">Exemple 1</h2> + +<pre class="brush: html"><center>This text will be centered. +<p>So will this paragraph.</p></center> +</pre> + +<h2 id="Example_2" name="Example_2">Exemple 2 (CSS alternatiu)</h2> + +<pre class="brush: html"><div style="text-align:center">This text will be centered. +<p>So will this paragraph.</p></div> +</pre> + +<h2 id="Example_3" name="Example_3">Exemple 3 (CSS alternatiu)</h2> + +<pre class="brush: html"><p style="text-align:center">This line will be centered.<br> +And so will this line.</p> +</pre> + +<h2 id="Notes" name="Notes">Nota</h2> + +<p>Aplicant {{Cssxref("text-align")}}: <code>center</code> a un element {{HTMLElement ("div")}} o {{HTMLElement ("p")}} se centra el <em>contingut</em> d'aquests elements, deixant el seu conjunt de dimensions sense canvis.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{Cssxref("text-align")}}</li> + <li>{{Cssxref("display")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/cite/index.html b/files/ca/web/html/element/cite/index.html new file mode 100644 index 0000000000..eb62993b69 --- /dev/null +++ b/files/ca/web/html/element/cite/index.html @@ -0,0 +1,152 @@ +--- +title: <cite> +slug: Web/HTML/Element/cite +tags: + - Element + - HTML + - Referencia + - Web +translation_of: Web/HTML/Element/cite +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML de citació</em> (<strong><cite></strong>) representa una referència a un treball creatiu. Haurà de constar del títol d'una obra o una referència d'URL, que pot ser en forma abreujada d'acord amb les convencions que s'utilitzen per a l'addició de metadades citació.</p> + +<div class="note"> +<p><strong>Notes d'ús:</strong></p> + +<ul> + <li>Un treball creatiu pot incloure un llibre, un paper, un assaig, un poema, una partitura, una cançó, un guió, una pel·lícula, un programa de televisió, un joc, una escultura, una pintura, una obra de teatre, una obra, una òpera, un musical, una exposició, un informe jurídic d'un cas, un programa informàtic, un lloc web, una pàgina web, una entrada de blog o comentari, un missatge en el fòrum o comentari, un tweet, una declaració oral o escrita, etc.</li> + <li><span id="result_box" lang="ca"><span>L'especificació</span> <span>del W3C</span> <span>estableix que una</span> <span>referència a un</span> <span>treball creatiu</span> <span>pot incloure el</span> <span>nom de l'autor</span><span>, mentre que</span> <span>WHATWG</span> <span>ha declarat que no</span> <span>pot</span> <span>incloure</span> <span>el nom d'una</span> <span>persona sota</span> <span>cap circumstància.</span></span></li> + <li><span id="result_box" lang="ca"><span>Utilitzeu</span> <span>l'atribut</span> </span>{{htmlattrxref("cite", "blockquote")}}<span lang="ca"><span> en</span> <span>un element</span> </span>{{HTMLElement("blockquote")}}<span lang="ca"> <span>o</span> </span>{{HTMLElement("q")}}<span lang="ca"> <span>per fer</span> <span>referència a un</span> <span>recurs</span> <span>en línia</span> <span>per a una</span> <span>font.</span></span></li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) <span id="result_box" lang="ca"><span>inclosos,</span> <span>Firefox</span> <span>implementa</span> <span>la interfície</span> </span> {{domxref("HTMLSpanElement")}} <span id="result_box" lang="ca"><span>per a aquest</span> <span>element.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html">More information can be found in <cite>[ISO-0000]</cite>.</pre> + +<p>Resultat del codi HTML:</p> + +<p><span class="short_text" id="result_box" lang="ca"><span>Més</span> <span>informació</span> <span>es</span> <span>pot trobar a</span></span> la <cite>[ISO-0000].</cite></p> + +<h2 id="Notes">Notes</h2> + +<p>Per evitar el ús de l'estil cursiva per defecte per l'element <cite> utilitzar la propietat <a href="/en-US/docs/CSS">CSS</a> {{cssxref("font-style")}}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-cite-element', '<cite>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-cite-element', '<cite>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<cite>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>L'element</span></span> {{HTMLElement("blockquote")}} <span id="result_box" lang="ca"><span>per a cites</span> <span>llargues.</span></span> .</li> + <li><span id="result_box" lang="ca"><span>L'element</span></span> {{HTMLElement("q")}} <span id="result_box" lang="ca"><span>per a les</span> <span>cites</span> <span>en línia</span></span> .</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/code/index.html b/files/ca/web/html/element/code/index.html new file mode 100644 index 0000000000..89c903851b --- /dev/null +++ b/files/ca/web/html/element/code/index.html @@ -0,0 +1,143 @@ +--- +title: <code> +slug: Web/HTML/Element/code +tags: + - Element + - HTML + - Referencia + - Web +translation_of: Web/HTML/Element/code +--- +<p id="Summary">L'<em>Element de Codi HTML</em> (<strong><code></strong>) representa un fragment de codi informàtic. Per defecte, es visualitza en els navegador en el tipus de lletra per defecte d'espai sencill.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) <span id="result_box" lang="ca"> <span>inclosos,</span> <span>Firefox</span> <span>implementa</span> <span>la interfície</span></span> {{domxref("HTMLSpanElement")}} <span id="result_box" lang="ca"><span>per a aquest</span> <span>element.</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs global</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>Regular text. <code>This is code.</code> Regular text.</p> +</pre> + +<h3 id="Result" name="Result">Resultat</h3> + +<p>Regular text. <code>This is code.</code> Regular text.</p> + +<h2 id="Nota">Nota</h2> + +<p>Es pot definir una regla CSS perquè el selector <code>code</code> reemplaci el tipus de font per defecte del navegador. Les preferències establertes per l'usuari poden tenir prioritat sobre la CSS especificat.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-code-element', '<code>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-code-element', '<code>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<code>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("samp")}}</li> + <li>{{HTMLElement("kbd")}}</li> + <li>{{HTMLElement("command")}} (en desús)</li> + <li>{{HTMLElement("var")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/col/index.html b/files/ca/web/html/element/col/index.html new file mode 100644 index 0000000000..a6925864de --- /dev/null +++ b/files/ca/web/html/element/col/index.html @@ -0,0 +1,326 @@ +--- +title: <col> +slug: Web/HTML/Element/col +tags: + - Element + - HTML + - HTML tabular data + - Referencia + - Tables + - Web +translation_of: Web/HTML/Element/col +--- +<div>{{HTMLRef}}</div> + +<p>L'<em>Element HTML taula de columna</em> (<strong><col></strong>) defineix una columna d'una taula i s'utilitza per definir la semàntica comú en totes les cèl·lules comunes. En general es troba dins d'un element {{HTMLElement("colgroup")}}.</p> + +<p>Aquest element permet columnes d'estil usant CSS, però només alguns atributs tindran un efecte en la columna (<a href="http://www.w3.org/TR/CSS21/tables.html#columns">vegeu l'especificació de CSS 2.1 </a>llistat).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap</span><span>, és un</span></span> {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>L'etiqueta</span> <span>d'inici és</span> <span>obligatoria,</span> <span>però</span><span>,</span> <span>ja</span> <span>que és un</span> <span>element</span> <span>buit,</span> <span>està prohibit l'ús</span> <span>d'una etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Només {{HTMLElement("colgroup")}}, encara que pot estar implícitament definida com la seva etiqueta d'inici no és obligatòria. El {{HTMLElement("colgroup")}} no ha de tenir un atribut {{htmlattrxref("span", "colgroup")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTableColElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut enumerat especifica com es gestionarà l'alineació horitzontal del contingut de cada cel·la de la columna. Els valors possibles són: + <ul> + <li><code>left</code>, alineació del contingut a l'esquerra de la cel·la</li> + <li><code>center</code>, centrar el contingut en la cel·la</li> + <li><code>right</code>, alineació del contingut a la dreta de la cel·la</li> + <li><code>justify</code>, inserció d'espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><code>char</code>,alineació del contingut textual d'un caràcter especial amb un desplaçament mínim, definit pels atributs {{htmlattrxref("char", "col")}} i {{htmlattrxref("charoff", "col")}} {{unimplemented_inline(2212)}}.</li> + </ul> + + <p>Si aquest atribut no està definit, el seu valor s'hereta d'{{htmlattrxref("align", "colgroup")}} de l'element {{HTMLElement("colgroup")}} i en el qual també pertany l'element <code><col></code>. Si no n'hi ha, s'assumeix el valor de l'esquerra.</p> + + <div class="note"><strong>Note: </strong>No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte qu'els valors <code>left</code>, <code>center</code>, <code>right</code> or <code>justify</code> : + + <ul> + <li>No tracteu d'establir la propietat {{HTMLElement("col")}} en un selector aplicant-ho a un element {{HTMLElement("col")}}. Perquè els elements {{HTMLElement("td")}} no són descendents de l'element {{HTMLElement("col")}}, ells no heretaran.</li> + <li>Si la taula no utilitza un atribut {{htmlattrxref("colspan", "td")}} , utilitzeu el selector CSS <code>td:nth-child(an+b)</code> on a és el nombre total de les columnes de la taula i b és la posició ordinal de la columna a la taula. Només després d'aquest selector la propietat {{cssxref("text-align")}} es pot utilitzar.</li> + <li>Si la taula fa ús d'un atribut {{htmlattrxref("colspan", "td")}}, l'efecte es pot aconseguir mitjançant la combinació adequada de selectors d'atributs CSS com<code> [colspan = n]</code>, encara que això no és trivial</li> + </ul> + </li> + <li>Per aconseguir el mateix efecte que el valor {{htmlattrxref("char", "col")}}, en CSS3, pot utilitzar el valor de char com el valor de la propietat {{cssxref("text-align")}} property {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("bgcolor")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi de 6 dígits hexadecimal definits en <a class="external" href="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, precedit per un '#'.<br> + Una de les setze cadenes de color predefinides que es poden utilitzar: + <table style="width: 80%;"> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>black</code> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>green</code> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>silver</code> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>lime</code> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>gray</code> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>olive</code> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>white</code> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>yellow</code> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>maroon</code> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>navy</code> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>red</code> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>blue</code> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>purple</code> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>teal</code> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>fuchsia</code> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>aqua</code> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que no és estàndard i només implementat en algunes versions de Microsoft Internet Explorer: l'element {{HTMLElement("col")}} ha de ser d'estil amb <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Per donar un efecte similar a l'atribut bgcolor, utilitzeu la propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> {{cssxref("background-color")}}, en els elements {{HTMLElement("td")}} pertinents.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna a. Els valors típics d'això inclouen un punt (.) en intentar alinear números o valors monetaris. Si no s'estableix {{htmlattrxref("align", "col")}} a char, aquest atribut s'ignora. + <div class="note"><strong>Note: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no és compatible) en l'últim estàndard. Per aconseguir el mateix efecte com el {{htmlattrxref("char", "col")}}, en CSS3, pots utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "col")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("charoff")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters per compensar les dades de la columna dels caràcters d'alineació especificat per l'atribut char. + <div class="note"><strong>Note: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no és compatible) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("span")}}</dt> + <dd>Aquest atribut conté un enter positiu que indica el nombre de columnes consecutives que abasta l'element <col>. Si no hi és, el seu valor per defecte és 1.</dd> +</dl> + +<dl> + <dt>{{htmlattrdef("valign")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>l'alineació</span> <span>vertical del</span> <span>text</span> <span>dins de cada</span> <span>cel·la de la</span> <span>columna.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>per</span> <span>aquest atribut</span> <span>són</span><span>:</span></span> + <ul> + <li><code>baseline</code>, posarà el text tan a prop del fons de la cel·la com sigui possible, però alineant-ho sobre la <a class="external" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">baseline</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <code>bottom</code> .</li> + <li><code>bottom</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible.</li> + <li><code>middle</code>, centrarà el text en la <span id="result_box" lang="ca"><span>cel·la.</span></span></li> + <li>and <code>top</code>, posarà el text tan com sigui possible a la part superior de la cel·la.</li> + </ul> + + <div class="note"><strong>Nota: </strong> <span id="result_box" lang="ca"><span>No utilitzeu</span> <span>aquest</span> <span>atribut,</span> <span>ja</span> <span>que és</span> <span>obsolet</span> <span>(</span><span>i no</span> <span>és compatible</span><span>)</span> <span>en l'últim</span> <span>estàndard</span><span>:</span></span> + + <ul> + <li>No tracteu d'establir la propietat {{cssxref("vertical-align")}} en un selector aplicant-ho a un element {{HTMLElement("col")}} Perquè els elements {{HTMLElement("td")}} no són descendents de l'element {{HTMLElement("col")}}, ells no heretaran.</li> + <li>Si la taula no utilitza un atribut {{htmlattrxref("colspan", "td")}} , utilitzeu el selector CSS <code>td:nth-child(an+b)</code> on a és el nombre total de les columnes de la taula i b és la posició ordinal de la columna a la taula. Només després d'aquest selector la propietat {{cssxref("vertical-align")}} es pot utilitzar.</li> + <li>Si la taula fa ús d'un atribut {{htmlattrxref("colspan", "td")}}, l'efecte es pot aconseguir mitjançant la combinació adequada de selectors d'atributs CSS com <code>[colspan=n]</code>, encara que això no és trivialI.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("width")}} {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut especifica una amplada per defecte per a cada columna en el grup de la columna actual. A més dels valors dels píxels i percentatge estàndard, aquest atribut podria prendre la forma especial 0*, el que significa que l'ample de cada columna al grup ha de ser l'ample mínim necessari per mantenir el contingut de la columna. Amplades relatives com ara 0,5* també es poden utilitzar.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>Si us plau</span><span>, consulteu</span> <span>la pàgina</span></span> {{HTMLElement("table")}} <span id="result_box" lang="ca"><span>per</span> <span>exemples</span> <span>de</span></span> <code><col></code>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'tabular-data.html#the-col-element', '<col>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'tabular-data.html#the-col-element', '<col>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/tables.html#h-11.2.4.2', '<col>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(915)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(2212)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(915)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(2212)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres</span> <span>elements</span> <span>HTML</span> <span>relacionats</span> <span>amb</span> <span>taules</span></span> : {{HTMLElement("caption")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};</li> + <li><span id="result_box" lang="ca"><span>Propietats CSS</span> <span>i pseudo</span><span>-</span><span>classes</span> <span>que poden ser</span> <span>especialment</span> <span>útils</span> <span>per a l'estil</span> <span>de l'element</span> <code><span><</span><span>col</span><span>></span></code><span>:</span></span> + <ul> + <li>La propietat {{cssxref("width")}} <span id="result_box" lang="ca"><span>controla</span> <span>l'ample de</span> <span>la columna</span></span> ;</li> + <li>La pseudo-classe {{cssxref(":nth-child")}}<span id="result_box" lang="ca"><span> ajusta</span> <span>l'alineació de</span> <span>les</span> <span>cel·les de la</span> <span>columna</span><span>;</span></span></li> + <li>La propietat {{cssxref("text-align")}} alinea el contingut de totes les cel·les en el mateix caràcter, like '.'.</li> + </ul> + </li> +</ul> diff --git a/files/ca/web/html/element/colgroup/index.html b/files/ca/web/html/element/colgroup/index.html new file mode 100644 index 0000000000..92d26e45de --- /dev/null +++ b/files/ca/web/html/element/colgroup/index.html @@ -0,0 +1,333 @@ +--- +title: <colgroup> +slug: Web/HTML/Element/colgroup +tags: + - Element + - HTML + - HTML tabular data + - Referencia + - Tables + - Web +translation_of: Web/HTML/Element/colgroup +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'Element HTML Grup de columnes de taula (<colgroup>) defineix un grup de columnes dins d'una taula.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><span id="result_box" lang="ca"><span>Si</span> <span>l'atribut</span> </span>{{htmlattrxref("span", "colgroup")}} <span id="result_box" lang="ca"><span>és present</span></span>: Cap, és un {{Glossary("empty element")}}.<br> + <span id="result_box" lang="ca"><span>Si</span> <span>l'atribut</span> <span>no està</span> <span>present</span></span> : <span id="result_box" lang="ca"><span>zero o</span> <span>més</span></span> elements {{HTMLElement("col")}}</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici pot ser omesa, si té un element {{HTMLElement("col")}} com el seu primer fill i si no està precedida per un {{HTMLElement("colgroup")}} <span id="ouHighlight__127_129TO119_128">l'etiqueta</span><span id="noHighlight_0.9717654875284019"> </span><span id="ouHighlight__123_125TO130_134">final</span><span id="noHighlight_0.9545554484982509"> </span><span id="ouHighlight__131_133TO136_137">ha</span><span id="noHighlight_0.23101560550425038"> </span><span class="highlighted" id="ouHighlight__135_138TO139_143">estat</span><span id="noHighlight_0.7466432272455653"> </span><span id="ouHighlight__140_146TO145_148">omesa</span>.<br> + L'etiqueta final es pot ometre, si no és seguit per un espai o un comentari.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("table")}} . El {{HTMLElement("colgroup")}} ha d'aparèixer després de qualsevol element {{HTMLElement("caption")}} <span id="result_box" lang="ca"> <span>opcional</span><span>, però</span> <span>abans</span> <span>de qualsevol</span> element </span>{{HTMLElement("thead")}}, {{HTMLElement("th")}}, {{HTMLElement("tbody")}}, {{HTMLElement("tfoot")}} i {{HTMLElement("tr")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTableColElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atribut">Atribut</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut enumerat especifica com es gestionarà l'alineació horitzontal del contingut de cada cel·la de la columna. Els valors possibles són: + <ul> + <li><code>left</code>, alineació del contingut a l'esquerra de la cel·la</li> + <li><code>center</code>, centrar el contingut en la cel·la</li> + <li><code>right</code>, alineació del contingut a la dreta de la cel·la</li> + <li><code>justify</code>, inserció d'espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><code>char</code>, alineació del contingut textual d'un caràcter especial amb un desplaçament mínim, definit pels atributs {{htmlattrxref("char", "col")}} i {{htmlattrxref("charoff", "col")}} {{unimplemented_inline(2212)}}.</li> + </ul> + + <p>Si aquest atribut no està establert, s'assumeix el valor d'esquerra. Els elements {{HTMLElement("col")}} descendents podem substituir aquest valor mitjançant el seu propi atribut {{htmlattrxref("align", "col")}}.</p> + + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte qu'els valors <code>left</code>, <code>center</code>, <code>right</code> or <code>justify</code>: + + <ul> + <li>No tracteu d'establir la propietat {{cssxref("text-align")}} en un selector aplicant-ho a un element {{HTMLElement("colgroup")}}. Perquè els elements {{HTMLElement("td")}} no són descendents de l'element {{HTMLElement("colgroup")}} , ells no heretaran.</li> + <li>Si la taula no utilitza un atribut {{htmlattrxref("colspan", "td")}} utilitzeu el selector CSS <code>td:nth-child(an+b)</code> on a és el nombre total de les columnes de la taula i b és la posició ordinal de la columna a la taula. Només després d'aquest selector la propietat {{cssxref("text-align")}} es pot utilitzar.</li> + <li>Si la taula fa ús d'un atribut {{htmlattrxref("colspan", "td")}} , l'efecte es pot aconseguir mitjançant la combinació adequada de selectors d'atributs CSS com <code>[colspan=n]</code>, encara que això no és trivial.</li> + </ul> + </li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, pot utilitzar el valor de char {{htmlattrxref("char", "colgroup")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("bgcolor")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de las columnes menbres de un column group. És un codi de 6 dígits hexadecimal definits en <a class="external" href="http://www.w3.org/Graphics/Color/sRGB" title="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, precedit per un '#'. Una de les setze cadenes de colors predefinits, com s'esmenta més endavant, es poden fer servir: + <table> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>black</code> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>green</code> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>silver</code> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>lime</code> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>gray</code> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>olive</code> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>white</code> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>yellow</code> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>maroon</code> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>navy</code> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>red</code> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>blue</code> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>purple</code> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>teal = "#008080"</code></td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>fuchsia</code> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>aqua</code> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Not d'ùs: </strong>No utilitzeu aquest atribut, ja que no és estàndard i només implementat en algunes versions de Microsoft Internet Explorer; Els elements {{HTMLElement("colgroup")}} és podem donat estil amb <a href="/en-US/docs/CSS" title="CSS">CSS</a>. Per donar un efecte similar a l'atribut <strong>bgcolor</strong>, utilitzeu la propietat <a href="/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref("background-color")}} en els elements {{HTMLElement("td")}} pertinents.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut especifica l'alineació del contingut de un grup de columnas a un caràcter. <span id="result_box" lang="ca"><span>Els</span> <span>valors</span> <span>típics</span> <span>d'això inclouen</span> <span>un punt (.</span><span>)</span> <span>en intentar</span> <span>alinear</span> <span>els números</span> <span>o valors</span> <span>monetaris</span></span> . Si no s'estableix {{htmlattrxref("align", "colgroup")}}<code> </code>a <code>char</code>, aquest atribut s'ignora, tot i que encara s'utilitza com a valor per omissió d' {{htmlattrxref("align", "col")}} de lelement {{HTMLElement("col")}} que són membres d'aquest grup de columnes.. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no és compatible) en l'últim estàndard. Per aconseguir el mateix efecte com el {{htmlattrxref("char", "colgroup")}}, en CSS3, pots utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "colgroup")}} com el valor de la propietat {{cssxref("text-align")}} property {{unimplemented_inline}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("charoff")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters per compensar les dades de la columna dels caràcters d'alineació especificat per l'atribut <strong>char</strong>. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no és compatible) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("span")}}</dt> + <dd>Aquest atribut conté un enter positiu que indica el nombre de columnes consecutives que abastan l'element <code><colgroup></code>. Si no hi és, el seu valor per defecte és 1. + <div class="note"><strong>Note: </strong>Aquest atribut s'aplica sobre els atributs del grup de columna, no té cap efecte sobre les regles d'estil CSS associats a ella o, encara més, a les cel·les dels membres de les columnes del grup. + <ul> + <li>L'atribut span pot no estar present si hi ha un o més elements <code><col></code> dins el <code><colgroup></code>.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("valign")}} {{Deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada cel·la de la columna. Els valors possibles per aquest atribut són: + <ul> + <li><code>baseline</code>, posarà el text tan a prop del fons de la cel·la com sigui possible, però alineant-ho sobre la <a class="external" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29" title="http://en.wikipedia.org/wiki/Baseline_(typography)">baseline</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <code>bottom</code>.</li> + <li><code>bottom</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><code>middle</code>, centrarà el text en la cel·la;</li> + <li>and <code>top</code>, posarà el text tan com sigui possible a la part superior de la cel·la.</li> + </ul> + + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no és compatible) en l'últim estàndard: + + <ul> + <li>No tracteu d'establir la propietat {{cssxref("vertical-align")}} en un selector donant-ho a un element {{HTMLElement("colgroup")}}. Perquè els elements{{HTMLElement("td")}} no són descendents de l'element {{HTMLElement("colgroup")}}, ells no heretaran.</li> + <li>Si la taula no utilitza un atribut {{htmlattrxref("colspan", "td")}} attribute, use the <code>td:nth-child(an+b)</code> CSS selector per column, on a és el nombre total de les columnes de la taula i b és la posició ordinal de la columna a la taula. Només després d'aquest selector la propietat {{cssxref("vertical-align")}} es pot utilitzar.</li> + <li>Si la taula no fa ús d'un atribut colspan {{htmlattrxref("colspan", "td")}} l'efecte es pot aconseguir mitjançant la combinació adequada de selectors d'atributs CSS com <code>[colspan=n]</code>, encara que això no és trivial.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("width")}} {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut especifica una amplada per defecte per a cada columna en el grup de la columna actual. A més dels valors dels píxels i percentatge estàndard, aquest atribut podria prendre la forma especial 0*, el que significa que l'ample de cada columna al grup ha de ser l'ample mínim necessari per mantenir els continguts de les columnes. Amplades relatives com ara 0,5* també es poden utilitzar.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, consulteu la pàgina {{HTMLElement("table")}} per exemples de <code><colgroup></code>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'tabular-data.html#the-colgroup-element', '<colgroup>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'tabular-data.html#the-colgroup-element', '<colgroup>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'tables.html#edef-COLGROUP', '<colgroup>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(915)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(2212)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(915)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug(2212)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres</span> <span>elements</span> <span>HTML</span> <span>relacionats</span> <span>amb</span> <span>taules</span></span> : {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};</li> + <li><span id="result_box" lang="ca"><span>Propietats CSS</span> <span>i pseudo</span><span>-</span><span>classes</span> <span>que poden ser</span> <span>especialment</span> <span>útils</span> <span>per a l'estil</span> <span>de l'element</span> </span><code><col></code>: + <ul> + <li>La propietat {{cssxref("width")}} <span class="short_text" id="result_box" lang="ca"><span>controla</span> <span>l'ample de</span> <span>la columna</span><span>;</span></span></li> + <li>La pseudo-class {{cssxref(":nth-child")}} <span id="result_box" lang="ca"><span>estableix</span> <span>l'alineació en</span> <span>les</span> <span>cel·les de la</span> <span>columna</span><span>;</span></span></li> + <li>La propietat {{cssxref("text-align")}} alinea tots els continguts de les cel·les en el mateix caràcter, like '.'.</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/command/index.html b/files/ca/web/html/element/command/index.html new file mode 100644 index 0000000000..17614b7e4f --- /dev/null +++ b/files/ca/web/html/element/command/index.html @@ -0,0 +1,156 @@ +--- +title: <command> +slug: Web/HTML/Element/command +tags: + - HTML + - HTML Element Reference + - HTML element + - HTML5 +translation_of: Web/HTML/Element/command +--- +<div>{{obsolete_header()}}</div> + +<div class="note"> +<p><strong>Nota:</strong> L'element comand s'ha eliminat de {{Gecko("24.0")}} en favor de l'element {{HTMLElement("menuitem")}}. Firefox mai ha donat suport a aquest element comand, i s'ha abandonat la implementació de la interfície DOM {{domxref("HTMLCommandElement")}} existent a <a href="/en-US/docs/Site_Compatibility_for_Firefox_24">Firefox 24</a>.</p> +</div> + +<h2 id="Sumari">Sumari</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'element <code>comand</code> representa un comando que l'usuari pot invocar.</span></span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut de flux</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut metadata.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici és obligatori, però, com que és un element buit, l'ús d'una etiqueta final està prohibit.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>només {{HTMLElement("colgroup")}}, encara que implícitament pot ser definida com la seva etiqueta d'inici però no és obligatòria. La {{HTMLElement("colgroup")}} no ha de tenir un {{HTMLElement("span")}} com a fill.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLCommandElement")}} {{ obsolete_inline(24) }}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("checked")}}</dt> + <dd>Indica si comand es seleccionat. S'ha d'ometre llevat que l'atribut <code>type</code> és <code>checkbox </code>o <code>radio</code>.</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Indica que comand no està disponible..</dd> + <dt>{{htmlattrdef("icon")}}</dt> + <dd>Dóna una imatge que representa el comand.</dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>El nom del command tal com es mostra a l'usuari.</dd> + <dt>{{htmlattrdef("radiogroup")}}</dt> + <dd>Aquest atribut dóna el nom del grup d'ordres, amb un <code>type</code> <code>radio</code>, que es commuta quan s'alterna el propi comandament. S'ha omès aquest atribut llevat que l'atribut <code>type</code> sigui <code>radio</code>.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Aquest atribut indica el tipus de comandt. Això pot ser un dels tres valors. + <ul> + <li> + <p><code>command</code> o buit que és l'estat per defecte, i indica que es tracta d'un comand normal.</p> + </li> + <li> + <p><code>checkbox</code> indica que command s'alterna amb un checkbox.</p> + </li> + <li> + <p><code>radio</code> indica que command s'alterna amb un radiobutton.</p> + </li> + </ul> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><command type="command" label="Save" icon="icons/save.png" onclick="save()"> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'commands.html', '<command>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'semantics.html#the-command-element', '<command>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/content/index.html b/files/ca/web/html/element/content/index.html new file mode 100644 index 0000000000..7fc9c0c35b --- /dev/null +++ b/files/ca/web/html/element/content/index.html @@ -0,0 +1,168 @@ +--- +title: <content> +slug: Web/HTML/Element/content +tags: + - Deprecated + - Element + - HTML + - NeedsContent + - Reference + - Web + - Web Components +translation_of: Web/HTML/Element/content +--- +<p>{{Deprecated_header}}</p> + +<p>L'element <strong><a href="/en-US/docs/Web/HTML">HTML</a> <code><content></code></strong> s'utilitza a l'interior de <a href="/en-US/docs/Web/Web_Components/Shadow_DOM">Shadow DOM</a> como un {{glossary("insertion point")}}. No està destinat a ser utilitzat en HTML ordinari. S'utilitza amb components <a href="/en-US/docs/Web/Web_Components">Web Components</a>. Ara s'ha reemplaçat per l'element <strong><slot></strong>.</p> + +<div class="note"> +<p><strong>Nota: </strong><span id="result_box" lang="ca"><span>Encara</span> <span>present</span> <span>en primer</span> <span>esborrany de les</span> <span>especificacions</span> <span>i</span> <span>posat en</span> <span>pràctica</span> <span>en diversos</span> <span>navegadors,</span> <span>aquest</span> <span>element</span> <span>s'ha</span> <span>eliminat en</span> <span>les</span> <span>versions</span> <span>posteriors</span> <span>de l'especificació.</span></span></p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">Contingut transparent</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">c</a><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">ontingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Qualsevol</span> <span>element</span> <span>que accepti</span> <span>contingut</span> <span>dinàmic</span></span> .</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLContentElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>select</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>llista</span> <span>separada per</span> <span>comes dels</span> <span>selectors.</span> <span>Aquests</span> <span>tenen</span> <span>la mateixa</span> <span>sintaxi</span> <span>que els</span> <span>selectors</span> <span>CSS.</span> <span>Seleccionen</span> <span>el contingut per</span> <span>inserir en</span> <span>lloc de l'element</span></span> <code><content></code>.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>Aquí és un</span> <span>simple exemple</span> <span>d'ús</span> <span>de l'element</span></span> <code><content></code> <span id="result_box" lang="ca"><span>És un arxiu</span> <span>HTML</span> <span>amb tot el necessari</span><span>.</span></span></p> + +<div class="note"> +<p><strong>Nota:</strong> Perquè aquest codi funcioni, i es visualitzi en el navegador, ha de ser compatible amb els components web. Veure <a href="/en-US/docs/Web/Web_Components#Enabling_Web_Components_in_Firefox">Habilitació de Components Web en Firefox</a>.</p> +</div> + +<pre class="brush: html"><html> + <head></head> + <body> + <!-- The original content accessed by <content> --> + <div> + <h4>My Content Heading</h4> + <p>My content text</p> + </div> + + <script> + // Get the <div> above. + var myContent = document.querySelector('div'); + // Create a shadow DOM on the <div> + var shadowroot = myContent.createShadowRoot(); + // Insert into the shadow DOM a new heading and + // part of the original content: the <p> tag. + shadowroot.innerHTML = + '<h2>Inserted Heading</h2> <content select="p"></content>'; + </script> + + </body> +</html> +</pre> + +<p>Si es pot veure en un navegador web, ha de ser similar al següent.</p> + +<p><img alt="content example" src="https://mdn.mozillademos.org/files/10077/content-example.png" style="height: 383px; width: 716px;"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="spec-table standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('Shadow DOM', "#the-content-element", "content")}}</td> + <td>{{Spec2('Shadow DOM')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>35</td> + <td><span style="font-size: 12px; line-height: 18px;">{{CompatGeckoDesktop("28")}}</span> [1]</td> + <td>{{CompatNo}}</td> + <td>26</td> + <td><span style="font-size: 12px; line-height: 18px;">{{CompatNo}}</span></td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>37</td> + <td>{{CompatGeckoMobile("28")}} [1]</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Si Shadow DOM no està activat en Firefox, els elements <code><content></code> es comportaran com {{domxref("HTMLUnknownElement")}}. Shadow DOM es va implementar per primera vegada a Firefox 33 i està darrere d'una preferència, <code>dom.webcomponents.enabled</code>, que està desactivada per defecte.</p> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/Web_Components">Web Components</a></li> + <li>{{HTMLElement("shadow")}}, {{HTMLElement("template")}}, {{HTMLElement("element")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/data/index.html b/files/ca/web/html/element/data/index.html new file mode 100644 index 0000000000..8e91647d32 --- /dev/null +++ b/files/ca/web/html/element/data/index.html @@ -0,0 +1,136 @@ +--- +title: <data> +slug: Web/HTML/Element/data +translation_of: Web/HTML/Element/data +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><data></code> </strong>vincula un contingut donat amb una traducció llegible per màquina. Si el contingut és d'hora o relacionat amb dates, heu de fer servir {{HTMLElement("time")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDataElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("value")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>la traducció</span> <span>llegible</span> <span>per màquina</span> <span>del contingut</span> <span>de l'element.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p>El següent exemple no solsament mostra els noms dels productes, sinó que associa cada nom amb el seu codi UPC.</p> + +<pre class="brush: html"><p>New Products</p> +<ul> + <li><data value="3967381398">Mini Ketchup</data></li> + <li><data value="3967381399">Jumbo Ketchup</data></li> + <li><data value="3967381400">Mega Jumbo Ketchup</data></li> +</ul> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-data-element', '<data>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>No change from {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-data-element', '<data>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("22.0")}} {{bug("839371")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element HTML {{HTMLElement("time")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/datalist/index.html b/files/ca/web/html/element/datalist/index.html new file mode 100644 index 0000000000..ab886f9d08 --- /dev/null +++ b/files/ca/web/html/element/datalist/index.html @@ -0,0 +1,150 @@ +--- +title: <datalist> +slug: Web/HTML/Element/datalist +translation_of: Web/HTML/Element/datalist +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML Datalist</em> (<strong><datalist></strong>) conté un conjunt d'elements {{HTMLElement("option")}} que representen els valors disponibles per a altres controls.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Qualsevol <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a> o zero o més elements {{HTMLElement("option")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDataListElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element no</span> <span>té altres</span> <span>atributs que els</span></span> <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>, <span id="result_box" lang="ca"><span>comuns a</span> <span>tots</span> <span>els</span> <span>elements.</span></span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><label>Choose a browser from this list: +<input list="browsers" name="myBrowser" /></label> +<datalist id="browsers"> + <option value="Chrome"> + <option value="Firefox"> + <option value="Internet Explorer"> + <option value="Opera"> + <option value="Safari"> + <option value="Microsoft Edge"> +</datalist> +</pre> + +<h3 id="Resultat" style="line-height: 24px; font-size: 1.71428571428571rem;">Resultat</h3> + +<p>{{EmbedLiveSample("Examples")}}</p> + +<dl> + <dt><span id="result_box" lang="ca"><span>Utilitzant el</span> <span>resultat</span></span></dt> +</dl> + +<p>L'atribut <strong>name</strong> de l'element <input> especifica el nom del control, que es presenta amb les dades del formulari.<strong><code> </code></strong></p> + +<p>Aquest formulari de dades passa a estar disponible al servidor de la petició http: String myBrowser = request.getParameter("myBrowser");</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-datalist-element', '<datalist>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-datalist-element', '<datalist>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Polyfill">Polyfill</h2> + +<p><a href="https://github.com/mfranzke/datalist-polyfill">datalist-polyfill</a></p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>20</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.5</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>33</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>10</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li class="last">L'element {{HTMLElement("input")}}, i més concretament l'atribut {{htmlattrxref("list", "input")}};</li> + <li class="last">L'element {{HTMLElement("option")}}.</li> +</ul> + +<p class="last">{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/dd/index.html b/files/ca/web/html/element/dd/index.html new file mode 100644 index 0000000000..c4c99682d2 --- /dev/null +++ b/files/ca/web/html/element/dd/index.html @@ -0,0 +1,133 @@ +--- +title: <dd> +slug: Web/HTML/Element/dd +translation_of: Web/HTML/Element/dd +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <dd></strong> (<em>Element de Descripció HTML</em>) indica la descripció d'un terme en una llista de descripció del element ({{HTMLElement("dl")}}) . Aquest element només pot aparèixer com un element fill d'una llista de descripció i ha de seguir a un element {{HTMLElement("dt")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>Ha de tenir una etiqueta d'inici. L'etiqueta final es pot ometre si aquest element és seguit immediatament per un altre element <code><dd></code>, o si no hi ha més contingut en l'element pare.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Després d'un element {{HTMLElement("dt")}} o {{HTMLElement("dd")}}, dins d'un {{HTMLElement("dl")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("nowrap")}} {{Non-standard_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Si</span> <span>el valor d'aquest</span> <span>atribut</span> <span>s'estableix</span> <span>en <code>si</code>, el</span> <span>text</span> <span>de la definició</span> <span>no s'ajustarà</span></span>. <span id="result_box" lang="ca"> <span>El valor</span> <span>per</span> <span>defecte</span> <span>és </span></span><code>no</code>.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Per veure un</span> <span>exemple</span><span>, consulteu</span></span> <a href="/en-US/docs/HTML/Element/dl#examples" title="HTML/Element/dl#examples"><dl> exemples</a>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-dd-element', '<dd>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-dd-element', '<dd>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/lists.html#h-10.3', '<dd>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Fins a Gecko 1.9.2 (Firefox 4) <span id="result_box" lang="ca"><span>inclosos,</span> <span>Firefox</span> <span>implementa</span> <span>la interfície</span></span> <a href="/en-US/docs/DOM/span" title="DOM/span"><span style="font-family: courier new;">HTMLSpanElement</span></a> per a aquest element.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLELement("dl")}}, {{HTMLElement("dt")}}</li> +</ul> diff --git a/files/ca/web/html/element/del/index.html b/files/ca/web/html/element/del/index.html new file mode 100644 index 0000000000..7b31703c1b --- /dev/null +++ b/files/ca/web/html/element/del/index.html @@ -0,0 +1,125 @@ +--- +title: <del> +slug: Web/HTML/Element/del +tags: + - Element + - HTML + - HTML edits + - Reference + - Web +translation_of: Web/HTML/Element/del +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML text eliminat</em> (<strong><del></strong>) representa un rang de text que ha estat esborrat d'un document. Aquest element és sovint (però no necessàriament) reproduït amb el text ratllat.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Phrasing content</a> o <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">Transparent</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLModElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("cite")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un</span> <span>URI</span> <span>d'un recurs que</span> <span>explica el canvi</span> <span>(</span><span>per</span> <span>exemple</span><span>, actes de</span> <span>reunions</span><span>)</span><span>.</span></span></dd> + <dt>{{htmlattrdef("datetime")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>indica l'hora</span> <span>i</span> <span>la data</span> <span>del canvi i</span> <span>ha de ser una</span><a href="http://www.w3.org/TR/html5/infrastructure.html#valid-date-string-with-optional-time"> data vàlida amb una cadena de temps opcional</a></span>. <span id="result_box" lang="ca"><span>Si el valor</span> <span>no</span> <span>es</span> <span>pot</span> <span>analitzar</span> <span>com una</span> <span>data</span> <span>amb una cadena</span> <span>de temps</span> <span>opcional</span><span>, l'element</span> <span>no té una</span> <span>marca de temps</span> <span>associada</span></span></dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><p><del>This text has been deleted</del>, here is the rest of the paragraph.</p> +<del ><p >This paragraph has been deleted.</p ></del ></pre> + +<h3 id="Resultat">Resultat</h3> + +<p><del>Aquest text ha estat eliminta</del>, <span id="result_box" lang="ca"><span>aquí</span> <span>està la resta</span> <span>del paràgraf.</span></span></p> + +<p><del>Aquest paràgraf ha estat eliminat.</del></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'edits.html#the-del-element', '<del>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'edits.html#the-del-element', '<del>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.4', '<del>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("ins")}} <span class="short_text" id="result_box" lang="ca"><span>element</span> <span>per</span> <span>inserir en un</span> <span>text</span></span></li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/details/index.html b/files/ca/web/html/element/details/index.html new file mode 100644 index 0000000000..3c5617b000 --- /dev/null +++ b/files/ca/web/html/element/details/index.html @@ -0,0 +1,152 @@ +--- +title: <details> +slug: Web/HTML/Element/details +tags: + - Element + - HTML + - HTML interactive elements + - Reference + - Web +translation_of: Web/HTML/Element/details +--- +<div>{{HTMLRef}}</div> + +<p>L'element HTML <code><strong><details></strong></code> s'utilitza com un widget divulgatiu de la qual l'usuari pot recuperar informació addicional.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, + <div class="textArea" id="destText" style="direction: ltr;"> + <div><span class="highlighted" id="ouHighlight__0_9TO0_11">seccionament</span><span id="noHighlight_0.9403833854781938"> </span><span id="ouHighlight__11_14TO13_17">arrel</span></div> + </div> + , contingut interactiu, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Un element {{HTMLElement("summary")}} seguit per <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDetailsElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("open")}}</dt> + <dd>Aquest atribut booleà indica si les dades seran mostrades a l'usuari en carregar la pàgina. El valor per defecte és <code>false</code> i per això els detalls estaran ocults.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><details> + <summary>Some details</summary> + <p>More info about the details.</p> +</details> +</pre> + +<h3 id="Resultat_directe">Resultat directe</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<div class="note"> +<p><strong>Nota:</strong> Si la mostra en viu no us funciona, mireu {{anch("Browser compatibility")}} per determinar si el vostre navegador és totalment compatible amb aquesta característica.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-details-element', '<details>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'semantics.html#the-details-element', '<details>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>MS Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>12</td> + <td>{{CompatGeckoDesktop("49.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td><a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/detailssummary?filter=f3f0000bf&search=details">Under consideration</a></td> + <td>15</td> + <td>6</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatGeckoMobile("49.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Aquesta característica està disponible des de Firefox 47 darrere de la preferència <code>dom.details_element.enabled</code>, per defecte a <code>false</code>, excepte en les versions Nightly i Aurora ({{bug(1241750)}}). El suport està activat per defecte, és a dir, la preferència està establerta a <code>true</code>, des de Firefox 49.0 ({{bug("1226455")}}).</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("summary")}}</li> +</ul> diff --git a/files/ca/web/html/element/dfn/index.html b/files/ca/web/html/element/dfn/index.html new file mode 100644 index 0000000000..9d438349e9 --- /dev/null +++ b/files/ca/web/html/element/dfn/index.html @@ -0,0 +1,172 @@ +--- +title: <dfn> +slug: Web/HTML/Element/dfn +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/dfn +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML Definició</em> (<dfn>) representa la instància de definició d'un terme.</p> + +<div class="note"><strong>Notes d'ùs en HTML5:</strong> + +<ul> + <li>L'element <<code>dfn</code>> indica el terme definit; la definició del terme ve determinat per {{HTMLElement("p")}}, {{HTMLElement("section")}} o grup de llista de definicions circumdant (normalment un parell {{HTMLElement("dt")}}, {{HTMLElement("dd")}}).</li> + <li><span id="result_box" lang="ca"><span>El valor</span> <span>exacte del</span> <span>terme que</span> <span>es</span> <span>defineix és</span> <span>determinat</span> <span>per les</span> <span>regles següents:</span></span> + <ol> + <li>Si l'element <<code>dfn</code>> té un atribut <strong><code>title</code></strong>, llavors el terme és el valor d'aquest atribut.</li> + <li>Ara bé, si només conté un element {{HTMLElement("abbr")}} amb un atribut {{htmlattrxref("title", "abbr")}}, llavors el terme és el valor d'aquest atribut.</li> + <li>Altrament, el contingut del text de l'element <<code>dnf</code>> és el terme definit.</li> + </ol> + </li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>, però cap element {{HTMLElement("dfn")}} ha de ser un descendent.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<p>En HTML5, l'atribut <code>title</code> té un significat especial, com es va assenyalar anteriorment.</p> + +<h2 id="Exemples">Exemples</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Els</span> <span>següents</span> <span>exemples</span> <span>són</span> <span>vàlids</span> <span>en HTML5</span></span>.</p> + +<pre class="brush: html"><!-- Define "The Internet" --> +<p><dfn id="def-internet">The Internet</dfn> is a global system of interconnected networks that use the Internet Protocol Suite (TCP/IP) to serve billions of users worldwide.</p> +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>A continució</span><span>, en el mateix</span> <span>document</span></span>:</p> + +<pre class="brush: html"><dl> + <!-- Define "World-Wide Web" and reference definition for "the Internet" --> + <dt> + <dfn> + <abbr title="World-Wide Web">WWW</abbr> + </dfn> + </dt> + <dd>The World-Wide Web (WWW) is a system of interlinked hypertext documents accessed on <a href="#def-internet">the Internet</a>.</dd> +</dl> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Examples', '600', '150', '', 'Web/HTML/Element/dfn') }}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-dfn-element', '<dfn>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-dfn-element', '<dfn>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<dfn>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Elements</span> <span>relacionats</span>, <span>llistes</span> <span>de definicions</span></span>: {{HTMLElement("dl")}}, {{HTMLElement("dt")}}, {{HTMLElement("dd")}}</li> + <li>{{HTMLElement("abbr")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/dialog/index.html b/files/ca/web/html/element/dialog/index.html new file mode 100644 index 0000000000..27a72bdde4 --- /dev/null +++ b/files/ca/web/html/element/dialog/index.html @@ -0,0 +1,208 @@ +--- +title: <dialog> +slug: Web/HTML/Element/dialog +tags: + - Dialog + - Element + - Experimental + - HTML + - HTML interactive elements + - Reference + - Web +translation_of: Web/HTML/Element/dialog +--- +<div>{{SeeCompatTable}}</div> + +<p>L'<strong>element HTML <<code>dialog</code>></strong> representa un quadre de diàleg o un altre component interactiu, tal com un inspector o finestra. Els elements <code><form></code> poden integrar-se dins d'un diàleg especificant l'atribut <code>method="dialog"</code>. Quan s'envia un formulari, el diàleg es tancat amb un atribut <code>returnValue</code> establert en el valor del botó d'enviament utilitzat.</p> + +<p>El pseudo-element CSS {{cssxref('::backdrop')}} es pot utilitzar per donar estil el darrer d'un element <code><dialog></code>, per exemple per atenuar un contingut inaccessible mentre que està actiu un quadre de diàleg modal.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document#Sectioning_roots">seccionament arrel.</a></td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic.</a></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic.</a></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDialogElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>. <span id="result_box" lang="ca"><span>L'atribut</span> <code><span>tabindex</span></code> <span>no ha de ser</span> <span>utilitzat</span> <span>en l'element</span> <code><span><</span><span>dialog</span><span>></span></code><span>.</span></span></p> + +<dl> + <dt>{{htmlattrdef("open")}}</dt> + <dd>Indica que el diàleg és actiu i disponible per a la interacció. Quan l'atribut obert no està establert, no s'ha de mostrar a l'usuari.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Example_1">Example 1</h3> + +<pre class="brush: html"><dialog open> + <p>Greetings, one and all!</p> +</dialog> +</pre> + +<h3 id="Example_2">Example 2</h3> + +<pre class="brush: html"><!-- Simple pop-up dialog box, containing a form --> +<dialog id="favDialog"> + <form method="dialog"> + <section> + <p><label for="favAnimal">Favorite animal:</label> + <select id="favAnimal"> + <option></option> + <option>Brine shrimp</option> + <option>Red panda</option> + <option>Spider monkey</option> + </select></p> + </section> + <menu> + <button id="cancel" type="reset">Cancel</button> + <button type="submit">Confirm</button> + </menu> + </form> +</dialog> + +<menu> + <button id="updateDetails">Update details</button> +</menu> + +<script> + (function() { + var updateButton = document.getElementById('updateDetails'); + var cancelButton = document.getElementById('cancel'); + var favDialog = document.getElementById('favDialog'); + + // Update button opens a modal dialog + updateButton.addEventListener('click', function() { + favDialog.showModal(); + }); + + // Form cancel button closes the dialog box + cancelButton.addEventListener('click', function() { + favDialog.close(); + }); + + })(); +</script> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-dialog-element', '<dialog>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'interactive-elements.html#the-dialog-element', '<dialog>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>37</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>24</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Punts</span> <span>d'ancoratge</span></span></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>37</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Punts</span> <span>d'ancoratge</span></span></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] See {{bug("840640")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'event {{event("close")}}</li> + <li>L'event {{event("cancel")}}</li> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms">Guía formularis HTML</a>.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/dir/index.html b/files/ca/web/html/element/dir/index.html new file mode 100644 index 0000000000..d6569a226e --- /dev/null +++ b/files/ca/web/html/element/dir/index.html @@ -0,0 +1,49 @@ +--- +title: <dir> +slug: Web/HTML/Element/dir +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/dir +--- +<div>{{Obsolete_header()}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>element HTML directori</em> (<code><dir></code>) representa un directori, és a dir, una col·lecció de noms d'arxiu.</p> + +<div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest element. Encara present en l'especificació HTML inicial, s'ha desaprovat en HTML 4, llavors és obsoleta en <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a>. Utilitzar el {{HTMLElement("ul")}} al seu lloc</div> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLDirectoryElement")}}.</p> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>és</span> <span>compatible amb els</span></span> <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("compact")}}</dt> + <dd>Aquest atribut booleà aconsella que la llista hauria de traduir-se en un estil compacte. La interpretació d'aquest atribut depèn de l'agent d'usuari i no funciona en tots els navegadors. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que ha quedat desprovat: l'element {{HTMLElement("dir")}} s'ha de donar estil amb <a href="/en-US/docs/CSS" title="CSS">CSS</a>. Per donar un efecte similar que l'atribut <code>compact</code>, la propietat CSS {{cssxref("line-height")}} es pot utilitzar amb un valor del 80%.</div> + </dd> +</dl> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres elements</span> <span>HTML</span> <span>relacionats</span></span>: {{HTMLElement("ol")}}, {{HTMLElement("ul")}}, {{HTMLElement("li")}}, {{HTMLElement("menu")}};</li> + <li><span id="result_box" lang="ca"><span>Propietats CSS</span> <span>que poden ser</span> <span>especialment</span> <span>útils</span> <span>per</span> <span>estilitzar</span> <span>l'element</span> <span><</span><span>dir></span><span>:</span></span> + <ul> + <li>La propietat {{cssxref('list-style')}}, es útil per triar la forma en què es mostra l'ordinal.</li> + <li><a href="/en-US/docs/CSS_Counters" title="CSS_Counters">CSS counters</a>, es útil per gestionar llistes niades complexes.</li> + <li>La propietat {{Cssxref('line-height')}}, es útil per simular el desús de l'atribut {{htmlattrxref("compact", "dir")}}.</li> + <li>La propietat {{cssxref('margin')}}, es útil per controlar la sagnia de la llista.</li> + </ul> + </li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/div/index.html b/files/ca/web/html/element/div/index.html new file mode 100644 index 0000000000..4d02665d55 --- /dev/null +++ b/files/ca/web/html/element/div/index.html @@ -0,0 +1,138 @@ +--- +title: <div> +slug: Web/HTML/Element/div +translation_of: Web/HTML/Element/div +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element</strong> <strong>HTML <code><div></code> </strong>(o<em> Element de divisió de document HTML</em>) és un contàiner genèric per contingut dinàmic, el qual no representa res inherentment. Es pot utilitzar per agrupar elements per a fins d'estil (utilitzant els atributs <strong>class</strong> o <strong>id),</strong> o perquè comparteixen valors d'atribut, com ara <strong>lang</strong>. Només s'hauria de fer servir quan cap altre element semàntic (com ara {{HTMLElement("article")}} o {{HTMLElement("nav")}}) sigui apropiat.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permessos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDivElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<p>L'atribut <strong>align</strong> és obsolet; no el feu servir més.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: html"><div> + <p>Aquí qualsevol tipus de contingut. Com ara &lt;p&gt;, &lt;table&gt;. El que sigui!</p> +</div> +</pre> + +<h3 id="Result" name="Result">Resultat</h3> + +<p>Aquí qualsevol tipus de contingut. Com ara <p>, <table>. El que sigui!</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-div-element', '<div>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi des de la última instantània</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-div-element', '<div>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><strong>align </strong>és obsolet</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.5.4', '<div>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>Elements de seccionament semàntics: {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("nav")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}</li> + <li>{{HTMLElement("span")}} element per a l'estil de contingut estàtic.</li> +</ul> + +<div> </div> diff --git a/files/ca/web/html/element/dl/index.html b/files/ca/web/html/element/dl/index.html new file mode 100644 index 0000000000..1758b1b63e --- /dev/null +++ b/files/ca/web/html/element/dl/index.html @@ -0,0 +1,214 @@ +--- +title: <dl> +slug: Web/HTML/Element/dl +translation_of: Web/HTML/Element/dl +--- +<p>L'<strong>element HTML <dl></strong> (o <em>Element HTML llista de descripcions</em>) tanca una llista de parells de termes i descripcions. Els usos més comuns per a aquest element són per implementa un glossari o per mostrar metadades (una llista de parells clau-valor).</p> + +<p>Abans d'HTML5, <code><dl></code> es coneixia com una llista de definicions.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>,i si els fills dels elements <code><dl></code> inclouen un parell nom-valor, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Zero o més elements {{HTMLElement("dt")}}, cadascun seguit d'un o més elements {{HTMLElement("dd")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLDListElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("compact")}} {{Non-standard_inline}}</dt> + <dd>Obliga a la descripció que aparegui en la mateixa línia que el terme. Aquest atribut no s'admet</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Terme_únic_i_descripció">Terme únic i descripció</h3> + +<pre class="brush: html"><dl> + <dt>Firefox</dt> + <dd>A free, open source, cross-platform, graphical web browser + developed by the Mozilla Corporation and hundreds of volunteers.</dd> + + <!-- other terms and definitions --> +</dl> +</pre> + +<p>Sortida:</p> + +<p><img alt="Image:HTML-dl1.png" src="/@api/deki/files/241/=HTML-dl1.png"></p> + +<h3 id="Múltiples_termes_descripció_única">Múltiples termes, descripció única</h3> + +<pre class="brush: html"><dl> + <dt>Firefox</dt> + <dt>Mozilla Firefox</dt> + <dt>Fx</dt> + <dd>A free, open source, cross-platform, graphical web browser + developed by the Mozilla Corporation and hundreds of volunteers.</dd> + + <!-- other terms and definitions --> +</dl> +</pre> + +<p>Sortida:</p> + +<p><img alt="Image:HTML-dl2.png" src="/@api/deki/files/242/=HTML-dl2.png"></p> + +<h3 id="Terme_únic_múltiples_descripcions">Terme únic, múltiples descripcions</h3> + +<pre class="brush: html"><dl> + <dt>Firefox</dt> + <dd>A free, open source, cross-platform, graphical web browser + developed by the Mozilla Corporation and hundreds of volunteers.</dd> + <dd>The Red Panda also known as the Lesser Panda, Wah, Bear Cat or Firefox, + is a mostly herbivorous mammal, slightly larger than a domestic cat + (60 cm long).</dd> + + <!-- other terms and definitions --> +</dl> +</pre> + +<p>Sortida:</p> + +<p><img alt="Image:HTML-dl3.png" src="/@api/deki/files/243/=HTML-dl3.png"></p> + +<h3 id="Múltiples_termes_i_descripcions">Múltiples termes i descripcions</h3> + +<p>També és possible definir diversos termes amb las definicions múltiples corresponents, mitjançant la combinació dels exemples anteriors.</p> + +<h3 id="Metadata">Metadata</h3> + +<p>La descripció de les llistes són útils per mostrar les metadades com una llista de parells de clau-valor.</p> + +<pre><dl> + <dt>Name</dt> + <dd>Godzilla</dd> + <dt>Born</dt> + <dd>1952</dd> + <dt>Birthplace</dt> + <dd>Japan</dd> + <dt>Color</dt> + <dd>Green</dd> +</dl> +</pre> + +<p>Consell: Pot ser útil per definir un separador clau-valor en CSS3, com ara:</p> + +<pre class="brush: css">dt:after { + content: ": "; +}</pre> + +<h2 id="Notes">Notes</h2> + +<p>No utilitzeu aquest element (ni elements {{HTMLElement("ul")}}) per crear simplement sangrat en una pàgina. Encara que funciona, això és una mala pràctica i enfosqueix el significat de les llistes de definicions.</p> + +<p>Per canviar el sangrat de la descripció d'un terme, utilitzeu la propietat <a href="/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref("margin")}}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-dl-element', '<dl>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-dl-element', '<dl>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/lists.html#h-10.3', '<dl>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("dt")}}</li> + <li>L'element {{HTMLElement("dd")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/dt/index.html b/files/ca/web/html/element/dt/index.html new file mode 100644 index 0000000000..1b3d514c27 --- /dev/null +++ b/files/ca/web/html/element/dt/index.html @@ -0,0 +1,131 @@ +--- +title: <dt> +slug: Web/HTML/Element/dt +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/dt +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <dt></strong> (o <em>element HTML de definició de Terme</em>) identifica un terme en una llista de definicions. Aquest element pot aparèixer només com un element fill d'un {{HTMLElement("dl")}}. En general és seguida per un element {{HTMLElement("dd")}} ; No obstant això, múltiples elements <dt> en una fila indiquen diversos termes que estan tots definits per l'element immediat següent {{HTMLElement("dd")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Contingut dinàmic, però sense {{HTMLElement("header")}}, {{HTMLElement("footer")}}, seccions de contingut o encapçalament de continguts descendents .</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>Ha de tenir una etiqueta d'inici. L'etiqueta final pot ometre si aquest element és seguida immediatament per un altre element <code><dd></code>, o si no hi ha més contingut en l'element pare.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Abans que un element {{HTMLElement("dt")}} o un {{HTMLElement("dd")}}, dins d'un {{HTMLElement("dl")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclossos, Firefox implementa la interfície <a href="/en-US/docs/DOM/span" title="DOM/span"><span style="font-family: courier new;">HTMLSpanElement</span></a> per a aquest element.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<p>Per exemple veure <a href="/en-US/docs/HTML/Element/dl#Examples" title="HTML/Element/dl#Examples">llistes de definicions</a>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-dt-element', '<dt>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-dt-element', '<dt>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/lists.html#h-10.3', '<dt>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("dd")}}, {{HTMLElement("dl")}}</li> +</ul> diff --git a/files/ca/web/html/element/element/index.html b/files/ca/web/html/element/element/index.html new file mode 100644 index 0000000000..66e51e06e1 --- /dev/null +++ b/files/ca/web/html/element/element/index.html @@ -0,0 +1,93 @@ +--- +title: <element> +slug: Web/HTML/Element/element +translation_of: Web/HTML/Element/element +--- +<div class="note"> +<p><strong>Nota:</strong> Aquest element s'ha eliminat de l'especificació. Vegeu <a href="http://lists.w3.org/Archives/Public/public-webapps/2013JulSep/0287.html">això</a> per més informació de l'editor de l'especificació.</p> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'<strong>element</strong> <strong><a href="/en-US/docs/Web/HTML">HTML</a> <code><element></code> </strong> s'utilitza per definir nous elements DOM personalitzats.</p> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/Web/HTML/Content_categories#Transparent_content">Contingut transparent</a>.</li> + <li><dfn>Contingut permès</dfn> ???</li> + <li><dfn>Omissió de l'etiqueta</dfn> {{no_tag_omission}}</li> + <li><dfn>Elements pares permessos</dfn> ???</li> + <li><dfn>Interfície DOM</dfn> {{domxref("HTMLElement")}}</li> +</ul> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<p>El text va aquí.</p> + +<pre class="brush: html">Més text va aquí. +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<p>L'element <code><element></code> es torbava antigament dins d'un esborrany de l'especificació de<a href="http://w3c.github.io/webcomponents/spec/custom/"> Elements personalitzats</a> però s'ha eliminat.</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>Components Web: {{HTMLElement("content")}}, {{HTMLElement("shadow")}}, {{HTMLElement("template")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/em/index.html b/files/ca/web/html/element/em/index.html new file mode 100644 index 0000000000..1cd3921638 --- /dev/null +++ b/files/ca/web/html/element/em/index.html @@ -0,0 +1,159 @@ +--- +title: <em> +slug: Web/HTML/Element/em +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web + - font-style +translation_of: Web/HTML/Element/em +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML èmfasi <strong><em></strong> marca un text perque tingui un accent mes remarcable. L'element <code><em></code> es pot superposar-se, amb cada nivell de superposició indicar un major grau d'èmfasi.</p> + +<div class="note"><strong>Nota d'ùs:</strong> En general aquest element es mostra en cursiva. No obstant això, no s'ha d'utilitzar simplement per aplicar un estil cursiva, utilitzar l'estil CSS per a aquest propòsit. Utilitzar l'element {{HTMLElement("cite")}} per marcar el títol d'una obra (llibre, joc cançó, etc.); també l'estil d'aquest és amb lletra cursiva, però té un significat diferent. Utilitzar l'element {{HTMLElement("strong")}} per marcar el text que té una major importància que el circumdant.</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row"> + <p>Interfície DOM</p> + + <p> </p> + </th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclossos, Firefox implementa la interfície {{domxref("HTMLSpanElement")}} per aquest element.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>L'element</span> <code><span><</span><span>em></span></code> <span>s'utilitza sovint</span> <span>per indicar un</span> <span>contrast</span> <span>implícit</span> <span>o explícit</span><span>.</span></span></p> + +<pre class="brush: html"><p> + In HTML 5, what was previously called <em>block-level</em> content is now called <em>flow</em> content. +</p></pre> + +<h3 id="Result" name="Result">Resultat</h3> + +<p><span id="result_box" lang="ca"><span class="alt-edited">En HTML 5, el que abans es deia contingut en <em>bloc</em> ara es diu contingut <em>dinàmic</em>.</span></span></p> + +<h2 id="<i>_vs._<em>"><i> vs. <em></h2> + +<p>Sovint és confús per als nous desenvolupadors per què hi ha tants elements per expressar èmfasi en algun text. <code><i></code> i <code><em></code> són potser uns dels més comuns. Per què utilitzar <code><em></em></code> vs <code><i></i</code>> si produeixen exactament el mateix resultat, oi?.</p> + +<p>No exactament. El resultat visual és, per defecte, el mateix - dues etiquetes fan el seu contingut en cursiva. Però el significat semàntic és diferent. L'etiqueta <em> representa un accent mes remarcable del seu contingut, mentre que l'etiqueta <code><i></code> representa un text que està fora de la prosa normal, tal com el nom d'una pel·lícula o un llibre, una paraula estrangera, o quan el text es refereix a la definició d'una paraula en lloc de representar el seu significat semàntic.</p> + +<p>Un exemple de <code><em></code> podria ser: "Fes-ho ja!", O: "Vam haver de fer alguna cosa". Una persona o un programari, llegint el text pronunciaria les paraules en cursiva amb èmfasi.</p> + +<p>Un exemple de <code><i></code> podria ser: "El <em>Queen Mary</em> va navegar ahir a la nit". Aquí, no hi ha èmfasi afegit o la importància de la paraula "Queen Mary". Merament s'indica que l'objecte en qüestió no és una reina anomenada Mary, sinó un vaixell anomenat <em>Queen Mary</em>. Un altre exemple de <code><i></code> podria ser: "La paraula la és un article".</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-em-element', '<em>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-em-element', '<em>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<em>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("i")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/embed/index.html b/files/ca/web/html/element/embed/index.html new file mode 100644 index 0000000000..52ad4b3062 --- /dev/null +++ b/files/ca/web/html/element/embed/index.html @@ -0,0 +1,127 @@ +--- +title: <embed> +slug: Web/HTML/Element/embed +tags: + - Element + - HTML + - HTML embedded content + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/embed +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <code><embed></code></strong> representa un punt d'integració per a una aplicació externa o contingut interactiu (en altres paraules, un plug-in).</p> + +<div class="note"> +<p>Nota ("Aquest tema només documenta l'element que es defineix com a part d'HTML5. No es refereix a una implementació anterior, no estandarditzada de l'element.")</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut incrustat, contingut interactiu, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir una</span> <span>etiqueta</span> <span>d'inici,</span> <span>i</span> <span>no ha de tenir</span> <span>una etiqueta</span> <span>de tancament</span></span>.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut incrustat.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLEmbedElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("height")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada</span> <span>mostrada</span> <span>del recurs,</span> <span>en píxels</span> <span>CSS.</span></span></dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'adreça URL</span> <span>del recurs</span> <span>que s'ha</span> <span>incrusta</span><span>.</span></span></dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>El tipus MIME a utilitzar per seleccionar el plug-in per crear una instància.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'amplada</span> <span>mostrada</span> <span>del recurs,</span> <span>en píxels</span> <span>CSS.</span></span></dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><embed type="video/quicktime" src="movie.mov" width="640" height="480"> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-iframe-element.html#the-embed-element', '<embed>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-embed-element', '<embed>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div class="note"> +<p><strong>Nota</strong>: Actualment existeix una diferència d'implementació entre els navegadors. Mentre Blink (Chrome, Opera) mostrarà el contingut del recurs HTML, Firefox mostrarà un missatge genèric dient que el contingut necessita un plug-in (veure {{Bug ("730.768")}}). Es recomana utilitzar l'element <object> o <iframe></p> +</div> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements que s'utilitzen per incrustar continguts de diversos tipus, inclouen {{HTMLElement("audio")}}, {{HTMLElement("canvas")}}, {{HTMLElement("iframe")}}, {{HTMLElement("img")}}, {{MathMLElement("math")}}, {{HTMLElement("object")}}, {{SVGElement("svg")}}, and {{HTMLElement("video")}}.</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/fieldset/index.html b/files/ca/web/html/element/fieldset/index.html new file mode 100644 index 0000000000..d9e30d9974 --- /dev/null +++ b/files/ca/web/html/element/fieldset/index.html @@ -0,0 +1,414 @@ +--- +title: <fieldset> +slug: Web/HTML/Element/fieldset +tags: + - Element + - Forms + - HTML + - HTML forms + - Intermediate + - Reference + - Web +translation_of: Web/HTML/Element/fieldset +--- +<div>{{HTMLRef}}</div> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'<strong>element HTML <code><fieldset></code></strong> s'utilitza per agrupar diversos controls així com etiquetes ({{HTMLElement("label")}}) dins d'un formulari web.</span></span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document#sectioning_root">secció arrel</a>, <a href="/en-US/docs/HTML/Content_categories#form_listed">llistat</a>, element <a href="/en-US/docs/HTML/Content_categories#form-associated_content">associat a formulari </a> , contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Un element {{HTMLElement("legend")}} opcional, seguit de contingut dinàmic.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLFieldSetElement")}}</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota:</strong> a diferència de gairebé qualsevol altre element, l'especificació de representació WHATWG HTML suggereix <code>{{cssxref("min-width")}}: <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/width#Values">min-content</a></code> com a part de l'estil predeterminat per a {{HTMLElement("fieldset")}}, molts navegadors implementan aquest estil (o alguna cosa aproximada).</p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("disabled")}} {{HTMLVersionInline(5)}}</dt> + <dd>Si aquest atribut booleà està establert, els controls de formulari que són els seus descendents, amb excepció dels descendents del seu primer element opcional {{HTMLElement("legend")}}, estan desactivats, és a dir, no es poden editar. Ells no rebran cap event de navegació, com clics del ratolí o els relacionats amb el focus. Sovint els navegadors mostran aquests controls amb gris</dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut té el valor de l'atribut <strong>id</strong> de l'element {{HTMLElement("form")}} que està relacionat amb. El seu valor per defecte és l'<strong>id</strong> de l'element {{HTMLElement("form")}} més proper, que és un descendent de.</dd> + <dt>{{htmlattrdef("name")}} {{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span>El nom</span> <span>associat</span> <span>amb</span> <span>el grup.</span></span> + <div class="note">L'etiqueta per al conjunt del camp ve donada pel primer element {{HTMLElement("legend")}} que és un fill d'aquest conjunt de camp.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_1_Formulari_amb_fieldset_legend_i_label">Exemple #1: Formulari amb fieldset, legend i label</h3> + +<pre class="brush: html"><form action="test.php" method="post"> + <fieldset> + <legend>Title</legend> + <input type="radio" id="radio"> <label for="radio">Click me</label> + </fieldset> +</form></pre> + +<h3 id="Exemple_2_Simulant_un_editable_HTMLElement(select)_a_través_d'un_fieldset_radioboxes_i_textboxes*">Exemple #2: Simulant un editable {{HTMLElement("select")}} a través d'un <code>fieldset</code>, <a href="/en-US/docs/HTML/Element/Input">radioboxes</a> i <a href="/en-US/docs/HTML/Element/Input">textboxes</a>*</h3> + +<p>El següent exemple està fet amb pur HTML i CSS. No hi ha cap codi JavaScript.</p> + +<p><strong>S'adverteix</strong> que els lectors de pantalles i dispositius d'assistència no interpretaran correctament el següent formulari; aquest exemple seria HTML vàlid si s'utilitzessin els elements correctes.</p> + +<pre class="brush: html"><!doctype html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title>Editable [pseudo]select</title> +<style type="text/css"> + +/* Generic form fields */ + +fieldset.elist, input[type="text"], textarea, select, option, fieldset.elist ul, fieldset.elist > legend, fieldset.elist input[type="text"], fieldset.elist > legend:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="text"] { + padding: 0 20px; +} + +textarea { + width: 500px; + height: 200px; + padding: 20px; +} + +textarea, input[type="text"], fieldset.elist ul, select, fieldset.elist > legend { + border: 2px #cccccc solid; + border-radius: 10px; +} + +input[type="text"], fieldset.elist, select, fieldset.elist > legend { + height: 32px; + font-family: Tahoma; + font-size: 14px; +} + +input[type="text"]:hover, textarea:hover, select:hover, fieldset.elist:hover > legend { + background-color: #ddddff; +} + +select { + padding: 4px 20px; +} + +option { + height: 30px; + padding: 5px 4px; +} + +option:not(:checked), textarea:focus { + background-color: #ffcccc; +} + +fieldset.elist > legend:after, fieldset.elist label { + height: 28px; +} + +input[type="text"], fieldset.elist { + width: 316px; +} + +input[type="text"]:focus { + background: #ffcccc url("data:image/gif;base64,R0lGODlhEAAQANU5APnoxuvr6+uxPdvb2+rq6ri4uO7qxunp6dPT06SHV+/rx8vLy+nezLO0sbe3t9Ksas+qaaCEV8rKyp2dnf39/QAAAK6ursifZHFxcc/Qzu3mxYyMjExCJnV1dc6maO7u7o+Pj2tXNoaGhtfDpKCDVu3lxM+tcaKEV9bW1qOFVWNjY8KrisTExNra2nBbObGxsby8vO/mu7Kyso9ZAuzs7MSgAIiKhf///8zMzP///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADkALAAAAAAQABAAAAaXwJxwSCwOYzWkMpkkZmoAqDQaJdpqAqw2m53NRjlboAarFczomcE0C99o8DgNMVM8Tm3bbYDr9x11DwkzDG5yc2oQJIRCenx/MxoeETM2Q3pxATMlF4MYlo17OAsdLispMyAioIY0BzMcITMTKBasjgssFTMqGxItMjYUoTQBBAQHxgE0wZcfMtDRMi/QrA022NnaNg1CQQA7") no-repeat 2px center !important; +} + +input[type="text"]:focus, textarea:focus, select:focus, fieldset.elist > legend { + border: 2px #ccaaaa solid; +} + +fieldset { + border: 2px #af3333 solid; + border-radius: 10px; +} + +/* Editable [pseudo]select (i.e. fieldsets with [class=elist]) */ + +fieldset.elist { + display: inline-block; + position: relative; + vertical-align: middle; + overflow: visible; + padding: 0; + margin: 0; + border: none; +} + +fieldset.elist ul { + position: absolute; + width: 100%; + max-height: 320px; + padding: 0; + margin: 0; + overflow: hidden; + background-color: transparent; +} + +fieldset.elist:hover ul { + background-color: #ffffff; + border: 2px #af3333 solid; + left: 2px; + overflow: auto; +} + +fieldset.elist ul > li { + list-style-type: none; + background-color: transparent; +} + +fieldset.elist label { + display: none; + width: 100%; +} + +fieldset.elist input[type="text"] { + width: 100%; + height: 30px; + line-height: 30px; + border: none; + background-color: transparent; + border-radius: 0; +} + +fieldset.elist > legend { + display: block; + margin: 0; + padding: 0 0 0 5px; + position: absolute; + width: 100%; + cursor: default; + background-color: #ccffcc; + line-height: 30px; + font-style: italic; +} + +fieldset.elist:hover > legend { + position: relative; + overflow: hidden; +} + +fieldset.elist > legend:after { + width: 20px; + content: "\2335"; + float: right; + text-align: center; + border-left: 2px #cccccc solid; + font-style: normal; + cursor: default; +} + +fieldset.elist:hover > legend:after { + background-color: #99ff99; +} + +fieldset.elist ul input[type="radio"] { + display: none; +} + +fieldset.elist input[type="radio"]:checked ~ label { + display: block; + width: 292px; + background-color: #ffffff; +} + +fieldset.elist:hover input[type="radio"]:checked ~ label { + width: 100%; +} + +fieldset.elist:hover label { + display: block; + height: 100%; +} + +fieldset.elist label:hover { + background-color: #3333ff !important; +} + +fieldset.elist:hover input[type="radio"]:checked ~ label { + background-color: #aaaaaa; +} + +</style> + +</head> +<body> + +<form method="get" action="test.php"> + +<fieldset> + <legend>Order a T-Shirt</legend> + <p>Write your name (simple textbox): <input type="text" /></p> + <p>Choose your size (simple select): + <select> + <option value="s">Small</option> + <option value="m">Medium</option> + <option value="l">Large</option> + <option value="xl">Extra Large</option> + </select></p> + <div>What address do you want to use? (editable pseudoselect) + <fieldset class="elist"> + <legend>Address&hellip;</legend> + <ul> + <li><input type="radio" value="1" id="address-switch_1" checked /><label for="address-switch_1"><input type="text" value="19 Quaker Ridge Rd. Bethel CT 06801" /></label></li> + <li><input type="radio" value="2" id="address-switch_2" /><label for="address-switch_2"><input type="text" value="1000 Coney Island Ave. Brooklyn NY 11230" /></label></li> + <li><input type="radio" value="3" id="address-switch_3" /><label for="address-switch_3"><input type="text" value="2962 Dunedin Cv. Germantown TN 38138" /></label></li> + <li><input type="radio" value="4" id="address-switch_4" /><label for="address-switch_4"><input type="text" value="915 E 7th St. Apt 6L. Brooklyn NY 11230" /></label></li> + </ul> + </fieldset> + </div> + <p>Write a comment:<br /> + <textarea></textarea></p> + <p><input type="reset" value="Reset" /> <input type="submit" value="Send!" /></p> +</fieldset> + +</form> + +</body> +</html> +</pre> + +<p><a href="/files/4563/editable_select.html">Veure aquest exemple en acció</a></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-fieldset-element', '<fieldset>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Definició de l'element <code>fieldset</code></td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'rendering.html#the-fieldset-and-legend-elements')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span id="result_box" lang="ca"><span>Suggerit la</span> <span>representació per</span> <span>defecte dels</span> <span>elements</span> <code><span>fieldset</span></code> <span>i</span> <code><span>legend</span></code></span></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-fieldset-element', '<fieldset>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.10', '<fieldset>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>disabled</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>12</td> + <td>6</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>disabled</code></td> + <td>4.4</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>6.0</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] No tots els descendents del control de formulari d'un fieldset desactivat es desactiven correctament en IE11; veure <a href="https://connect.microsoft.com/IE/feedbackdetail/view/817488">IE bug 817488: <code>input[type="file"]</code> not disabled inside disabled <code>fieldset</code></a> i <a href="https://connect.microsoft.com/IE/feedbackdetail/view/962368/can-still-edit-input-type-text-within-fieldset-disabled">IE bug 962368: Can still edit <code>input[type="text"]</code> within <code>fieldset[disabled]</code></a>.</p> + +<h2 id="Errors">Errors</h2> + +<ul> + <li>{{Bug(504622)}} - Els fieldsets mai s'encongeixen per sota del seu ample <code>min-intrinsic</code></li> + <li><a href="https://bugs.webkit.org/show_bug.cgi?id=123507">WebKit bug 123507</a> - <code>min-width: {{cssxref("-webkit-min-content")}}</code> en fieldset</li> + <li><a href="http://stackoverflow.com/questions/17408815/fieldset-resizes-wrong-appears-to-have-unremovable-min-width-min-content">StackOverflow discussió amb solucions per als errors anteriors.</a></li> +</ul> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres</span> <span>elements</span> <span>relacionats</span> <span>amb</span> <span>formularis</span></span> : {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("select")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> diff --git a/files/ca/web/html/element/figcaption/index.html b/files/ca/web/html/element/figcaption/index.html new file mode 100644 index 0000000000..f43e692154 --- /dev/null +++ b/files/ca/web/html/element/figcaption/index.html @@ -0,0 +1,126 @@ +--- +title: <figcaption> +slug: Web/HTML/Element/figcaption +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/figcaption +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><figcaption></code></strong> representa una llegenda o una llegenda associada a una figura o una il·lustració descrit per la resta de les dades de l'element {{HTMLElement("figure")}} que és el seu ancestra immediat, el que significa que <code><figcaption></code> pot ser el primer o l'últim element dins d'un bloc {{HTMLElement("figure")}}. A més, l'<em>element HTML figcaption</em> és opcional; si no es proporciona, l'element figure pare no tindrà cap llegenda.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>En un element {{HTMLElement("figure")}}; l'element <code><figcaption></code> <span id="result_box" lang="ca"><span>ha de ser el</span> <span>primer o</span> <span>l'últim</span> <span>fill.</span></span></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, veure el pàgina {{HTMLElement("figure")}} per exemples de <code><figcaption></code>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-figcaption-element', '<figcaption>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-figcaption-element', '<figcaption>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>8</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>3.0</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.1 (iOS 5.0)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("figure")}}.</li> +</ul> diff --git a/files/ca/web/html/element/figure/index.html b/files/ca/web/html/element/figure/index.html new file mode 100644 index 0000000000..6e9f0fb424 --- /dev/null +++ b/files/ca/web/html/element/figure/index.html @@ -0,0 +1,219 @@ +--- +title: <figure> +slug: Web/HTML/Element/figure +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/figure +--- +<p>{{HTMLRef}}</p> + +<p><strong>L'element HTML <code><figure></code></strong> representa un contingut autònom, sovint amb una llegenda ({{HTMLElement("figcaption")}}), i normalment es fa referència com una sola unitat. Si bé es relaciona amb el flux principal, la seva posició és independent del corrent principal. Normalment això és una imatge, una il·lustració, un diagrama, un fragment de codi o un esquema que es fa referència en el text principal, però que es poden moure a una altra pàgina o un apèndix sense afectar el flux principal.</p> + +<div class="note"><strong>Notes d'ùs: </strong> + +<ul> + <li>Sent una <a href="https://developer.mozilla.org/en-US/docs/Sections_and_Outlines_of_an_HTML5_document#Sectioning_root">arrel de seccionament</a>, el contorn del contingut de l'element <code><figure></code> s'exclou de l'esquema principal del document.</li> + <li>Una llegenda pot ser associada amb l'element <code><figure></code> introduint dins d'aquest un {{HTMLElement("figcaption")}} (com el primer o l'últim fill).</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document#Sectioning_root" title="Sections and Outlines of an HTML5 document#Sectioning root">seccionament arrel</a>, contigut palpable.</td> + </tr> + <tr> + <th scope="row">Permitted content</th> + <td>Un element {{HTMLElement("figcaption")}}, seguit per <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>; or contingut dinàmic seguit per un element {{HTMLElement("figcaption")}}; o contingut dinàmic.</td> + </tr> + <tr> + <th scope="row">Tag omission</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Permitted parent elements</th> + <td>Qualsevol element que accepti<a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content"> contingut dinàmic.</a></td> + </tr> + <tr> + <th scope="row">DOM interface</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_1">Exemple 1</h3> + +<pre class="brush: html"><!-- Just a figure --> +<figure> + <img src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png" alt="An awesome picture"> +</figure> +<p></p> +<!-- Figure with figcaption --> +<figure> + <img src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png" alt="An awesome picture"> + <figcaption>Fig1. MDN Logo</figcaption> +</figure> +<p></p> +</pre> + + +<figure><img alt="MDN Logo" src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png"></figure> + +<p> </p> + + +<figure><img alt="MDN Logo" src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png"> +<figcaption>Fig1. MDN Logo</figcaption> +</figure> + +<p> </p> + +<h3 id="Exemple_2">Exemple 2</h3> + +<pre class="brush: html"><figure> + <figcaption>Get browser details using navigator</figcaption> + <pre> +function NavigatorExample() { + var txt; + txt = "Browser CodeName: " + navigator.appCodeName; + txt+= "Browser Name: " + navigator.appName; + txt+= "Browser Version: " + navigator.appVersion ; + txt+= "Cookies Enabled: " + navigator.cookieEnabled; + txt+= "Platform: " + navigator.platform; + txt+= "User-agent header: " + navigator.userAgent; +} + </pre> +</figure> +</pre> + +<figure> +<figcaption><span id="result_box" lang="ca"><span>Obtenir informació</span> <span>del navegador utilitzant</span></span> navigator</figcaption> + +<pre class="brush: js">function NavigatorExample() { + var txt; + txt = "Browser CodeName: " + navigator.appCodeName; + txt+= "Browser Name: " + navigator.appName; + txt+= "Browser Version: " + navigator.appVersion ; + txt+= "Cookies Enabled: " + navigator.cookieEnabled; + txt+= "Platform: " + navigator.platform; + txt+= "User-agent header: " + navigator.userAgent; +}</pre> +</figure> + +<h3 id="Exemple_3">Exemple 3</h3> + +<pre class="brush: html"><figure> + <figcaption><cite>Edsger Dijkstra :-</cite></figcaption> + <p>"If debugging is the process of removing software bugs, <br /> then programming must be the process of putting them in"</p> +</figure> +</pre> + +<figure> +<figcaption><cite>Edsger Dijkstra :-</cite></figcaption> + +<p>"Si la depuració és el procés d'eliminació d'errors del programari, la programació ha de ser el procés de posada en"</p> + +<h3 id="Exemple_4">Exemple 4</h3> + +<p>L'element <code><figure></code> es podria utilitzar per al marcatge d'un poema.</p> + +<pre class="brush: html"><figure> + <p> + Depression is running through my head,<br> + These thoughts make me think of death,<br> + A darkness which blanks my mind,<br> + A walk through the graveyard, what can I find?.... + </p> + <figcaption><cite>Depression</cite>. By: Darren Harris</figcaption> +</figure></pre> +</figure> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-figure-element', '<figure>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-figure-element', '<figure>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>8</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>3.0</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.1 (iOS 5.0)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("figcaption")}}.</li> +</ul> diff --git a/files/ca/web/html/element/font/index.html b/files/ca/web/html/element/font/index.html new file mode 100644 index 0000000000..95c7b9d8c3 --- /dev/null +++ b/files/ca/web/html/element/font/index.html @@ -0,0 +1,53 @@ +--- +title: <font> +slug: Web/HTML/Element/font +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/font +--- +<div>{{obsolete_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">L'<em>Element HTML Font</em> (<code><font></code>) defineix la mida de font, color i cara del seu contingut.</span></span></p> + +<div class="note"> +<p><em>Nota d'ùs: </em></p> + +<p><strong>No utilitzeu aquest element!</strong> Encara que una vegada normalitzat en HTML 3.2, va ser desaprovat en HTML 4.01, al mateix temps que tots els elements relacionats només amb l'estil , llavors obsolets en HTML5.</p> + +<p>A partir d'HTML 4, HTML no transmet més informació d'estil (fora de l'element {{HTMLElement("style")}}} o l'atribut <strong>style</strong> de cada element). Per a qualsevol nou desenvolupament de la web, l'estil ha de ser escrit utilitzant només <a href="https://developer.mozilla.org/en-US/docs/CSS" title="CSS">CSS</a> .</p> + +<p>El comportament anterior de l'element {{HTMLElement("font")}} es pot aconseguir, i fins i tot millorar el control, mitjançant les propietats CSS <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts">CSS Fonts</a> .</p> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Com tots els altres elements HTML, aquest element és compatible amb el <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a> .</p> + +<dl> + <dt>{{htmlattrdef("color")}}</dt> + <dd>Aquest atribut estableix el color del text utilitzant un color amb un nom o un color especificat en el format hexadecimal #RRGGBB.</dd> + <dt>{{htmlattrdef("face")}}</dt> + <dd>Aquest atribut conté una llista separada per comes d'un o més noms de tipus de lletra. L'estil per defect en el text del document es representa amb el primer tipus de lletra que és compatible amb el navegador del client. Si no hi ha tipus de lletra que figuri instal·lat en el sistema local, el navegador utilitza per defecte una font proporcional o d'amplada fixa per aquest sistema.</dd> + <dt>{{htmlattrdef("size")}}</dt> + <dd>Aquest atribut especifica la mida de la font, ja sigui com un valor numèric o relatiu. Els valors numèrics s'estenen d'<code>1</code> a <code>7</code> sent <code>1</code> el més petit i <code>3</code> el valor predeterminat. Es pot definir l'ús d'un valor relatiu, com <code>2</code> o <code>-3</code>, que s'estableix en relació amb el valor de l'atribut {{htmlattrxref("size", "basefont")}} de l'element {{HTMLElement("basefont")}}, o relatiu a <code>3</code>, el valor per defecte, si no n'hi ha cap.</dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la Interfície {{domxref("HTMLFontElement")}}.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<h3 id="Notes_de_Gecko">Notes de Gecko</h3> + +<p>Abans de Gecko 15,0 {{geckoRelease ("15.0")}}, Gecko no sabia gestionar correctament els valors fora de límits de l'atribut <code>size</code> ; no acceptava cap valor fora de límits per mides relatives. Ara trunca correctament aquests en el rang de -10 a +10.</p> + +<p>Gecko 15,0 elimina també el suport als atributs <code>font-weight</code> i <code>point-size</code> en l'element <code><font></code>; aquests eren no-estàndard i Gecko era l'únic motor que els donava suport</p> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/footer/index.html b/files/ca/web/html/element/footer/index.html new file mode 100644 index 0000000000..9bae8e6d60 --- /dev/null +++ b/files/ca/web/html/element/footer/index.html @@ -0,0 +1,140 @@ +--- +title: <footer> +slug: Web/HTML/Element/footer +tags: + - Element + - HTML + - HTML sections + - Reference +translation_of: Web/HTML/Element/footer +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><footer></code></strong> representa un peu de pàgina en la <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document#Defining_Sections_in_HTML5">seva secció de contingut</a> més proper o la <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document#Sectioning_root">secció de l'element arrel.</a> Un peu de pàgina sol contenir informació sobre l'autor de la secció, les dades de drets d'autor o enllaços a documents relacionats.</p> + +<div class="note"> +<p><strong>Notes d'ùs:</strong></p> + +<ul> + <li>la informació que s'inclou sobre l'autor en un element {{HTMLElement("address")}} també es pot incloure en un element<br> + <code><footer></code>.</li> + <li>L'element <code><footer></code> no es un secció de contingut i, per tant, no introdueix una nova secció en l'<a href="https://developer.mozilla.org/en-US/docs/Sections_and_Outlines_of_an_HTML5_document">esquema (outline)</a>.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, però no amb <code><footer></code> o descendents {{HTMLElement("header")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>. Recordeu que un element <code><footer></code> no ha de ser un descendent d'un element {{HTMLElement("address")}}, {{HTMLElement("header")}} o un altre <code><footer></code></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><footer> + Some copyright info or perhaps some author info for an &lt;article&gt;? +</footer> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-footer-element', '<footer>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-footer-element', '<footer>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0 (iOS 4.2)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements de secció relacionats: {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("section")}}, {{HTMLElement("address")}};</li> + <li class="last"><a href="/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i esquemas d'un document HTML5</a>.</li> +</ul> diff --git a/files/ca/web/html/element/form/index.html b/files/ca/web/html/element/form/index.html new file mode 100644 index 0000000000..268e05bb2b --- /dev/null +++ b/files/ca/web/html/element/form/index.html @@ -0,0 +1,252 @@ +--- +title: <form> +slug: Web/HTML/Element/form +tags: + - Element + - Forms + - HTML + - HTML forms + - Intermediate + - Reference + - Web +translation_of: Web/HTML/Element/form +--- +<div>{{HTMLRef}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><form></code> representa una secció del document que conté controls interactius per presentar informació a un servidor web.</p> + +<p>És possible utilitzar les pseudo-classes CSS {{cssxref(':valid')}} i {{cssxref(':invalid')}} per aplicar estil a un element <code><form></code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <span class="short_text" id="result_box" lang="ca"><span>però que</span> <span>no contingui</span> <span>elements</span></span> <code><form></code></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLFormElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("accept")}} {{HTMLVersionInline(4)}} {{obsolete_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>llista separada</span> <span>per comes</span> <span>dels tipus</span> <span>de contingut que</span> <span>admet el</span> <span>servidor</span></span> . + <div class="note"><strong>Nota d'ùs:</strong> Aquest atribut s'ha eliminat en HTML5 i ja no ha de ser utilitzat. En el seu lloc, utilitzeu l'atribut {{htmlattrxref("accept", "input")}} específic de l'element {{HTMLElement("input")}}.</div> + </dd> + <dt>{{htmlattrdef("accept-charset")}}</dt> + <dd>Una llista amb espais o delimitat per comes de codificació de caràcters que accepta el servidor. El navegador els utilitza en l'ordre en què apareixen. El valor per defecte, la cadena reservada "UNKNOWN", indica la mateixa codificació que la del document que conté l'element de formulari.<br> + En versions anteriors d'HTML, les diferents codificacions de caràcters podien estar delimitats per espais o comes. En HTML5, només es permeten espais com delimitadors.</dd> + <dt>{{htmlattrdef("action")}}</dt> + <dd>L'URI d'un programa que processa la informació del formulari. Aquest valor es pot reemplaçar per l'atribut {{htmlattrxref("formaction", "button")}} en un element {{HTMLElement("button")}} o {{HTMLElement("input")}}.</dd> + <dt>{{htmlattrdef("autocapitalize")}} {{non-standard_inline}}</dt> + <dd>Aquest és un atribut no estàndard utilitzat per iOS Safari mòbil el qual controla si i com el valor de text per als descendents d'un control de formulari de text es pot possar en majúscula automàticament a mesura que s'introdueix /s'edita per l'usuari. Si l'atribut <code>autocapitalize</code> s'especifica en un control de formulari individual descendent, <code>autocapitalize</code> es sobreposa a la configuració de tot el formulari . Els valors no en desús estan disponibles en a IOS 5 i posteriors. El valor per defecte és <code>sentences</code>. Els valors possibles són:: + <ul> + <li><code>none</code>: Deshabilitar completament l'establiment automàtic de majúscules</li> + <li><code>sentences</code>: Posa automàticament en majúscula la primera lletra d'una oració.</li> + <li><code>words</code>: Posa automàticament en majúscula la primera lletra de les paraules.</li> + <li><code>characters</code>: Posa automàticament en majúscula tots els caràcters.</li> + <li><code>on</code>: {{deprecated_inline}} Desaprovat des de iOS 5.</li> + <li><code>off</code>: {{deprecated_inline}} Desaprovat des de iOS 5.</li> + </ul> + </dd> + <dt>{{htmlattrdef("autocomplete")}} {{HTMLVersionInline(5)}}</dt> + <dd>Indica si els elements d'entrada per defecte poden tenir els seus valors emplenats automàticament pel navegador. Aquest ajust es pot reemplaçar per un atribut <code>autocomplete</code> en un element que pertany al formulari. Els valors possibles són:: + <ul> + <li><code>off</code>: L'usuari ha d'introduir explícitament un valor en cada camp per a cada ús, o el document proporciona el seu propi mètode d'auto-completar; el navegador no completa automàticament les entrades</li> + <li><code>on</code>: El navegador pot completar automàticament els valors en base als valors que l'usuari ha introduït prèviament en la formulari..</li> + </ul> + Per a navegadors més moderns (incloent Firefox 38+, Google Chrome 34+, 11+ IE) establir l'atribut autocomplete no impedeix que l'administrador de contrasenyes d'un navegador demani a l'usuari si desitja emmagatzemar els camps d 'accés (nom d'usuari i contrasenya), si l'usuari permet emmagatzemar, el navegador s'encarregarà d'autocompletar la propera vegada l'inici de la sessió de la pàgina que visita l'usuari. Veure <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields">L'atribut autocomplete i els camps d'inici de sessió</a>.</dd> + <dd> + <div class="note"> + <p><strong>Nota: </strong>Si <code>autocomplete</code> s'estableix en <code>off</code> en una formulari perquè el document proporciona el seu pròpi auto-completat, llavors també hauria d'establir <code>autocomplete</code> a <code>off</code> per a cada un dels elements d'entrada del formulari que el document és capaç de auto-completar. Per a més detalls, vegeu les <a href="https://developer.mozilla.org/ca/docs/Web/HTML/Element/form$translate#Google_Chrome_notes">notes de Google Chrome</a>.</p> + </div> + </dd> + <dt>{{htmlattrdef("enctype")}}</dt> + <dd>Quan el valor de l'atribut <code>method</code> és <code>post</code>, enctype és el <a href="http://en.wikipedia.org/wiki/Mime_type">tipus MIME</a> del contingut que s'utilitza per enviar el formulari al servidor. Els valors possibles són: + <ul> + <li><code>application/x-www-form-urlencoded</code>: <span class="short_text" id="result_box" lang="ca"><span>El valor</span> <span>per defecte si</span> <span>no s'especifica</span> <span>l'atribut</span><span>.</span></span></li> + <li><code>multipart/form-data</code>: El valor que s'utilitza per a un element {{HTMLElement("input")}} amb l'atribut <code>type</code> definit com "file".</li> + <li><code>text/plain (HTML5)</code></li> + </ul> + + <p>Aquest valor es pot reemplaçar per l'atribut {{htmlattrxref("formenctype", "button")}} en un element {{HTMLElement("button")}} o {{HTMLElement("input")}}.</p> + </dd> + <dt>{{htmlattrdef("method")}}</dt> + <dd><span id="result_box" lang="ca"><span>El mètode</span> <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP">HTTP</a> <span>que el navegador</span> <span>utilitza</span> <span>per enviar el</span> <span>formulari.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>post</code>: Es correspon amb el <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">mètode POST</a> HTTP; les dades del formulari s'inclouen en el cos del formulari i s'envien al servidor.</li> + <li><code>get</code>: Es correspon amb el <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3">mètode GET</a> HTTP; les dades del formulari s'annexen a l'acció de l'atribut URI amb un '?' com a separador, i l'URI resultant s'envia al servidor. Utilitzeu aquest mètode quan el formulari no té efectes secundaris i conté únicament caràcters ASCII.</li> + </ul> + + <p>Aquest valor es pot reemplaçar per l'atribut {{htmlattrxref("formmethod", "button")}} en un element {{HTMLElement("button")}} o {{HTMLElement("input")}}.</p> + </dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>El nom del formulari. En HTML 4, el seu ús està obsolet (utilitzar en el seu lloc <code>id</code>). Ha de ser únic entre els formularis d'un document i no només una cadena buida en HTML 5.</dd> + <dt>{{htmlattrdef("novalidate")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut booleà indica que el formulari no ha de ser validat quan es presenti. Si aquest atribut no s'especifica (el formulari es validat), aquesta configuració per defecte pot canviar-se per l'atribut {{htmlattrxref("formnovalidate", "button")}} en un element {{HTMLElement("button")}} o {{HTMLElement("input")}} que pertanyi al formulari.</dd> + <dt>{{htmlattrdef("target")}}</dt> + <dd>Un nom o una paraula clau que indica on s'ha de mostrar la resposta que es rep després d'enviar el formulari. En HTML 4, és el nom/paraula clau per a un marc. En HTML5, és un nom/paraula clau per a un <em>context de navegació</em> (per exemple, pestanya, finestra o marc en línia). Les següents paraules clau tenen un significat especial: + <ul> + <li><code>_self</code>: Càrrega la resposta en el mateix marc HTML 4 (o HTML5 contexte de navegació ) com l'actual. Aquest valor és el valor per defecte si no s'especifica l'atribut.</li> + <li><code>_blank</code>: Carregar la resposta en una nova finestra sense nom en HTML 4 o en el context de navegació HTML5.</li> + <li><code>_parent</code>: Carregar la resposta en el conjunt de marcs del pare del marc actual en HTML 4 , o HTML5 en el context de navegació dels pares de l'actual. Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + <li><code>_top</code>: HTML 4: Carregar la resposta sencera a la finestra original, i cancel·lar tots els altres marcs. HTML 5: Carregar la resposta en el context de navegació de nivell superior (és a dir, el context de navegació que és un ancestre de l'actual, i no té pare). Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + <li><em>iframename</em>: <span id="result_box" lang="ca"><span>La resposta</span> <span>es</span> <span>mostra en un</span> <span>anomenat</span></span> {{HTMLElement("iframe")}}.</li> + </ul> + + <p>HTML5: Aquest valor pot ser reemplaçat per l' atribut {{htmlattrxref("formtarget", "button")}} en un element {{HTMLElement("button")}} o {{HTMLElement("input")}}</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><!-- Simple form which will send a GET request --> +<form action=""> + <label for="GET-name">Name:</label> + <input id="GET-name" type="text"> + <input type="submit" value="Save"> +</form> + +<!-- Simple form which will send a POST request --> +<form action="" method="post"> + <label for="POST-name">Name:</label> + <input id="POST-name" type="text"> + <input type="submit" value="Save"> +</form> + +<!-- Form with fieldset, legend, and label --> +<form action="" method="post"> + <fieldset> + <legend>Title</legend> + <input type="radio" id="radio"> <label for="radio">Click me</label> + </fieldset> +</form> +</pre> + +<p>{{ EmbedLiveSample('Examples', '100%', 110) }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-form-element', '<form>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-form-element', '<form>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.3', '<form>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Initial definition</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>novalidate</code></td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>novalidate</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p><a id="Google_Chrome_notes" name="Google_Chrome_notes"></a>[1] En la interfície d'Usuari de Google Chrome la sol·licitud per autocompletar varia depenent de si <code>autocomplete</code> s'estableix en <code>off</code> en elements d'entrada, així com el seu formulari. Concretament, quan una formulari té <code>autocomplete</code> en <code>off</code> i el camp d'<code>autocomplete</code> del seu element d'entrada no està definit, llavors si l'usuari demana suggeriments d'autocompletar per a l'element d'entrada, Chrome és possible que mostri un missatge que digui "autocomplete s'ha desactivat per a aquest formulari". D'altra banda, si el formulari i l'element d'entrada tenen <code>autocomplete</code> en <code>off</code>, el navegador no mostrarà aquest missatge. Per aquesta raó, s'ha d'establir <code>autocomplete</code> en <code>off</code> per a cada entrada que té el autocompletat personalitzat.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms">Guia de formularis HTML</a></li> + <li>Altres elements utilitzats per la creació de formularis: {{HTMLElement("button")}}, {{HTMLElement("datalist")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("input")}},{{HTMLElement("keygen")}}, {{HTMLElement("label")}}, {{HTMLElement("legend")}}, {{HTMLElement("meter")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}}, {{HTMLElement("select")}}, {{HTMLElement("textarea")}}.</li> +</ul> diff --git a/files/ca/web/html/element/frame/index.html b/files/ca/web/html/element/frame/index.html new file mode 100644 index 0000000000..79201174e0 --- /dev/null +++ b/files/ca/web/html/element/frame/index.html @@ -0,0 +1,56 @@ +--- +title: <frame> +slug: Web/HTML/Element/frame +tags: + - Deprecated + - Element + - HTML + - Reference + - Web +translation_of: Web/HTML/Element/frame +--- +<div>{{Deprecated_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p><code><frame></code> és un element HTML que defineix una àrea particular en la qual es pot visualitzar un altre document HTML. Un marc s'ha d'utilitzar dins d'un {{HTMLElement("frameset")}}.</p> + +<p>No s'estimula l'utilització de l'element <code><frame></code> a causa de certes desavantatges com ara el rendiment i falta d'accessibilitat per als usuaris amb lectors de pantalla. En lloc de l'element <code><frame></code>, es preferible {{HTMLElement("iframe")}}.</p> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span class="alt-edited">Com tots els altres elements HTML, aquest element és compatible amb e</span></span>ls <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("src")}}</dt> + <dd>En aquest atribut s'especifica el document que serà representat en el marc.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>Aquest atribut s'utilitza per etiquetar els marcs. Sense etiquetar, tots els enllaços s'obriran en el marc que es troben.</dd> + <dt>{{htmlattrdef("noresize")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>evitar el canvi</span> <span>de mida</span> <span>dels</span> <span>marcs dels</span> <span>usuaris.</span></span></dd> + <dt>{{htmlattrdef("scrolling")}}</dt> + <dd>Aquest atribut defineix l'existència de la barra de desplaçament. Si no s'utilitza aquest atribut, el navegador li possarà una barra de desplaçament quan calgui. Hi ha dues opcions; "Sí" per mostrar una barra de desplaçament, fins i tot quan no cal i "no" per no mostrar una barra de desplaçament, fins i tot quan és necessari.</dd> + <dt>{{htmlattrdef("marginheight")}}</dt> + <dd>Aquest atribut defineix com d'alt serà el marge entre els marcs.</dd> + <dt>{{htmlattrdef("marginwidth")}}</dt> + <dd>Aquest atribut defineix com d'ample serà el marge entre els marcs.</dd> + <dt>{{htmlattrdef("frameborder")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>li permet posar</span> <span>vores</span> <span>per als</span> <span>marcs.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><frameset cols="50%,50%"> + <frame src="https://developer.mozilla.org/en/HTML/Element/iframe" /> + <frame src="https://developer.mozilla.org/en/HTML/Element/frame" /> +</frameset> +</pre> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("frameset")}}</li> + <li>{{HTMLElement("iframe")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/frameset/index.html b/files/ca/web/html/element/frameset/index.html new file mode 100644 index 0000000000..a85298fbc8 --- /dev/null +++ b/files/ca/web/html/element/frameset/index.html @@ -0,0 +1,45 @@ +--- +title: <frameset> +slug: Web/HTML/Element/frameset +tags: + - Deprecated + - Element + - HTML + - Reference + - Web +translation_of: Web/HTML/Element/frameset +--- +<div>{{Deprecated_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><frameset></code> es un contenidor d'elements {{HTMLElement ("frame")}}.</p> + +<div class="note">A causa de que l'ús de marcs està desaconsellat a favor de la utilització {{HTMLElement ("iframe")}}, aquest element no s'utilitza generalment pels llocs web moderns.</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Com tots els altres elements HTML, aquest element és compatible amb els <a href="/en-US/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("cols")}}</dt> + <dd>Aquest atribut especifica el nombre i grandària dels espais horitzontals en un conjunt de marcs.</dd> + <dt>{{htmlattrdef("rows")}}</dt> + <dd>Aquest atribut especifica el nombre i grandària dels espais verticals en un conjunt de marcs.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><frameset cols="50%,50%"> + <frame src="https://developer.mozilla.org/en/HTML/Element/frameset" /> + <frame src="https://developer.mozilla.org/en/HTML/Element/frame" /> +</frameset></pre> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("frame")}}</li> + <li>{{HTMLElement("iframe")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/head/index.html b/files/ca/web/html/element/head/index.html new file mode 100644 index 0000000000..b8de050dda --- /dev/null +++ b/files/ca/web/html/element/head/index.html @@ -0,0 +1,147 @@ +--- +title: <head> +slug: Web/HTML/Element/head +tags: + - Element + - HTML + - HTML document metadata + - Reference + - Web +translation_of: Web/HTML/Element/head +--- +<div>{{HTMLRef}}</div> + +<p><span id="result_box" lang="ca"><span>L'<strong>element</strong></span><strong> <span>HTML</span> <code><span><</span><span>head</span><span>></span></code></strong> <span>proporciona informació</span> <span>general</span> <span>(</span><span>metadades</span><span>)</span> <span>sobre el document</span><span>, incloent</span> <span>el seu títol</span> <span>i</span> <span>enllaços als seus</span> <span>scripts i</span> <span>fulls</span> <span>d'estil.</span></span></p> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contigut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Si és un l'element {{HTMLElement("iframe")}} {{htmlattrxref("srcdoc", "iframe")}}, o si la informació del títol està disponible a partir d'un protocol de nivell superior, zero o més elements de contingut de metadades. Altrament, un o més elements de contingut de metadades en els quals un és exactament un element {{HTMLElement("title")}}.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici es pot ometre si la primera cosa dins l'element head és un element.<br> + L'etiqueta final es pot ometre si la primera cosa que segueix a l'element head no és un caràcter d'espai o un comentari.</td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Un element {{HTMLElement("html")}}, com el seu primer fill.</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLHeadElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("profile")}} {{obsolete_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Els</span> <span>URI</span> <span>d'un o</span> <span>més</span> <span>perfils</span> <span>de metadades</span><span>, separades</span> <span>per un</span> <span>espai</span> <span>en blanc</span></span>.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><html> + <head> + <title>Document title</title> + </head> +</html> +</pre> + +<h2 id="Notes">Notes</h2> + +<p>En navegadors moderns, compatibles amb HTML5, automàticament construeixen un element <code><head></code> si s'ometen les etiquetes en el marcat. <a href="http://www.stevesouders.com/blog/2010/05/12/autohead-my-first-browserscope-user-test/">Aquest comportament no es pot garantir en navegadors antics</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-head-element', '<head>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>No hi ha</span> <span>canvi des de </span> <span>l'última</span> <span>presentació</span></span></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'document-metadata.html#the-head-element', '<head>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><code>profile </code>Obsolet</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.4.1', '<head>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span id="result_box" lang="ca"><span>Elements que</span> <span>es</span> <span>poden</span> <span>utilitzar dins</span> <span>d'un</span> <span>element</span> <span><</span><span>head</span><span>></span></span>: {{HTMLElement("title")}}, {{HTMLElement("base")}}, {{HTMLElement("link")}}, {{HTMLElement("style")}}, {{HTMLElement("meta")}}, {{HTMLElement("script")}}, {{HTMLElement("noscript")}}</li> +</ul> diff --git a/files/ca/web/html/element/header/index.html b/files/ca/web/html/element/header/index.html new file mode 100644 index 0000000000..22ba3190b9 --- /dev/null +++ b/files/ca/web/html/element/header/index.html @@ -0,0 +1,141 @@ +--- +title: <header> +slug: Web/HTML/Element/header +tags: + - Element + - HTML + - HTML sections + - Reference +translation_of: Web/HTML/Element/header +--- +<div>{{HTMLRef}}</div> + +<p>L'<strong>element HTML <code><header></code></strong> representa un grup d'introducció o d'ajudes a la navegació. Pot contenir alguns elements de capçalera, però també altres elements com un logotip, capçaleres de secció embolicats, un formulari de recerca, i així successivament.</p> + +<div class="note"> +<p><strong>Nota d'ùs:</strong> L'element <header> no es un contingut de secció i, per tant, no introdueix una nova secció en l'<a href="https://developer.mozilla.org/en-US/docs/Sections_and_Outlines_of_an_HTML5_document">estructura</a>.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, però no amb <code><header></code> o un descendent {{HTMLElement("footer")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>. Tingueu en compte que un element <header> no ha de ser un descendent d'un element {{HTMLElement("address")}} , {{HTMLElement("footer")}} o un altre element {{HTMLElement("header")}} .</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element nomé sinclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><header> + <h1>Main Page Title</h1> + <img src="mdn-logo-sm.png" alt="MDN logo"> +</header> +</pre> + +<h1 id="Specifications" name="Specifications">Títol Pàgina Principal</h1> + +<h2 id="Specifications" name="Specifications"><img alt="MDN" src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png"></h2> + +<h2 id="Specifications" name="Specifications"> </h2> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-header-element', '<header>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-header-element', '<header>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements de secció relacionats: {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("footer")}}, {{HTMLElement("section")}}, {{HTMLElement("address")}}.</li> + <li class="last"><a class="deki-ns current" href="/en-US/docs/Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i esquemes d'un document HTML 5</a>.</li> +</ul> diff --git a/files/ca/web/html/element/heading_elements/index.html b/files/ca/web/html/element/heading_elements/index.html new file mode 100644 index 0000000000..f1f281cfcc --- /dev/null +++ b/files/ca/web/html/element/heading_elements/index.html @@ -0,0 +1,183 @@ +--- +title: Heading elements +slug: Web/HTML/Element/Heading_Elements +tags: + - Element + - HTML + - HTML sections + - Reference + - Web +translation_of: Web/HTML/Element/Heading_Elements +--- +<p id="Summary">Els elements d'<strong>encapçalament</strong> implementen sis nivells de capçaleres del document, <code><h1></code> és el més important i <code><h6></code> és el menys important. Un element de capçalera descriu breument el tema de la secció que introdueix. La informació de capçalera pot ser utilitzada pels agents usuaris, per exemple, per construir una taula de contingut d'un document de forma automàtica.</p> + +<div class="note"> +<p><strong>Nota d'ùs:</strong></p> + +<ul> + <li>No utilitzeu nivells més baixos per disminuir la mida de la font de la capçalera: utilitzeu la propietat CSS {{cssxref ("font-size")}}.</li> + <li>Eviteu saltar-se els nivells d'encapaçalament: sempre heu de començar des de <h1>, el següent <h2> i així successivament.</li> + <li>Amb l'element {{HTMLElement("section")}}, s'ha de considerar evitar l'ús de <code><h1></code> més d'una vegada per pàgina; per convenció, s'utilitza per al títol mostrat en la pàgina, venint a continuació tots els encapçalaments començant per <code><h2></code>. Quan treballem amb seccions, s'ha d'utilitzar un <code><h1></code> per secció. Veure {{SectionOnPage("/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines", "Defining sections")}} per a més informació.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut encapçalament, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>; no feu servir com a fill un element {{HTMLElement("hgroup")}}, ara és obsolet.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLHeadingElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<p><span class="short_text" id="result_box" lang="ca"><span>L'atribut</span> <code><span>align</span></code> <span>és</span> <span>obsole</span><span>;</span> <span>no el</span><span> feu servi</span></span></p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Totes_les_capçaleres">Totes les <span id="result_box" lang="ca"><span>capçaleres</span></span></h3> + +<p><span id="result_box" lang="ca"><span>El codi</span> <span>següent</span> <span>mostra</span> <span>tots</span> <span>els</span> <span>nivells</span> <span>de capçaleres,</span> <span>en ús.</span></span></p> + +<pre class="brush: html"><h1>Heading level 1</h1> +<h2>Heading level 2</h2> +<h3>Heading level 3</h3> +<h4>Heading level 4</h4> +<h5>Heading level 5</h5> +<h6>Heading level 6</h6> +</pre> + +<p>Aquest és el resultat del codi:</p> + +<p>{{ EmbedLiveSample('All_headings', '280', '300', '') }}</p> + +<h3 id="Pàgina_d'exemple_page">Pàgina d'exemple page</h3> + +<p>El següent codi mostra alguns encapçalaments amb continguts sota d'ells.</p> + +<pre class="brush: html"><h1>Heading elements</h1> +<h2>Summary</h2> +<p>Some text here...</p> + +<h2>Examples</h2> +<h3>Example 1</h3> +<p>Some text here...</p> + +<h3>Example 2</h3> +<p>Some text here...</p> + +<h2>See also</h2> +<p>Some text here...</p> +</pre> + +<p>Aquest és el resultat del codi:</p> + +<p>{{ EmbedLiveSample('Example_page', '280', '480', '') }}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements', '<h1>, <h2>, <h3>, <h4>, <h5>, and <h6>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements', '<h1>, <h2>, <h3>, <h4>, <h5>, and <h6>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.5.5', '<h1>, <h2>, <h3>, <h4>, <h5>, and <h6>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("p")}}</li> + <li>{{HTMLElement("div")}}</li> + <li>{{HTMLElement("section")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/hgroup/index.html b/files/ca/web/html/element/hgroup/index.html new file mode 100644 index 0000000000..e39de3af84 --- /dev/null +++ b/files/ca/web/html/element/hgroup/index.html @@ -0,0 +1,120 @@ +--- +title: <hgroup> +slug: Web/HTML/Element/hgroup +tags: + - Element + - Experimental + - HTML + - HTML sections + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/hgroup +--- +<div>{{HTMLRef}}{{seeCompatTable}}</div> + +<div> </div> + +<div class="note"> +<p><strong>Nota d'ùs: </strong>Aquest element s'ha eliminat de l'especificació d'HTML 5 (W3C), però encara està en la versió d'HTML WHATWG. Està parcialment implementada en la majoria de navegadors, però, tot i així és poc probable que desaparegui. A mesura que l'algoritme d'esquema no s'implementa en qualsevol navegador, la semàntica de <hgroup> és en la pràctica només teòric. La especificació HTML 5 (W3C) ofereix consells sobre com marcar els <a href="http://www.w3.org/TR/html5/common-idioms.html#sub-head">Subtítols, subtítols, títols i lemes alternatius</a>.</p> +</div> + +<p>L'<strong>Element HTML <code><hgroup></code></strong> (Element HTML Encapçalaments de Grup) representa l'encapçalament d'una secció. Defineix un sol títol que participa en l'esquema del document com l'encapçalament de la secció implícit o explícit, a la qual pertany.</p> + +<p>El seu <em>tex</em>t, per l'algoritme d'esquema, és el text del primer Element HTML d'encapçalament de rang més alt (és a dir, el primer {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}} o {{HTMLElement("h6")}} amb el nombre més petit entre els seus descendents) i el <em>rang</em> és el rang d'aquest mateix element HTML d'encapçalament.</p> + +<p>Per tant, aquest element agrupa diversos encapçalaments, i només un representa el principal amb l'esquema del document. Permet associar títols secundaris, com subtítols, títols alternatius, o fins i tot lemes, amb el encapçalament principal, sense contaminar l'esquema del document.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, contingut d'encapçalament, continut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Un o més {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, i/o {{HTMLElement("h6")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><hgroup> + <h1>Main title</h1> + <h2>Secondary title</h2> +</hgroup> +</pre> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements de secció relacionats: {{HTMLElement("body")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("nav")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};</li> + <li><a class="deki-ns current" href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i esquemes d'un document HTML5</a>.</li> +</ul> diff --git a/files/ca/web/html/element/hr/index.html b/files/ca/web/html/element/hr/index.html new file mode 100644 index 0000000000..ca17db66e9 --- /dev/null +++ b/files/ca/web/html/element/hr/index.html @@ -0,0 +1,167 @@ +--- +title: <hr> +slug: Web/HTML/Element/hr +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/hr +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><hr></code></strong> representa un trencament temàtic entre els elements a nivell de paràgraf (per exemple, un canvi d'escena en una història, o un canvi de tema amb una secció). En versions prèvies d'HTML, es representava amb una regla horitzontal. Encara es pot mostrar com una regla horitzontal en els navegadors visuals, però ara es defineix en termes semàntics, en lloc de termes de presentació.</p> + +<div class="note"> +<p><span id="result_box" lang="ca"><span>Per canviar</span> <span>l'aspecte de la</span> <span>regla o</span> <span>buits</span> <span>entre ell</span> <span>i els</span> <span>paràgrafs</span><span>, utilitzeu</span> <span>els <a href="https://developer.mozilla.org/en-US/docs/CSS">fulls d'estil en cascada</a></span><a href="https://developer.mozilla.org/en-US/docs/CSS"> </a> <span>(</span><span>CSS</span><span>)</span><span>.</span></span></p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir</span> <span>una etiqueta</span> <span>d'inici,</span> <span>però</span> <span>no </span><span>una etiqueta</span> <span>de tancament</span></span> .</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLHRElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("align")}} {{deprecated_inline}}</dt> + <dd>Defineix l'alineació de la regla a la pàgina. Si no s'especifica cap valor, el valor per defecte es <code>left</code>.</dd> + <dt>{{htmlattrdef("color")}} {{Non-standard_inline}}</dt> + <dd>Defineix el color de la regla mitjançant el nom del color o el valor hexadecimal.</dd> + <dt>{{htmlattrdef("noshade")}} {{deprecated_inline}}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Estableix que</span> <span>la regla no</span> <span>té</span> <span>ombrejat</span></span>.</dd> + <dt>{{htmlattrdef("size")}} {{deprecated_inline}}</dt> + <dd>Estableix l'alçada de la regla en píxels.</dd> + <dt>{{htmlattrdef("width")}} {{deprecated_inline}}</dt> + <dd>Defineix la longitud de la regla a la pàgina mitjançant un valor en píxels o percentatge.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>This is the first paragraph of text. This is the first paragraph of text. + This is the first paragraph of text. This is the first paragraph of text.</p> + +<hr> + +<p>This is second paragraph of text. This is second paragraph of text. + This is second paragraph of text. This is second paragraph of text.</p> +</pre> + +<p>Sortida del codi HTML anterior:</p> + +<p>This is the first paragraph of text. This is the first paragraph of text. This is the first paragraph of text. This is the first paragraph of text.</p> + +<hr> +<p>This is second paragraph of text. This is second paragraph of text. This is second paragraph of text. This is second paragraph of text.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-hr-element', '<hr>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Definició</span> <span>de l'element</span> <code><span>hr</span></code></span></td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'rendering.html#the-hr-element-0')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Suggerit la representació per defecte de l'element <code>hr</code></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-hr-element', '<hr>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'present/graphics.html#h-15.3', '<hr>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Els atributs <code>align</code>, <code>noshade</code>, <code>size</code> i <code>width</code> estan desaprovats</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement('p')}}</li> +</ul> diff --git a/files/ca/web/html/element/html/index.html b/files/ca/web/html/element/html/index.html new file mode 100644 index 0000000000..5b8ac621f8 --- /dev/null +++ b/files/ca/web/html/element/html/index.html @@ -0,0 +1,168 @@ +--- +title: <html> +slug: Web/HTML/Element/html +tags: + - Element + - HTML + - HTML Root Element + - Reference + - Web +translation_of: Web/HTML/Element/html +--- +<p>{{HTMLRef}}</p> + +<p><strong>L'element HTML <code><html></code></strong> (o element arrel HTML) representa l'arrel d'un document HTML. Tots els altres elements han de ser descendents d'aquest element.</p> + +<p>Donat que l'element <code><html></code> és el primer en un document i que no és un comentari, se li nomena element arrel. Tot i que aquesta etiqueta pot ser implícita, o no necessària, amb {{glossary("HTML")}}, és obligada a ser oberta i tancada en {{glossary("XHTML")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Un element {{HTMLElement("head")}}, seguit d'un element {{HTMLElement("body")}}.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici es pot ometre si el primer dins de l'element <code><html></code> no es un comentari.<br> + L'etiqueta final es pot ometre si l'element <code><html></code> no va precedit immediatament per un comentari, i conté un element {HTMLElement("body")}}, o bé no està buit o l'etiqueta d'inici està present.</td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Com l'element arrel d'un document, o on es permeti un fragment de un subdocument en un document compost..</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLHtmlElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("manifest")}} {{obsolete_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Especifica</span> <span>l'adreça URL</span> <span>d'un</span> <span>manifest</span> <span>de recursos que</span> <span>indica els</span> <span>recursos</span> <span>que han de ser</span> <span>emmagatzemats a la</span> <span>memòria cau</span> <span>local.</span> <span>Consulteu</span> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache">Ús de la memòria cau de l'aplicació</a><span> per</span> <span>obtenir</span> <span>més</span> <span>informació</span></span></dd> + <dt>{{htmlattrdef("version")}} {{obsolete_inline}}</dt> + <dd>Especifica la versió de l'HTML {{glossary("DTD", "Document Type Definition")}} que regeix el document actual. Aquest atribut no és necessari, perquè és redundant amb la informació de la versió a la declaració del tipus del document.</dd> + <dt>{{htmlattrdef("xmlns")}} </dt> + <dd><span id="result_box" lang="ca"><span>Especifica</span> <span>l'espai de</span> <span>noms</span> <span>XML</span> <span>del document.</span> <span>El valor</span> <span>per defecte</span> <span>és</span> <code><span>"</span><span>http://www.w3.org/1999/xhtml</span><span>"</span></code><span>.</span> <span>Això</span> <span>és necessari en</span> <span>XHTML,</span> <span>i opcional</span> <span>en HTML.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p><span id="result_box" lang="ca"><span>El</span> <span>DOCTYPE</span> <span>utilitzat en</span> <span>l'exemple</span> <span>següent indica</span> <span>que és HTML5.</span></span></p> + +<pre class="brush: html"><!DOCTYPE html> +<html> + <head>...</head> + <body>...</body> +</html> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-html-element', '<html>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>No ha canviat des de l'última presentació.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'semantics.html#the-html-element', '<html>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>S'ha afegit suport per a l'atribut <code>manifest</code> (desaprovat més tard).Obsolet l'atribut <code>version</code></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.3', '<html>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Desaprovat l'atribut <code>version</code></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>manifest</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>manifest</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>MathML <span id="result_box" lang="ca"><span>element</span> <span>de nivell</span> <span>superior</span></span> : {{MathMLElement("math")}}</li> + <li>SVG <span id="result_box" lang="ca"><span>element</span> <span>de nivell</span> <span>superior</span></span> : {{SVGElement("svg")}}</li> +</ul> diff --git a/files/ca/web/html/element/i/index.html b/files/ca/web/html/element/i/index.html new file mode 100644 index 0000000000..40f4380bd4 --- /dev/null +++ b/files/ca/web/html/element/i/index.html @@ -0,0 +1,157 @@ +--- +title: <i> +slug: Web/HTML/Element/i +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web + - em + - font-style +translation_of: Web/HTML/Element/i +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <code><i></code></strong> representa un rang de text que es desvia del text normal, per alguna raó, per exemple, termes tècnics, frases en llengües estrangeres, o pensaments de personatges de ficció. En general es mostra en cursiva</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Content categories</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Permitted content</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Tag omission</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Permitted parent elements</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">DOM interface</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclòs, Firefox implementa per aquest element la {{domxref("HTMLSpanElement")}} interfície.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>The Latin phrase <i>Veni, vidi, vici</i> is often mentioned in music, art, and literature</p> +</pre> + +<h3 id="Result" name="Result">Resultat</h3> + +<p>The Latin phrase <em>Veni, vidi, vici</em> is often mentioned in music, art, and literature</p> + +<h2 id="Notes">Notes</h2> + +<p>En versions anteriors de l'especificació HTML, l'etiqueta <code><i></code> era merament un element de presentació utilitzada per mostrar text en cursiva, igual que l'etiqueta <code><b></code> s'utilitza per mostrar text en negreta. Això ja no és així, ja que aquestes etiquetes ara defineixen la semàntica més que l'aparença tipogràfica. L'etiqueta <code><i></code> ha de representar un rang de text amb un significat semàntic diferent a la representació tipogràfica típica en cursiva. Això significa que un navegador continuarà tot i així mostrant el seu contingut en lletra cursiva, però per definició ja no cal.</p> + +<p><span id="result_box" lang="ca"><span>Utilitzeu</span> <span>aquest</span> <span>element</span> <span>només quan</span> <span>no hi ha un</span> <span>element</span> <span>semàntic</span> <span>més</span> <span>apropiat.</span> <span>Per exemple:</span></span></p> + +<ul> + <li>Utilitza {{HTMLElement("em")}} per indicar èmfasi o accent remarcable.</li> + <li>Utilitza {{HTMLElement("strong")}} per indicar importància.</li> + <li>Utilitza {{HTMLElement("mark")}} per indicar rellevància.</li> + <li>Utilitza {{HTMLElement("cite")}} per marcar el nom d'una obra, com un llibre, joc o una cançó.</li> + <li>Utilitza {{HTMLElement("dfn")}} per marcar la instància definitòria d'un terme.</li> +</ul> + +<p>És una bona idea l'ùs de l'atribut <strong>class</strong> per identificar per què s'utilitza l'element, de manera que si la presentació ha de canviar en una data posterior, es pugui fer de forma selectiva amb els fulls d'estil.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-i-element', '<i>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-i-element', '<i>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'present/graphics.html#h-15.2.1', '<b>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>{{HTMLRef}}</p> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("em")}}</li> +</ul> diff --git a/files/ca/web/html/element/iframe/index.html b/files/ca/web/html/element/iframe/index.html new file mode 100644 index 0000000000..0dc95e860d --- /dev/null +++ b/files/ca/web/html/element/iframe/index.html @@ -0,0 +1,471 @@ +--- +title: <iframe> +slug: Web/HTML/Element/iframe +tags: + - Content + - Element + - HTML + - Reference + - Web + - embedded +translation_of: Web/HTML/Element/iframe +--- +<div>{{HTMLRef}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML Marc en Línia (<code><iframe></code>) representa un context de navegació imbricada, la incrustació efectiva d'una altra pàgina HTML a la pàgina actual. En HTML 4.01, un document pot contenir un <code>head</code> i un <code>body</code> o un <code>head</code> i un conjunt de marcs, però no tots dos un <code>body</code> i un conjunt de marcs. No obstant això, un<code> <iframe</code>> es pot utilitzar dins del cos d'un document normal. Cada context de navegació té el seu propi historial de sessió i document actiu. El context de navegació que conté el contingut incrustat es diu context de navegació dels pares. El context de navegació de nivell superior (que no té pare) és normalment la finestra del navegador.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut incrustat, contingut interactiu, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Especial</span><span>, veure</span> <span>la prova</span></span></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut incrustat.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLIFrameElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("align")}} {{deprecated_inline("html4.01")}}, {{obsolete_inline("html5")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alineació</span> <span>d'aquest</span> <span>element respecte</span> <span>al context que</span> <span>l'envolta.</span></span></dd> + <dt>{{htmlattrdef("allowfullscreen")}}</dt> + <dd>Aquest atribut es pot establir en <code>true</code> si el marc ha de ser col·locat en mode de pantalla completa cridant al seu mètode {{domxref("Element.requestFullScreen()")}}. Si no està establert, no es pot col·locar l'element en mode de pantalla completa.</dd> + <dt>{{htmlattrdef("frameborder")}} {{HTMLVersionInline(4)}} only</dt> + <dd>El valor 1 (per defecte) li diu al navegador que traci una vora entre aquest marc i per cada marc existent. El valor 0 indica el navegador no dibuixar cap vora entre aquest marc i d'altres marcs.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd> + <p>Indica l'alçada del marc {{HTMLVersionInline(5)}} en píxels CSS, o {{HTMLVersionInline(4.01)}} en píxels o com a percentatge.</p> + </dd> + <dt>{{htmlattrdef("longdesc")}} {{HTMLVersionInline(4)}} only</dt> + <dd>Un URI a una descripció llarga del marc. A causa del mal ús generalitzat, això no és útil per als navegadors no visuals.</dd> + <dt>{{htmlattrdef("marginheight")}} {{HTMLVersionInline(4)}} only</dt> + <dd> + <p>La quantitat d'espai en píxels entre el contingut del marc i els seus marges superior i inferior.</p> + </dd> + <dt>{{htmlattrdef("marginwidth")}} {{HTMLVersionInline(4)}} only</dt> + <dd>La quantitat d'espai en píxels entre el contingut del marc i els seus marges esquerre i dret.</dd> + <dt>{{htmlattrdef("mozallowfullscreen")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Utilitzeu en el seu lloc <strong><code>allowfullscreen</code></strong>. En Gecko 9.0 o posterior, aquest atribut es pot establir en true si es permet al marc col·locar-ho en mode de pantalla completa cridant el seu mètode {{domxref("element.mozRequestFullScreen()")}}. Si això no s'ha establert, l'element no es pot posar en mode de pantalla completa.</dd> + <dt>{{htmlattrdef("webkitallowfullscreen")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Utilitzeu en el seu lloc <code><strong>allowfullscreen</strong></code>. En Chrome 17 o posterior (i potser abans), aquest atribut es pot establir en true si es permet al marc col·locar-ho en mode de pantalla completa cridant el seu mètode {{domxref("element.webkitRequestFullScreen()")}}. Si això no s'ha establert, l'element no es pot posar en mode de pantalla completa.</dd> + <dt>{{htmlattrdef("mozapp")}} {{non-standard_inline}}</dt> + <dd>Per als marcs d'allotjament d'una <a href="https://developer.mozilla.org/en-US/docs/Apps">aplicació web de codi obert</a>, això especifica l'URL del <a href="https://developer.mozilla.org/en-US/docs/Apps/Manifest">manifest d'aplicació</a>. Això assegura que l'aplicació es carrega amb els permisos adequats. Consulteu <a href="https://developer.mozilla.org/en-US/docs/DOM/Using_the_Browser_API">Ús de l'API del Navegador</a> per a més informació. Disponible en Gecko 13.0 i posteriors.</dd> + <dt>{{htmlattrdef("mozbrowser")}} {{non-standard_inline}}</dt> + <dd>Indica que el marc aparegui com una finestra de l'explorador de nivell superior per al contingut incrustat. Això vol dir que {{domxref("window.top")}}, {{domxref("window.parent")}}, {{domxref("window.frameElement")}}, etc., no reflectirà la jerarquia del marc. Això permet a un navegador web UI ser implementat en la seva totalitat amb la tecnologia web, donat els permisos adequats. Consulteu Ús de l'API del Navegador per a més informació. Disponible en Gecko 13.0 i posteriors.</dd> + <dt id="name-attribute">{{htmlattrdef("name")}}</dt> + <dd>Un nom per al context de navegació incrustat (o marc). Això pot ser usat com el valor de l'atribut <code><strong>target</strong></code> d'un element {{HTMLElement("a")}} o {{HTMLElement("form")}}, o l'atribut formtarget d'un element {{HTMLElement("input")}} o {{HTMLElement("button")}}.</dd> + <dt id="attr-referrer">{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}</dt> + <dd>Una cadena que indica la referéncia a utilitzar quan s'està obtenint el recurs: + <ul> + <li><code>"no-referrer"</code> significa que del <code>Referer</code>: no s'enviarà la capçalera.</li> + <li>"<code>no-referrer-when-downgrade</code>" significa que no hi ha <code>Referer</code>: la capçalera serà enviada al navegar a un origen sense TLS (HTTPS). Aquest és el comportament per defecte d'un agent d'usuari, si no hi ha política que especifiqui el contrari.</li> + <li><code>"origin"</code> significa que la referéncia serà l'origen de la pàgina, que és més o menys l'esquema, el host i el port.</li> + <li>"origin-when-cross-origin" significa que les navegacions d'altres orígens es limitarà a l'esquema, el host i el port, mentre que les navegacions en el mateix origen inclouran el camí de les referéncies.</li> + <li><code>"unsafe-url"</code> significa que la referéncia inclourà l'origen i la ruta d'accés (però no el fragment, la contrasenya o nom d'usuari). Aquest cas no és segur, ja que pot filtrar-se orígens i trajectòries dels recursos protegits-TLS a orígens insegurs</li> + </ul> + </dd> + <dt>{{htmlattrdef("remote")}} {{non-standard_inline}}</dt> + <dd>Carrega la pàgina del marc en un procés de contingut independent.</dd> + <dt>{{htmlattrdef("scrolling")}} {{HTMLVersionInline(4)}} only</dt> + <dd>Atribut enumerat indicant quan el navegador ha de proporcionar una barra de desplaçament (o un altre dispositiu de desplaçament) per a el marc: + <ul> + <li><code>auto</code>: Només quan sigui necessari.</li> + <li><code>yes</code>: Sempre proporciona una barra de desplaçament.</li> + <li><code>no</code>: Mai proporciona una barra de desplaçament.</li> + </ul> + </dd> + <dt>{{htmlattrdef("sandbox")}} {{HTMLVersionInline(5)}} only</dt> + <dd>Si s'especifica com una cadena buida, aquest atribut permet restriccions addicionals en el contingut que pugui aparèixer en el marc en línia. El valor de l'atribut pot ser una cadena buida (s'apliquen totes les restriccions), o una llista separada per espais d'identificadors que aixequen restriccions particulars. Els identificadors vàlids són: + <ul> + <li><code>allow-forms</code>: Permet al context de navegació incrustat enviar formularis. Si no s'utilitza aquesta paraula clau, no es permet aquesta operació.</li> + <li><code>allow-modals</code>: Permet al context de navegació incrustat obrir finestres modals.</li> + <li><code>allow-orientation-lock</code>: Permet al context de navegació incrustat desactivar la capacitat de bloquejar l'orientació de la pantalla.</li> + <li><code>allow-pointer-lock</code>: Permet al context de navegació incrustat utilitzar l'<a href="https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock">API de bloqueig del punter</a> ( <a href="https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock">Pointer Lock API</a> ).</li> + <li><code>allow-popups</code>: Permet finestres emergents (com <code>window.open, target="_blank", showModalDialog</code>). Si no s'utilitza aquesta paraula clau, aquesta funcionalitat fallarà sense avisar.</li> + <li><code>allow-popups-to-escape-sandbox</code>: Permet a un document en espai aïllat (sandbox) obrir noves finestres sense forçar les senyals d'espai aïllat sobre ellas. Això permetrà, per exemple, una publicitat de tercers, per ser un espai aïllat de seguretat sense forçar les mateixes restriccions en una pàgina de destinació.</li> + <li><code>allow-presentation</code>: Permet als incrustats tenir control sobre si un iframe pot iniciar una sessió de presentació.</li> + <li><code>allow-same-origin</code>: Permet que el contingut sigui tractat com a tal des del seu origen normal. Si no s'utilitza aquesta paraula clau, el contingut incrustat es tracta com d'un origen únic.</li> + <li><code>allow-scripts</code>: Permet al context de navegació incrustat executar scripts (però no crear finestres emergents). Si no s'utilitza aquesta paraula clau, no es permet aquesta operació.</li> + <li><code>allow-top-navigation</code>: Permet al context de navegació incrustat navegar pel contingut (càrrega) del context de navegació de nivell superior. Si no s'utilitza aquesta paraula clau, no es permet aquesta operació.</li> + </ul> + + <div class="note"> + <p><strong>Nota:</strong></p> + + <ul> + <li>Quan el document incrustat té el mateix origen que la pàgina principal, no és recomanable utilitzar al mateix temps<code> tant allow-scripts</code> i <code>allow-same-origin</code>, lo que permet que en el document incrustat mitjançant programació poguer eliminar l'atribut sandbox. Encara que s'accepta, aquest cas no és més segur que no fer servir l'atribut sandbox.</li> + <li>El espai aïllat (Sandboxing), en general, és només una ajuda mínima si l'atacant pot organitzar el contingut potencialment hostil que es mostrarà en el navegador de l'usuari fora d'un <code>iframe</code> d'espai aïllat. Es recomana que aquest contingut ha de servir-se de un<em> domini dedicat separat,</em> per limitar el dany potencial.</li> + <li>L'atribut<code> sandbox</code> no és compatible amb Internet Explorer 9 i versions anteriors.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>La URL</span> <span>de la pàgina per</span> <span>incrustar</span></span>.</dd> + <dt>{{htmlattrdef("srcdoc")}} {{HTMLVersionInline(5)}} only</dt> + <dd>El contingut de la pàgina que conté el context integrat. S'espera que aquest atribut sigui generalment usat junt amb l'atribut <code>sandbox</code>. Si un navegador suporta l'atribut srcdoc, anul·larà el contingut especificat en l'atribut <code>src</code> (si està present). Si un navegador NO suporta l'atribut <code>srcdoc</code>, es mostrarà el fitxer especificat per l'atribut <code>src</code> en el seu lloc (si està present). Recordeu que si el contingut de l'atribut conté una etiqueta script, serà necessaria una etiqueta script de tancament per a l'execució del script, fins i tot sinó es produeix res mes després del script</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>Indica l'amplada del marc {{HTMLVersionInline(5)}} en píxels CSS, o {{HTMLVersionInline(4.01)}} en píxels o com a percentatg</dd> +</dl> + +<h2 id="Scripting">Scripting</h2> + +<p>Els marcs en línia, com a elements de {{HTMLElement ("frame")}}, introduïu el pseudo-array {{domxref("window.frames")}}.</p> + +<p>Des de l'element <code>iframe</code> DOM, els scripts poden acedir al objecte {{domxref("window")}} inclòs en la pàgina HTML mitjançant la propietat <code>contentWindow</code>. La propietat <code>contentDocument</code> es refereix a l'element del document dins del <code>iframe</code> (és equivalent a <code>contentWindow.document</code>), però no és compatible amb les versions d'Internet Explorer anteriors a IE8.</p> + +<p><span id="result_box" lang="ca"><span>Des de l'interior</span> <span>d'un</span> <span>marc, un</span> <span>script</span> <span>pot</span> <span>obtenir</span> <span>una referència a la</span> <span>finestra</span> <span>pare a través</span> <span>de</span> <span>{</span><span>{</span><span>domxref</span> <span>(</span><span>"</span><span>Window.parent</span><span>"</span><span>)</span><span>}</span><span>}</span></span> .</p> + +<p>Els scripts que tracten d'accedir al contingut d'un marc estan subjectes a la <a href="https://developer.mozilla.org/en-US/docs/Same_origin_policy_for_JavaScript">política del mateix origen</a>, i no poden accedir a la majoria de les propietats en l'altre objecte finestra si estigués carregada des d'un domini diferent. Això també s'aplica a un script dins d'un marc, d'intentar accedir a la seva finestra pare. La comunicació entre dominis encara es pot aconseguir amb {{domxref("Window.postMessage()")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<p><span id="result_box" lang="ca"><span>Aquí hi ha</span> <span>alguns</span> <span>exemples que</span> <span>demostren l'ús</span> <span>de l'element</span> <code><span><</span><span>iframe</span><span>></span></code></span>.</p> + +<h3 id="Example1" name="Example1">Un simple <code><iframe></code></h3> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>és</span> <span>un exemple</span> <span>bàsic d'un</span> <code><span><</span><span>iframe</span><span>></span></code> <span>en acció.</span> <span>Després</span> <span>de crear el marc</span><span>, quan l'usuari</span> <span>fa</span> <span>clic a</span> <span>un botó</span><span>, el seu títol</span> <span>es recupera</span> <span>i</span> <span>es mostra en</span> <span>un avís</span><span>.</span></span></p> + +<h4 id="HTML">HTML</h4> + +<div id="htmlOutputWrapper"> +<pre class="brush: html"><iframe src="https://mdn-samples.mozilla.org/snippets/html/iframe-simple-contents.html" width="400" height="300"> + <p>Your browser does not support iframes.</p> +</iframe></pre> +</div> + +<h4 id="Resultat">Resultat</h4> + +<p>{{ EmbedLiveSample('Example1', '', '', '', 'Web/HTML/Element/iframe') }}</p> + +<h3 id="Example2" name="Example2"><span id="result_box" lang="ca"><span>Obrir un enllaç</span> <span>en un</span> <span><</span><span>iframe</span><span>></span> <span>en una altra</span> <span>pestanya</span></span></h3> + +<p><span id="result_box" lang="ca"><span>En aquest</span> <span>exemple, un</span> <span>mapa de</span> <span>Google</span> <span>es</span> <span>mostrarà en un</span> <span>marc</span><span>;</span></span></p> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><base target="_blank"> +<iframe id="Example2" + name="Example2" + title="Example2" + width="400" + height="300" + frameborder="0" + scrolling="no" + marginheight="0" + marginwidth="0" + src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=es-419&amp;geocode=&amp;q=buenos+aires&amp;sll=37.0625,-95.677068&amp;sspn=38.638819,80.859375&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=Buenos+Aires,+Argentina&amp;z=11&amp;ll=-34.603723,-58.381593&amp;output=embed"> +</iframe> + +<br> +<small> + <a href="https://maps.google.com/maps?f=q&amp;source=embed&amp;hl=es-419&amp;geocode=&amp;q=buenos+aires&amp;sll=37.0625,-95.677068&amp;sspn=38.638819,80.859375&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=Buenos+Aires,+Argentina&amp;z=11&amp;ll=-34.603723,-58.381593" style="color:#0000FF;text-align:left"> See bigger map </a> +</small></pre> + +<h4 id="Resultat_2">Resultat</h4> + +<p>{{ EmbedLiveSample('Example2', '', '', '', 'Web/HTML/Element/iframe') }}</p> + +<h4 id="Resultat_3">Resultat</h4> + +<p><a href="http://jsfiddle.net/pablofiumara/mCfAe/">Exemple viu</a></p> + +<h2 id="Notes">Notes</h2> + +<div class="note"> +<p>A partir d'{{Gecko ("6.0")}}, la representació de marcs en línia respecta correctament les vores del seu element contenidor quan estan arrodonides usant {{cssxref("border-radius")}}.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrerpolicy attribute')}}</td> + <td>{{Spec2('Referrer Policy')}}</td> + <td>Afegeix l'atribut <code>referrerpolicy</code>.</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-iframe-element.html#the-iframe-element', '<iframe>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-iframe-element', '<iframe>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'present/frames.html#h-16.5', '<iframe>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('Screen Orientation')}}</td> + <td>{{Spec2('Screen Orientation')}}</td> + <td>Afegeix <code>allow-orientation-lock</code> a l'atribut <code>sandbox</code>.</td> + </tr> + <tr> + <td>{{SpecName('Presentation','#sandboxing-and-the-allow-presentation-keyword','allow-presentation')}}</td> + <td>{{Spec2('Presentation')}}</td> + <td>Afegeix <code>allow-presentation</code> a l'atribut <code>sandbox</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(1.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}[1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}[2]</td> + </tr> + <tr> + <td><code>sandbox</code></td> + <td>{{CompatChrome(4.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("17.0")}}</td> + <td>10</td> + <td>15</td> + <td>5</td> + </tr> + <tr> + <td><code>srcdoc</code></td> + <td>{{CompatChrome(20.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>15</td> + <td>6</td> + </tr> + <tr> + <td><code>allowfullscreen</code></td> + <td>{{CompatChrome(17.0)}} {{property_prefix("webkit")}}<br> + {{CompatChrome(27.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("9.0")}} {{property_prefix("moz")}}<br> + {{CompatGeckoDesktop("18.0")}}</td> + <td> + <p>11 {{property_prefix("ms")}}</p> + </td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}} {{property_prefix("webkit")}}<br> + 7</td> + </tr> + <tr> + <td><code>sandbox="allow-popups"</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("28.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>sandbox="allow-popups-to-escape-sandbox"</code></td> + <td>{{CompatChrome(46.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>32</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>sandbox="allow-modals"</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatChrome(51.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>sandbox="allow-presentation"</code></td> + <td>{{CompatChrome(53.0)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td> + <p>{{CompatOpera(40)}}</p> + </td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td> + <p>{{CompatVersionUnknown}}</p> + </td> + <td>{{CompatVersionUnknown}}[1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td> + <p>{{CompatVersionUnknown}}</p> + </td> + </tr> + <tr> + <td><code>sandbox</code></td> + <td>2.2</td> + <td> + <p>{{CompatVersionUnknown}}</p> + </td> + <td>{{CompatGeckoMobile("17.0")}}</td> + <td>10</td> + <td>{{CompatNo}}</td> + <td>4.2</td> + <td> + <p>{{CompatVersionUnknown}}</p> + </td> + </tr> + <tr> + <td><code>srcdoc</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>allowfullscreen</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("9.0")}} {{property_prefix("moz")}}<br> + {{CompatGeckoMobile("18.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}} {{property_prefix("webkit")}}<br> + 7</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>sandbox="allow-popups"</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("27.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>sandbox="allow-popups-to-escape-sandbox"</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(46)}}</td> + <td>{{CompatGeckoMobile("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>32</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(46.0)}}</td> + </tr> + <tr> + <td><code>sandbox="allow-modals"</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(51.0)}}</td> + <td>{{CompatGeckoMobile("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(51.0)}}</td> + </tr> + <tr> + <td><code>sandbox="allow-presentation"</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td> + <p>{{CompatOperaMobile(40)}}</p> + </td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(53.0)}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] La propietat CSS {{cssxref("resize")}} no té cap efecte sobre aquest element a causa del {{bug("680823")}}.</p> + +<p>[2] Safari té un <a href="http://www.quirksmode.org/bugreports/archives/2005/02/hidden_iframes.html">error</a> conegut que impedeix que es carregui iframes si l'element iframe s'oculta quan s'afegeix a la pàgina. iframeElement.src = iframeElement.src ha de fer que es carregui el iframe.</p> diff --git a/files/ca/web/html/element/image/index.html b/files/ca/web/html/element/image/index.html new file mode 100644 index 0000000000..000153ffc0 --- /dev/null +++ b/files/ca/web/html/element/image/index.html @@ -0,0 +1,19 @@ +--- +title: <image> +slug: Web/HTML/Element/image +tags: + - HTML + - Non-standard +translation_of: Web/HTML/Element/image +--- +<div>{{non-standard_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><image></code> era un element experimental dissenyat per mostrar les imatges. Mai es va aplicar i la norma es la utilització del element {{HTMLElement("img")}}.</p> + +<div class="note"> +<p><strong>No utilitzeu aquest!</strong> Per tal de mostrar les imatges, utilitzeu l'estàndard de l'element {{HTMLElement("img")}}.</p> +</div> + +<p>Recordeu que fins Firefox 22, encara que no suportat, un element <code><image></code> es va associar amb un {{domxref("HTMLSpanElement")}}. Després es va corregir i ara s'associa amb un {{domxref("HTMLElement")}} per requeriment de l'especificació.</p> diff --git a/files/ca/web/html/element/img/index.html b/files/ca/web/html/element/img/index.html new file mode 100644 index 0000000000..405f8d9eb4 --- /dev/null +++ b/files/ca/web/html/element/img/index.html @@ -0,0 +1,359 @@ +--- +title: '<img>: element Imatge Incrustada' +slug: Web/HTML/Element/img +tags: + - Contingut + - Element + - Gràfics + - HTML + - Imatge + - Multimedia + - Referencia + - Web + - embedded +translation_of: Web/HTML/Element/img +--- +<h2 id="Sumari">Sumari</h2> + +<div>{{HTMLRef}}</div> + +<p><strong>L'element HTML <code><img></code></strong> representa una imatge en el document.</p> + +<div class="note"> +<p>Els navegadors no sempre mostren la imatge referenciada per l'element. Aquest és el cas dels navegadors no gràfics (inclosos els utilitzats per les persones amb problemes de visió), o si l'usuari opta per no mostrar imatges, o si el navegador no pot mostrar la imatge, ja que no és vàlid o un <a href="https://developer.mozilla.org/ca/docs/Web/HTML/Element/img$translate#Supported_image_formats">tipus no suportat.</a> En aquests casos, el navegador pot reemplaçar la imatge amb el text definit en l'atribut <code>alt</code> d'aquest element. Ha de, per aquestes i altres raons, proporcionar un valor útil sempre que sigui possible.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut incrustat, contingut palpable. Si l'element té un atribut {{htmlattrxref("usemap", "img")}}, o sinó que també és una part de la categoria de contingut interactiu.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir una</span> <span>etiqueta d'inici</span> <span>i</span> <span>no </span><span>una etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut incrustat.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLImageElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atribust globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("align")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}} </dt> + <dd>L'alineació de la imatge respecte al seu context circumdant. En HTML5, utilitzeu les propietats CSS {{cssxref('float')}} i/o {{cssxref('vertical-align')}} en el seu lloc.</dd> + <dt>{{htmlattrdef("alt")}}</dt> + <dd>Aquest atribut defineix el text alternatiu que descriu la imatge. Els usuaris veuran aquest text apareixer si l'URL de la imatge està malament, o la imatge no es troba en un dels formats compatibles, o si la imatge no es descarrega. + <div class="note"> + <p>L'omissió d'aquest atribut en conjunt indica que la imatge és una part clau del contingut, i no té un equivalent textual disponible. En establir aquest atribut en una cadena buida (<code>alt=""</code>) indica que aquesta imatge no és una part clau del contingut, i que els navegadors no visuals poden ometre la seva representació.</p> + </div> + </dd> + <dt>{{htmlattrdef("border")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>L'ample d'una vora al voltant de la imatge. En HTML5, utilitzeu en el seu lloc la propietat CSS {{cssxref('border')}}.</dd> + <dt>{{htmlattrdef("crossorigin")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut enumerat indica si l'obtenció de la imatge relacionada ha de fer-se utilitzant CORS o no. En CORS habilitat, les imatges poden ser reutilitzades amb l'element {{HTMLElement("canvas")}} sense ser "corrompudes". Els valors permesos són:</dd> + <dd> + <dl> + <dt><code>anonymous</code></dt> + <dd>Una sol·licitud d'origen creuat (és a dir, amb <code>origen:</code> capçalera HTTP) es porta a terme. Però no s'envian credencials (és a dir, no hi ha cap galeta, no hi ha cap certificat X.509, i no s'envia l'autenticació bàsica HTTP ). Si el servidor no dóna credencials al lloc d'origen (si no s'estableix l'<code>Access-Control-Allow-Origin:</code> capçalera HTTP ), la imatge serà contaminada i el seu ús restringit.</dd> + <dt><code>use-credentials</code></dt> + <dd>Una sol·licitud d'origen creuat (és a dir, amb <code>Origin:</code> capçalera HTTP) realitzat amb credencial és enviat (és a dir, una galeta, un certificat i l'autenticació bàsica HTTP es realitza). Si el servidor no dóna credencials al lloc d'origen (a través d' <code>Access-Control-Allow-Credentials</code>: capçalera HTTP), la imatge serà contaminada i el seu ús restringit.</dd> + </dl> + Quan no està present, el recurs es recupera sense una sol·licitud CORS (és a dir, sense necessitat d'enviar <code>Origin:</code> capçalera HTTP), evitant el seu ús no contamina elements {{HTMLElement('canvas')}}. Si no és vàlid, es tractada com si s'utilitzés la paraula clau enumerada <strong>anonymous</strong>. Veure <a href="https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes">configuració atributs CORS</a> per obtenir informació addicional.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd>L'alçada intrínseca de la imatge en píxels. En {{HTMLVersionInline(4)}}, l'alçada es podria definir en píxels o com a percentatge. En {{HTMLVersionInline(5)}}, però, el valor ha d'estar en píxels.</dd> + <dt>{{htmlattrdef("hspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>El nombre de píxels d'espai en blanc per inserir a l'esquerra i dreta de la imatge. En HTML5, utilitzeu en al seu lloc la propietat CSS {{cssxref('margin')}} .</dd> + <dt>{{htmlattrdef("ismap")}}</dt> + <dd>Aquest atribut booleà indica que la imatge és part d'un mapa del costat del servidor. Si és així, les coordenades exactes d'un clic son enviades al servidor. + <div class="note"> + <p>Aquest atribut només és permès si l'element <code><img></code> és un descendent d'un element {{htmlelement("a")}} amb un atribut vàlid {{htmlattrxref("href","a")}}</p> + </div> + </dd> + <dt>{{htmlattrdef("longdesc")}}</dt> + <dd>Un enllaç a una descripció més detallada de la imatge. Els valors possibles són un URL o un element id.</dd> + <dt>{{htmlattrdef("name")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>Un nom per l'element. És suportat en {{HTMLVersionInline(4)}} només per compatibilitat amb versions anteriors. Utilitzeu en el seu lloc l'atribut <code>id</code>.</dd> + <dt>{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}</dt> + <dd>Una cadena que indica la referència a utilitzar per recuperar el recurs: + <ul> + <li><code>no-referrer:</code> <span class="short_text" id="result_box" lang="ca"><span>la capçalera</span><code> <span>Referer</span></code> <span>no s'enviarà</span></span> .</li> + <li><code>no-referrer-when-downgrade:</code> Cap encapçalat <code>Referer</code> s'enviarà quan es navega a un origen sense TLS (HTTPS). Es tracta d'un comportament per defecte de l'agent d'usuari si no hi ha una política que especifiqui lo contrari.</li> + <li><code>origin:</code> L'encapçalat <code>Referer</code> inclourà la pàgina de l'esquema d'origen, el host i el port.</li> + <li><code>origin-when-cross-origin:</code> navegant a altres orígens es limitarà les dades de referència incloses en l'esquema, el host i el port, mentre que la navegació des del mateix origen inclourà la ruta completa de las referèncias.</li> + <li><code>unsafe-url: </code>El <code>Referal header</code> inclourà l'origen i la ruta d'accés, però no el fragment, contrasenya o nom d'usuari. Aquest cas no és segur, ja que pot filtrar-se orígens i trajectòries dels recursos protegits-TLS a orígens insegurs.</li> + </ul> + </dd> + <dt>{{htmlattrdef("sizes")}}{{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>llista</span> <span>d'una o</span> <span>més cadenes</span> <span>separades per</span> <span>comes que</span> <span>indiquen un</span> <span>conjunt</span> <span>de mides de</span> <span>fonts</span><span>.</span> <span>Cada mida</span> <span>de font</span> <span>es</span> <span>compon de:</span></span> + <ol> + <li>una condició de mitjans. Això ha de ser omès per a l'últim element.</li> + <li>un valor de mida de font.</li> + </ol> + + <p>Els valors de mida de la Font especifiquen la mida de la pantalla desitjada de la imatge. Els agents d'usuari utilitzen la mida de la font actual per seleccionar una de les fonts subministrades per l'atribut <code>srcset</code>, quan aquestes fonts es descriuen utilitzant descriptors de l'amplada ('<code>w</code>'). La mida de la font seleccionada afecta la mida de la imatge (mida de visualització de la imatge si no s'aplica un estil CSS). Si l'atribut srcset està absent, o no conté valors amb un descriptor d'amplada (<code>w</code>), llavors l'atribut <code>sizes</code> no té cap efecte.</p> + </dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>L'URL de la imatge. Aquest atribut és obligatori per a l'element <code><img></code>. En els navegadors amb suport <code>srcset</code>, <code>src</code> és tractat com un candidat de la imatge amb un descriptor de densitat de píxel 1 x llevat que una imatge amb aquest descriptor de densitat de píxels ja estigui definit en <code>srcset</code> o a meys que <code>srcset</code> contingui descriptors '<code>w</code>'.</dd> + <dt>{{htmlattrdef("srcset")}}{{HTMLVersionInline(5)}}</dt> + <dd>Una llista d'una o més cadenes separades per comes que indiquen un conjunt de fonts d'imatge possibles per a l'agent d'usuari per al seu ús. Cada cadena es compon de: + <ol> + <li><span id="result_box" lang="ca"><span>un URL</span> <span>a</span> <span>una imatge,</span></span> ,</li> + <li><span id="result_box" lang="ca"><span>opcionalment</span><span>, espai</span> <span>en blanc</span> <span>seguit</span> <span>per</span> <span>u</span></span>n: + <ul> + <li>un descriptor d'amplada, o un enter positiu seguit directament per '<code>w</code>'. El descriptor d'amplada es divideix per la mida de la font donada en l'atribut <code>sizes</code> per calcular la densitat de píxels efectius.</li> + <li>un descriptor de densitat de píxels, que és un nombre de coma flotant positiva seguit directament per '<code>x</code>'.</li> + </ul> + </li> + </ol> + + <p><span id="result_box" lang="ca"><span>Si</span> <span>no s'especifica un</span> <span>descriptor</span><span>, la font</span> <span>s'assigna el</span> <span>descriptor</span> <span>per defecte</span><span>:</span> <span>1x</span><span>.</span></span></p> + + <p>No és correcte barrejar descriptors d'amplada i descriptors de densitat de píxels en el mateix atribut <code>srcset</code>. Descriptors duplicats (per exemple, dues fonts en la mateixa <code>srcset</code> que estan tots dos descrits amb '2x') tampoc no són vàlids.</p> + + <p><span id="result_box" lang="ca"><span>L'agent</span> <span>d'usuari</span> <span>selecciona una de les</span> <span>fonts</span> <span>disponibles</span> <span>a la seva discreció</span><span>.</span> <span>Això</span> <span>els proporciona un</span> <span>marge</span> <span>significatiu</span> <span>per adaptar la seva</span> <span>selecció en</span> <span>funció</span> <span>de coses</span> <span>com</span> <span>les</span> <span>preferències de l'</span><span>usuari o</span> <span>les</span> <span>condicions</span> <span>d'ample de</span> <span>banda.</span></span></p> + </dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>L'amplada intrínseca de la imatge en píxels. En {{HTMLVersionInline(4)}}, un percentatge o píxels són valors acceptables. En {{HTMLVersionInline(5)}}, però, només els píxels són acceptables.</dd> + <dt>{{htmlattrdef("usemap")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'adreça URL</span> <span>parcial</span> <span>(</span><span>que comença</span> <span>amb '</span><span>#'</span><span>)</span> <span>d'un mapa</span> <span>d'imatge</span> <span>associada</span> <span>amb l'element</span><span>.</span></span> + <div class="note"> + <p><strong>Nota d'ùs: </strong>No es pot fer servir aquest atribut si l'element <code><img></code> és un descendent d'un element {{htmlelement("a")}} o {{HTMLElement("button")}}.</p> + </div> + </dd> + <dt>{{htmlattrdef("vspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>El nombre de píxels d'espai en blanc per inserir dalt i sota de la imatge. En HTML5, utilitzeu en el seu lloc la propietat CSS {{cssxref('margin')}}..</dd> +</dl> + +<h2 id="Formats_d'imatge_suportats"><span class="short_text" id="result_box" lang="ca"><span>Formats d'imatge suportats</span></span></h2> + +<p>L'estàndard d'HTML no dóna una llista de formats d'imatge que ha de ser admès, així que cada agent d'usuari dóna suport a un conjunt diferent de formats. Gecko és compatible am:</p> + +<ul> + <li><a class="external" href="http://en.wikipedia.org/wiki/JPEG">JPEG</a></li> + <li><a class="external" href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">GIF</a>, <span class="short_text" id="result_box" lang="ca"><span>incloent</span> <span>GIFs</span> <span>animats</span></span></li> + <li><a class="external" href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a></li> + <li><a href="/en-US/docs/Animated_PNG_graphics">APNG</a> {{gecko_minversion_inline("1.9.2")}}</li> + <li><a href="/en-US/docs/SVG">SVG</a> {{gecko_minversion_inline("2.0")}}</li> + <li><a class="external" href="http://en.wikipedia.org/wiki/BMP_file_format">BMP</a></li> + <li><a class="external" href="http://en.wikipedia.org/wiki/ICO_%28file_format%29">BMP ICO</a></li> + <li><a class="external" href="http://en.wikipedia.org/wiki/ICO_%28file_format%29">PNG ICO</a> {{gecko_minversion_inline("9.0")}}</li> +</ul> + +<h2 id="Interacció_amb_CSS">Interacció amb CSS</h2> + +<p>Pel que fa a CSS, <code><img></code> és un element reemplaçat. No té cap base, de manera que quan les imatges s'utilitzen en un context de format en línia amb {{cssxref ("vertical-align")}}: <code>baseline</code>, es col·loca la part inferior de la imatge en la base del contenidor.</p> + +<p><span id="result_box" lang="ca"><span>Depenent</span> <span>del seu tipus</span><span>, una imatge</span> <span>pot tenir una</span> <span>amplada</span> <span>i alçada</span> <span>intrínseca.</span> <span>Per alguns</span> <span>tipus d'</span><span>imatge</span><span>, però,</span> <span>dimensions</span> <span>intrínseques</span> <span>no són</span> <span>necessaries.</span> <span>Les imatges</span> <span>SVG,</span> <span>per exemple, no</span> <span>tenen</span> <span>dimensions</span> <span>intrínseques.</span></span></p> + +<h2 id="Errors">Errors</h2> + +<p>Si es produeix un error en intentar carregar o processar una imatge, i un controlador d'esdeveniments {{htmlattrxref("onerror")}} ha estat configurat per controlar l'esdeveniment {{event("error")}}, aquest controlador d'esdeveniment serà cridat. Això pot ocórrer en diverses situacions, incloent:</p> + +<ul> + <li>El atribut {{htmlattrxref("src", "img")}} està buit o és <code>null</code>.</li> + <li>La URL especificada en <code>src</code> és la mateixa que la URL de la pàgina que l'usuari es troba actualment.</li> + <li>La imatge especificada està danyada d'alguna manera que evita que sigui carregada.</li> + <li>Les metadades de la imatge especificada està danyada de tal manera que és impossible recuperar les seves dimensions, i aquestes dimensions no van ser especificades en els atributs de l'element <code><img></code>.</li> + <li>La imatge especificada està en un format no suportat pel {{Glossary("user agent")}}.</li> +</ul> + +<h2 id="Exemple_1_Text_alternatiu">Exemple 1: Text alternatiu</h2> + +<pre class="brush: html"><img src="mdn-logo-sm.png" alt="MDN"> +</pre> + +<p><img alt="MDN" src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png"></p> + +<h2 id="Exemple_2_Enllaç_d'imatge">Exemple 2: <span class="short_text" id="result_box" lang="ca"><span>Enllaç</span> <span>d'imatge</span></span></h2> + +<pre class="brush: html"><a href="https://developer.mozilla.org/">MDN<img src="mdn-logo-sm.png" alt="MDN"></a></pre> + +<p><a href="https://developer.mozilla.org/"><img alt="MDN" src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png"></a></p> + +<h2 id="Exemple_3_Ús_de_l'atribut_srcset">Exemple 3: Ús de l'atribut <code>srcset</code></h2> + +<p>L'atribut <code>src</code> és un candidat 1x en agents d'usuari que suporten <code>srcset</code>.</p> + +<pre class="brush: html"> <img src="mdn-logo-sm.png" + alt="MDN" + srcset="mdn-logo-HD.png 2x"></pre> + +<h2 id="Exemple_4_Ús_dels_atributs_srcset_i_sizes">Exemple 4: Ús dels atributs <code>srcset</code> i <code>sizes</code></h2> + +<p>S'ignora l'atribut <code>src</code> en agents d'usuari que donen suport a <code>srcset</code> utilitzant descriptors '<code>w</code>'. Quan les (<code>min-width</code>: 600px) condicions del suport coincideixen, la imatge serà 200px d'amplada, en cas contrari serà 50vw d'amplada (50% de l'amplada de la finestra gràfica).</p> + +<pre class="brush: html"> <img src="clock-demo-thumb-200.png" + alt="Clock" + srcset="clock-demo-thumb-200.png 200w, clock-demo-thumb-400.png 400w" + sizes="(min-width: 600px) 200px, 50vw"></pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrer attribute')}}</td> + <td>{{Spec2('Referrer Policy')}}</td> + <td>Afegeix l'atribut <code>referrerpolicy</code>.</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'embedded-content.html#the-img-element', '<img>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-img-element', '<img>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/objects.html#h-13.2', '<img>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>srcset</code></td> + <td>{{CompatChrome(34.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("32.0")}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera(21)}}</td> + <td>{{CompatSafari(7.1)}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatChrome(46.0)}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>onerror</code> event handler</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop(51)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>srcset</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(34.0)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>21</td> + <td>iOS 8</td> + <td>{{CompatChrome(34.0)}}</td> + </tr> + <tr> + <td><code>referrerpolicy</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(46.0)}} [1]</td> + <td>{{CompatGeckoMobile("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(46.0)}}<sup>[1]</sup></td> + </tr> + <tr> + <td><code>onerror</code> event handler</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile(51)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Implementad com <code>referrerpolicy</code> <span id="result_box" lang="ca"> <span>i darrere</span> <span>d'una bandera.</span></span> .</p> + +<p>[2] <span id="result_box" lang="ca"><span>Implementat</span> <span>darrere</span> <span>d'una</span> <span>preferència.</span></span></p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Els elements {{HTMLElement("picture")}}, {{HTMLElement("object")}} i {{HTMLElement("embed")}}</li> +</ul> diff --git a/files/ca/web/html/element/index.html b/files/ca/web/html/element/index.html new file mode 100644 index 0000000000..962038b3fe --- /dev/null +++ b/files/ca/web/html/element/index.html @@ -0,0 +1,94 @@ +--- +title: HTML element reference +slug: Web/HTML/Element +tags: + - Basic + - Element + - HTML + - NeedsTranslation + - Refrència + - TopicStub + - Web +translation_of: Web/HTML/Element +--- +<p>{{HTMLSidebar("Elements")}}</p> + +<p><span id="result_box" lang="ca"><span>Aquesta</span> <span>pàgina</span> <span>mostra</span> <span>tots els</span></span><span class="seoSummary"> {{Glossary("HTML")}} {{Glossary("Element","elements")}}.</span> <span id="result_box" lang="ca"><span>S'agrupen</span> <span>per funcions</span> <span>per ajudar a trobar</span> <span>el que tens en</span> <span>ment</span> <span>amb</span> <span>facilitat.</span> <span>Tot i que aquesta</span> <span>guia</span> <span>està escrita</span> <span>per a aquells que</span> <span>són nous</span> en<span> la</span> <span>codificació,</span> <span>es</span> <span>pretén que</span> <span>sigui útil</span> <span>per a qualsevol</span> <span>persona.</span></span></p> + +<h2 id="Elements_Basics">Elements Basics</h2> + +<p><span id="result_box" lang="ca"><span>Els</span> <span>elements</span> <span>bàsics</span> <span>són la columna</span> <span>vertebral de qualsevol</span> <span>document HTML.</span> <span>Veures</span> <span>aquests</span> <span>elements</span> <span>en el codi</span> <span>font</span> <span>de totes</span> <span>les pàgines</span> <span>web després de la</span> <span>declaració</span> <span>de tipus</span> <span>de document en</span> <span>la primera línia</span> <span>de la pàgina.</span> <span>El tipus de</span> <span>document especifica</span> <span>la versió de</span> <span>(</span><span>X</span><span>)</span> <span>HTML</span> <span>que la pàgina</span> <span>està</span> <span>utilitzant</span><span>.</span> <span>Els</span> <span>elements</span> <span>de pàgina</span> <span>es col·loquen entre</span> <span>l'obertura</span> <span><</span><span>html</span><span>></span> <span>i</span> <span>de tancament</span> <span><</span><span>/</span> <span>html</span><span>></span><span>, també anomenat</span> <span>l'element</span> <span>arrel.</span></span></p> + +<p>{{HTMLRefTable("HTML root element")}}</p> + +<h2 id="Les_metadades_de_document" style="line-height: 30px; font-size: 2.14285714285714rem;">L<span id="result_box" lang="ca"><span>es metadades</span> <span>de document</span></span></h2> + +<p><span id="result_box" lang="ca"><span>Les Metadades</span> <span>contenen informació</span> <span>sobre</span> <span>la pàgina.</span> <span>Això</span> <span>inclou</span> <span>informació</span> <span>sobre</span> <span>estils</span><span>, scripts</span> <span>i</span> <span>dades per ajudar</span> el <span>us del programari</span> </span> ({{Glossary("search engine", "search engines")}}, {{Glossary("Browser","browsers")}}, etc.) <span lang="ca"><span>en la representació de</span> <span>la pàgina.</span> <span>Les Metadades</span> <span>d'estils</span> <span>i</span> <span>scripts</span> <span>es</span> <span>podem definir en la mateixa</span> <span>pàgina o mitjançan un</span> <span>enllaç a un altre</span> <span>arxiu que</span> <span>conté</span> <span>la informació.</span></span></p> + +<p>{{HTMLRefTable("HTML document metadata")}}</p> + +<h2 id="Seccionament_del_contingut" style="line-height: 30px; font-size: 2.14285714285714rem;">Seccionament del contingut</h2> + +<p><span id="result_box" lang="ca"><span>Els elements</span> <span>de seccionament </span></span><span lang="ca"><span>de contingut</span> ens <span>permet organitzar</span> <span>el contingut del</span> <span>document</span> <span>en parts</span> <span>lògiques.</span> <span>Utilitzeu els</span> <span>elements</span> <span>de seccionament</span> <span>per crear un</span> <span>esquema general</span> <span>sobre el</span> <span>contingut de la</span> <span>pàgina</span><span>, incloent la</span> <span>capçalera</span> <span>i el peu</span> <span>de pàgina</span> <span>de navegació,</span> <span>i</span> <span>els</span> <span>elements</span> <span>d'encapçalament</span> <span>per</span> <span>identificar</span> <span>seccions</span> <span>de contingut.</span></span> </p> + +<p>{{HTMLRefTable("HTML sections")}}</p> + +<h2 id="El_contingut_del_Texte" style="line-height: 30px; font-size: 2.14285714285714rem;">El contingut del Texte</h2> + +<p><span id="result_box" lang="ca"><span>Utilitzeu els</span> <span>elements</span> <span>de contingut</span> <span>de text</span> <span>HTML per</span> <span>organitzar</span> <span>blocs</span> <span>o seccions</span> <span>de contingut</span> <span>col·locats</span> <span>entre les etiquetes d'obertura</span> <span><</span><span>body</span><span>></span> <span>i</span> <span>tancament</span> <span><</span><span>/</span> <span>body</span><span>></span><span>.</span> Es <span>Important</span> <span>per</span> </span>{{Glossary("accessibility")}} and {{Glossary("SEO")}}<span lang="ca"><span>, aquests</span> <span>elements</span> <span>s'identifiquen</span> <span>amb</span> <span>el propòsit o</span> <span>l'estructura d'aquest</span> <span>contingut.</span></span> </p> + +<p>{{HTMLRefTable("HTML grouping content")}}</p> + +<h2 id="Semàntica_de_text_en_línia" style="line-height: 30px; font-size: 2.14285714285714rem;">Semàntica de text en línia</h2> + +<p><span id="result_box" lang="ca"><span>Utilitzeu</span> <span>la semàntica</span> <span>de text en</span> <span>línia</span> <span>HTML</span> <span>per definir el</span> <span>significat,</span> <span>l'estructura</span> <span>o l'estil</span> <span>d'una</span> <span>paraula</span><span>, línia</span> <span>o porció</span> <span>de text.</span></span></p> + +<p>{{HTMLRefTable("HTML text-level semantics")}}</p> + +<h2 id="Imatge_i_multimèdia" style="line-height: 30px; font-size: 2.14285714285714rem;">I<span id="result_box" lang="ca"><span>matge</span> <span>i</span> <span>multimèdia</span></span></h2> + +<p><span id="result_box" lang="ca"><span>HTML</span> <span>permet</span> <span>utilitzar diversos</span> <span>recursos</span> <span>multimèdia,</span> <span>com</span> <span>imatges</span><span>, àudio</span> <span>i vídeo.</span></span></p> + +<p>{{HTMLRefTable("multimedia")}}</p> + +<h2 id="Contingut_incrustat" style="line-height: 30px; font-size: 2.14285714285714rem;">Contingut incrustat</h2> + +<p><span id="result_box" lang="ca"><span>Més</span> <span>enllà dels</span> <span>continguts</span> <span>multimèdia</span> <span>HTML,</span> <span>es pot</span> <span>incloure</span> <span>moltes</span> <span>altres continguts</span><span>, encara que no</span> <span>sempre</span> <span>és</span> <span>fàcil</span> <span>d'interactuar</span> <span>amb</span> <span>ells</span><span>.</span></span></p> + +<p>{{HTMLRefTable({"include":["HTML embedded content"], "exclude":["multimedia"]})}}</p> + +<h2 id="Scripts" style="line-height: 30px; font-size: 2.14285714285714rem;">Scripts</h2> + +<p>{{HTMLRefTable("HTML scripting")}}</p> + +<h2 id="Edits" style="line-height: 30px; font-size: 2.14285714285714rem;">Edits</h2> + +<p>{{HTMLRefTable("HTML edits")}}</p> + +<h2 id="Contingut_de_la_Taula" style="line-height: 30px; font-size: 2.14285714285714rem;">Contingut de la Taula</h2> + +<p><span id="result_box" lang="ca"><span>Son un </span><span>conjunt</span> <span>d'elements</span> <span>que estàn fets</span> <span>específicament</span> <span>per manejar</span> <span>dades</span> <span>tabulars.</span></span></p> + +<p>{{HTMLRefTable("HTML tabular data")}}</p> + +<h2 id="Formularis" style="line-height: 30px; font-size: 2.14285714285714rem;">Formularis</h2> + +<p>{{HTMLRefTable("HTML forms")}}</p> + +<h2 id="Elements_Interactius" style="line-height: 30px; font-size: 2.14285714285714rem;">Elements Interactius</h2> + +<p>{{HTMLRefTable("HTML interactive elements")}}</p> + +<h2 id="Components_Web" style="line-height: 30px; font-size: 2.14285714285714rem;">Components Web</h2> + +<div class="note"><strong>Aquests </strong>elements es defineixen en la {{Glossary("W3C","World Wide Web Consortium")}} (W3C) <a href="http://www.w3.org/TR/components-intro/" title="http://www.w3.org/TR/components-intro/">Collecció d'especificacions Components Web</a> en lloc de l'especificació HTML.</div> + +<p>{{HTMLRefTable({"include":["Web Components"],"elements":["decorator","shadow"]})}}</p> + +<h2 id="Elements_Obsolets_y_desaprovats" style="line-height: 30px; font-size: 2.14285714285714rem;">Elements Obsolets y desaprovats</h2> + +<div class="warning" style="font-size: 14px;"> +<p>Alguns vells elements HTML van ser desaprovats i el seu ús està totalment desaconsellat. Mai els ha d'utilitzar per un nou projecte i canviar-los en vells projectes. S'enumeren aquí, unicament, per informació.</p> +</div> + +<p>{{HTMLRefTable({"include":["Deprecated","Obsolete"]})}}</p> diff --git a/files/ca/web/html/element/input/index.html b/files/ca/web/html/element/input/index.html new file mode 100644 index 0000000000..7bcb9e749a --- /dev/null +++ b/files/ca/web/html/element/input/index.html @@ -0,0 +1,1532 @@ +--- +title: <input> +slug: Web/HTML/Element/input +tags: + - Element + - Forms + - HTML + - HTML forms + - HTML input tag + - MakeBrowserAgnostic + - NeedsBrowserCompatibility + - NeedsMobileBrowserCompatibility + - Reference + - Web +translation_of: Web/HTML/Element/input +--- +<div>{{HTMLRef}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><input></code> s'utilitza per crear controls interactius per als formularis basats en la web per tal d'acceptar dades de l'usuari. Com un funciona <code>un <input></code> varia considerablement en funció del valor del seu atribut <code>type</code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, catalogable, enviable, reajustable, element associat a un formulari, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>. Si el {{htmlattrxref("type", "input")}} no és <code>hidden</code>, llavors l'element és etiquetable, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir una</span> <span>etiqueta d'inici</span> <span>i</span> <span>no ha de tenir</span> <span>una etiqueta</span> <span>de tancament</span></span>.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLInputElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>, i els següents.</p> + +<dl> + <dt>{{htmlattrdef("type")}}</dt> + <dd>El tipus de control que es vol veure. El tipus predeterminat és text, si no s'especifica aquest atribut. Els valors possibles són: + <ul> + <li><code>button</code>: <span class="short_text" id="result_box" lang="ca"><span>Un</span> <span>polsador</span> <span>amb</span> <span>cap comportament</span> <span>predeterminat</span></span> .</li> + <li><code>checkbox</code>: Una casella de verificació. Ha d'utilitzar l'atribut <strong>value</strong> per definir el valor presentat per aquest concepte. Utilitzeu l'atribut <strong>checked</strong> per indicar si aquest element està seleccionat. També pot utilitzar l'atribut <strong>indeterminate</strong> (que només es pot establir mitjançant programació) per indicar que la casella de verificació es troba en un estat indeterminat (en la majoria de plataformes, això dibuixa una línia horitzontal a través de la casella de verificació).</li> + <li><code>color</code>: {{HTMLVersionInline("5")}} Un control per especificar un color. Una interfície d'usuari de selector de color no té característiques requerides per acceptar altres colors simples com text (<a href="http://www.w3.org/TR/html5/forms.html#color-state-(type=color)">més informació</a>).</li> + <li><code>date</code>: {{HTMLVersionInline("5")}} <span id="result_box" lang="ca"><span>Un control</span> <span>per</span> <span>introduir una</span> <span>data</span> <span>(</span><span>any, mes</span> <span>i dia,</span> <span>sense</span> <span>temps</span><span>)</span></span>.</li> + <li><code>datetime</code>: {{HTMLVersionInline("5")}} {{deprecated_inline}} {{obsolete_inline}} <span id="result_box" lang="ca"><span>Un control</span> <span>per</span> <span>introduir una</span> <span>data</span> <span>i hora</span> <span>(</span><span>hora</span><span>, minut</span><span>, segon i</span> <span>fracció</span> <span>de segon</span><span>)</span> <span>segons la zona</span> <span>horària</span> <span>UTC</span><span>.</span> <strong><span>Aquesta característica</span> </strong><a href="https://github.com/whatwg/html/issues/336">s'ha tret de WHATWG HTML</a></span>.</li> + <li><code>datetime-local</code>: {{HTMLVersionInline("5")}} <span id="result_box" lang="ca"><span class="alt-edited">Un control per introduir una data i hora, sense zona horària.</span></span></li> + <li><code>email</code>: {{HTMLVersionInline("5")}} Un camp per a l'edició d'una adreça de correu electrònic. El valor d'entrada es valida per contenir una cadena buida o una única adreça vàlida de correu electrònic abans d'enviar. Les pseudo-classes CSS {{cssxref(":valid")}} i {{cssxref(":invalid")}} s'aplicaran, segons escaigui.</li> + <li><code>file</code>: Un control que permet a l'usuari seleccionar un arxiu. Utilitzeu l'atribut <strong>accept</strong> per definir els tipus d'arxius que el control pot seleccionar.</li> + <li><code>hidden</code>: Un control que no es mostra, però el valor s'envia al servidor..</li> + <li><code>image</code>: Gràfic d'un botó d'enviament. Ha d'utilitzar l'atribut <strong>src</strong> per definir l'origen de la imatge i l'atribut <strong>alt</strong> per definir un text alternatiu. Podeu utilitzar els atributs <strong>height</strong> i <strong>width</strong> per definir la mida de la imatge en píxels.</li> + <li><code>month</code>: {{HTMLVersionInline("5")}} <span id="result_box" lang="ca"><span>Un control</span> <span>per a la</span> <span>introducció d'un</span> <span>mes i</span> <span>any,</span> <span>sense</span> <span>zona</span> <span>horària</span></span>.</li> + <li><code>number</code>: {{HTMLVersionInline("5")}} <span id="result_box" lang="ca"><span>Un control</span> <span>per introduir un</span> <span>nombre</span> <span>de coma</span> <span>flotant.</span></span></li> + <li><code>password</code>: Un camp de text d'una sola línia el valor de la qual està enfosquida. Utilitzeu l'atribut <strong>maxlength</strong> per especificar la longitud màxima del valor que es pot introduir.</li> + <li><code>radio</code>: Un botó radio. Ha d'utilitzar l'atribut <strong>value</strong> per definir el valor presentat per aquest concepte. Utilitzeu l'atribut <strong>checked</strong> per indicar si l'element està seleccionat per defecte. Els botons radio que tenen el mateix valor per l'atribut <strong>name</strong> estan en el mateix "grup de botons radio". Només un botó radio en un grup pot ser seleccionat alhora.</li> + <li><code>range</code>: {{HTMLVersionInline("5")}} Un control per a la introducció d'un nombre el valor exacte no és important.Aquest tipus de control utilitza els següents valors per defecte si no s'especifiquen els atributs corresponents: + <ul> + <li><code>min</code>: 0</li> + <li><code>max</code>: 100</li> + <li><code>value</code>: <code>min</code> + (<code>max -</code> <code>min</code>) / 2, o <code>min</code> si <code>max</code> es més petit que <code>min</code></li> + <li><code>step</code>: 1</li> + </ul> + </li> + <li><code>reset</code>: Un botó que restableix el contingut del formulari als valors predeterminats.</li> + <li><code>search</code>: {{HTMLVersionInline("5")}} Un camp de text d'una sola línia per introduir cadenes de cerca. Els salts de línia s'eliminen automàticament del valor d'entrada.</li> + <li><code>submit</code>: <span class="short_text" id="result_box" lang="ca"><span>Un botó</span> <span>que envia</span> <span>el formulari.</span></span></li> + <li><code>tel</code>: {{HTMLVersionInline("5")}} Un control per introduir un número de telèfon. Els salts de línia s'eliminen automàticament del valor d'entrada, però cap altra sintaxi es obligatoria. Podeu utilitzar els atributs com <strong>pattern</strong> i <strong>maxlength</strong> per restringir els valors introduïts en el control. Les pseudo-classes CSS {{cssxref(":valid")}} i {{cssxref(":invalid")}} s'aplicaran, segons escaigui.</li> + <li><code>text</code>: Un camp de text d'una sola línia. Els salts de línia s'eliminen automàticament del valor d'entrada.</li> + <li><code>time</code>: {{HTMLVersionInline("5")}} Un control per introduir un valor de temps sense zona horària.</li> + <li><code>url</code>: {{HTMLVersionInline("5")}} Un camp per l'edició d'una adreça URL. El valor d'entrada es valida per contenir una cadena buida o una adreça URL absoluta vàlida abans d'enviar. Els salts de línia i espais en blanc inicials o finals s'eliminen automàticament del valor d'entrada. Podeu utilitzar els atributs <strong>pattern</strong> i <strong>maxlength</strong> per restringir els valors introduïts en el control. Les pseudo-classes CSS {{cssxref(":valid")}} and {{cssxref(":invalid")}} s'aplicaran, segons escaigui.</li> + <li><code>week</code>: {{HTMLVersionInline("5")}} Un control per a la introducció d'una data que consta d'un nombre de setmana-any i un nombre de setmana sense zona horària.</li> + </ul> + </dd> + <dt>{{htmlattrdef("accept")}}</dt> + <dd>Si el valor de l'atribut <strong>type</strong> és <code>file</code>, llavors aquest atribut indica els tipus d'arxius que accepta el servidor, en cas contrari s'ignorarà. El valor ha de ser una llista separada per comes d'especificadors de tipus de contingut únic: + <ul> + <li>Una extensió d'arxiu que comença amb el caràcter STOP (U+002E). (Per exemple.: ".jpg, .png, .doc")</li> + <li>Un tipus MIME vàlid sense extensions</li> + <li><code>audio/*</code> representa arxius de so {{HTMLVersionInline("5")}}</li> + <li><code>video/*</code> represent arxius de vídeo {{HTMLVersionInline("5")}}</li> + <li><code>image/*</code> representa arxius d'imatge {{HTMLVersionInline("5")}}</li> + </ul> + </dd> + <dt>{{htmlattrdef("accesskey")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline", "HTML5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un únic</span> <span>caràcter</span> <span>que l'usuari pot</span> <span>pressionar</span> <span>per canviar</span> <span>el focus</span> <span>d'entrada al</span> <span>control.</span> <span>Aquest</span> <span>atribut</span> <span>és global</span> <span>en HTML5.</span></span></dd> + <dt>{{htmlattrdef("mozactionhint")}} {{non-standard_inline}}</dt> + <dd>Especifica una "acció suggerida" que s'utilitza per determinar com etiquetar la tecla enter en dispositius mòbils amb teclats virtuals. Els valors admesos són <code>go</code>, <code>done</code>, <code>next</code>, <code>search</code>, i <code>send</code>. Aquests queden automàticament assignats a la cadena apropiada i són sensibles a majúscules.</dd> + <dt>{{htmlattrdef("autocapitalize")}} {{non-standard_inline}}</dt> + <dd>Aquest és un atribut no estàndard usat <a href="https://developers.google.com/web/updates/2015/04/autocapitalize">per Chrome</a> i Safari mòbil iOS, que controla si i com el valor de text ha de ser amb majúscula automàticament a mesura que s'introdueix/edita per l'usuari. Els valors ja no estan disponibles en iOS 5 i posterior. Els valors possibles són: + <ul> + <li><code>none</code>: Desactiva completament l'establiment automàtic en majúscules</li> + <li><code>sentences</code>: Posa automàticament en majúscula la primera lletra d'una oració.</li> + <li><code>words</code>: Posa automàticament en majúscula la primera lletra de les paraules.</li> + <li><code>characters</code>: Posa automàticament en majúscula tots els caràcters.</li> + <li><code>on</code>: {{deprecated_inline}} Desaprovat des de iOS 5.</li> + <li><code>off</code>: {{deprecated_inline}} Desaprovat des de iOS 5.</li> + </ul> + <a href="https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html#//apple_ref/doc/uid/TP40008058-autocapitalize">documentació <code>autocapitalize</code> Referència HTML Safari</a></dd> + <dt>{{htmlattrdef("autocomplete")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut indica si el valor del control pot ser completar automàticament pel navegador.</dd> + <dd><span class="short_text" id="result_box" lang="ca"><span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span></span>: + <ul> + <li><code>off</code>: L'usuari ha d'introduir explícitament un valor en aquest camp per a cada ús, o el document proporciona el seu propi mètode d'autocompletat. El navegador no completa automàticament l'entrada.</li> + <li><code>on</code>: Es permet que el navegador completi automàticament el valor basat en valors que l'usuari hi hagi entrat en usos anteriors, però no obstant això no proporciona cap altra informació sobre quins tipus de dades es podria esperar que l'usuari entrés.</li> + <li><code>name</code>: <span class="short_text" id="result_box" lang="ca"><span>Nom complet</span></span></li> + <li><code>honorific-prefix: </code>Prefix or title (e.g. "Mr.", "Ms.", "Dr.", "Mlle")</li> + <li><code>given-name </code>(nom)</li> + <li><code>additional-name</code></li> + <li><code>family-name</code></li> + <li><code>honorific-suffix</code>: Suffix (e.g. "Jr.", "B.Sc.", "MBASW", "II")</li> + <li><code>nickname</code></li> + <li><code>email</code></li> + <li><code>username</code></li> + <li><code>new-password</code>: Una nova contrasenya (per exemple, en crear un compte o canviar una contrasenya)</li> + <li><code>current-password</code></li> + <li><code>organization-title</code>: Càrrec del lloc de treball (e.g. "Software Engineer", "Senior Vice President", "Deputy Managing Director")</li> + <li><code>organization</code></li> + <li><code>street-address</code></li> + <li><code>address-line1</code>, <code>address-line2</code>, <code>address-line3</code>, <code>address-level4</code>, <code>address-level3</code>, <code>address-level2</code>, <code>address-level1</code></li> + <li><code>country</code></li> + <li><code>country-name</code></li> + <li><code>postal-code</code></li> + <li><code>cc-name</code>: Nom complet, tal com figura en l'instrument de pagament</li> + <li><code>cc-given-name</code></li> + <li><code>cc-additional-name</code></li> + <li><code>cc-family-name</code></li> + <li><code>cc-number</code>: <span id="result_box" lang="ca"><span>Codi que</span> <span>identifica</span> <span>l'instrument de</span> <span>pagament</span> <span>(</span><span>per exemple, el</span> <span>número de targeta de</span> <span>crèdit</span><span>)</span></span></li> + <li><code>cc-exp:</code> Data de caducitat <span id="result_box" lang="ca"><span>de l'instrument de</span> <span>pagament</span></span></li> + <li><code>cc-exp-month</code></li> + <li><code>cc-exp-year</code></li> + <li><code>cc-csc</code>: Codi de seguretat <span id="result_box" lang="ca"><span>de l'instrument de</span> <span>pagament</span></span></li> + <li><code>cc-type</code>: Tipy d'<span id="result_box" lang="ca"><span>instrument de</span> <span>pagament</span></span> (e.g. Visa)</li> + <li><code>transaction-currency</code></li> + <li><code>transaction-amount</code></li> + <li><code>language</code>: <span class="short_text" id="result_box" lang="ca"><span>Idioma preferit;</span> <span>Vàlid</span> l'<span>etiqueta</span> <span>d'idioma</span> <span>BCP</span> <span>47</span></span></li> + <li><code>bday</code></li> + <li><code>bday-day</code></li> + <li><code>bday-month</code></li> + <li><code>bday-year</code></li> + <li><code>sex</code>: <span id="result_box" lang="ca"><span>La identitat</span> <span>de gènere</span> <span>(</span><span>per</span> <span>exemple</span> <span>femella</span><span>,</span> <span>fa'afafine</span><span>)</span><span>;</span> <span>Text</span> <span>lliure</span><span>, no hi ha</span> <span>salts</span> <span>de línia</span></span></li> + <li><code>tel</code></li> + <li><code>url</code>: Pàgina d'inici o altra pàgina web corresponent a l'empresa, persona, adreça, o informació de contacte en els altres camps relacionats amb aquest camp</li> + <li><code>photo</code>: Fotografia, icona, o una altra imatge que corresponguia a l'empresa, persona, adreça, o informació de contacte en els altres camps relacionats amb aquest camp</li> + </ul> + + <p>Veure <a href="https://html.spec.whatwg.org/multipage/forms.html#autofill">WHATWG Standard</a> per informació més detallada.</p> + + <p>Si l'atribut <strong>autocomplete</strong> no s'especifica en un element d'entrada, llavors el navegador utilitza el valor de l'atribut <strong>autocomplete</strong> de l'element <code><input></code> propietari del formulari. El propietari del formulari és o bé l'element <code>form</code> en que l'element <code><input></code> és un descendent, o l'element form en que el <strong>id</strong> és especificat per l'atribut <strong>form</strong> de l'element input. Per obtenir més informació, consulteu l'attribute {{htmlattrxref("autocomplete", "form")}} en {{HTMLElement("form")}}.</p> + + <p>L'atribut <strong>autocomple</strong> també controla si Firefox, a diferència d'altres navegadors, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">persisteix l'estat dinàmic deshabilitat i (si escau) checkedness dinàmic</a> d'un <code><input></code> a través de les càrregues de pàgines. La funció de persistència està activat per defecte. En establir el valor de l'atribut <strong>autocomplete</strong> a <code>off</code> desactiva aquesta. Això funciona fins i tot quan l'atribut <strong>autocomplete</strong> preferis que no s'apliques normalment en el <code><input></code> en virtut del seu <strong>type</strong>. Veure{{bug(654072)}}.</p> + Per a la majoria dels navegadors moderns (incloent Firefox 38+, Google Chrome 34+, 11+ IE) establir l'atribut <strong>autocomplete</strong> <em>no</em> impedirà que l'administrador de contrasenyes del navegador preguntar a l'usuari si desitja emmagatzemar els camps d'inici de sessió (nom d'usuari i contrasenya) i, si estan d'acord, de fer-ho de forma automàtica a l'inici de sessió de la propera vegada que l'usuari visiti la pàgina. Veure <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields">L'atribut autocomplete i els camps d'inici de sessió</a>.</dd> + <dt>{{htmlattrdef("autocorrect")}} {{non-standard_inline}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Aquest és un atribut no estàndard amb el suport de Safari que s'utilitza per controlar si s'ha d'habilitar la correcció automàtica quan l'usuari està entrant/editan el valor de text del <input>. Els posibles valors del atribut son:</span></span> + <ul> + <li><code>on</code>: Activar la correcció automàtica</li> + <li><code>off</code>: Desactivar la correcció automàtica</li> + </ul> + <a href="https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html#//apple_ref/doc/uid/TP40008058-autocorrect"><code>documentació autocorrect</code> Referència HTML Safari</a></dd> + <dt>{{htmlattrdef("autofocus")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut booleà permet especificar que un control de formulari ha de tenir el focus d'entrada quan es carrega la pàgina, llevat que l'usuari el redefineixi, per exemple escrivint en un control diferent. Només un element de formulari en un document pot tenir l'atribut <strong>autofocus</strong>, el qual és un valor booleà. No es pot aplicar si l'atribut <strong>type</strong> està configurat com ocult (és a dir, no es pot establir automàticament el focus a un control ocult). Recordeu que l'enfocament del control pot ocórrer abans de l'activació de <a href="https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded">l'event DOMContentLoaded.</a></dd> + <dt>{{htmlattrdef("capture")}}</dt> + <dd> + <p>Quan el valor de l'atribut type és <code>file</code>, la presència d'aquest atribut booleà indica que la captura dels medis és fa directament des de l'entorn del dispositiu mitjançant un <a href="https://www.w3.org/TR/html-media-capture/#dfn-media-capture-mechanism">mecanisme de captura dels medis</a> preferits.</p> + </dd> + <dt>{{htmlattrdef("checked")}}</dt> + <dd> + <p>Quan el valor de l'atribut <strong>type</strong> és <code>radio</code> o <code>checkbox</code>, la presència d'aquest atribut booleà indica que el control està seleccionat per defecte, altrament s'ignora.</p> + + <p>Firefox, a diferència d'altres navegadors, per defecte, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">persistirà la comprovació dinàmica de l'estat</a> d'un <code><input></code> a través de les càrregues de les pàgines. Utilitzar l'atribut {{htmlattrxref("autocomplete","input")}} per controlar aquesta funció.</p> + </dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd> + <p>Aquest atribut booleà indica que el control de formulari no està disponible per a la interacció. En particular, l'event <code>click</code> <a href="https://html.spec.whatwg.org/multipage/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute">no serà enviat</a> en els controls deshabilitats. A més, el valor d'un control deshabilitat no s'envia amb el formulari.</p> + + <p>Firefox, a diferència d'altres navegadors, per defecte, <a href="http://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">persisteixi l'estat dinàmic desactivat</a> d'un <code><input></code> a través de les càrregues de les pàgines. Utilitzar l'atribut {{htmlattrxref("autocomplete","input")}} per controlar aquesta funció.</p> + </dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline("5")}}</dt> + <dd>L'element formulari al que està associat amb un element input (el seu <em>propietari de formulari</em>). El valor de l'atribut ha de ser un <strong>id</strong> d'un element {{HTMLElement ( "form")}} del mateix document. Si no s'especifica aquest atribut, aquest element <code><input></code> ha de ser un descendent d'un element {{HTMLElement ( "form")}}. Aquest atribut li permet col·locar elements <code><input></code> en qualsevol part d'un document, no només com a descendents dels seus elements de formulari. Una entrada només pot associar-se a un formulari.</dd> + <dt>{{htmlattrdef("formaction")}} {{HTMLVersionInline("5")}}</dt> + <dd>L'URI d'un programa que processa la informació presentada per l'element input, si es tracta d'un botó d'enviament o una imatge. Si s'especifica, reemplaça l'atribut {{htmlattrxref ( "action", "form")}} propietari del formulari de l'element.</dd> + <dt>{{htmlattrdef("formenctype")}} {{HTMLVersionInline("5")}}</dt> + <dd>Si l'element d'entrada és un botó d'enviament o imatge, aquest atribut especifica el tipus de contingut que s'utilitza per enviar el formulari al servidor. Els valors possibles són: + <ul> + <li><code>application/x-www-form-urlencoded</code>: El valor per defecte si no s'especifica l'atribut.</li> + <li><code>multipart/form-data</code>: Utilitzeu aquest valor si està utilitzant un element <code><input></code> amb l'atribut {{htmlattrxref("type","input")}} establert a <code>file</code>.</li> + <li><code>tex/pla</code></li> + </ul> + + <p>Si s'especifica aquest atribut, anul·la l'atribut {{htmlattrxref("enctype","form")}} del propietari del formulario de l'element..</p> + </dd> + <dt>{{htmlattrdef("formmethod")}} {{HTMLVersionInline("5")}}</dt> + <dd>Si l'element d'entrada és un botó d'enviament o la imatge, aquest atribut especifica el mètode HTTP que el navegador utilitza per enviar el formulari. Els valors possibles són: + <ul> + <li><code>post</code>: Les dades del formulari s'inclouen en el cos del formulari i s'envia al servidor.</li> + <li><code>get</code>: Les dades del formulari s'adjuntan a l'atribut URI, amb un '?' com un separador, i l'URI resultant s'envia al servidor. Utilitzeu aquest mètode quan el formulari no té efectes secundaris i conté només caràcters ASCII.</li> + </ul> + + <p>Si s'especifica, aquest atribut anul·la l'atribut {{htmlattrxref("method","form")}} del propietari del formulario de l'element.</p> + </dd> + <dt>{{htmlattrdef("formnovalidate")}} {{HTMLVersionInline("5")}}</dt> + <dd> + <p>Si l'element input és un botó d'enviament o imatge, aquest atribut booleà especifica que el formulari no ha de ser validat quan s'envïi. Si no s'especifica aquest atribut, s'anul·la l'atribut {{htmlattrxref("novalidate","form")}} del propietari del formulario de l'element.</p> + </dd> + <dt>{{htmlattrdef("formtarget")}} {{HTMLVersionInline("5")}}</dt> + <dd>Si l'element input és un botó d'enviament o imatge, aquest atribut és un nom o una paraula clau que indica on s'ha de mostrar la resposta que es rep després d'enviar el formulari. Es tracta d'un nom, o una paraula clau per a un <em>context de navegació</em> (per exemple, pestanya, finestra o marc en línia). Si no s'especifica aquest atribut, s'anul·la l'atribut {{htmlattrxref("target", "form")}} del propietari del formulario dels elements. Les següents paraules clau tenen un significat especial: + <ul> + <li>_<code>self</code>: Carregar la resposta en el mateix context de navegació com l'actual. Aquest valor és el valor per defecte si no s'especifica l'atribut.</li> + <li><code>_blank</code>: Carregar la resposta en un nou context de navegació sense nom.</li> + <li><code>_parent</code>: Carregar la resposta en el context de navegació del pare de l'actual. Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + <li><code>_top</code>: Carregar la resposta en el context de navegació de nivell superior (és a dir, el context de navegació que és un ancestre de l'actual, i no té pare). Si no hi ha pare, aquesta opció es comporta de la mateixa manera que <code>_self</code>.</li> + </ul> + </dd> + <dt>{{htmlattrdef("height")}} {{HTMLVersionInline("5")}}</dt> + <dd>Si el valor de l'atribut <strong>type</strong> és <code>image</code>, aquest atribut defineix l'altura de la imatge mostrada per al botó.</dd> + <dt>{{htmlattrdef("incremental")}} {{non-standard_inline}}</dt> + <dd>Aquest és un atribut no estàndard amb el suport de WebKit (Safari) i Blink (Chrome) que només s'aplica quan <strong>type</strong> és <code>serach</code>. Si l'atribut és present, sense importar quin és el seu valor, els elements <code><input></code> desencadena esdeveniments <a href="/en-US/docs/Web/Events/search"><code>search</code></a> que l'usuari edita el valor de text. L'esdeveniment només s'activa després d'un temps d'espera definit per la implementació que ha transcorregut des de l'última pulsació de tecla; noves pulsacions de tecles restableixen el temps d'espera. En altres paraules, l'activació de l'esdeveniment es retornat. Si l'atribut està absent, l'esdeveniment <a href="/en-US/docs/Web/Events/search"><code>search</code></a> només s'activa quan l'usuari inicia una recerca explícita (per exemple, prement la tecla Retorn mentre es trobin dins el camp). <a href="https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/Attributes.html#//apple_ref/doc/uid/TP40008058-incremental"> documentation <code>incremental</code> HTML Reference Safari.</a></dd> + <dt>{{htmlattrdef("inputmode")}} {{HTMLVersionInline("5")}}</dt> + <dd>Un suggeriment per al navegador per a quin teclat es mostrarà. Aquest atribut s'aplica quan el valor de l'atribut <strong>type</strong> és text, password, email o url. Els valors possibles són: + <ul> + <li><code>verbatim</code>: Alfanumèric, contingut que no sigui amb prosa com noms d'usuari i contrasenyes.</li> + <li><code>latin</code>: Entrada amb alfabet <em>llatí</em> en l'idioma preferit de l'usuari amb ajudes a escriure com activar la predicció de text. Per a la comunicació de persona a ordinador, com ara quadres de cerca.</li> + <li><code>latin-name</code>: Com <em>llatí</em>, però per als noms humans.</li> + <li><code>latin-prose</code>: Com <em>llatí,</em> però amb ajudes d'escriptura molt més agressives. Per comunicació humà a humà com la missatgeria instantània o correu electrònic.</li> + <li><code>full-width-latin</code>: Com prosa <em>llatí</em>, però per a les llengües secundàries de l'usuari.</li> + <li><code>kana</code>: Entrada Kana o romaji, entrada típicament hiragana, utilitzant caràcters d'ample complet, amb suport per a la conversió a kanji. Destinat a l'entrada de text japonès.</li> + <li><code>katakana</code>: Entrada Katakana, utilitzant caràcters d'ample complet, amb suport per a la conversió a kanji. Destinat a l'entrada de text japonès.</li> + <li><code>numeric</code>: Entrada d'un número, incloent tecles per als dígits 0 a 9, el caràcter separador de milers preferit de l'usuari, i el caràcter per indicar nombres negatius. Destinat als codis numèrics, per exemple, números de targetes de crèdit. Per als nombres reals, prefereixen utilitzar <input type="number">.</li> + <li><code>tel</code>: Entrada de telèfon, incloent l'asterisc i la tecla numeral. Utilitzeu en el seu lloc si és possible <input type = "tel">.</li> + <li><code>email</code>: Entrada de correu electrònic. Utilitzeu en el seu lloc si és possible <input type = "email">.</li> + <li><code>url</code>: Entrada d'URL. Utilitzeu en el seu lloc si és possible <input type = "url">.</li> + </ul> + </dd> + <dt>{{htmlattrdef("list")}} {{HTMLVersionInline("5")}}</dt> + <dd>Identifica una llista d'opcions predefinides per suggerir a l'usuari. El valor ha de ser l'<strong>id</strong> d'un element {{HTMLElement("datalist")}} en el mateix document. El navegador mostra únicament les opcions que són valors vàlids per a aquest element d'entrada. Aquest atribut s'ignora quan els valors de l'atribut type son <code>hidden</code>, <code>checkbox</code>, <code>radio</code>, <code>file</code>, o un tipus button.</dd> + <dt>{{htmlattrdef("max")}} {{HTMLVersionInline("5")}}</dt> + <dd>El valor màxim (numèric o de data i hora) per a aquest element, que no ha de ser inferior al seu valor mínim (atribut <strong>min</strong>).</dd> + <dt>{{htmlattrdef("maxlength")}}</dt> + <dd>Si el valor de l'atribut <strong>type</strong> és <code>text</code>, <code>email</code>, <code>search</code>, <code>password</code>, <code>tel</code> o <code>url</code>, aquest atribut especifica el nombre màxim de caràcters (en punts de codi Unicode) que l'usuari pot entrar; per a altres tipus de control, s'ignora. Es pot excedir el valor de l'atribut <strong>size</strong>. Si no s'especifica, l'usuari pot introduir un nombre il·limitat de caràcters. Especificar un nombre negatiu dóna com resultat el comportament predeterminat; és a dir, l'usuari pot introduir un nombre il·limitat de caràcters. La restricció s'avalua només quan s'ha canviat el valor de l'atribut.</dd> + <dt>{{htmlattrdef("min")}} {{HTMLVersionInline("5")}}</dt> + <dd>El valor mínim (numèric o de data i hora) per a aquest element, que no ha de ser superior al seu valor màxim (atribut <strong>max</strong>).</dd> + <dt>{{htmlattrdef("minlength")}} {{HTMLVersionInline("5")}}</dt> + <dd>i el valor de l'atribut <strong>type</strong> és <code>text</code>, <code>email</code>,<code> search</code>, <code>password</code>, <code>tel</code>, or <code>url,</code> aquest atribut especifica el nombre mínim de caràcters (en punts de codi Unicode) que l'usuari pot entrar; per a altres tipus de control, s'ignora.</dd> + <dt>{{htmlattrdef("multiple")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut booleà indica si l'usuari pot introduir més d'un valor. Aquest atribut s'aplica quan l'atribut <strong>type</strong> s'estableix en <code>email</code> o <code>file</code>; en cas contrari, s'ignora.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd><span id="result_box" lang="ca"><span>El nom</span> <span>del control,</span> <span>que es presenta</span> <span>amb</span> <span>les dades del</span> <span>formulari.</span></span></dd> + <dt>{{htmlattrdef("pattern")}} {{HTMLVersionInline("5")}}</dt> + <dd>Una expressió regular en que el valor del control es compara. El patró ha de coincidir amb la totalitat del valor, i no només un subconjunt. Utilitzeu l'atribut <strong>title</strong> per descriure el patró per ajudar l'usuari. Aquest atribut s'aplica quan el valor de l'atribut <strong>type</strong> és <code>search</code>, <code>tel</code>, <code>url</code>, <code>email</code> o <code>password</code>; en cas contrari, s'ignora. El llenguatge d'expressions regulars és el mateix que l'algoritme de JavaScript {{jsxref("RegExp")}}, amb el paràmetre <code>'u'</code> que fa que sigui tractar el patró com una seqüència de punts de codi Unicode. El patró no està envoltat per barres inclinades.</dd> + <dt>{{htmlattrdef("placeholder")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un suggeriment</span> <span>a l'usuari</span> <span>del que</span> <span>pot ser introduït</span> <span>en el control.</span> <span>El text del</span> <span>marcador</span> <span>no ha de contenir</span> <span>retorns</span> <span>de carro</span> <span>o</span> <span>salts</span> <span>de líni.</span></span> + <div class="note"><strong>Nota:</strong> No utilitzeu el atribut marcador de posició en lloc d'un element {{HTMLElement("label")}}. Els seus propòsits són diferents: l'atribut {{HTMLElement("label")}} descriu el paper de l'element de formulari; és a dir, que indica quin tipus d'informació s'espera, l'atribut de marcador de posició és una pista sobre el format del contingut que ha de prendre. Hi ha casos en què l'atribut marcador de posició no es mostra a l'usuari, pel que el formulari ha de ser comprensible sense ell.</div> + </dd> + <dt>{{htmlattrdef("readonly")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut indica que l'usuari no pot modificar el valor del control. El valor de l'atribut és irrellevant. Si necessita accés de lectura i escriptura al valor d'entrada, <em>no</em> afegiu l'atribut "<strong>readonly</strong>". S'ignora si el valor de l'atribut <strong>type</strong> és <code>hidden</code>, <code>range</code>, <code>color</code>, <code>checkbox</code>, <code>radi</code>o, file o un type button (així com <code>button</code> o <code>submit</code>).</dd> + <dt>{{htmlattrdef("required")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut especifica que l'usuari ha d'omplir un valor abans d'enviar un formulari. No es pot utilitzar quan l'atribut<strong> type</strong> és <code>hidden</code>, <code>image</code> o un type button (<code>submit</code>, <code>reset</code>, o <code>button</code>). Les pseudo-classes CSS {{cssxref(":optional")}} i {{cssxref(":required")}} s'aplicaran al camp segons correspongui.</dd> + <dt>{{htmlattrdef("results")}} {{non-standard_inline}}</dt> + <dd>Aquest és un atribut no estàndard amb el suport de Safari que només s'aplica quan <strong>type</strong> és <code>search</code>. S'utilitza per controlar el nombre màxim d'entrades que han de mostrar-se en la llista desplegable nadiva de <code><input></code> de les consultes de cerca anteriors.El seu valor ha de ser un enter decimal no negatiu.</dd> + <dt>{{htmlattrdef("selectionDirection")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">La direcció en què es va produir la selecció. Això és "</span></span>forward<span lang="ca"><span class="alt-edited">" (cap endevant) si la selecció es va fer d'esquerra a dreta en una configuració regional LTR o de dreta a esquerra en un local RTL, o "</span></span>backward<span lang="ca"><span class="alt-edited">" (</span></span><span id="result_box" lang="ca"><span class="alt-edited">cap enrere</span></span>) <span lang="ca"><span class="alt-edited">si la selecció es va fer en la direcció oposada. Això pot ser "</span></span>none<span lang="ca"><span class="alt-edited">" (cap) si la direcció de selecció és desconeguda.</span></span></dd> + <dt>{{htmlattrdef("selectionEnd")}}</dt> + <dd>El desplaçament en el contingut de text de l'element de l'últim caràcter seleccionat. Si no hi ha selecció, aquest valor indica el desplaçament al caràcter següent a la posició actual del cursor d'entrada de text (és a dir, la posició que ocuparia del següent caràcter teclejat).</dd> + <dt>{{htmlattrdef("selectionStart")}}</dt> + <dd>El desplaçament en el contingut de text de l'element del caràcter seleccionat en primer lloc. Si no hi ha selecció, aquest valor indica el desplaçament al caràcter següent a la posició actual del cursor d'entrada de text (és a dir, la posició que ocuparia del següent caràcter teclejat).</dd> + <dt>{{htmlattrdef("size")}}</dt> + <dd>La mida inicial del control. Aquest valor és en píxels llevat que el valor de l'atribut <strong>type</strong> és <code>text</code> o <code>password</code>, en aquest cas, és un nombre enter de caràcters. A partir d'HTML5, aquest atribut s'aplica només quan l'atribut <strong>type</strong> s'estableix en <code>text</code>, <code>search</code>, <code>tel</code>, <code>url</code>, <code>email</code> o <code>password</code>; en cas contrari, s'ignora. A més, la mida ha de ser més gran que zero. Si no s'especifica una mida, s'utilitza un valor predeterminat de 20. HTML5 es limita a establir "l'agent d'usuari ha d'assegurar que almenys molts caràcters siguin visibles", però diferents caràcters poden tenir diferents amplades en certes fonts; en alguns navegadors, una determinada cadena de caràcters <em>x</em> no serà completament visible, fins i tot si es defineix la mida d'almenys en <em>x</em>.</dd> + <dt>{{htmlattrdef("spellcheck")}} {{HTMLVersionInline("5")}}</dt> + <dd>Establir el valor d'aquest atribut en <code>true</code> indica que l'element ha de tenir la seva ortografia i gramàtica comprovada. El valor per omissió indica que l'element té que actuar d'acord amb un comportament predeterminat, possiblement basat en el propi valor <code>spellcheck</code> de l'element pare . El valor <code>false</code> indica que l'element no ha de ser comprovat</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>Si el valor de l'atribut <strong>type</strong> es <code>image</code>, aquest atribut especifica una URI per a la ubicació d'una imatge que es mostrarà en el botó gràfic d'enviament; en cas contrari, s'ignora.</dd> + <dt>{{htmlattrdef("step")}} {{HTMLVersionInline("5")}}</dt> + <dd>Treballa amb dels atributs <strong>mín</strong> i <strong>max</strong> per limitar els increments en la qual es pot establir un valor numèric o de data i hora. Pot ser una cadena qualsevol o d'un nombre de coma flotant positiva. Si aquest atribut no està establert a qualsevol, el control només accepta valors en múltiples del valor de pas major que el mínim.</dd> + <dt>{{htmlattrdef("tabindex")}} element-specific in {{HTMLVersionInline(4)}}, global in {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>La posició</span> <span>de l'element</span> <span>en l'ordre</span> <span>de navegació</span> <span>de pestanyes</span> <span>del document</span> <span>actual.</span></span></dd> + <dt>{{htmlattrdef("usemap")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline", "HTML5")}}</dt> + <dd> + <p>El nom d'un element {{HTMLElement("map")}} que s'utilitzarà com un mapa d'imatge.</p> + </dd> + <dt>{{htmlattrdef("value")}}</dt> + <dd>El valor inicial del control. Aquest atribut és opcional, excepte quan el valor de l'atribut <strong>type</strong> és <code>radio</code> o <code>checkbox</code><br> + Recordeu que en tornar a carregar la pàgina, Gecko i IE <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=46845#c186">ignoraran el valor especificat en el codi HTML</a>, si el valor va ser canviat abans de la recàrrega</dd> + <dt>{{htmlattrdef("webkitdirectory")}} {{non-standard_inline}}</dt> + <dd>Aquest atribut booleà indica si el selector s'utilitza quan l'atribut <strong>type</strong> és <code>file</code> per permetre la selecció de només directoris.</dd> + <dt>{{htmlattrdef("width")}} {{HTMLVersionInline("5")}}</dt> + <dd>Si el valor de l'atribut <strong>type</strong> és <code>image</code>, aquest atribut defineix l'amplada de la imatge visualitzada per al botó.</dd> + <dt>{{htmlattrdef("x-moz-errormessage")}} {{non-standard_inline}}</dt> + <dd>Aquesta extensió de Mozilla li permet especificar el missatge d'error que es mostrarà quan un camp no és valida correctament.</dd> +</dl> + +<h2 id="Notes">Notes</h2> + +<h3 id="Entrades_d'arxius">E<span class="short_text" id="result_box" lang="ca"><span>ntrades</span> <span>d'arxius</span></span></h3> + +<div class="note"> +<p><strong>Not:</strong> A partir de {{Gecko("2.0")}}, cridar al mètode click() en un element <code><input></code> de type "file" obre el selector d'arxius i permet a l'usuari seleccionar arxius. Consulti <a href="https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications">Ús d'arxius d'aplicacions web</a> per obtenir un exemple i més detalls.</p> +</div> + +<p>No es pot establir el valor d'un selector de fitxers a partir d'un script; fer alguna cosa com el següent no té efecte:</p> + +<pre class="brush: js">var e = getElementById("someFileInputElement"); +e.value = "foo"; +</pre> + +<h3 id="Missatges_d'error">Missatges d'error</h3> + +<p>Si voleu que Firefox presenti un missatge d'error personalitzat quan un camp no pot validar, podeu utilitzar l'atribut <code>x-moz-errormessage</code> per fer-ho:</p> + +<pre class="brush: html"><input type="email" x-moz-errormessage="Please specify a valid email address."> +</pre> + +<p>Tingueu en compte, però, que això no és estàndard i no tindrà efecte sobre altres navegadors.</p> + +<h2 id="Exemples">Exemples</h2> + +<h2 id="Exemple_1_Caixa_d'entrada_senzilla">Exemple 1; <span class="short_text" id="result_box" lang="ca"><span>Caixa</span> <span>d'entrada</span> <span>senzilla</span></span></h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>A basic input</p> +<input type="text" value="Type here"> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Example_1_Simple_input_box', '', '100', '', 'Web/HTML/Element/input') }}</p> + +<h2 id="Exemple_2_Escenari_de_cas_d'ùs_comú">Exemple 2; Escenari de cas d'ùs comú</h2> + +<h3 id="HTML_2">HTML</h3> + +<pre class="brush: html"><p>A common form that includes input tags</p> +<form action="getform.php" method="get"> + <label>First name: <input type="text"></label><br> + <label>Last name: <input type="text"></label><br> + <label>E-mail: <input type="email"></label><br> +<input type="submit" value="Submit"> +</form> +</pre> + +<h3 id="Resultat_2">Resultat</h3> + +<p>{{ EmbedLiveSample('Example_2_Common_use-case_scenario', '', '200', '', 'Web/HTML/Element/input') }}</p> + +<h3 id="Ús_de_mozactionhint_en_Firefox_mòbil">Ús de mozactionhint en Firefox mòbil</h3> + +<p>Es pot utilitzar l'atribut {{htmlattrxref("mozactionhint", "input")}} per especificar el text de l'etiqueta de la tecla Retorn al teclat virtual quan el formulari es representa a Firefox mòbil. Per exemple, per tenir una etiqueta a "Següent", pot fer això:</p> + +<pre class="brush: html"><input type="text" mozactionhint="next"> +</pre> + +<p>El resultat és:</p> + +<p><a href="/@api/deki/files/4970/=mozactionhint.png"><img alt="mozactionhint.png" class="default internal" src="/@api/deki/files/4970/=mozactionhint.png?size=webview" style="border: 1px solid black; height: 350px; width: 210px;"></a></p> + +<h2 id="Localització">Localització</h2> + +<p>Les entrades permeses per a certs tipus <input> depenen de la configuració regional. En algunes localitats, 1,000.00 és un nombre vàlid, mentre que en altres localitats la forma vàlida d'ingressar aquest nombre és 1.000,00.</p> + +<p>Firefox utilitza la següent heurística per determinar la configuració regional per validar l'entrada de l'usuari (almenys per <code>type</code> = <code>"number"</code>):</p> + +<ul> + <li>Prova l'idioma especificat per un atribut <code>lang/xml:lang</code> en l'element o qualsevol dels seus pares;</li> + <li>Prova l'idioma especificat per qualsevol capçalera HTTP Content-Language o</li> + <li>Si no s'especifica cap, utilitzeu la configuració regional del navegador.</li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-input-element', '<input>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML Media Capture', '#the-capture-attribute','<input capture>')}}</td> + <td>{{Spec2('HTML Media Capture')}}</td> + <td>Afegeix l'element <code>capture</code></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-input-element', '<input>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.4', '<form>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)<sup>[28]</sup></th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=button</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>3</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=checkbox</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}<br> + {{CompatGeckoDesktop("1.9.2")}}<sup>[2]</sup></td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=color</td> + <td>21.0</td> + <td>{{CompatGeckoDesktop("29.0")}}</td> + <td>{{CompatNo}}</td> + <td>11.01</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>type=date</td> + <td>5.0<sup>[24]</sup></td> + <td>{{CompatNo}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>type=datetime</td> + <td>{{CompatNo}}<sup>[4]</sup></td> + <td>{{CompatNo}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>type=datetime-local</td> + <td>5.0</td> + <td>{{CompatNo}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>type=email</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>type=file</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>3.02</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=hidden</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=image</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}<sup>[5]</sup></td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=month</td> + <td>5.0</td> + <td>{{CompatNo}}<sup>[6]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>type=number</td> + <td>6.0<sup>[7]</sup></td> + <td>{{CompatGeckoDesktop("29.0")}}</td> + <td>10<sup>[4]</sup></td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=password</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=radio</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}<br> + {{CompatGeckoDesktop("1.9.2")}}<sup>[2]</sup></td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=range</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("23.0")}}</td> + <td>10</td> + <td>10.62<sup>[8]</sup></td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=reset</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=search</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>11.01</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=submit</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=tel</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>11.01</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>type=text</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>type=time</td> + <td>5.0</td> + <td>{{CompatNo}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>type=url</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>type=week</td> + <td>5.0</td> + <td>{{CompatNo}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>accept=[file extension]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>10</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>accept=[MIME type]</td> + <td>8.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>10</td> + <td>10</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>accept=audio/*</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}<sup>[9]</sup></td> + <td>10</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>accept=video/*</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}<sup>[10]</sup></td> + <td>10</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>accept=image/*</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}<sup>[11]</sup></td> + <td>10</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>accept=[. + ext]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("37.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accesskey</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>6</td> + <td>1.0</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>mozactionhint</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>autocapitalize</td> + <td>43</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>autocomplete</td> + <td>17.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>5</td> + <td>9.6</td> + <td>5.2</td> + </tr> + <tr> + <td>autofocus</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.6</td> + <td>5.0</td> + </tr> + <tr> + <td>capture</td> + <td>Chrome for Android (0.16)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>checked</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>disabled</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}<sup>[25]</sup></td> + <td>6</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>form</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formaction</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>5.2</td> + </tr> + <tr> + <td>formenctype</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formmethod</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>5.2</td> + </tr> + <tr> + <td>formnovalidate</td> + <td>5.0<sup>[12]</sup></td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formtarget</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>5.2</td> + </tr> + <tr> + <td>height</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>1.0</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>incremental</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>inputmode</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>list</td> + <td>20.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.6</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>max</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>maxlength</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>min</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>minlength</td> + <td>40.0</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>multiple</td> + <td>1.0<sup>[13]</sup></td> + <td>{{CompatGeckoDesktop("1.9.2")}}<sup>[14]</sup><br> + {{CompatVersionUnknown}}<sup>[15]</sup></td> + <td>10</td> + <td>1.0<br> + 10.62<sup>[14]</sup><br> + 11.01<sup>[15]</sup></td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>name</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>pattern</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.6</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>placeholder</td> + <td>10.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>11.00</td> + <td>5.0</td> + </tr> + <tr> + <td>readonly</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>6<sup>[16] </sup></td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>required</td> + <td>5.0<br> + 10<sup>[17]</sup></td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>9.6</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>size</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>spellcheck</td> + <td>10.0</td> + <td>{{CompatGeckoDesktop("1.9.2")}}</td> + <td>10</td> + <td>11.0</td> + <td>4.0</td> + </tr> + <tr> + <td>src</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>2</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>step</td> + <td>6.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>10</td> + <td>10.62</td> + <td>5.0</td> + </tr> + <tr> + <td>tabindex</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>6<sup>[18]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>webkitdirectory</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>width</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>1.0</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=button</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[27]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=checkbox</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=color</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("27.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>type=date</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>5.0<sup>[23]</sup></td> + </tr> + <tr> + <td>type=datetime</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[23]</sup></td> + </tr> + <tr> + <td>type=datetime-local</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[23]</sup></td> + </tr> + <tr> + <td>type=email</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>3.1<sup>[19]</sup></td> + </tr> + <tr> + <td>type=file</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}<sup>[27]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[21]</sup></td> + </tr> + <tr> + <td>type=hidden</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=image</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=month</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[23]</sup></td> + </tr> + <tr> + <td>type=number</td> + <td>2.3</td> + <td>{{CompatGeckoMobile("29.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>4.0<sup>[19]</sup></td> + </tr> + <tr> + <td>type=password</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[22]</sup></td> + </tr> + <tr> + <td>type=radio</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=range</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>5.0</td> + </tr> + <tr> + <td>type=reset</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=search</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>4.0<sup>[22]</sup></td> + </tr> + <tr> + <td>type=submit</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[27]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>type=tel</td> + <td>2.3</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>3.1<sup>[22]</sup></td> + </tr> + <tr> + <td>type=text</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[27]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[22]</sup></td> + </tr> + <tr> + <td>type=time</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}<sup>[23]</sup></td> + </tr> + <tr> + <td>type=url</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>3.1<sup>[19]</sup></td> + </tr> + <tr> + <td>type=week</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>10.62</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>accept=[MIME type]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accept=audio/*</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accept=image/*</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}<sup>[26]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accept=video/*</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accept=[. + ext]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("37.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>accesskey</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>autocomplete</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>autofocus</td> + <td>3.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>capture</td> + <td>3.0</td> + <td>{{CompatGeckoMobile("10.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>6.0</td> + </tr> + <tr> + <td>checked</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>disabled</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>form</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formaction</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>5.0</td> + </tr> + <tr> + <td>formenctype</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formmethod</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>5.0</td> + </tr> + <tr> + <td>formnovalidate</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>formtarget</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>5.0</td> + </tr> + <tr> + <td>height</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>list</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>max</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}<sup>[20]</sup></td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>maxlength</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>min</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}<sup>[20]</sup></td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>minlength</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>27.0</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>multiple</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>name</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0</td> + </tr> + <tr> + <td>pattern</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>placeholder</td> + <td>2.3</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>11.10</td> + <td>4</td> + </tr> + <tr> + <td>readonly</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>required</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>size</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>spellcheck</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>11.0</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>src</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>step</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}<sup>[20]</sup></td> + <td>{{CompatUnknown}}</td> + <td>10.62</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>tabindex</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>webkitdirectory</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("49.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>width</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Això</span> <span>es va implementar</span> <span>en la versió 2</span> <span>o</span> <span>anterior.</span></span></p> + +<p>[2] <span id="result_box" lang="ca"><span>Implementat</span> <span>pel valor</span> </span><code>indeterminate</code>.</p> + +<p>[3] <span id="result_box" lang="ca"><span>Aquesta</span> <span>funció no</span> <span>està implementada</span> <span>encara</span></span> . Veure {{bug("825294")}}.</p> + +<p>[4] <span id="result_box" lang="ca"><span>És</span> <span>reconegut</span> <span>però no hi ha</span> <span>cap interfície</span> <span>d'usuari.</span></span></p> + +<p>[5] <span id="result_box" lang="ca"><span>Gecko</span> <span>2.0</span> <span>{</span><span>{</span><span>geckoRelease</span> <span>(</span><span>"</span><span>2.0</span><span>"</span><span>)</span><span>}</span><span>}</span> <span>només envia</span> <span>coordenades X</span> <span>i Y</span> <span>quan</span> <span>es</span> <span>fa clic,</span> <span>ja</span> <span>no és el nom</span> <span>/</span> <span>valor de l'element</span><span>.</span></span></p> + +<p>[6] <span id="result_box" lang="ca"><span>Aquesta</span> <span>funció no</span> <span>està implementada</span> <span>encara</span></span> . Veure {{bug("888320")}}.</p> + +<p>[7] <span id="result_box" lang="ca"><span>L</span><span>ocalització en</span> <span>Chrome</span> <span>11</span><span>.</span></span></p> + +<p>[8] Opera 11.01 <span id="result_box" lang="ca"><span>afegeix suport</span> <span>per a un</span> <span>valor</span> <span>predeterminat.</span></span></p> + +<p>[9] <span id="result_box" lang="ca"><span>Filtres</span> <span>per a les</span> <span>següents</span> <span>extensions</span> <span>d'arxiu</span> <span>d'àudio</span></span> : .aac, .aif, .flac, .iff, .m4a, .m4b, .mid, .midi, .mp3, .mpa, .mpc, .oga, .ogg, .ra, .ram, .snd, .wav, .wma.</p> + +<p>[10] <span id="result_box" lang="ca"><span>Filtres</span> <span>per a les</span> <span>següents</span> <span>extensions</span> <span>d'arxiu</span> <span>de video</span></span> : .avi, .divx, .flv, .m4v, .mkv, .mov, .mp4, .mpeg, .mpg, .ogm, .ogv, .ogx, .rm, .rmvb, .smil, .webm, .wmv, .xvid</p> + +<p>[11] <span id="result_box" lang="ca"><span>Filtres</span> <span>per a les</span> <span>següents</span> <span>extensions</span> <span>d'arxiu</span> <span>d'imatge</span></span>: .jpe, .jpg, .jpeg, .gif, .png, .bmp, .ico, .svg, .svgz, .tif, .tiff, .ai, .drw, .pct, .psp, .xcf, .psd, .raw</p> + +<p>[12] En 6.0 només funcionava amb el tipus de document HTML 5, el suport de validació en 7.0 va ser desactivat i tornat a habilitar en 10.0.</p> + +<p>[13] Suportat per <code>type="file"</code> i <code>type="email"</code> des de la versió 5.0.</p> + +<p>[14] Suportat per <code>type="file"</code>.</p> + +<p>[15] Suportat per <code>type="email"</code>.</p> + +<p>[16] Desaparegut per <code>type="checkbox"</code> and <code>type="radio"</code>.</p> + +<p>[17] Suportat per l'element {{HTMLElement("select")}} .</p> + +<p>[18] Els elements amb <code>tabindex</code> > <code>0</code> no son navegables.</p> + +<p>[19] Safari Mobile per iOS s'aplica un estil predeterminat de {{cssxref("opacity")}}: 0.4 a elements <code><input></code> de text desactivats. Altres navegadors més importants actualment no comparteixen aquest estil particular per defecte en</p> + +<p>[20] UI podria romandre sense aplicar-se.</p> + +<p>[21] <a href="http://blog.uploadcare.com/post/97884147203/you-cannot-upload-files-to-a-server-using-mobile-safari">La càrrega d'arxius es van trencar</a> a Mobile Safari per iOS 8.0 i 8.0.1. L'error es va corregir en iOS 8.0.2.</p> + +<p>[22] Safari Mobile per iOS s'aplica un estil predeterminat de {{cssxref("opacity")}}: 0.4 a elements <input> de text desactivats. Altres navegadors més importants actualment no comparteixen aquest estil particular per defecte en</p> + +<p>[23] En Safari Mobile per iOS, l'establiment de <code>{{cssxref("display")}}: block</code> en un <code><input></code> de <code>type="date"</code>, <code>type="time"</code>, <code>type="datetime"</code>, <code>type="datetime-local"</code>, o <code>type="month"</code> fa que el text dins de l'etiqueta <code><input></code> perdi l'alineació vertical. Veure {{webkitbug("139848")}}.</p> + +<p>[24] A partir def Chrome v39, un <code><input></code> de <code>type="date"</code> amb un estil <code>{{cssxref("display")}}: table-cell; {{cssxref("width")}}: 100%;</code> tindrà un {{cssxref("min-width")}} imposat per Chrome i no pot arribar a ser més estreta que aquesta amplada mínima. Vegeu <a href="https://code.google.com/p/chromium/issues/detail?id=346051">Chromium bug #346051</a>.</p> + +<p>[25] Firefox, a diferència d'altres navegadors, per defecte, <a href="http://stackoverflow.com/q/5985839/432681">persisteixi l'estat dinàmic desactivat i (si escau) la validació dinàmica</a> d'un <code><input></code> a través de càrregues de pàgines. Establir el valor de l'atribut {{htmlattrxref("autocomplete","input")}} a <code>off</code> per desactiva aquesta funció; això funciona fins i tot quan l'atribut {{htmlattrxref("autocomplete","input")}} normalment no s'apliqués als elements <code><input></code> en virtut del seu {{htmlattrxref("type","input")}}. Veure {{bug(654072)}}.</p> + +<p>[26] A partir de Gecko 9.0 {{geckoRelease ("9.0")}}, Firefox per Android permet als usuaris capturar imatges utilitzant la seva càmera i pujar-los, sense haver de sortir del navegador. Els desenvolupadors web poden implementar aquesta funció, simplement definint el valor de l'atribut <code>accept</code> a <code>image/*</code> en el seu <code><input></code> of <code>type="file"</code> d'entrada.</p> + +<p>[27] Firefox per a Android es estableix per omissió {{cssxref("background-image")}} en totes les entrades de <code>type="file</code>". Això es pot desactivar usant <code>background-image:none</code>;. També s'estableix com a predeterminat {{cssxref("border")}} en ells.</p> + +<p>[28] Abans del Firefox 51, <code>selectionStart</code> i <code>selectionEnd</code> retornaven 0 quan no hi havia cap selecció. Ara bé, aquests retornen correctament el desplaçament del caràcter immediatament després de la posició del cursor d'entrada del text actual; que és on es col·locarà el següent caràcter introduït.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Other form-related elements: {{HTMLElement("form")}}, {{HTMLElement("button")}}, {{HTMLElement("datalist")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("select")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> + <li><a class="external" href="http://webdesignerwall.com/tutorials/cross-browser-html5-placeholder-text">Marcados de posició de text, entre navegadors HTML 5</a></li> +</ul> diff --git a/files/ca/web/html/element/ins/index.html b/files/ca/web/html/element/ins/index.html new file mode 100644 index 0000000000..b8d452a7b0 --- /dev/null +++ b/files/ca/web/html/element/ins/index.html @@ -0,0 +1,122 @@ +--- +title: <ins> +slug: Web/HTML/Element/ins +tags: + - Element + - HTML + - HTML edits + - Reference + - Web +translation_of: Web/HTML/Element/ins +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <ins></strong> (o HTML <em>inserit text</em>) HTML representa un rang de text que s'ha afegit a un document.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Phrasing content</a> o <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">Transparent</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLModElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("cite")}}</dt> + <dd>Aquest atribut defineix l'URI d'un recurs que explica la modificació, com un enllaç a alguna reunió o un bitllet en un sistema de depuració.</dd> + <dt>{{htmlattrdef("datetime")}}</dt> + <dd>Aquest atribut indica l'hora i la data de la modificació i ha de ser una <a href="http://www.w3.org/TR/2011/WD-html5-20110525/common-microsyntaxes.html#valid-date-string-with-optional-time">data vàlida amb una cadena de temps opcional</a>. Si el valor no es pot analitzar com una data amb una cadena de temps opcional, l'element no té una marca de temps associada.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><ins>This text has been inserted</ins></pre> + +<h3 id="Resultat">Resultat</h3> + +<p><ins>This text has been inserted</ins></p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'edits.html#the-ins-element', '<ins>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'edits.html#the-ins-element', '<ins>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.4', '<ins>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("del")}} element per marcar la seva eliminació en un document.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/isindex/index.html b/files/ca/web/html/element/isindex/index.html new file mode 100644 index 0000000000..4ff02f4a16 --- /dev/null +++ b/files/ca/web/html/element/isindex/index.html @@ -0,0 +1,64 @@ +--- +title: <isindex> +slug: Web/HTML/Element/isindex +tags: + - Deprecated + - Element + - HTML + - Reference + - Web +translation_of: Web/HTML/Element/isindex +--- +<div>{{Deprecated_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p><strong><Isindex></strong> és un element HTML obsolet que posa un camp de text en una pàgina per consultar el document. <code><Isindex></code> proporcionava una sola entrada de text de línia per ingressar una cadena de consulta. Quan s'envia, el servidor retorna una llista de pàgines que coincideixin amb la consulta. El suport depenia tant del navegador com del servidor per respondre a la consulta.</p> + +<p><code><isindex></code> <span id="result_box" lang="ca"><span>està </span><span>desaprovat</span> en <span>HTML</span> <span>4.01</span><span>, ja que</span> <span>el mateix comportament</span> <span>es</span> <span>pot aconseguir</span> <span>amb</span> <span>un formulari</span> <span>HTML</span><span>.</span></span></p> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>accepta</span> <span>els</span></span> <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("prompt")}}</dt> + <dd>Aquest atribut agrega el seu valor com un indicador de camp de text.</dd> + <dt>{{htmlattrdef("action")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>es</span> <span>pot utilitzar</span> <span>per enviar la</span> <span>consulta</span> <span>a</span> <span>un URL</span> <span>diferent.</span> <span>L'acció no</span> <span>es</span> <span>defineix</span> <span>pel W3C.</span></span></dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><head> + <isindex prompt="Search Document... " /> +</head></pre> + +<h2 id="Historia">Historia</h2> + +<p><span id="result_box" lang="ca"><span>Al juny de</span> <span>1992</span> <span>Dan</span> <span>Connolly</span> <span>preferiria</span> <span>un tipus</span> <span>d'ancoratge</span> <span>diferent</span> <span>en lloc de</span> <span>isindex</span><span>.</span></span></p> + +<p>Al novembre de 1992, els <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/thread.html#31">índexs com a enllaços en lloc de documents</a> iniciats per Dan Connolly impulsa la idea que els índexs són més enllaços que documents. En aquest fil, es proposen diferents tipus de solucions. La pregunta dels formularis per fer consultes <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0039.html">s'esmenta</a> en referència al navegador de Dynatext: "El navegador mostra botons alternatius, camps de text, etc. L'usuari emplena els camps, fa clic a Acceptar i els resultats de la consulta apareixen en la finestra de la taula de contingut."</p> + +<p>En una aproximació sobre <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/thread.html#42">isindex</a> al novembre de 1992, Kevin Hoadley va <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0042.html">qüestionar</a> la necessitat d'un element isindex i va proposar abandonar-ho. En canvi va proposar tenir un element <a href="https://developer.mozilla.org/wiki/HTML/Elements/input">d'entrada</a> (idea <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0053.html">recolzada</a> per Steve Putz). Tim Berners-Lee <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0044.html">explica</a> la finalitat resultant de isindex en resultats de cerca agregada. Kevin <a href="http://lists.w3.org/Archives/Public/www-talk/1992NovDec/0048.html">respon</a> que ell no li agrada la naturalesa booleana de isindex i preferiria un sistema on tot és cerca i proposa estendre el marc actual WWW amb una configuració httpd específica i definir que algunes URI de mapeig crein les consultes de cerca.</p> + +<p><span id="result_box" lang="ca"><span>En</span> <span>2016</span><span>, s'ha proposat</span> <span>per</span></span> <a href="https://github.com/w3c/html/issues/240">elimnar <code>isindex</code> de l'especificació</a>.</p> + +<h2 id="Referència_HTML">Referència HTML</h2> + +<ul> + <li><a class="external text" href="http://www.w3.org/TR/html5" rel="nofollow">HTML5</a> la classifica com una <a class="external text" href="http://www.w3.org/TR/html5/obsolete.html#obsolete" rel="nofollow">característica no conforme</a>.</li> + <li><a class="external text" href="http://www.w3.org/TR/html401/interact/forms.html#h-17.8" rel="nofollow">ISINDEX</a> element desaprovat en <a class="external text" href="http://www.w3.org/TR/html401/" rel="nofollow">HTML 4.01</a></li> + <li><a class="external text" href="http://www.w3.org/TR/REC-html32#isindex" rel="nofollow">ISINDEX</a> en <a class="external text" href="http://www.w3.org/TR/REC-html32" rel="nofollow">HTML 3.2</a></li> + <li><a class="external text" href="http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.2.3" rel="nofollow">ISINDEX</a> en <a class="external text" href="http://www.w3.org/MarkUp/html-spec/html-spec_5.html" rel="nofollow">HTML 2.0</a> <span class="short_text" id="result_box" lang="ca"><span>així</span> <span>com la descripció</span> <span>del comportament en</span></span> <a class="external text" href="http://www.w3.org/MarkUp/html-spec/html-spec_7.html#SEC7.5" rel="nofollow">Queries i Indexes</a> (HTML 2.0)</li> + <li><a class="external text" href="http://www.w3.org/MarkUp/HTMLPlus/htmlplus_51.html" rel="nofollow">ISINDEX</a> en <a class="external text" href="http://www.w3.org/MarkUp/HTMLPlus/htmlplus_1.html" rel="nofollow">HTML+</a></li> +</ul> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("input")}}</li> + <li>{{HTMLElement("form")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/kbd/index.html b/files/ca/web/html/element/kbd/index.html new file mode 100644 index 0000000000..19277878bc --- /dev/null +++ b/files/ca/web/html/element/kbd/index.html @@ -0,0 +1,150 @@ +--- +title: <kbd> +slug: Web/HTML/Element/kbd +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/kbd +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>element d'entrada de teclat HTML</em> (<strong><kbd></strong>) , representa l'entrada de l'usuari i produeix un element en línia que apareix per defecte com a font d'espai senzill (monspace) en el navegador.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclos, Firefox implementa la interfície {{domxref("HTMLSpanElement")}} per aquest element.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><p>Type the following in the Run dialog: <kbd>cmd</kbd><br />Then click the OK button.</p> + +<p>Save the document by pressing <kbd>Ctrl</kbd> + <kbd>S</kbd></p></pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample('Examples', 350, 120) }}</p> + +<h2 id="Nota">Nota</h2> + +<p>Es pot definir una regla CSS perquè el selector de <code>kbd</code> reemplaci la cara de font predeterminada del navegador. Les preferències establertes per l'usuari poden tenir prioritat sobre el CSS especificat.</p> + +<p>Quan l'element <code><kbd></code> està niat dins d'un element <code><samp></code>, representa l'entrada tal com va ser repetida pel sistema.</p> + +<p>Quan l'element <code><kbd></code> <em>conté</em> un element <code><samp></code>, representa una entrada basada en la sortida del sistema, per exemple, la invocació d'un element de menú.</p> + +<p>Quan l'element <code><kbd></code> està niat dins d'un altre element <code><kbd></code>, representa una clau real o una altra unitat única d'entrada segons sigui apropiat per al mecanisme d'entrada.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-kbd-element', '<kbd>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-kbd-element', '<kbd>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span id="result_box" lang="ca"><span>Expandit</span> <span>per</span> <span>incloure qualsevol</span> <span>entrada de l'usuari</span><span>, igual</span> <span>que l'entrada</span> <span>de veu</span> <span>i</span> <span>pulsacions de</span> <span>tecles</span> <span>individuals.</span></span></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<kbd>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{htmlelement("code")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/keygen/index.html b/files/ca/web/html/element/keygen/index.html new file mode 100644 index 0000000000..aa7b7245d6 --- /dev/null +++ b/files/ca/web/html/element/keygen/index.html @@ -0,0 +1,189 @@ +--- +title: <keygen> +slug: Web/HTML/Element/keygen +tags: + - Deprecated + - Element + - HTML + - HTML forms + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/keygen +--- +<p>{{deprecated_header}}</p> + +<p>L'element HTML <code><keygen></code> existeix per facilitar la generació de material clau, i la presentació de la clau pública com a part d'un <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms">formulari HTML</a>. Aquest mecanisme està dissenyat per funcionar amb sistemes de gestió de certificats basats en web. S'espera que l'element <code><keygen></code> s'utilitzi en un formulari HTML juntament amb una altra informació necessària per construir una sol·licitud de certificat, i que el resultat del procés serà un certificat signat.</p> + +<div class="note"> +<p>En l'actualitat existeix el debat entre els fabricants de navegadors web, si mantenir aquesta característica o no. Fins que s'arribi a una decisió, és millor segui considerant aquesta característica com desaprovada i desapareguda.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de continguts</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut interactiu, <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerta</a>, <a href="/en-US/docs/HTML/Content_categories#Form_labelable" title="HTML/Content categories#Form labelable">etiquetable</a>, <a href="/en-US/docs/HTML/Content_categories#Form_submittable" title="HTML/Content categories#Form submittable">presentable</a>, <a href="/en-US/docs/HTML/Content_categories#Form_resettable" title="HTML/Content categories#Form resettable">reajustable</a> <a href="/en-US/docs/HTML/Content_categories#Form-associated_content" title="HTML/Content categories#Form-associated content">element associat a formulari</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir una</span> <span>etiqueta d'inici</span> <span>i</span> <span>no </span><span> una</span> <span>etiqueta </span></span><span lang="ca"><span>de tancament</span></span>.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLKeygenElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("autofocus")}}</dt> + <dd>Aquest atribut booleà permet especificar que el control ha de tenir el focus d'entrada quan es carrega la pàgina, llevat que l'usuari ho anul·li, per exemple escrivint en un control diferent. Només un element de formulari en un document pot tenir l'atribut <code>autofocus</code>, el qual és un valor booleà.</dd> + <dt>{{htmlattrdef("challenge")}}</dt> + <dd>Una cadena de repte que s'envia juntament amb la clau pública. El valor per omissió és una cadena buida si no s'especifica.</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>booleà</span> <span>indica</span> <span>que el control</span> <span>de formulari</span> <span>no està</span> <span>disponible per a la</span> <span>interacció.</span></span></dd> + <dt>{{htmlattrdef("form")}}</dt> + <dd>L'element formulari al que està associat aquest element (el seu <em>propietari de formulari</em>). El valor de l'atribut ha de ser un <code>id</code> d'un element {{HTMLElement("form")}} en el mateix document. Si no s'especifica aquest atribut, aquest element ha de ser un descendent d'un element {{HTMLElement("form")}}. Aquest atribut li permet dipositar elements <code><keygen></code> en qualsevol lloc dins d'un document, no només com descendents dels seus elements de formulari</dd> + <dt>{{htmlattrdef("keytype")}}</dt> + <dd><span id="result_box" lang="ca"><span>El tipus</span> <span>de clau</span> <span>generada.</span> <span>El valor</span> <span>per defecte</span> <span>és</span> <span>RSA.</span></span></dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd><span id="result_box" lang="ca"><span>El</span> <span>nom</span> <span>del control,</span> <span>que es presenta</span> <span>amb</span> <span>les dades del</span> <span>formulari.</span></span></dd> +</dl> + +<p><span id="result_box" lang="ca"><span>L'element</span> <span>s'escriu</span> <span>així:</span></span></p> + +<pre class="brush: html"><keygen name="<var>name</var>" challenge="<var>challenge string</var>" keytype="<var>type</var>" keyparams="<var>pqg-params</var>"></pre> + +<p>El paràmetre <code>keytype</code> s'utilitza per especificar quin tipus de clau es generarà. Els valors vàlids són "RSA", que és el valor per defecte, "DSA" i "CE". El <code>name</code> i els atributs <code>challenge</code> són necessaris en tots els casos. L'atribut <code>keytype</code> és opcional per a la generació de claus RSA i necessària per a la generació de claus DSA i CE. L'atribut <code>keyparams</code> és necessari per a la generació de claus DSA i CE i ignorat per a la generació de claus RSA. PQG és sinònim de <code>keyparams</code>. És a dir, es pot especificar <code>keyparams= "pqg-params"</code> o <code>pqg="pqg-params"</code>.</p> + +<p>Per a les claus RSA, el paràmetre <code>keyparams</code> no s'utilitza (s'ignora si està present). L'usuari pot tenir una opció dels nivells de qualitat de la clau RSA. Actualment, l'usuari ha de triar entre nivell de qualitat "high" (2048 bits) i nivell de qualitat "medium" (1024 bits).</p> + +<p>Per a les claus DSA, el paràmetre <code>keyparams</code> especifica els paràmetres DSA PQG que es van a utilitzar en el procés keygen. El valor del paràmetre <code>pqg</code> és BASE64 codificat, DER codificat DSS-Parms com s'especifica en IETF <a href="ftp://ftp.rfc-editor.org/in-notes/rfc3279.txt">RFC 3279</a>. L'usuari pot tenir una varietat de mides de clau DSA, el que permet a l'usuari triar una de les mides definides en l'estàndard DSA.</p> + +<p>Per a les claus CE, el paràmetre <code>keyparams</code> especifica el nom de la corba el·líptica en la qual es genera la clau. Normalment és una cadena de la taula <a href="http://mxr.mozilla.org/mozilla-central/source/security/manager/ssl/src/nsKeygenHandler.cpp?mark=179-185,187-206,208-227,229-256#177">nsKeygenHandler.cpp</a>. (Tingui en compte que només un subconjunt de les corbes nomenades allí pot ser suportat en qualsevol navegador en particular.) Si la cadena de paràmetres keyparams no és una cadena de nom de corba reconeixible, es tria una corba d'acord amb la qualitat de la clau triada per l'usuari (baixa, mitja , alta), utilitzant la corba anomenada <code>"secp384r1"</code> per a les claus altes, i la corba anomenada <code>"secp256r1"</code> per a les claus mitjanes. (Nota: Per determinar el nombre de claus de qualitat, els valors per defecte per a cada nivell de qualitat, i la interfície d'usuari mitjançant la qual s'ofereix a l'usuari una elecció, es troben fora de l'abast d'aquesta especificació.)</p> + +<p>L'element <code><keygen></code> només és vàlida dins d'un formulari HTML. Això causarà algun tipus de selecció que es presenta a l'usuari per a la selecció de mida de la clau. La interfície d'usuari per a la selecció pot ser un menú, botons de radi, possiblement una altra cosa. El navegador presenta diverses claus de qualitat possibles. En l'actualitat, dos nivells de qualitat s'ofereixen, mitja i alta. Si el navegador de l'usuari està configurat per suportar maquinari criptogràfic (per exemple, les "targetes intel·ligents") l'usuari també es pot donar l'opció d'on generar la clau, és a dir, en una targeta intel·ligent o en el programari i emmagatzemar-la en el disc.</p> + +<p>Quan es prem el botó d'enviar, es genera un parell de claus de la mida seleccionada. La clau privada es xifra i s'emmagatzema a la base de dades de claus local.</p> + +<pre> PublicKeyAndChallenge ::= SEQUENCE { + spki SubjectPublicKeyInfo, + challenge IA5STRING + } + SignedPublicKeyAndChallenge ::= SEQUENCE { + publicKeyAndChallenge PublicKeyAndChallenge, + signatureAlgorithm AlgorithmIdentifier, + signature BIT STRING + }</pre> + +<p>La clau pública i la cadena de repte són DER codificades com <code>PublicKeyAndChallenge</code>, i a continuació, signades digitalment amb la clau privada per produir <code>SignedPublicKeyAndChallenge</code>. El <code>SignedPublicKeyAndChallenge</code> és {{Glossary("Base64")}} codificada, i les dades ASCII finalment s'envia al servidor com el valor d'un parell de nom / valor de formulari, on el nom és el <em>name</em> especificat per l'atribut <em>name</em> de l' element <code>keygen</code>. Si no es proporciona cap cadena de repte, llavors es codificarà com una <code>IA5STRING</code> de longitud zero.</p> + +<p>Heus aquí un exemple d'enviament de formularis, ja que seria lliurat a un programa CGI pel servidor HTTP:</p> + +<pre> commonname=John+Doe&email=doe@foo.com&org=Foobar+Computing+Corp.& + orgunit=Bureau+of+Bureaucracy&locality=Anytown&state=California&country=US& + key=MIHFMHEwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAnX0TILJrOMUue%2BPtwBRE6XfV%0AWtKQbsshxk5ZhcUwcwyvcnIq9b82QhJdoACdD34rqfCAIND46fXKQUnb0mvKzQID%0AAQABFhFNb3ppbGxhSXNNeUZyaWVuZDANBgkqhkiG9w0BAQQFAANBAAKv2Eex2n%2FS%0Ar%2F7iJNroWlSzSMtTiQTEB%2BADWHGj9u1xrUrOilq%2Fo2cuQxIfZcNZkYAkWP4DubqW%0Ai0%2F%2FrgBvmco%3D</pre> + +<h2 id="Exemples">Exemples</h2> + +<ul> + <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380749" title="https://bugzilla.mozilla.org/attachment.cgi?id=380749">Exemple de formulari amb l'element RSA KEYGEN</a></li> + <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380750" title="https://bugzilla.mozilla.org/attachment.cgi?id=380750">Exemple de formulari amb l'element DSA KEYGEN i paràmetres PQG</a></li> + <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380751" title="https://bugzilla.mozilla.org/attachment.cgi?id=380751">Exemple de formulari amb l'element DSA KEYGEN però sense paràmetres PQG</a></li> + <li><a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=380752" title="https://bugzilla.mozilla.org/attachment.cgi?id=380752">Exemple de formulari amb l'element EC KEYGEN </a></li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-keygen-element', '<keygen>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-keygen-element', '<keygen>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>uport bàsic</td> + <td>{{compatChrome(1.0)}} [1]</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatNo}}</td> + <td>3.0</td> + <td>1.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>uport bàsic</td> + <td>2.3</td> + <td>{{CompatVersionUnknown}} [1]</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}} [1]</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Desaprovat en Chrome 49.</p> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/label/index.html b/files/ca/web/html/element/label/index.html new file mode 100644 index 0000000000..b1ad6b5f51 --- /dev/null +++ b/files/ca/web/html/element/label/index.html @@ -0,0 +1,169 @@ +--- +title: <label> +slug: Web/HTML/Element/label +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web +translation_of: Web/HTML/Element/label +--- +<div>{{HTMLRef}}</div> + +<p>L'<em>Element HTML Label</em> (<code><strong><label></strong></code>) representa un títol en una interfície d'usuari. Pot estar associat amb un control o bé col·locant l'element de control a l'interior de l'element <code><label></code>, o mitjançant l'ús de l'atribut {{htmlattrxref("for")}}. Aquest control es diu el <em>control labeled</em> de l'element etiqueta. Una entrada pot estar associada amb diverses etiquetes.</p> + +<p>Val la pena assenyalar, però, que les etiquetes no estan directament associats amb els formularis. S'associen indirectament amb els formularis a través dels controls amb els quals estan associats.</p> + +<div class="note"> +<p>Abans de la <a href="https://github.com/whatwg/html/pull/1120">revisió de l'especificació HTML</a> realitzada el 28 d'abril de 2016, l'atribut {{htmlattrxref("form")}} de l'element <code><label></code> permetía associar directament les etiquetes amb els formularis.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Interactive_content">contingut interactiu</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Form-associated_content">element associat a formulari</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Phrasing content</a>, no té elements d'etiqueta descendent. No es permeten elements etiquetables que no siguin el control labeled.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLLabelElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("for")}}</dt> + <dd>L'ID d'un element <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable">etiquetable (labelable)</a> relacionat amb el formulari en el mateix document que l'element d'etiqueta. El primer d'aquests elements en el document amb un ID que coincideixi amb el valor de l'atribut for és el <em>control labeled</em> per a aquest element d'etiqueta.</dd> + <dd> + <div class="note">Un element d'etiqueta pot tenir un atribut for i un element de control contingut, sempre que l'atribut <code>for</code> assenyali a l'element de control contingut.</div> + </dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline("5")}} {{obsolete_inline}}</dt> + <dd>L'element de formulari amb el qual l'etiqueta està associada (el seu propietari de formulari). Si s'especifica, el valor de l'atribut és l'ID d'un element {{HTMLElement("form")}} en el mateix document. Això li permet col·locar elements etiqueta en qualsevol lloc dins d'un document, no només com descendents dels seus elements de formulari.</dd> + <dd> + <div class="note">Aquest atribut content va ser <a href="https://github.com/whatwg/html/pull/1120">eliminat de l'especificació HTML</a>, el 28 d'abril de 2016. No obstant això, els scripts segueixen tenint accés a un atribut read-only (sol lectura) {{domxref("HTMLLabelElement.form")}} ; el retorn al formulari del control associat de l'etiqueta és un membre, o null si l'etiqueta no està associada amb un control o el control no és part d'un formulari.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_etiqueta_senzilla">Exemple etiqueta senzilla</h3> + +<pre class="brush: html"><label>Click me <input type="text"></label></pre> + +<p>{{EmbedLiveSample('Simple_label_example', '200', '50', '')}}</p> + +<h3 id="Ùs_de_l'attribut_for">Ùs de l'attribut "for"</h3> + +<pre class="brush: html"><label for="username">Click me</label> +<input type="text" id="username"></pre> + +<p>{{EmbedLiveSample('Using_the_for_attribute', '200', '50', '')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-label-element', '<label>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-label-element', '<label>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.9.1', '<label>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] A partir de Gecko 8.0 {{geckoRelease ("8.0")}}, un esdeveniment clic desencadena la propagació de més d'un <code><label></code>, i l'esdeveniment clic sintètic no pot desencadenar <code><label></code>s addicionals. En Gecko, un esdeveniment clic encara apareixerà més enllà d'un <code><label></code>, mentre que en WebKit o Internet Explorer l'esdeveniment clic s'aturarà en el <code><label></code>. El comportament anterior a Gecko 8.0 (el desencadenament de multiples <code><label></code>s) va fer que Firefox deixés de respondre (veure {{bug(646157)}}).</p> + +<p>[2] L'especificació d'HTML es va actualitzar a l'abril de 2016 per desaprovar l'atribut {{htmlattrxref("form")}}. Encara està disponible des de script, però la seva definició ha canviat: ara retorna el formulari del control associat, o null si no hi ha un control associat (és a dir, si {{domxref("HTMLLabelElement.control")}} és nul). Veure {{domxref("HTMLLabelElement.form")}}.</p> + +<p><span id="result_box" lang="ca"><span>Aquest canvi</span> <span>s'ha implementat</span><span> en</span></span> Firefox 49.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formularis: {{HTMLElement("form")}}, {{HTMLElement("button")}}, {{HTMLElement("datalist")}}, {{HTMLElement("legend")}}, {{HTMLElement("select")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> diff --git a/files/ca/web/html/element/legend/index.html b/files/ca/web/html/element/legend/index.html new file mode 100644 index 0000000000..fb389fc2db --- /dev/null +++ b/files/ca/web/html/element/legend/index.html @@ -0,0 +1,138 @@ +--- +title: <legend> +slug: Web/HTML/Element/legend +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web +translation_of: Web/HTML/Element/legend +--- +<p>L'<strong>Element HTML <code><legend></code></strong> (o <em>HTML llegenda element de camp</em>) representa un títol per al contingut del se element principal {{HTMLElement("fieldset")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>En un {{HTMLElement ("fieldset")}} el primer fill és aquest element <code><legend></code></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLLegendElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element nomès inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{HTMLElement("form")}} exemples sobre <code><legend></code>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("HTML WHATWG", "forms.html#the-legend-element", "<legend>")}}</td> + <td>{{Spec2("HTML WHATWG")}}</td> + <td>Definició d'un element <code>legend</code></td> + </tr> + <tr> + <td>{{SpecName("HTML WHATWG", "rendering.html#the-fieldset-and-legend-elements")}}</td> + <td>{{Spec2("HTML WHATWG")}}</td> + <td><span id="result_box" lang="ca"><span>Suggerit la</span> <span>presentació per</span> <span>omissió dels</span> <span>elements</span> <code><span>fieldset</span></code> <span>i</span> <code><span>legend</span></code></span></td> + </tr> + <tr> + <td>{{SpecName("HTML5 W3C", "forms.html#the-legend-element", "<legend>")}}</td> + <td>{{Spec2("HTML5 W3C")}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName("HTML4.01", "interact/forms.html#h-17.10", "<legend>")}}</td> + <td>{{Spec2("HTML4.01")}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formularis: {{HTMLElement("form")}}, {{HTMLElement("option")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("select")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/li/index.html b/files/ca/web/html/element/li/index.html new file mode 100644 index 0000000000..39cd6ce0b5 --- /dev/null +++ b/files/ca/web/html/element/li/index.html @@ -0,0 +1,210 @@ +--- +title: <li> +slug: Web/HTML/Element/li +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/li +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><li></code></strong> (o <em>Element HTML Llista d'elements</em> ) s'utilitza per representar un element d'una llista. Ha d'estar contingut en un element pare: una llista ordenada ({{HTMLElement("ol")}}), una llista desordenada ({{HTMLElement("ul")}}), o un menú ({{HTMLElement("menu")}}). En els menús i les llistes desordenades, els elements de la llista es mostren normalment amb vinyetes. En les llistes ordenades, en general es mostren amb un comptador ascendent a l'esquerra, com ara un número o una lletra.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta final es pot ometre si l'element de la llista és seguida immediatament per un altre element {{HTMLElement ("li")}}, o si no hi ha més contingut en el seu element pare.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un {{HTMLElement("ul")}}, {{HTMLElement("ol")}}, o un element {{HTMLElement("menu")}}. Tot i que no és un ús conforme, el obsolet {{HTMLElement ("dir")}} també pot ser un pare.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLLIElement")}}</td> + </tr> + <tr> + <th scope="row">Element type</th> + <td>Block</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("value")}}</dt> + <dd>Aquest atribut enter indica el valor ordinal actual de l'element de la llista definida per l'element {{HTMLElement("ol")}} . L'únic valor permès per a aquest atribut és un nombre, fins i tot si la llista es visualitza amb números o lletres romanes. Els element de la llista que segueixen a aquest continuen la numeració des del conjunt de valors. L'atribut <strong>value</strong> no té sentit per a llistes desordenades ({{HTMLElement("ul")}}) o per menús ({{HTMLElement("menu")}}). + <div class="note"><strong>Nota</strong>: Aquest atribut es va desaprovar en HTML 4, però es va tornar a introduir en HTML5.</div> + + <div class="note"> + <p><strong>Nota:</strong> Abans de {{Gecko ("9.0")}}, els valors negatius es convertien incorrectament a 0. A partir de {{Gecko ("9.0")}} tots els valors enters s'analitzen correctament.</p> + </div> + </dd> + <dt>{{htmlattrdef("type")}} {{Deprecated_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>de caràcter</span> <span>indica el tipus</span> <span>de numeració</span></span>: + <ul> + <li><code>a</code>: lletres minúscules</li> + <li><code>A</code>: lletres majúscules</li> + <li><code>i</code>: Nombres romans en minúscules</li> + <li><code>I</code>: Nombres romans en majúscules</li> + <li><code>1</code>: nombres</li> + </ul> + Aquest tipus anul·la la utilitzada per el seu element matriu {{HTMLElement("ol")}}, si n'hi ha. + + <div class="note"><strong>Nota d'ùs:</strong> Aquest atribut ha estat desaprovat: utilitzar la propietat CSS {{cssxref("list-style-type")}} en el seu lloc.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> +</pre> + +<p>El HTML anterior es mostrarà:</p> + +<ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> + +<pre class="brush: html"><ol type="I"> + <li value="3">third item</li> + <li>fourth item</li> + <li>fifth item</li> +</ol> +</pre> + +<p>El HTML anterior es mostrarà:</p> + +<ol start="3" style="list-style-type: upper-roman;"> + <li>third item</li> + <li>fourth item</li> + <li>fifth item</li> +</ol> + +<pre class="brush: html"><ul> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ul></pre> + +<ul> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ul> + +<p><span id="result_box" lang="ca"><span>Per</span> <span>obtenir</span> <span>exemples</span> <span>més</span> <span>detallats</span><span>, consulteu</span><span> les pàgines</span></span> <a href="/en-US/docs/Web/HTML/Element/ol#Examples"><ol></a> i <a href="/en-US/docs/Web/HTML/Element/ul#Examples"><ul></a>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-li-element', '<li>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-li-element', '<li>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'lists.html#h-10.2', '<li>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>L'atribut <code>type</code> està desaprovat.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Altres elements</span> <span>HTML</span> <span>relacionats amb</span> <span>llistes</span></span> : {{HTMLElement("ul")}}, {{HTMLElement("li")}}, {{HTMLElement("menu")}}, i el obsolet {{HTMLElement("dir")}};</li> + <li>Propietats CSS que poden ser especialment útils per donar estil l'element <code><li></code>: + <ul> + <li>La propietat {{cssxref("list-style")}}, per a triar la forma de visualització de l'ordinal,</li> + <li><a href="/Web/Guide/CSS/Counters">Comptadors CSS</a>, per gestionar llistes niades complexes,</li> + <li>la propietat {{cssxref("margin")}}, per controlar la sagnia de l'element de la llista..</li> + </ul> + </li> +</ul> + +<div> </div> diff --git a/files/ca/web/html/element/link/index.html b/files/ca/web/html/element/link/index.html new file mode 100644 index 0000000000..abadadd86c --- /dev/null +++ b/files/ca/web/html/element/link/index.html @@ -0,0 +1,428 @@ +--- +title: <link> +slug: Web/HTML/Element/link +tags: + - Element + - HTML + - HTML document metadata + - Reference + - Web + - metadata +translation_of: Web/HTML/Element/link +--- +<p id="Summary">{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><link></code></strong> especifica les relacions entre el document actual i un recurs extern. Els possibles usos d'aquest element inclouen la definició d'un marc relacional per a la navegació. Aquest element és el més utilitzat per vincular els fulls d'estil.</p> + +<div class="note"> +<p>El {{htmlattrxref ("rel", "link")}} es pot establir a una gran quantitat de diferents valors. S'enumeren en una pàgina separada.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Contingut metadata. Si {{htmlattrxref("itemprop", "link")}} està present: <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a> i <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a></td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ja</span> <span>que és un</span> <span>element</span> <span>buit,</span> <span>l'etiqueta</span> <span>d'inici</span> <span>ha d'estar present</span> <span>i</span> <span>l'etiqueta</span> <span>final</span> <span>no ha d'estar</span> <span>present</span></span></td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Qualsevol element que accepti elements metadata. Si {{htmlattrxref("itemprop", "link")}} està present: qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLLinkElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs global</a>.</p> + +<dl> + <dt>{{htmlattrdef("charset")}}{{obsolete_inline}}</dt> + <dd>Aquest atribut defineix la codificació de caràcters del recurs vinculat. El valor és una llista d'espai i/o separada per comes dels jocs de caràcters tal com es defineix en el {{rfc(2045)}}. El valor per defecte és <code>ISO-8859-1</code>. + <div class="note"><strong>Nota d'ùs:</strong> <span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>és</span> <span>obsolet</span> <span>i no</span> <span>ha de ser utilitzat</span> <span>pels autors.</span> <span>Per aconseguir el seu</span> <span>efecte</span><span>, utilitzar</span> <span>la capçalera</span> <span>HTTP</span> <span>Content</span><span>-</span><span>Type</span> <span>en el recurs</span> <span>vinculat</span><span>.</span></span></div> + </dd> + <dt>{{htmlattrdef("crossorigin")}}</dt> + <dd>Aquest atribut enumerat indica si CORS s'ha d'utilitzar en recuperar la imatge relacionada. Les <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image">imatges habilitades per CORS</a> poden ser reutilitzades en l'element {{HTMLElement("canvas")}} sense ser contaminades. Els valors permesos són: + <dl> + <dt><code>"anonymous"</code></dt> + <dd>Una sol·licitud d'origen creuat (és a dir, amb <code>Origin</code>: capçalera HTTP) es porta a terme. Però no s'envia credencials (és a dir, no hi ha cap galeta, no hi ha cap certificat X.509 i no s'envia l'autenticació HTTP bàsica). Si el servidor no dóna credencials al lloc d'origen (si no s'estableix <code>Access-Control-Allow-Origin</code> : capçalera HTTP) la imatge serà <em>contaminada</em> i el seu ús restringit.</dd> + <dt><code>"use-credentials"</code></dt> + <dd>Una sol·licitud d'origen creuat (és a dir, amb <code>Origin</code>: capçalera HTTP) es realitza amb la credencial enviada (és a dir, una galeta, un certificat i es porta a terme l'autenticacióHTTP bàsica). Si el servidor no dóna credencials al lloc d'origen (a través <code>Access-Control-Allow-Credencials</code>: capçalera HTTP), la imatge serà <em>contaminada</em> i el seu ús restringit.</dd> + </dl> + Quan no està present, el recurs es recupera sense una sol·licitud CORS (és a dir, sense necessitat d'enviar l'<code>Origin</code>: capçalera HTTP), impedint la seva contaminació utilitzada en els elements {{HTMLElement('canvas')}} . Si no és vàlid, es maneja com si s'usés la paraula clau enumerada <strong>anonymous</strong>. Consulteu els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes">atributs de configuració de CORS</a> per obtenir informació addicional.</dd> + <dt>{{htmlattrdef("disabled")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut s'utilitza per deshabilitar una relació d'enllaços. En conjunció amb scripts, aquest atribut podria ser utilitzat per activar i desactivar diverses relacions de fulles d'estil. + <div class="note"> + <p><strong>Nota: </strong>Si bé no hi ha cap atribut <code>disabled</code> en l'estàndard HTML, <strong>hi ha</strong> un atribut <code>disabled</code> en l'objecte DOM <code>HTMLLinkElement</code> .</p> + + <p>L'ús de <code>disabled</code> com un atribut HTML no és estàndard i només és utilitzat per alguns navegadors (<a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=27677">W3 #27677</a>). <strong>No ho feu servir</strong>. Per aconseguir un efecte similar, utilitzeu una de les següents tècniques:</p> + + <ul> + <li>Si l'atribut <code>disabled</code> s'ha afegit directament a l'element de la pàgina, no no inclogueu l'element {{HTMLElement ("link")}} en el seu lloc;</li> + <li>Establir la <strong>propietat</strong> <code>disabled</code> de l'objecte DOM <code>stylesheet</code> a través de scripts.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("href")}}</dt> + <dd>Aquest atribut especifica el {{glossary("URL")}} del recurs vinculat. Un URL pot ser absoluta o relativa.</dd> + <dt>{{htmlattrdef("hreflang")}}</dt> + <dd>Aquest atribut indica l'idioma del recurs vinculat. És merament consultiu. Els valors permesos són determinats per <a href="http://www.ietf.org/rfc/bcp/bcp47.txt">BCP47</a>. Utilitzeu aquest atribut només si el atribut {{htmlattrxref ("href", "a")}} és present.</dd> + <dt>{{htmlattrdef("integrity")}} {{experimental_inline}}</dt> + <dd>Conté metadades en línia, un hash criptogràfic codificat en base 64 d'un recurs (file) que li diu al navegador que ho ha d'obtenir, per a què un agent d'usuari el pugui utilitzar per verificar que el recurs obtingut ha estat entregat lliure de manipulacións inesperades. Veure <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity">Integritat de Sub-recursos</a>.</dd> + <dt>{{htmlattrdef("media")}}</dt> + <dd>Aquest atribut especifica els mitjans als quals s'aplica el recurs vinculat. El seu valor ha de ser una <a href="https://developer.mozilla.org/en-US/docs/CSS/Media_queries">consulta de mitjans</a>. Aquest atribut és útil principalment quan s'enllaça a fulls d'estil externs en permetre que l'agent d'usuari triï el millor adaptat per al dispositiu en el qual s'executa. + <div class="note"><strong>Nota d'ù: </strong> + <ul> + <li>En HTML 4, això només pot ser una simple llista separada per espais en blanc de la descripció de mitjans literals, és a dir, <a href="https://developer.mozilla.org/en-US/docs/CSS/@media">els tipus de mitjans i grups</a>, on es defineixen i permeten valors per a aquest atribut, com ara print, screen, aural, braille. HTML5 va estendre això a qualsevol tipus de <a href="https://developer.mozilla.org/en-US/docs/CSS/Media_queries">consultes de mitjans (media queries)</a>, que són un superconjunto dels valors permesos d'HTML 4.</li> + <li>Els navegadors que no suporten el <a href="https://developer.mozilla.org/en-US/docs/CSS/Media_queries">Consultes de mitjans (Media Queries) CSS3</a> no reconeixeran necessàriament l'enllaç adequat; No oblidi establir enllaços alternatius, el conjunt restringit de consultes de mitjans definides en HTML 4.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("methods")}} {{Non-standard_inline}}</dt> + <dd>El valor d'aquest atribut proporciona informació sobre les funcions que poden ser realitzades en un objecte. Els valors es donen generalment pel protocol HTTP quan s'utilitza, però podria (per les mateixes raons que l'atribut title) ser útil incloure informació d'assessorament per avançat a l'enllaç. Per exemple, el navegador pot triar un altre tipus de processament d'un enllaç en funció dels mètodes especificats; alguna cosa que sigui consultable podria obtenir una icona diferent, o un enllaç extern podria representar-se amb una indicació d'abandonar el lloc actual. Aquest atribut no és ben comprès ni recolzat, fins i tot per la definició del navegador, Internet Explorer 4. Vegeu els mètodes de la propietat (MSDN).</dd> + <dt>{{htmlattrdef("referrerpolicy")}} {{experimental_inline}}</dt> + <dd>Una cadena que indica quina referència utilitzar en recuperar el recurs:: + <ul> + <li><code>'no-referrer'</code> significa que no s'enviarà la capçalera {{HTTPHeader("Referer")}}.</li> + <li><code>'no-referrer-when-downgrade'</code> significa que la capçalera {{HTTPHeader ("Referer")}} serà enviada al navegar a un origen sense TLS (HTTPS). Aquest és el comportament per defecte d'un agent d'usuari, Si no s'especifica una altra política.</li> + <li><code>'origin'</code> significa que la referència serà l'origen de la pàgina, que és més o menys l'esquema, el host i el port.</li> + <li><code>'origin-when-cross-origin'</code> significa que la navegació a altres orígens estarà limitada a l'esquema, el host i el port, mentre que navegar en el mateix origen inclourà el camí de la referència. </li> + <li><code>'unsafe-url'</code> significa que l'URL de referència inclourà l'origen i la ruta d'accés (però no el fragment, la contrasenya o nom d'usuari). Aquest cas no és segur, ja que pot filtrar-se orígens i trajectòries dels recursos protegits-TLS a orígens insegurs.</li> + </ul> + </dd> + <dt>{{htmlattrdef("rel")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>nomena una</span> <span>relació del</span> <span>document</span> <span>vinculat al</span> <span>document actual.</span> <span>L'atribut</span> <span>ha de ser una</span> <span>llista</span> <span>separada per</span> <span>espais dels</span> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">valors dels tipus d'enllaços.</a> <span>L'ús més</span> <span>comú d'aquest</span> <span>atribut</span> <span>és especificar</span> <span>un enllaç</span> <span>a un full</span> <span>d'estils extern</span><span>:</span> <span>l'atribut</span> <span>rel</span> <span>s'estableix</span> <span>en fulls</span> <span>d'estil,</span> <span>i</span> <span>l'atribut</span> <span>href</span> <span>s'estableix</span> <span>en l'adreça URL</span> <span>d'un full</span> <span>d'estils extern</span> <span>per</span> <span>donar format a</span> <span>la pàgina.</span> <span>WebTV</span> <span>també</span> <span>és compatible</span> <span>amb</span> <span>l'ús del valor</span> <span>pròxim</span> <span>a rel</span> <span>per</span> <span>carregar prèviament</span> <span>la pàgina</span> <span>següent</span> <span>en una sèrie</span> <span>de documents.</span></span></dd> + <dt>{{htmlattrdef("rev")}}{{obsolete_inline}}</dt> + <dd>El valor d'aquest atribut mostra la relació del document actual en el document vinculat, definit per l'atribut {{htmlattrxref ("href", "link")}} . Així doncs, l'atribut defineix la relació inversa en comparació amb el valor de l'atribut rel. <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">Els valors dels tipus d'enllaç</a> per a l'atribut són similars als possibles valors per {{htmlattrxref ("rel", "link")}}. + <div class="note"><strong>Nota d'ùs: </strong>Aquest atribut és obsolet en HTML5. <strong>No ho feu servir</strong>. Per aconseguir el seu efecte, utilitzar l'atribut {{htmlattrxref ("rel", "link")}} amb els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">valors dels tipus d'enllaç</a> oposats, per exemple, <code>made</code> ha de ser reemplaçat per <code>author</code>. També aquest atribut no vol dir <em>revisió</em> i no ha de ser utilitzat amb un nombre de versió, que és per desgràcia el cas en nombrosos llocs.</div> + </dd> + <dt>{{htmlattrdef("sizes")}}</dt> + <dd>Aquest atribut defineix la mida de les icones per els mitjans visuals continguts en el recurs. Ha d'estar present només si el {{htmlattrxref ("rel", "link")}} conté el <code>icon</code> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">valor de tipus d'enllaç</a>. Pot tenir els següents valors: + <ul> + <li>qualsevol, el que significa que la icona es pot escalar a qualsevol mida, ja que està en un format vectorial, com <code>image/svg+xml</code>.</li> + <li>una llista de mides separades amb espais en blanc, cadascun amb el format <span style="font-family: courier new;"><em><width in pixels></em>x<em><height in pixels></em></span> o <span style="font-family: courier new;"><em><width in pixels></em>X<em><height in pixels></em></span>. Cadascun d'aquestes mides han d'estar contingudes en el recurs</li> + </ul> + + <div class="note"><strong>Nota d'ùs: </strong> + + <ul> + <li>La majoria de format d'icones només són capaços d'emmagatzemar un sol icona; Per tant, la majoria de les vegades el {{htmlattrxref("sizes")}} conté una sola entrada. El format ICO de MS, així com ICNS d'Apple. Sent ICO el més estès, és el que teniu què utilitzar.</li> + <li>El Apple's iOS no admet aquest atribut, per tant, Apple's iPhone i iPad utilitzen <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types">valors de tipus d'enllaç</a> especials i no estàndard per definir la icona que s'utilitzarà com a element de clip Web o d'inici: <span style="font-family: courier new;">apple-touch-icon</span> and <span style="font-family: courier new;">apple-touch-startup-icon</span>.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("target")}}{{Non-standard_inline}}</dt> + <dd>Defineix el nom de marc o finestra que té la relació d'enllaç definida o que mostrarà la representació de qualsevol recurs vinculat.</dd> + <dt>{{htmlattrdef("title")}}</dt> + <dd>L'atribut <code>title</code> té una semàntica especial en l'element <code><link></code>. Quan s'utilitza en un <code><link rel="stylesheet"></code> defineix una <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets">fulla d'estil preferida o alternativa</a>. Si ho utilitza incorrectament, pot fer que <a href="https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets">s'ignori la fulla d'estils.</a></dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Aquest atribut s'utilitza per definir el tipus de contingut vinculat. El valor de l'atribut ha de ser un tipus MIME com ara <strong>text/html</strong>, <strong>text/css</strong>, i així successivament. L'ús comú d'aquest atribut és definir el tipus de fulla d'estils vinculada i el valor actual més comú és <strong>text/css</strong>, el que indica un format de full d'estil en cascada.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Inclusió_d'un_full_d'estil">I<span class="short_text" id="result_box" lang="ca"><span>nclusió</span> <span>d'un full</span> <span>d'estil</span></span></h3> + +<p>Per incloure un full d'estil en una pàgina, utilitzeu la següent sintaxi:</p> + +<pre class="brush: html"><link href="style.css" rel="stylesheet"> +</pre> + +<h3 id="Proporcionar_fulls_d'estil_alternatius"><span class="short_text" id="result_box" lang="ca"><span>Proporcionar</span> <span>fulls</span> <span>d'estil</span> <span>alternatius</span></span></h3> + +<p><span id="result_box" lang="ca"><span>També podeu especificar</span> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets">fulls d'estil alternatius</a></span>.</p> + +<p>L'usuari pot triar la fulla d'estil que desitja usar seleccionant-la en el menú Veure>Estil de pàgina. Això proporciona un mètode perquè els usuaris puguin veure diverses versions d'una pàgina.</p> + +<pre class="brush: html"><link href="default.css" rel="stylesheet" title="Default Style"> +<link href="fancy.css" rel="alternate stylesheet" title="Fancy"> +<link href="basic.css" rel="alternate stylesheet" title="Basic"> +</pre> + +<h3 id="Esdeveniments_de_càrrega_de_fulls_d'estil"><span class="short_text" id="result_box" lang="ca"><span>Esdeveniments de</span> <span>càrrega</span> <span>de fulls</span> <span>d'estil</span></span></h3> + +<p>Es pot determinar quan un s'ha carregat un full d'estil en observar el disparo d'un esdeveniment <code>load</code>; De la mateixa manera, es pot detectar si s'ha produït un error en processar un full d'estil en observar un esdeveniment <code>error</code>:</p> + +<p> + </p><pre class="brush: html"><script> +function sheetLoaded() { + // Do something interesting; the sheet has been loaded +} + +function sheetError() { + alert("An error occurred loading the stylesheet!"); +} +</script> + +<link rel="stylesheet" href="mystylesheet.css" onload="sheetLoaded()" onerror="sheetError()"> +</pre> +<p></p> + +<div class="note"><strong>Nota:</strong> L'esdeveniment <code>load</code> es desencadena una vegada que el full d'estil i tot el seu contingut importat ha estat carregat i analitzat, i immediatament abans què els estils comencin a ser aplicats en els continguts.</div> + +<h2 id="Notes">Notes</h2> + +<ul> + <li>A <code><link></code> la etiqueta només pot estar en l'element head; No obstant això, no pot haver múltiples ocurrències de <code><link></code>.</li> + <li>HTML 3.2 defineix només els atributs <strong>href</strong>, <strong>rel</strong>, <strong>rev</strong> i <strong>title</strong> per a l'element link.</li> + <li>HTML 2 defineix els atributs <strong>href</strong>, <strong>methods</strong>, <strong>rel</strong>, <strong>rev</strong>, <strong>title</strong>, i <strong>urn</strong> per l'element <code><link></code>. Els atributs <strong>methods</strong> i <strong>urn</strong> posteriorment van ser eliminats de les especificacions.</li> + <li><span id="result_box" lang="ca"><span>Les</span> <span>especificacions</span> <span>d'HTML</span> <span>i XHTML</span> <span>defineixen</span> <span>controladors</span> <span>d'esdeveniments</span> <span>per a l'element</span> <code><span><</span><span>link</span><span>></span></code><span>, però no estava</span> <span>clar com</span> <span>anaven a ser</span> <span>utilitzats.</span></span></li> + <li><span id="result_box" lang="ca"><span>Sota</span> <span>XHTML</span> <span>1.0</span><span>, els</span> <span>elements</span> <span>buits,</span> <span>com</span> <span><</span><span>link</span><span>></span> <span>requereixen una</span> <span>barra</span> <span>final</span><span>:</span> </span><code><link /></code>.</li> +</ul> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Subresource Integrity', '#htmlscriptelement', '<script>')}}</td> + <td>{{Spec2('Subresource Integrity')}}</td> + <td>Afegeix l'atribut <code>integrity</code>.</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-link-element', '<link>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> + <p><span class="short_text" id="result_box" lang="ca"><span>No hi ha canvis</span> <span>des de l'última presentació</span></span></p> + </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'document-metadata.html#the-link-element', '<link>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Afegeix els atributs <code>crossorigin </code>i <code>sizes</code> ; Els valors estesos de mitjans per a qualsevol consulta de mitjans; afegeix nombrosos nous valors per <code>rel</code>.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/links.html#h-12.3', '<link>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Alternative stylesheets</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>disabled</code> atribut {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>methods</code> atribute {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>4.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>atribut <code>sizes</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} {{bug("441770")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>load</code> and <code>error</code> events</td> + <td> + <p>19 (Webkit: 535.23)</p> + + <p>({{webkitbug(38995)}})</p> + </td> + <td>{{CompatGeckoDesktop("9.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>11.60</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>crossorigin</code></td> + <td>{{CompatChrome("25")}}</td> + <td>{{CompatGeckoDesktop("18.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>integrity</code></td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut <code>referrerpolicy</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Alternative stylesheets</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>disabled</code> atribut {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>methods</code> atribut {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>4.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>sizes</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} {{bug("441770")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>load</code> and <code>error</code> events</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("9.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>crossorigin</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("18.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>integrity</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(45.0)}}</td> + </tr> + <tr> + <td>atribut <code>referrerpolicy</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("50.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<p>[1] {{WebKitBug(148363)}} tracks WebKit implementation of Subresource Integrity (which includes the <code>integrity</code> attribute).</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="http://pieisgood.org/test/script-link-events/">Gràfic de compatibilitat d'esdeveniments de node <script> i <link> de Ryan Grove's</a></li> +</ul> diff --git a/files/ca/web/html/element/listing/index.html b/files/ca/web/html/element/listing/index.html new file mode 100644 index 0000000000..f0606bedcb --- /dev/null +++ b/files/ca/web/html/element/listing/index.html @@ -0,0 +1,48 @@ +--- +title: <listing> +slug: Web/HTML/Element/listing +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/listing +--- +<div>{{Obsolete_header}}</div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<em>Element HTML Llistat</em> (<code><listing></code>) processa el text entre les etiquetes d'inici i fi sense interpretar l'HTML entre elles i usar una font monospaced. L'estàndard HTML 2 recomana que les línies no es trenquin quan no superin els 132 caràcters.</p> + +<p> + </p><div class="note"><strong>Nota: </strong> <span class="short_text" id="result_box" lang="ca"><span>No utilitzeu</span> <span>aquest</span> <span>element</span></span> + + <ul> + <li>Està obsolet des d'HTML 3.2 i no ha estat implementat per tots els navegadors, ni de manera coherent. Més encara, està obsolet en HTML5 i pot ser representat pels agents d'usuari conformes com l'element {{HTMLElement("pre")}}, que interpretarà l'HTML intern!</li> + <li>En el seu lloc, utilitzi l'element {{HTMLElement("pre")}} o si s'adapta semànticament l'element {{HTMLElement("code")}}, eventualment escapa de l'HTML <code>'<'and'>'</code> perquè no s'interpreti.</li> + <li>Una font monoespaciada també es pot obtenir en un element simple {{HTMLElement("div")}}, aplicant un estil <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> adequat usant monospace com el valor de la font genèrica en una propietat {{cssxref("font-family")}}.</li> + </ul> + </div> +<p></p> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element no</span> <span>té altres</span> <span>atributs que els</span></span> <a class="new " href="/en-US/docs/Web/HTML/global_attributes" rel="internal" title="HTML/global attributes">atributs globals</a>, <span id="result_box" lang="ca"><span>comuns a</span> <span>tots</span> <span>els</span> <span>elements.</span></span></p> + +<h2 id="DOM_interface" name="DOM_interface">Interfície DOM</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>implementa la</span></span> interfície {{domxref('HTMLElement')}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclosos, Firefox implementa la interfície {{domxref('HTMLSpanElement')}} per aquest element.</p> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>Els elements {{HTMLElement("pre")}} i {{HTMLElement("code")}} <span id="result_box" lang="ca"> <span>per a ser</span> <span>utilitzat</span> <span>al seu lloc.</span></span></li> + <li>Els elements {{HTMLElement("plaintext")}} i {{HTMLElement("xmp")}}, similars a {{HTMLElement("listing")}} també estan obsolet.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/main/index.html b/files/ca/web/html/element/main/index.html new file mode 100644 index 0000000000..ecab39cd8c --- /dev/null +++ b/files/ca/web/html/element/main/index.html @@ -0,0 +1,167 @@ +--- +title: <main> +slug: Web/HTML/Element/main +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/main +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><main></code></strong> representa el contingut principal de el {{HTMLElement("body")}} d'un document o aplicació. L'àrea de contingut principal està constituïda per contingut directament relacionat amb el tema central d'un document o amb la funcionalitat central d'una aplicació. Aquest contingut ha de ser exclusiu del document, excloent qualsevol contingut que es repeteixi en un conjunt de documents com a barres laterals, enllaços de navegació, informació sobre drets d'autor, logotips de llocs i formularis de cerca (tret que la funció principal del document sigui un formulari de cerca).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>Cap; <span id="result_box" lang="ca"><span>tant</span> <span>les</span> <span>etiquetes</span> <span>d'inici i</span> <span>finalització</span> <span>són</span> <span>obligatoris</span></span>.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accept <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic.</a></td> + </tr> + <tr> + <th scope="row"> + <p>Interfície DOM</p> + </th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atribust globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><!-- other content --> + +<main> + <h1>Apples</h1> + <p>The apple is the pomaceous fruit of the apple tree.</p> + + <article> + <h2>Red Delicious</h2> + <p>These bright red apples are the most common found in many + supermarkets.</p> + <p>... </p> + <p>... </p> + </article> + + <article> + <h2>Granny Smith</h2> + <p>These juicy, green apples make a great filling for + apple pies.</p> + <p>... </p> + <p>... </p> + </article> + +</main> + +<!-- other content --></pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#the-main-element', '<main>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>S'ha eliminat la restricció sobre l'ús de <code><main></code> diverses vegades en un document, o com un descendent d'un element {{HTMLElement("article")}}.</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'grouping-content.html#the-main-element', '<main>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Sense canvis</span> <span>des</span></span> de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-main-element', '<main>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>L'element <code><main></code> és àmpliament recolzat. Per a Internet Explorer 11 i posteriors, se suggereix que s'afegeixi una funció ària de "main" a l'element <code><main></code> per garantir la seva accessibilitat (els lectors de pantalla com JAWS, usats en combinació amb versions anteriors d'Internet Explorer, podran comprendre el significat semàntic de l'element <code><main></code> una vegada que aquest atribut <code>role</code> estigui inclòs).</p> + +<pre class="brush: html"><main role="main"> + ... +</main> +</pre> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>Chrome 26</td> + <td>{{ CompatGeckoDesktop("21.0") }}</td> + <td>12</td> + <td>Opera 16</td> + <td>Safari 7</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.4</td> + <td>{{ CompatGeckoMobile("21.0") }}</td> + <td>{{CompatNo()}}</td> + <td>{{CompatNo()}}</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Elements estructurals bàsics: {{HTMLElement("html")}}, {{HTMLElement("head")}}, {{HTMLElement("body")}}</li> + <li>Elements de secció relacionats : {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("footer")}}, {{HTMLElement("header")}}, or {{HTMLElement("nav")}}</li> +</ul> + +<p> </p> diff --git a/files/ca/web/html/element/map/index.html b/files/ca/web/html/element/map/index.html new file mode 100644 index 0000000000..8bf0ca7665 --- /dev/null +++ b/files/ca/web/html/element/map/index.html @@ -0,0 +1,163 @@ +--- +title: <map> +slug: Web/HTML/Element/map +tags: + - Element + - HTML + - HTML embedded content + - Multimedia + - NeedsLiveSample + - Reference + - Web +translation_of: Web/HTML/Element/map +--- +<p>L'<strong>element HTML <code><map></code></strong> s'utilitza amb elements {{HTMLElement("area")}} per definir un mapa d'imatge (un àrea d'enllaç que es pot clicar).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Qualsevol element <a href="/en-US/docs/HTML/Content_categories#Transparent_content_model">transparent</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row"> + <p>Interfície DOM</p> + </th> + <td>{{domxref("HTMLMapElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("name")}}</dt> + <dd>L'atribut name li dóna al mapa un nom perquè pugui ser referenciat. L'atribut ha d'estar present i ha de tenir un valor no buit sense caràcters d'espai. El valor de l'atribut name no ha de ser una coincidència de cas de compatibilitat menor per al valor de l'atribut name d'un altre element mapa en el mateix document. Si s'especifica l'atribut id, tots dos atributs han de tenir el mateix valor.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><map name="example-map-1"> + <area shape="circle" coords="200,250,25" href="another.htm" /> + <area shape="default" /> +</map> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-map-element.html#the-map-element', '<map>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-map-element', '<map>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/objects.html#h-13.6.1', '<map>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop(1.0)}}<sup>[1]</sup><br> + {{CompatGeckoDesktop(5.0)}}<sup>[2]</sup><br> + {{CompatGeckoDesktop(17.0)}}<sup>[3]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoMobile(1.0)}}<sup>[1]</sup><br> + {{CompatGeckoMobile(5.0)}}<sup>[2]</sup><br> + {{CompatGeckoMobile(17.0)}}<sup>[3]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>1.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] A partir de Gecko 5.0 {{geckoRelease ("5.0")}}, els mapes buits ja no són saltats en favor dels no buits quan coincideixen i estan en la modalitat d'interpretació. Per exemple, considereu el següent HTML:</p> + +<pre class="brush: html"><map></map> +<map> + <area shape="rect" coords="25,25,75,75" href="#fail"> +</map> +<img usemap="#a" src="image.png"> +</pre> + +<p>[2] Abans de Gecko 5.0, l'element {{HTMLElement ("img")}} hauria coincidit amb el segon mapa no buit. Ara coincideix amb el primer, encara que estigui buit.</p> + +<p>[3] A partir del Firefox 17 l'estil per defecte de l'element HTML <code><map></code> és <code>display:inline</code>; i no <code>display:block</code>;. Això coincideix amb el comportament d'altres navegadors i el cas que es donava en la modalitat d'interpretació.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("a")}}</li> + <li>{{HTMLElement("area")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/mark/index.html b/files/ca/web/html/element/mark/index.html new file mode 100644 index 0000000000..c04d4a9401 --- /dev/null +++ b/files/ca/web/html/element/mark/index.html @@ -0,0 +1,146 @@ +--- +title: <mark> +slug: Web/HTML/Element/mark +tags: + - Element + - HTML + - HTML text-level semantics + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/mark +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>element HTML marca</em> (<code><mark></code>) representa el text ressaltat, és a dir, una extensió de text marcat per a finalitats de referència, per la seva <em>rellevància</em> en un context particular. Per exemple, pot utilitzar-se en una pàgina que mostra els resultats de cerca per ressaltar cada instància de la paraula buscada.</p> + +<div class="note"> +<p><em>Notes d'ùs: </em></p> + +<ul> + <li>En una cita o un altre bloc, el text ressaltat sol marcar el text que es fa referència fora de la cita, o marcat per a un escrutini específic encara que l'autor original no ho va considerar important.</li> + <li>En el text principal, el text ressaltat sol marcar text que pot ser d'especial rellevància per a l'activitat actual de l'usuari, com els resultats de la cerca..</li> + <li>No utilitzeu l'element <code><mark></code> per al ressaltat de sintaxi; utilitzar l'element {{HTMLElement("span")}} per a aquest fi.</li> + <li>No s'ha de confondre l'element <code><mark></code> amb l'element {{HTMLElement("strong")}}. L'element {{HTMLElement("strong")}} s'utilitza per indicar espais de text d'<em>importància</em> en el context del text, i s'utilitza l'element <code><mark></code> per designar espais de text de <em>rellevància</em> per a un context diferent.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><p>The &lt;mark&gt; element is used to <mark>highlight</mark> text</p> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>The <mark> element is used to <mark>highlight</mark> text</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-mark-element', '<mark>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-mark-element', '<mark>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres <a href="/en-US/docs/HTML/Text-level_semantics_elements" title="HTML/Text-level semantics elements">elements a nivell de text, semàntica</a>: {{HTMLElement("a")}}, {{HTMLElement("em")}}, {{HTMLElement("strong")}}, {{HTMLElement("cite")}}, {{HTMLElement("q")}}, {{HTMLElement("dfn")}}, {{HTMLElement("abbr")}}, {{HTMLElement("time")}}, {{HTMLElement("code")}}, {{HTMLElement("var")}}, {{HTMLElement("samp")}}, {{HTMLElement("kbd")}}, {{HTMLElement("sub")}}, {{HTMLElement("sup")}}, {{HTMLElement("i")}}, {{HTMLElement("b")}}, {{HTMLElement("mark")}}, {{HTMLElement("ruby")}}, {{HTMLElement("rp")}}, {{HTMLElement("rt")}}, {{HTMLElement("bdo")}}, {{HTMLElement("span")}}, {{HTMLElement("br")}}, {{HTMLElement("wbr")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/marquee/index.html b/files/ca/web/html/element/marquee/index.html new file mode 100644 index 0000000000..8a7c52b823 --- /dev/null +++ b/files/ca/web/html/element/marquee/index.html @@ -0,0 +1,203 @@ +--- +title: <marquee> +slug: Web/HTML/Element/marquee +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/marquee +--- +<div>{{HTMLRef}}</div> + +<div>{{obsolete_header}}</div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'element HTML <code><marquee></code> s'utilitza per inserir una àrea de desplaçament de text.</p> + +<h2 id="Atributs">Atributs</h2> + +<dl> + <dt>{{htmlattrdef("behavior")}}</dt> + <dd>Estableix com el text es desplaça dins de la marquesina. Els valors possibles són <code>scroll</code>, <code>slide</code> i <code>alternate</code>. Si no s'especifica cap valor, el valor predeterminat és <code>scroll</code>.</dd> + <dt>{{htmlattrdef("bgcolor")}}</dt> + <dd><span id="result_box" lang="ca"><span>Estableix</span> <span>el color de fons</span> <span>a través del nom</span> <span>del color</span> <span>o el valor</span> <span>hexadecimal</span></span>.</dd> + <dt>{{htmlattrdef("direction")}}</dt> + <dd><span id="result_box" lang="ca"><span>Estableix</span> <span>la direcció del moviment</span> <span>en sentit</span> <span>vertical dins</span> <span>de la</span></span> marquesina. <span id="result_box" lang="ca"><span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span></span> <code>left</code>, <code>right</code>, <code>up</code> i <code>down</code>. <span id="result_box" lang="ca"><span>Si</span> <span>no s'especifica</span> <span>cap valor</span><span>,</span> <span>es</span> <span>deixa el</span> <span>valor per</span> <span>defecte</span></span> <code>left</code>.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd><span id="result_box" lang="ca"><span>Estableix</span> <span>l'alçada en</span> <span>píxels o</span> <span>en valor</span> <span>percentual</span></span> .</dd> + <dt>{{htmlattrdef("hspace")}}</dt> + <dd><span id="result_box" lang="ca"><span>Defineix el</span> <span>marge</span> <span>horitzontal</span></span>.</dd> + <dt>{{htmlattrdef("loop")}}</dt> + <dd>Estableix el nombre de vegades que la marquesina es desplaçarà. Si no s'especifica cap valor, el valor predeterminat és -1, el que significa que la marquesina es desplaçarà contínuament.</dd> + <dt>{{htmlattrdef("scrollamount")}}</dt> + <dd>Estableix la quantitat de desplaçament en cada interval en píxels. El valor per defecte és 6.</dd> + <dt>{{htmlattrdef("scrolldelay")}}</dt> + <dd>Estableix l'interval entre cada moviment de desplaçament en milisegons. El valor per defecte és 85. Tingueu en compte que qualsevol valor inferior a 60 és ignorat i el valor 60 s'utilitza en el seu lloc, llevat que s'especifiqui <code>trueSpeed</code>.</dd> + <dt>{{htmlattrdef("truespeed")}}</dt> + <dd> + <p>Per defecte, si els valors de <code>scrollDelay</code> estan per sota 60 son ignorats. Si <code>trueSpeed</code> està present, aquests valors no són ignorats.</p> + </dd> + <dt>{{htmlattrdef("vspace")}}</dt> + <dd>Defineix el marge vertical en píxels o percentatge.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>Estableix l'amplada en píxels o en valor percentual.</dd> +</dl> + +<h2 id="Event_handlers" name="Event_handlers">Controladors d'esdeveniments</h2> + +<dl> + <dt>{{htmlattrdef("onbounce")}}</dt> + <dd>S'activa quan la marquesina ha arribat al final de la seva posició de desplaçament. Només es pot disparar quan l'atribut de comportament està configurat en <code>alternate</code>.</dd> + <dt>{{htmlattrdef("onfinish")}}</dt> + <dd>S'activa quan la marquesina ha acabat la quantitat de desplaçament que s'estableix en l'atribut loop. Només es pot disparar quan l'atribut loop s'estableix en un nombre que és més gran que 0.</dd> + <dt>{{htmlattrdef("onstart")}}</dt> + <dd>S'activa quan la marquesina comença a desplaçar-se.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>start</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Inicia</span> el <span>desplaçament de la</span> <span>marquesina.</span></span></dd> + <dt>stop</dt> + <dd> <span class="short_text" id="result_box" lang="ca"><span>Atura el </span><span>desplaçament de la</span> <span>marquesina</span></span> .</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><marquee>This text will scroll from right to left</marquee> + +<marquee direction="up">This text will scroll from bottom to top</marquee> + +<marquee direction="down" width="250" height="200" behavior="alternate" style="border:solid"> + <marquee behavior="alternate"> + This text will bounce + </marquee> +</marquee></pre> + +<p>{{EmbedLiveSample("Examples", 600, 450)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'obsolete.html#the-marquee-element-2', '<marquee>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Faci-ho obsolet a favor de CSS, però definiu el seu comportament esperat, per a la compatibilitat amb versions anteriors.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'obsolete.html#the-marquee-element-0', '<marquee>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Faci-ho obsolet a favor de CSS, però definiu el seu comportament esperat, per a la compatibilitat amb versions anteriors.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>2.0</td> + <td>7.2</td> + <td>1.2</td> + </tr> + <tr> + <td>atribut <code>truespeed</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>4.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>atribut <code>hspace/vspace</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>truespeed</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut<code>h space/vspace</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/html/element/menu/index.html b/files/ca/web/html/element/menu/index.html new file mode 100644 index 0000000000..e8f358df1f --- /dev/null +++ b/files/ca/web/html/element/menu/index.html @@ -0,0 +1,184 @@ +--- +title: <menu> +slug: Web/HTML/Element/menu +translation_of: Web/HTML/Element/menu +--- +<div>{{HTMLRef}}{{SeeCompatTable}}</div> + +<p>L'<strong>element</strong> <strong>HTML <code><menu></code></strong> representa un grup d'ordres que l'usuari pot realitzar o activar. Això inclou tant llistes com menús, que poden aparèixer a la part de dalt de la pantalla, com també menús de context, com les que poden aparèixer sota d'un botó després d'haver fet click.</p> + +<div class="note"><strong>Nota d'ús: </strong>Els elements {{HTMLElement("menu")}} i {{HTMLElement("ul")}} representen una llista no ordenada d'ítems. La diferència clau es que {{HTMLElement("ul")}} conté principalment ítems per mostrar, mentre que {{HTMLElement("menu")}} està destinat a elements interactius</div> + +<p class="note"><strong>Notes: </strong>This element was deprecated in HTML4, però reintroduit en l'HTML5.1 (still working draft).")}}. This document describes current Firefox implementation. Type 'list' is likely to change to 'toolbar' and 'context' to 'popup' according to HTML5.1 working draft.")}}</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>. Additionally, if in the <em>list menu</em> state, palpable content. (<em>list menu</em> is the default state, unless the parent element is a {{HTMLElement("menu")}} in the <em>context menu</em> state.)</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>If the element is in the <em>list menu</em> state: <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">flow content</a>, or alternatively, zero or more occurrences of {{HTMLElement("li")}}, {{HTMLElement("script")}}, and {{HTMLElement("template")}}.<br> + If the element is in the <em>context menu</em> state: zero or more occurrences, in any order, of {{HTMLElement("menu")}} (<em>context menu</em> state only), {{HTMLElement("menuitem")}}, {{HTMLElement("hr")}}, {{HTMLElement("script")}}, and {{HTMLElement("template")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permessos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLMenuElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("label")}}</dt> + <dd>The name of the menu as shown to the user. Used within nested menus, to provide a label through which the submenu can be accessed. Must only be specified when the parent element is a {{HTMLElement("menu")}} in the <em>context menu</em> state.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>This attribute indicates the kind of menu being declared, and can be one of two values. + <ul> + <li><code>context</code>: The <em>context menu</em> state, which represents a group of commands activated through another element. This might be through the {{htmlattrxref("menu", "button")}} attribute of a {{HTMLElement("button")}}, or an element with a <a href="/en-US/docs/HTML/Global_attributes#attr-contextmenu"><code>contextmenu</code></a> attribute. When nesting {{HTMLElement("menu")}} elements directly within one another, this is the missing value default if the parent is already in this state.</li> + <li><code>list</code>: The <em>list menu</em> state, which represents a series of commands for user interaction. This is the missing value default, except where the parent element is a {{HTMLElement("menu")}} in the <em>context menu</em> state.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_1">Exemple 1</h3> + +<pre class="brush: html"><!-- Un botó, que mostra un menú quan es clica --> +<button type="menu" menu="dropdown-menu"> + Dropdown +</button> + +<menu type="context" id="dropdown-menu"> + <menuitem label="Action"> + <menuitem label="Another action"> + <hr> + <menuitem label="Separated action"> +</menu> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example_1', '', '', '', 'Web/HTML/Element/menu')}}</p> + +<h3 id="Exemple_2">Exemple 2</h3> + +<pre class="brush: html"><!-- un menú de context per a un simple editor, que conté dos botons de menú --> +<menu> + <li> + <button type="menu" value="File" menu="file-menu"> + <menu type="context" id="file-menu"> + <menuitem label="New..." onclick="newFile()"> + <menuitem label="Save..." onclick="saveFile()"> + </menu> + </li> + <li> + <button type="menu" value="Edit" menu="edit-menu"> + <menu type="context" id="edit-menu"> + <menuitem label="Cut..." onclick="cutEdit()"> + <menuitem label="Copy..." onclick="copyEdit()"> + <menuitem label="Paste..." onclick="pasteEdit()"> + </menu> + </li> +</menu> +</pre> + +<h3 id="Resultat_2">Resultat</h3> + +<p>{{EmbedLiveSample('Example_2', '', '', '', 'Web/HTML/Element/menu')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'interactive-elements.html#the-menu-element', '<menu>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'interactive-elements.html#the-menu-element', '<menu>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Gecko has some implementation, though it is not compatible to the specification. Vegeu <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1100749">error 1100749</a>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Other list-related HTML Elements: {{HTMLElement("ol")}}, {{HTMLElement("ul")}}, {{HTMLElement("li")}} and the obsolete {{HTMLElement("dir")}}.</li> + <li>The <a href="/en-US/docs/HTML/Global_attributes#attr-contextmenu"><code>contextmenu</code></a> <a href="/en-US/docs/HTML/Global_attributes">global attribute</a> can be used on an element to refer to the <code>id</code> of a <code>menu</code> with the <code>context</code> {{htmlattrxref("type","menu")}}.</li> +</ul> diff --git a/files/ca/web/html/element/menuitem/index.html b/files/ca/web/html/element/menuitem/index.html new file mode 100644 index 0000000000..d6dae0dfb0 --- /dev/null +++ b/files/ca/web/html/element/menuitem/index.html @@ -0,0 +1,192 @@ +--- +title: <menuitem> +slug: Web/HTML/Element/menuitem +tags: + - Element + - Experimental + - HTML + - HTML interactive elements + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/menuitem +--- +<div>{{HTMLRef}}{{SeeCompatTable}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><menuitem></code></strong> representa un comando que un usuari és capaç d'invocar a través d'un menú emergent. Això inclou menús contextuals, així com menús que es poden adjuntar a un botó de menú.</p> + +<p>Un comando es pot definir explícitament, amb una etiqueta textual i una icona opcional per descriure el seu aspecte, o bé com un comando indirecte el comportament del qual és definit per un element separat. Els comandos també poden incloure opcionalment una casella de verificació o estar agrupats per compartir els botons d'opció. (Els elements de menú per a comandos indirectes s'obtenen de caselles de verificació o botons de radi quan es defineixen contra els elements <code><input type="checkbox"></code> i <code><input type="radio"></code>.)</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir una</span> <span>etiqueta d'inici</span> <span>i</span> <span>no</span><span> etiqueta</span> <span>de tancament</span></span> .</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>L'element {{HTMLElement ( "menu")}}, on aquest element està en l'<em>estat del menú emergent</em>. (Si s'especifica, l'atribut <code>type</code> de l'element {{HTMLElement ( "menu")}} ha de ser <code>popup</code>; si manca, l'element principal de el {{HTMLElement ( "menu")}} ha de ser un {{HTMLElement ( "menu")}} en l'estat del <em>menú emergent</em>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLMenuItemElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs global</a>; en particular <code>title</code> pot ser utilitzat per descriure el comando, o proporcionar suggeriments d'ús.</p> + +<dl> + <dt>{{htmlattrdef("checked")}}</dt> + <dd>Atribut booleà que indica si s'ha seleccionat el comando. Només es pot utilitzar quan l'atribut <code>type</code> és <code>checkbox</code> or <code>radio</code></dd> + <dt>{{htmlattrdef("command")}}</dt> + <dd>Especifica l'ID d'un element separat, que indica una ordre que s'invoca de manera indirecta. No es pot utilitzar dins d'un element de menú que també inclou els atributs <code>checked</code>, <code>disabled</code>, <code>icon</code>, <code>label</code>, <code>radiogroup</code> o <code>type</code>.</dd> + <dt>{{htmlattrdef("default")}}</dt> + <dd>Aquest atribut booleà indica l'ús del mateix comando que l'element menu's subjecte (tal com un <code>button</code> o <code>input</code>).</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Atribut booleà que indica que l'ordre no està disponible en l'estat actual. Recordeu que és diferent <code>disabled</code> que <code>hidden</code>; l'atribut <code>disabled</code> és apropiat en qualsevol context on un canvi en les circumstàncies podria fer que el comando fora rellevant.</dd> + <dt>{{htmlattrdef("icon")}}</dt> + <dd>URL de la imatge, que s'utilitza per proporcionar una imatge per representar el comando.</dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>El nom del comando com es mostra a l'usuari. Es requereix quan l'atribut <code>command</code> no està present.</dd> + <dt>{{htmlattrdef("radiogroup")}}</dt> + <dd>Aquest atribut especifica el nom d'un grup de comandos que s'han d'alternar com a botons d'opció quan se selecciona. Només es pot utilitzar quan l'atribut de tipus és <code>radio</code>.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Aquest atribut indica el tipus de comandament, i pot tenir un dels tres valors. + <ul> + <li><code>command</code>: Un comando regular amb una acció associada. Aquest és el valor per defecte si falta.</li> + <li><code>checkbox</code>: Representa una ordre que es pot commutar entre dos estats diferents.</li> + <li><code>radio</code>: Representen una selecció d'un grup de comandes que es poden alternar com botons de radio.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><!-- A <div> element with a context menu --> +<div contextmenu="popup-menu"> + Right-click to see the adjusted context menu +</div> + +<menu type="context" id="popup-menu"> + <menuitem type="checkbox" onclick="toggleOption()" checked="true">Checkbox</menuitem> + <menuitem type="command" label="Command" icon="icon.png" onclick="doSomething()">Checkbox</menuitem> + <menuitem type="radio" name="group1" onclick="option()" checked="true">Radio button 1</menuitem> + <menuitem type="radio" name="group1" onclick="option()">Radio button 2</menuitem> +</menu> +</pre> + +<h3 id="Contingut_CSS">Contingut CSS</h3> + +<pre class="brush: css">div { + width: 300px; + height: 80px; + background-color: lightgreen; +} +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', '300', '80')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-menuitem-element', '<menuitem>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'interactive-elements.html#the-menuitem-element', '<menuitem>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop(8)}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}<sup>[3]</sup></td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile(8)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Això s'implementa darrere de les <em>característiques de la plataforma web experimental</em> de preferència i només és compatible amb <code>type="comand"</code>.</p> + +<p>[2] Només funciona per <menuitems> definit dins d'un element {{HTMLElement("menu")}} assignat a un element per mitjà de l'<a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes#attr-contextmenu">atribut contextmenu</a>. A més, l'element requereix una etiqueta de tancament.</p> + +<p>[3] Això s'implementa darrere de les <em>característiques habilitades de la plataforma web experimental</em> de preferència<span lang="ca"><span> i</span> <span>només</span> <span>és compatible</span> <span>amb</span> </span><code>type="comand"</code>.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://hacks.mozilla.org/2011/11/html5-context-menus-in-firefox-screencast-and-code/">Menús de context HTML5 en Firefox (Screencast i Codi)</a></li> +</ul> diff --git a/files/ca/web/html/element/meta/index.html b/files/ca/web/html/element/meta/index.html new file mode 100644 index 0000000000..f455e6f77d --- /dev/null +++ b/files/ca/web/html/element/meta/index.html @@ -0,0 +1,481 @@ +--- +title: <meta> +slug: Web/HTML/Element/meta +tags: + - Document + - Element + - HTML + - HTML document metadata + - Reference + - Web + - metadata +translation_of: Web/HTML/Element/meta +--- +<div>{{HTMLRef}}</div> + +<p>L'<strong>element HTML <code><meta></code></strong> representa qualsevol informació de metadades que no pot ser representat per un dels altres elements meta-relacionats amb l'HTML ({{HTMLElement("base")}}, {{HTMLElement("link")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}} or {{HTMLElement("title")}}).</p> + +<p><span id="result_box" lang="ca"><span>Depenent del</span> <span>conjunt</span> <span>d'atributs</span><span>, el tipus</span> <span>de metadades</span> <span>pot</span> <span>ser un dels</span> <span>següents</span><span>:</span></span></p> + +<ul> + <li>Si {{htmlattrxref("name", "meta")}} està establert, es tracta de <em>metadades a nivell de document</em>, s'aplica a tota la pàgina.</li> + <li>Si {{htmlattrxref("http-equiv", "meta")}} està establert, és una directiva pragma, és a dir, informació normalment proporcionada pel servidor web sobre com s'ha de publicar la pàgina web.</li> + <li>Si {{htmlattrxref ("charset", "meta")}} està establert, és una declaració de conjunt de caràcters (charset), és a dir, el conjunt de caràcters utilitzat per a la forma serializada de la pàgina web..</li> + <li>Si s'estableix {{htmlattrxref("itemprop", "meta")}} , són metadades definides per l'usuari, transparent per a l'usuari-agent, ja que la semàntica de les metadades és específica de l'usuari. {{experimental_inline}}</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Contingut metadata. S l'atribut {{htmlattrxref("itemprop", "meta")}} és present: <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ja</span> <span>que és un</span> <span>element</span> <span>buit,</span> <span>l'etiqueta</span> <span>d'inici</span> <span>ha d'estar present</span> <span>i</span> <span>l'etiqueta</span> <span>final</span> <span>no ha d'estar</span> <span>present</span></span></td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td><code><meta charset></code>, <code><meta http-equiv></code>: un element {{HTMLElement("head")}}.Si {{htmlattrxref ("http-equiv", "meta")}} no és una declaració de codificació, també pot ser dins d'un element {{HTMLElement("noscript")}}, en si dins d'un element {{HTMLElement("head")}}.</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLMetaElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<p>Recordeu que el {{htmlattrxref("name", "meta")}} global té una semàntica específica en l'element {{HTMLElement("meta")}} i que la {{htmlattrxref("itemprop", "meta")}} no s'ha d'establir quan una dels {{htmlattrxref("name", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} o {{htmlattrxref("charset", "meta")}} ja s'utilitza.</p> + +<dl> + <dt>{{htmlattrdef("charset")}}</dt> + <dd>Aquest atribut declara la codificació de caràcters utilitzada de la pàgina. Pot ser reemplaçat de forma local mitjançant l'atribut <strong>lang</strong> en qualsevol element. Aquest atribut és una cadena literal i ha de ser un dels <em>noms MIME preferits</em> per a una codificació de caràcters <a href="http://www.iana.org/assignments/character-sets">definits per la IANA</a>. Tot i que la norma no sol·licita una codificació de caràcters específica, dóna algunes recomanacions: + <ul> + <li><span class="short_text" id="result_box" lang="ca"><span>S'anima els</span> <span>autors</span> <span>a utilitzar</span> <span>UTF</span><span>-8.</span></span></li> + <li>Els autors no han d'utilitzar codificacions ASCII incompatibles (és a dir, aquelles que no assignen els punts de codi de 8 bits 0x20 a 0x7I als punts de codi Unicode 0x0020 a 0x007I), ja que representen un risc per a la seguretat: els navegadors que no els suporten poden interpretar contingut benigne com a Elements HTML. Aquest és el cas d'almenys els següents conjunts de caràcters: JIS_C6226-1983, JIS_X0212-1990, HZ-GB-2312, JOHAB , la família de normes ISO-2022, i la família EBCDIC.</li> + <li>Els autors no han d'utilitzar CESU-8, UTF-7, BOCU-1 i SCSU, també pertanyents a aquesta categoria i no destinats a ser utilitzats a la web. S'han documentat atacs creuats amb algunes d'aquestes codificacions</li> + <li>Els autors no han d'utilitzar UTF-32 perquè no tots els algoritmes de codificació HTML5 poden distingir-ho d'UTF-16.</li> + </ul> + + <div class="note"><strong>Notes:</strong> + + <ul> + <li>El conjunt de caràcters declarat ha de coincidir amb el de la pàgina. No hi ha cap raó vàlida per declarar un conjunt de caràcters incorrecte.</li> + <li>Aquest element {{HTMLElement("meta")}} ha d'estar dins de l'element {{HTMLElement("head")}} i <strong>dins dels 1024 primers bytes</strong> de la pàgina, ja que alguns navegadors només tenen en compte aquests primers bytes abans d'escollir un caràcter fix de la pàgina.</li> + <li>Aquest element {{HTMLElement("meta")}} és només una part de <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm">l'algoritme per determinar el conjunt de caràcters</a> d'una pàgina que s'apliquen els navegadors. La capçalera HTTP Content-Type i qualsevol element BOM tenen prioritat sobre aquest element.</li> + <li>És una bona pràctica, i molt recomanable, definir el joc de caràcters que utilitza aquest atribut. Si no hi ha cap joc de caràcters definit per a una pàgina, diverses tècniques de scripts creuats poden ser capaços de perjudicar la pàgina d'usuari, com ara <a href="http://code.google.com/p/doctype-mirror/wiki/ArticleUtf7">la tècnica de reutilització de scripts creuats</a> en UTF-7. Establir sempre aquesta meta protegirà contra aquests riscos.</li> + <li>Aquest element {{HTMLElement("meta")}} és un sinònim de la pre-HTML5 <code><meta http-equiv="Content-Type" content="text/html; charset=<em>IANAcharset</em>"> </code>on <em><code>IANAcharset</code> </em>correspon al valor de l'atribut equivalent {{htmlattrxref("charset", "meta")}}. Aquesta sintaxi es segueix permetent, tot i que obsoleta i ja no es recomana.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("content")}}</dt> + <dd>Aquest atribut proporciona el valor associat a l'atribut {{htmlattrxref("http-equiv", "meta")}} o {{htmlattrxref("name", "meta")}}, depenent del context..</dd> + <dt>{{htmlattrdef("http-equiv")}}</dt> + <dd>Aquest atribut enumerat defineix el pragma que pot alterar comportament els servidors i agents d'usuari . El valor de pragma es defineix utilitzant la {{htmlattrxref("content", "meta")}} i pot ser un dels següents: + <dl> + <dt><code>"content-language"</code> {{obsolete_inline}}</dt> + <dd>Aquest pragma defineix l'idioma per defecte de la pàgina. + <div class="note">No utilitzeu aquest pragma, ja que és obsolet. Utilitzeu l'atribut global <code>lang</code> sobre l'element {{HTMLElement("html")}} al seu lloc.</div> + </dd> + <dt><code>"Content-Security-Policy"</code></dt> + <dd>Aquest valor permet als administradors de llocs web definir polítiques de contingut per als recursos que es proporcionen. Amb unes poques excepcions, les polítiques impliquen principalment especificar els orígens de servidors i punts finals de script. Això ajuda a protegir els atacs de scripts entre llocs.</dd> + <dt><code>"content-type"</code> {{obsolete_inline}}</dt> + <dd>Aquest atribut defineix el <a href="https://developer.mozilla.org/en-US/docs/MIME">tipus MIME</a> del document, amb el temps, seguit del seu joc de caràcters. Segueix la mateixa sintaxi que el camp d'encapçalat d'entitat HTTP <code>content-type</code> però com és l'interior d'un element HTML, la majoria dels valors no són possibles. Per tant, la sintaxi vàlida per al seu contingut literal és la cadena '<code>text/html</code>' seguit eventualment d'un conjunt de caràcters amb la següent sintaxi:'<code>; charset=</code><em><code>IANAcharset</code></em>' on <code>IANAcharset</code> es el <em>nom MIME preferit</em> per a un conjunt de caràcters <a href="http://www.iana.org/assignments/character-sets">definit per la IANA</a>. + <div class="note"><strong>Nota d'ùs:</strong> + <ul> + <li>No utilitzeu aquest pragma ja què és obsolet. Utilitzar l'atribut {{htmlattrxref("charset", "meta")}} en l'element {{HTMLElement("meta")}} al seu lloc.</li> + <li>Com el {{HTMLElement("meta")}} no pot ser utilitzat per canviar el tipus d'un document en un document XHTML, o en un document HTML 5 seguint la sintaxi XHTML, mai posar un tipus MIME a un tipus XHTML MIME d'aquesta manera. Seria incorrecte.</li> + <li>Només un document HTML pot utilitzar el tipus de contingut, per la qual cosa la majoria d'ells és redundant: per això ha quedat obsolet i reemplaçat per l'atribut {{htmlattrxref("charset", "meta")}}.</li> + </ul> + </div> + </dd> + <dt><code>"default-style"</code></dt> + <dd>Aquest pragma especifica el full d'estil preferit per a ser usat en la pàgina. L'atribut {{htmlattrxref("content", "meta")}} ha de contenir el títol d'un element {{HTMLElement ("link")}} que el seu atribut {{htmlattrxref ("href", "link")}} enllaçi a un full d'estil CSS, o el títol d'un element {{HTMLElement("style")}} que conté un full d'estil <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a>.</dd> + <dt><code>"refresh"</code></dt> + <dd>Aquest pragma especifica: + <ul> + <li>el nombre de segons fins que la pàgina pugui ser recarregada, si l'atribut {{htmlattrxref("content", "meta")}} conté només un nombre enter positiu;</li> + <li>el nombre de segons fins que la pàgina sigui redirigida a un altre, si l'atribut {{htmlattrxref("content", "meta")}} conté un nombre enter positiu seguit de la cadena '<code>;url=</code>' i una adreça URL vàlida.</li> + </ul> + </dd> + <dt><code>"set-cookie"</code> {{obsolete_inline}}</dt> + <dd>Aquest pragma defineix una <a href="https://developer.mozilla.org/en-US/docs/cookie">cookie</a> per a la pàgina. El seu contingut ha de seguir la sintaxi definida en l'<a href="http://tools.ietf.org/html/draft-ietf-httpstate-cookie-14">especificació de cookie HTTP IETF</a>. + <div class="note"><strong>Nota:</strong> No utilitzeu aquest pragma ja qués és obsolet. Utilitzeu la capçalera HTTP set-cookie al seu lloc.</div> + </dd> + </dl> + </dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>Aquest atribut defineix el nom de metadades a nivell de document. No s'ha d'establir si un dels atributs {{htmlattrxref("itemprop", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} o {{htmlattrxref("charset", "meta")}} també està establert.<br> + Aquest nom de metadades a nivell de document s'associa amb un valor, contingut per l'atribut {{htmlattrxref("content", "meta")}}. Els valors possibles per a l'element name són, amb el seu valor associat, emmagatzemat a través de l'atribut {{htmlattrxref("content", "meta")}}: + <ul> + <li><code>application-name</code>, defineix el nom de l'aplicació web que s'executa a la pàgina web; + <div class="note"><strong>Note:</strong> + <ul> + <li>Els navegadors ho poden usar per identificar l'aplicació. És diferent de l'element {{HTMLElement("title")}}, que en general consisteix en el nom de l'aplicació, però també pot contenir informació específica com el nom del document o un estat;</li> + <li>Les pàgines web senzilles no han de definir la meta del nom de l'aplicació.</li> + </ul> + </div> + </li> + <li><code>author</code>, defineix, en un format lliure, el nom de l'autor del document;</li> + <li><code>description</code>, conté un resum breu i precís del contingut de la pàgina. Diversos navegadors, entre ells Firefox i Opera, utilitzen aquesta meta com la descripció per defecte de la pàgina quan estan marcats;</li> + <li><code>generator</code>, conté, en un format lliure, l'identificador per al programari que genera la pàgina;</li> + <li><code>keywords</code>, conté, cadenes separades per comes, les paraules rellevants associades amb el contingut de la pàgina;</li> + <li><code>referrer</code> {{experimental_inline}} controlar el contingut de la capçalera HTTP <code>referer</code> HTTP unit a qualsevol sol·licitud enviada des d'aquest document: + <table class="standard-table"> + <caption>Els valors per a l'atribut content de <meta name="referrer"></caption> + <thead> + </thead> + <tbody> + <tr> + <td><code>no-referrer</code></td> + <td>No envia una capçalera HTTP <code>Referer</code>.</td> + </tr> + <tr> + <td><code>origin</code></td> + <td>Enviar l'<a href="/en-US/docs/Glossary/Origin">origin</a> del document.</td> + </tr> + <tr> + <td><code>no-referrer-when-downgrade</code></td> + <td>Envia l'<a href="/en-US/docs/Glossary/Origin">origin</a> com a referència a una destinació prioritària com a-molt-segur (https->https), però no envia una referència a una destinació menys segura (https->http). <span id="result_box" lang="ca"><span>Aquest</span> <span>és el comportament</span> <span>per</span> <span>defecte</span></span>.</td> + </tr> + <tr> + <td><code>origin-when-crossorigin</code></td> + <td>Envia un URL sencera (despullada de paràmetres) quan es realitza una sol·licitud del mateix origen, però només enviar l'origen del document per a altres casos.</td> + </tr> + <tr> + <td><code>unsafe-URL</code></td> + <td>Envia un URL sencera (despullada de paràmetres) en realitzar una sol·licitud del mateix origen o d'origen creuat.</td> + </tr> + </tbody> + </table> + + <div class="note"> + <p><strong>Nota: </strong>Alguns navegadors soportan paraules clau per defecte, i mai per referència. Aquests valors estan obsolets. </p> + </div> + + <div class="note"> + <div class="notes"><strong>Nota:</strong> Inserir dinàmicament <code><meta name="referrer"></code> (per document.write o appendChild) crea un no determinisme quan es tracta d'enviar les referéncies o no. Recordeu també que quan es defineixen una sèrie de polítiques en conflicte, s'aplica la política de no-referrer.</div> + </div> + </li> + </ul> + + <p>L'atribut pot tenir també un valor pres de la llista ampliada definida a la pàgina <a href="http://wiki.whatwg.org/wiki/MetaExtensions">WHATWG Wiki MetaExtensions</a>. Tot i que cap ha estat formalment acceptada però, alguns noms d'ús comú són algunes de les propostes:</p> + + <ul> + <li><code>creator</code>, defineix, en un format lliure, el nom de l'autor del document. Recordeu que pot ser el nom de la institució. Si hi ha més d'un, s'han d'utilitzar diversos elements {{HTMLElement ("meta")}};</li> + <li><code>googlebot</code>, és un sinònim de robots, però només és seguit pel robot de Google, el rastrejador d'indexació de Google;</li> + <li><code>publisher</code>, defineix, en un format lliure, el nom de l'editor del document. Recordeu que pot ser el nom de la institució;</li> + <li><code>robots</code>, defineix el comportament que els rastrejadors de cooperació han de tenir amb la pàgina. És una llista separada per comes dels valors de la següent llista: + <table class="standard-table"> + <caption>Els valors per content de <meta name="robots"></caption> + <thead> + <tr> + <th scope="col">Valor</th> + <th scope="col">Descripció</th> + <th scope="col">Utilizat per</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>index</code></td> + <td>Permet al robot indexar la pàgina</td> + <td>Tot</td> + </tr> + <tr> + <td><code>noindex</code></td> + <td><span class="short_text" id="result_box" lang="ca"><span>Evita que</span> <span>el robot</span> <span>indexi</span> <span>la pàgina</span></span></td> + <td>Tot</td> + </tr> + <tr> + <td><code>follow</code></td> + <td><span id="result_box" lang="ca"><span>Permet</span> <span>que el robot</span> <span>segueixi els</span> <span>enllaços de la pàgina</span></span></td> + <td>Tot</td> + </tr> + <tr> + <td><code>nofollow</code></td> + <td>Evita que el robot segueixi els enllaços de la pàgina</td> + <td>Tot</td> + </tr> + <tr> + <td><code>noodp</code></td> + <td>Evita l'ús del <a href="http://www.dmoz.org/">Open Directory Project</a>, si escau, com la descripció de la pàgina en la pàgina de resultats del motor de cerca</td> + <td> + <p><a class="external" href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812" title="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812">Google</a>, <a class="external" href="http://help.yahoo.com/l/us/yahoo/search/indexing/indexing-11.html;_ylt=Arh3LHnisvRMPJKzQqmJ97JYqCN4" title="http://help.yahoo.com/l/us/yahoo/search/indexing/indexing-11.html;_ylt=Arh3LHnisvRMPJKzQqmJ97JYqCN4">Yahoo</a>, <a class="external" href="http://www.bing.com/toolbox/blogs/webmaster/archive/2008/06/03/robots-exclusion-protocol-joining-together-to-provide-better-documentation.aspx" title="http://www.bing.com/toolbox/blogs/webmaster/archive/2008/06/03/robots-exclusion-protocol-joining-together-to-provide-better-documentation.aspx">Bing</a></p> + </td> + </tr> + <tr> + <td><code>noarchive</code></td> + <td>Evita que el motor de cerca emmagatzemi en caché el contingut de la pàgina</td> + <td><a class="external" href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812" title="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812">Google</a>, <a class="external" href="http://help.yahoo.com/l/us/yahoo/search/indexing/basics-10.html;_ylt=Aszma_Ly8TfhL7mn_LGWn5RYqCN4" title="http://help.yahoo.com/l/us/yahoo/search/indexing/basics-10.html;_ylt=Aszma_Ly8TfhL7mn_LGWn5RYqCN4">Yahoo</a></td> + </tr> + <tr> + <td><code>nosnippet</code></td> + <td>Evita la visualització de qualsevol descripció de la pàgina a la pàgina de resultats del motor de cerca</td> + <td><a class="external" href="http://www.google.com/support/webmasters/bin/answer.py?answer=35304" title="http://www.google.com/support/webmasters/bin/answer.py?answer=35304">Google</a></td> + </tr> + <tr> + <td><code>noimageindex</code></td> + <td>Evita que aquesta pàgina aparegui com la pàgina de referència d'una imatge indexada</td> + <td><a class="external" href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812" title="http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=79812">Google</a></td> + </tr> + <tr> + <td><code>nocache</code></td> + <td>Sinònim de <code>noarchive</code></td> + <td><a class="external" href="http://www.bing.com/toolbox/blogs/webmaster/archive/2008/06/03/robots-exclusion-protocol-joining-together-to-provide-better-documentation.aspx" title="http://www.bing.com/toolbox/blogs/webmaster/archive/2008/06/03/robots-exclusion-protocol-joining-together-to-provide-better-documentation.aspx">Bing</a></td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Notes:</strong> + + <ul> + <li>Només robots cooperatius seguiran les regles definides pel nom dels robots. No cal esperar per mantenir les recol·lectores de correu electrònic a ratlla amb això.</li> + <li>El robot encara ha d'accedir a la pàgina per tal de llegir el valor meta. Si vol mantenir a ratlla, per exemple, per prevenir el consum d'ample de banda, utilitzeu un fitxer robots.txt en el seu lloc (o en el complement).</li> + <li>Si voleu treure la pàgina d'un índex, canviant de meta a noindex funcionarà, però només quan el robot visiti la pàgina de nou. Estigueu segurs de no impedir aquest tipus de visites, a través de l'arxiu robots.txt per exemple. Alguns motors de cerca tenen eines de desenvolupadors, el que permet una eliminació ràpida d'alguna pàgina..</li> + <li>Alguns valors possibles són mútuament excloents, com l'ús d'<code>index</code> i <code>noindex</code>, o <code>follow</code> i <code>nofollow</code>, al mateix temps. En aquests casos el comportament del robot no està definit, i pot variar d'un a un altre. Per tant evitar aquests casos.</li> + <li>Alguns robots rastrejadors de motors de cerca, com els de Google, Yahoo Search o Bing, admeten els mateixos valors en una directiva HTTP, <code>X-Robot-Tags</code>: això els permet utilitzar aquests pragma en documents no HTML, com imatges.</li> + </ul> + </div> + </li> + <li><code>slurp</code>, és un sinònim de robots, però només és seguit per Slurp, el rastrejador d'indexació per Yahoo Search;</li> + </ul> + + <p><span id="result_box" lang="ca"><span>Finalment alguns</span> <span>noms</span> <span>són</span> <span>d'ús comú</span><span>, encara que no</span> <span>en el procés</span> <span>de normalització</span><span>:</span></span></p> + + <ul> + <li><code>viewport</code>, dóna pistes sobre la mida de la mida inicial de {{glossary("viewport")}}. Aquest pragma és utilitzat només per diversos dispositius mòbils. + + <table class="fullwidth-table"> + <caption>Els valors per content de <code><meta name="viewport"></code></caption> + <thead> + <tr> + <th scope="col">Valor</th> + <th scope="col">Possibles valors</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>width</code></td> + <td>un nombre enter positiu o el literal <code>device-width</code></td> + <td><span id="result_box" lang="ca"><span>defineix</span> <span>l'amplada</span><span>,</span> <span>en píxels</span><span>, de la finestra</span> <span>gràfica</span></span></td> + </tr> + <tr> + <td><code>height</code></td> + <td>un nombre enter positiu o el literal <code>device-height</code></td> + <td><span id="result_box" lang="ca"><span>defineix</span> <span>l'alçada</span><span>,</span> <span>en píxels</span><span>, de la finestra</span> <span>gràfica</span></span></td> + </tr> + <tr> + <td><code>initial-scale</code></td> + <td>un nombre positiu entre <code>0.0</code> i <code>10.0</code></td> + <td>defineix la relació entre l'amplada del dispositiu (<code>device-width</code> en mode retrat <code>device-height</code> en mode horitzontal) i la mida de la finestra gràfica.</td> + </tr> + <tr> + <td><code>maximum-scale</code></td> + <td>un nombre positiu entre <code>0.0</code> i <code>10.0</code></td> + <td>defineix el valor màxim del zoom; que ha de ser major o igual que el <code>minimum-scale</code> o el comportament és indeterminat.</td> + </tr> + <tr> + <td><code>minimum-scale</code></td> + <td>un nombre positiu entre <code>0.0</code> i <code>10.0</code></td> + <td> + <p>defineix el valor mínim del zoom; que ha de ser menor o igual que el<code> maximum-scale</code> o el comportament és indeterminat.</p> + </td> + </tr> + <tr> + <td><code>user-scalable</code></td> + <td>un valor booleà (<code>yes</code> o <code>no</code>)</td> + <td>Si s'estableix a <code>no</code>, l'usuari no pot ampliar la pàgina web. El valor per defecte és <code>yes</code>.</td> + </tr> + </tbody> + </table> + + <table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('CSS3 Device', '#viewport-meta', '<meta name="viewport">')}}</td> + <td>{{Spec2('CSS3 Device')}}</td> + <td>No normativament descriu l'element META de la finestra gràfica</td> + </tr> + </tbody> + </table> + + <div>Veure: {{cssxref("@viewport")}}</div> + + <div class="note"><strong>Notes:</strong> + + <ul> + <li>Encara que no estandarditzat, aquest atribut és utilitzat per diferents navegadors mòbils com Safari Mobile, Firefox for Mobile o Opera Mobile.</li> + <li><span id="result_box" lang="ca"><span>Els</span> <span>valors per defecte</span> <span>poden</span> <span>canviar d'un</span> <span>dispositiu</span><span>,</span> <span>i el navegador</span><span>, a un altre</span><span>.</span></span></li> + <li>Per aprendre sobre aquest pragma a for Mobile, consulta <a href="https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag">aquest article</a>.</li> + </ul> + </div> + </li> + </ul> + </dd> + <dt>{{htmlattrdef("scheme")}} {{obsolete_inline}}</dt> + <dd>Aquest atribut defineix l'esquema en el qual es descriu les metadades. Un esquema és un context que porta a les interpretacions correctes del valor {{htmlattrxref("content", "meta")}}, com un format. + <div class="note"><strong>Nota:</strong> No utilitzeu aquest atribut, ja que és obsolet. No hi ha reemplaçament per a ell ja que no hi havia cap ús real per a això. Ometre completament.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- In HTML5 --> +<meta charset="utf-8"> + +<!-- Defining the charset in HTML4 --> +<!-- Note: This is invalid in HTML5 --> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + +<!-- Redirect page after 3 seconds --> +<meta http-equiv="refresh" content="3;url=http://www.mozilla.org/"> + +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Referrer Policy', '#referrer-policy-delivery-meta', '<meta name="referrer">')}}</td> + <td>{{Spec2('Referrer Policy')}}</td> + <td>Defineix valors i semantiques de <code><meta name="referrer"></code>.</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'semantics.html#the-meta-element', '<meta>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Afegeis l'atribut <code>itemprop</code></td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'document-metadata.html#the-meta-element', '<meta>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Afegeis l'atribut <code>charset</code></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#h-7.4.4.2', '<meta>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>name="referrer"</code></td> + <td>{{CompatChrome("17")}}</td> + <td>{{CompatGeckoDesktop("36.0")}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Constrained to values listed under referrer (as specified in the spec.)</td> + <td>{{CompatChrome("46.0")}}</td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>name="referrer"</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("36.0")}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Constrained to values listed under referrer (as specified in the spec.)</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("46.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome("46.0")}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] El valor <code>referrer</code> no es va tenir en compte quan la navegació estava succeint a través d'un menú contextual o botó central fins Firefox 39.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>Els</span> <span>altres</span> <span>elements</span> <span>que contenen</span> <span>metadades</span></span> : {{HTMLElement("base")}}, {{HTMLElement("head")}}, {{HTMLElement("link")}}, {{HTMLElement("style")}},{{HTMLElement("title")}}.</li> +</ul> diff --git a/files/ca/web/html/element/meter/index.html b/files/ca/web/html/element/meter/index.html new file mode 100644 index 0000000000..2b55b9910a --- /dev/null +++ b/files/ca/web/html/element/meter/index.html @@ -0,0 +1,189 @@ +--- +title: <meter> +slug: Web/HTML/Element/meter +tags: + - Element + - HTML + - HTML forms + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/meter +--- +<div>{{HTMLRef}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <code><meter></code></strong> representa un valor escalar dins d'un rang conegut o un valor fraccionari.</p> + +<div class="note">Llevat que l'atribut <code>value</code> està entre <code>0</code> i <code>1</code> (inclosos), els atributs <code>min</code> i <code>max</code> haurien de definir el rang de manera que el valor de l'atribut <code>value</code> estigui dins d'ell.</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut etiquetable, content, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Phrasing content</a>, però no ha d'haver cap element <code><meter></code> entre els seus descendents.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row"> + <p>Interfície DOM</p> + + <p> </p> + </th> + <td>{{domxref("HTMLMeterElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("value")}}</dt> + <dd>El valor numèric actual. Això ha d'estar entre els valors màxim i mínim (atribut <code>min</code> i atribut <code>max</code>) si s'especifiquen. Si no s'especificat o és incorrecte, el valor és 0. Si s'especifica, però no dins del rang donat per l'atribut <code>min</code> i l'atribut <code>max</code>, el valor és igual a l'extrem més proper del rang.</dd> + <dt>{{htmlattrdef("min")}}</dt> + <dd>El límit numèric inferior del rang mesurat. Aquest ha de ser menor que el valor màxim (atribut <code>max</code>), si s'especifica. Si no s'especifica, el valor mínim és 0.</dd> + <dt>{{htmlattrdef("max")}}</dt> + <dd>El límit numèric superior del rang mesurat. Aquest ha de ser major que el valor mínim (atribut <code>min</code>), si s'especifica. Si no s'especifica, el valor mínim és 1.</dd> + <dt>{{htmlattrdef("low")}}</dt> + <dd>El límit numèric superior de l'extrem inferior del rang de mesurat. Aquest ha de ser més gran que el valor mínim (atribut <code>min</code>), i també ha de ser menor que el valor alt i valor màxim (l'atribut <code>high</code> i l'atribut <code>max</code>, respectivament), si s'especifica algun. Si no s'especifica, o si és menor que el valor mínim, el valor <code>low</code> és igual al valor mínim.</dd> + <dt>{{htmlattrdef("high")}}</dt> + <dd>El límit numèric inferior de l'extrem superior del rang de mesurat. Aquest ha de ser més petit que el valor màxim (atribut <code>max</code>), i també ha de ser més gran que el valor baix i valor mínim (l'atribut <code>low</code> i l'atribut <code>min</code>, respectivament), si s'especifica algun. Si no s'especifica, o si és més gran que el valor màxim, el valor <code>high</code> és igual al valor màxim.</dd> + <dt>{{htmlattrdef("optimum")}}</dt> + <dd>Aquest atribut indica el valor numèric òptim. Ha d'estar dins del rang (definit per l'atribut <code>min</code> i l'atribut <code>max</code>). Quan s'usa amb l'atribut <code>low</code> i l'atribut <code>high</code>, es dóna una indicació d'on al llarg del rang es considera preferible. Per exemple, si està entre l'atribut <code>min</code> i l'atribut <code>low</code>, llavors el rang inferior es considera preferit.</dd> + <dt>{{htmlattrdef("form")}}</dt> + <dd>Aquest atribut associa l'element amb un element <code>form</code> que té la propietat de l'element <code>meter</code>. Per exemple, un <code>meter</code> podria estar mostrant un rang corresponent a un element <code>input</code> de <code>type</code> <em>numèric</em>. Aquest atribut s'utilitza únicament si l'element <code>meter</code> està sent utilitzat com un element de formulari associat; fins i tot llavors, pot ser omès si l'element apareix com un descendent d'un element <code>form</code>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_senzill"><span class="short_text" id="result_box" lang="ca"><span>Exemple</span> <span>senzill</span></span></h3> + +<h4 id="Contingut_HTML">Contingut HTML</h4> + +<pre class="brush: html"><p>Heat the oven to <meter min="200" max="500" value="350">350 degrees</meter>.</p> +</pre> + +<h4 id="Sortida">Sortida</h4> + +<p>{{EmbedLiveSample("Simple_example", 300, 60)}}</p> + +<p> <span id="result_box" lang="ca"><span>A Google</span> <span>Chrome</span><span>, el mesurador</span> <span>resultant</span> <span>s'assembla a</span> <span>això</span><span>:</span></span></p> + +<p><img alt="meter1.png" class="default internal" src="/@api/deki/files/4940/=meter1.png"></p> + +<h3 id="Exemple_de_rang_High_i_Low">Exemple de rang High i Low</h3> + +<p><span id="result_box" lang="ca"><span>Tingueu</span> <span>en compte que en</span> <span>aquest exemple</span> <span>no s'inclou l'atribut</span> <strong><span>min</span></strong><span>;</span> <span>això està</span> <span>permès,</span> <span>ja que el valor</span> <span>de</span> <span>0</span></span></p> + +<h4 id="Contingut_HTML_2">Contingut HTML</h4> + +<pre class="brush: html"><p>He got a <meter low="69" high="80" max="100" value="84">B</meter> on the exam.</p> +</pre> + +<h4 id="Sortida_2">Sortida</h4> + +<p>{{EmbedLiveSample("High_and_Low_range_example", 300, 60)}}</p> + +<p><span id="result_box" lang="ca"><span>A Google</span> <span>Chrome</span><span>, el mesurador</span> <span>resultant</span> <span>s'assembla a</span> <span>això</span><span>:</span></span></p> + +<p><img alt="meter2.png" class="default internal" src="/@api/deki/files/4941/=meter2.png"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-meter-element', '<meter>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-meter-element', '<meter>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>6.0</td> + <td>{{CompatGeckoDesktop("16.0")}}</td> + <td>{{CompatNo}}</td> + <td>20<sup>[1]</sup></td> + <td>11.0</td> + <td>5.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Edge Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("16.0")}}</td> + <td>{{CompatNo}}</td> + <td>20<sup>[1]</sup></td> + <td>11.0</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure la <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/meterelement">Pàgina Estat de la Plataforma de Microsoft Edge</a>.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("progress")}}</li> +</ul> diff --git a/files/ca/web/html/element/multicol/index.html b/files/ca/web/html/element/multicol/index.html new file mode 100644 index 0000000000..2f09a6e122 --- /dev/null +++ b/files/ca/web/html/element/multicol/index.html @@ -0,0 +1,21 @@ +--- +title: <multicol> +slug: Web/HTML/Element/multicol +tags: + - Deprecated + - Experimental + - HTML + - Non-standard +translation_of: Web/HTML/Element/multicol +--- +<div>{{non-standard_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><multicol></code> era un element experimental dissenyat per permetre dissenys de diverses columnes. Mai va arribar a tenir un tiratge significatiu i no s'implementa en els navegadors més importants.</p> + +<div class="note"> +<p><strong>No utilitzeu aquest!</strong> Per tal d'implementar un disseny de diverses columnes, s'ha de fer ús dels elements HTML regulars, com {{HTMLElement("div")}} en conjunció amb la característica <a href="/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts" title="/en-US/docs/Web/CSS/columns">CSS Column</a>.</p> +</div> + +<p>Recordeu que fins Firefox 22, encara que no suportat, un element <code><multicol></code> es va associar amb un {{domxref ("HTMLSpanElement")}}. A continuació, va ser fixat i ara es associat amb un {{domxref("HTMLUnknownElement")}} d'acord al demanat per l'especificació.</p> diff --git a/files/ca/web/html/element/nav/index.html b/files/ca/web/html/element/nav/index.html new file mode 100644 index 0000000000..c78bfe8cb3 --- /dev/null +++ b/files/ca/web/html/element/nav/index.html @@ -0,0 +1,124 @@ +--- +title: <nav> +slug: Web/HTML/Element/nav +translation_of: Web/HTML/Element/nav +--- +<h2 id="Resum">Resum</h2> + +<p>L'<em>element HTML Navigation (</em><code><nav></code>) representa una secció de la pàgina que enllaça a altres pàgines o parts dins la pàgina: una secció amb enllaços de navegació.</p> + +<div class="note"> +<p><em>Notes d'ús:</em></p> + +<ul> + <li>No tots els enllaços d'un document han de ser dins l'element <code><nav></code>, el qual està destinat només per als principals blocs d'enllaços de navegació; Normalment, l'element {{HTMLElement("footer")}} sovint té un llistat d'enllaços que no necessiten ésser dins l'element {{HTMLElement("nav")}}.</li> + <li>Un document pot tenir varis elements {{HTMLElement("nav")}}, per exemple, un per navegar pel web i un alltre per navegar per dins la pàgina.</li> + <li>Els agents d'usuari, com ara els lectors de pantalla destinats a usuaris discapacitats, poden utilitzar aquest element per determinar si ometre la prestació inicial d'aquest contingut.</li> +</ul> +</div> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>, <a href="/en-US/docs/HTML/Content_categories#Sectioning_content" title="HTML/Content categories#Sectioning_content">sectioning content</a>, contingut palpable.</li> + <li><dfn>Contingut permès</dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>.</li> + <li><dfn>Omissió d'etiqueta</dfn> {{no_tag_omission}}</li> + <li><dfn>Elements pares permesos</dfn> Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">flow content</a>.</li> + <li><dfn>Interfície DOM</dfn> {{domxref("HTMLElement")}}</li> +</ul> + +<h2 id="Atributs">Atributs</h2> + +<p><span style="line-height: 21px;">Aquest element només inclou els </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush:xml"><nav> + <ul> + <li><a href="#">Home</a></li> + <li><a href="#">About</a></li> + <li><a href="#">Contact</a></li> + </ul> +</nav> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-nav-element', '<nav>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-nav-element', '<nav>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0 (iOS 4.2)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Altres elements de secció relacionats: {{HTMLElement("body")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};</li> + <li class="last"><a class="deki-ns current" href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document" title="Sections and Outlines of an HTML5 document">Seccions i contorns d'un document HTML5</a>.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/nextid/index.html b/files/ca/web/html/element/nextid/index.html new file mode 100644 index 0000000000..430aa00da7 --- /dev/null +++ b/files/ca/web/html/element/nextid/index.html @@ -0,0 +1,138 @@ +--- +title: nextid +slug: Web/HTML/Element/nextid +tags: + - Deprecated + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/nextid +--- +<div>{{Deprecated_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <strong><code><nextid></code></strong> és obsolet, que va servir per habilitar l'eina de disseny web NeXT per generar etiquetes NAME automàtiques per als seus ancoratges. Va ser generat per aquesta eina d'edició web automàticament i no s'havia d'ajustar o introduir manualment. Aquest element té la distinció de ser el primer element en convertir-se en una de les "etiquetes perdudes" en ser eliminat de les DTD oficials de les versions HTML. També és probablement un dels menys entesos de tots els elements HTML primerenque</p> + +<dl> + <dt>HTML "0.a" - des del principi fins el 10 de Gener de 1991</dt> + <dd><span id="result_box" lang="ca"><span>Aquesta</span> <span>etiqueta</span> <span>no s'havia</span> <span>inventat</span> <span>encara,</span> <span>per la qual cosa</span> <span>no es troben</span> <span>exemples</span> <span>d'aquest</span> <span>període.</span></span></dd> + <dt>HTML "0.c" - des del 23 Gener 1991 fins el 23 Novembre de 1992</dt> + <dd>Aquesta primera versió d'HTML es va introduir <code><NEXTID></code> en un format no compatible amb SGML utilitzant simplement el valor numèric com un "atribut".</dd> + <dt>HTML "0.d" - des del 26 Novembre de 1992 fins el 24 Maih de 1993</dt> + <dd>Durant aquest lapse, NeXT i el DTD supervivent més antic, mostren <code><NEXTID></code> per prendre només un nombre per el valor del seu atribut N novament introduït.</dd> + <dt>HTML "1.k" - <span class="short_text" id="result_box" lang="ca"><span>Versió</span> <span>1 (</span><span>primera versió</span><span>)</span></span></dt> + <dd>En aquest primer esborrany publicat d'HTML, <code><NEXTID></code> és el mateix que tindria en HTML 2, permetent finalment l'ús d'un nom en lloc de només un nombre per al valor del seu atribut.</dd> + <dt>HTML "1.m" - <span class="short_text" id="result_box" lang="ca"><span>Versió</span> <span>1 (</span><span>segona versió</span><span>)</span></span></dt> + <dd>En el següent esborrany publicat d'HTML, <code><NEXTID> <NEXTID></code> pot desplegar-se individualment per a la seva visualització amb un simple comando SGML.</dd> + <dt>HTML <span class="short_text" id="result_box" lang="ca"><span>Versió</span></span> 2 Nivell 1</dt> + <dd>És com el nivell 2 per defecte però exclou tots els elements de formularis, i. e. <code><FORM></code>, <code><INPUT></code>, <code><TEXTAREA></code>, <code><SELECT></code> i <code><OPTION></code></dd> + <dt>HTML <span class="short_text" id="result_box" lang="ca"><span>Versió</span></span> 2 Estricta Nivell 1</dt> + <dd>És com el Nivell 1 regular però també exclou aquests elements depreciats, juntament amb construccions com niar un encapçalat (element <code><H*></code>) dins d'un d'enllaç (element <code><A></code>).</dd> + <dt>HTML <span class="short_text" id="result_box" lang="ca"><span>Versió</span></span> 2 Nivell 2</dt> + <dd>Aquest és el valor per defecte, inclou i permet totes les funcions, elements i atributs de Nivell 2 HTML.</dd> + <dt>HTML <span class="short_text" id="result_box" lang="ca"><span>Versió</span></span> 2 Estricta Nivell 2</dt> + <dd>Exclou aquests elements depreciats i també prohibeix construccions com niar una capçalera (element <code><H*></code>) dins d'un enllaç (element <code><A></code>), o tenir un element <code><INPUT></code> de formualri que no està dins d'un element de nivell de bloc com <code><P></code>.</dd> + <dt>HTML <span class="short_text" id="result_box" lang="ca"><span>Versió</span></span> 3.2</dt> + <dd><code><NEXTID></code> <span lang="ca"> <span>ha desaparegut del tot</span><span>, mai</span> <span>es va saber</span> <span>d'ell.</span></span></dd> +</dl> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>accepta</span> <span>els</span></span> <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("n")}}</dt> + <dd>Reference to anchor.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<p>Diguem, per exemple, que l'usuari introdueix quatre encapçalaments de secció en la Taula de Continguts (i presumiblement també escriu material de paràgraf dins de les seccions). A les capçaleres de cadascuna de les quatre seccions se li assignaria els valors NAME "z0", "z1", "z2" i "z3" . La primera d'elles produiria una entrada a la taula de contingut com aquesta: <code><A NAME="z0" HREF="#z4">FIRST SECTION NAME</A></code> i la capçalera de secció en la pròpia secció estaria marcada com això : <code><H2><A NAME="z4">FIRST SECTION NAME</A></H2></code>. Això continua per a les següents tres seccions, denominades z5, z6 i z7 (i les entrades de la Taula de contingut denominades z1, z2 i z3), i cadascuna d'elles rep automàticament ancores amb aquests noms. Llavors decideix guardar i tancar el document.NeXT agregaria llavors dins de l'encapçalat del document HTML una etiqueta especial, <code><NEXTID N="z8"></code> per informar-se on ha de continuar la seva convenció de nomenclatura per la propera vegada que obri el document. Per tant, imageneu que l'autor de la web obre el document per a la seva posterior edició. Vol afegir un parell de noves seccions després de la seva segona secció i annexar quatre seccions més al final. Així que obre el document, i l'editor de NeXT troba i llegeix aquesta etiqueta <code><NEXTID N="z8"></code> i donant la primera d'aquesta nova secció el nom Z8 afegint-la a la taula de contingut i z14 en el cos del seu contingut. El que té ara, una vegada que es fa de nou i tanca el document podria tenir aquest aspecte:</p> + +<pre class="brush: html"><HTML> + <HEAD> + <TITLE> ... whatever ... </TITLE> + <LINK, META, BASE, etc. as applicable for the head of this document> + <NEXTID N="z20"> + </HEAD> + + <BODY> + <A NAME="z0" HREF="#z4">FIRST SECTION HEADING</A> + <A NAME="z1" HREF="#z5">SECOND SECTION HEADING</A> + <A NAME="z8" HREF="#z14">NEWLY INSERTED THIRD SECTION HEADING</A> + <A NAME="z9" HREF="#z15">NEWLY INSERTED FOURTH SECTION HEADING</A> + <A NAME="z2" HREF="#z6">ORIGINAL THIRD (NOW FIFTH) SECTION HEADING</A> + <A NAME="z3" HREF="#z7">ORIGINAL FOURTH (NOW SIXTH) SECTION HEADING</A> + <A NAME="z10" HREF="#z16">SEVENTH SECTION HEADING</A> + <A NAME="z11" HREF="#z17">EIGHTH SECTION HEADING</A> + <A NAME="z12" HREF="#z18">NINTH SECTION HEADING</A> + <A NAME="z13" HREF="#z19">TENTH SECTION HEADING</A> + <H2><A NAME="z4">FIRST SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z5">SECOND SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z14">NEWLY INSERTED THIRD SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z15">NEWLY INSERTED FOURTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z6">ORIGINAL THIRD (NOW FIFTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z7">ORIGINAL FOURTH (NOW SIXTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z16">SEVENTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z17">EIGHTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z18">NINTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z19">TENTH SECTION HEADING</A></H1><P> ... whatever ... </P> + </BODY> +</HTML> +</pre> + +<p>Després s'envia una còpia d'aquest document al seu amic que també té un editor NeXT, i suprimeix les seccions z7 i z19 i afegeix deu més, des de z20 fins z29, a continuació elimina els paràgrafs z24 i z29. Per tant, el valor NEXTID és z30 quan ho retorna modificat a l'autor original, es veu d'aquesta manera:</p> + +<pre class="brush: html"><HTML> + <HEAD> + <TITLE> ... whatever ... </TITLE> + <LINK, META, BASE, etc. as applicable for the head of this document> + <NEXTID N="z30"> + </HEAD> + + <BODY> + <A NAME="z0" HREF="#z4">FIRST SECTION HEADING</A> + <A NAME="z1" HREF="#z5">SECOND SECTION HEADING</A> + <A NAME="z8" HREF="#z14">NEWLY INSERTED THIRD SECTION HEADING</A> + <A NAME="z9" HREF="#z15">NEWLY INSERTED FOURTH SECTION HEADING</A> + <A NAME="z2" HREF="#z6">ORIGINAL THIRD (NOW FIFTH) SECTION HEADING</A> + <A NAME="z10" HREF="#z16">SEVENTH (NOW SIXTH) SECTION HEADING</A> + <A NAME="z11" HREF="#z17">EIGHTH (NOW SEVENTH) SECTION HEADING</A> + <A NAME="z12" HREF="#z18">NINTH (NOW EIGHTH) SECTION HEADING</A> + <A NAME="z20" HREF="#z25">NEW NINTH SECTION HEADING</A> + <A NAME="z21" HREF="#z26">NEW TENTH SECTION HEADING</A> + <A NAME="z22" HREF="#z27">NEW ELEVENTH SECTION HEADING</A> + <A NAME="e23" HREF="#z28">NEW TWELFTH SECTION HEADING</A> + <H2><A NAME="z4">FIRST SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z5">SECOND SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z14">NEWLY INSERTED THIRD SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z15">NEWLY INSERTED FOURTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z6">ORIGINAL THIRD (NOW FIFTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z16">SEVENTH (NOW SIXTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z17">EIGHTH (NOW SEVENTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z18">NINTH (NOW EIGHTH) SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z25">NEW NINTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z26">NEW TENTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z27">NEW ELENENTH SECTION HEADING</A></H1><P> ... whatever ... </P> + <H2><A NAME="z28">NEW TWELFTH SECTION HEADING</A></H1><P> ... whatever ... </P> + </BODY> +</HTML> +</pre> + +<h2 id="Referència_HTML">Referència HTML</h2> + +<ul> + <li><a class="external text" href="http://www.the-pope.com/nextid.html" rel="nofollow">Exemple de treball de l'element de la etiqueta NEXTID</a></li> + <li><a class="external text" href="https://tools.ietf.org/html/rfc1866#section-5.2.6" rel="nofollow">5.2.6. Next Id: NEXTID</a></li> +</ul> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("isindex")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/nobr/index.html b/files/ca/web/html/element/nobr/index.html new file mode 100644 index 0000000000..d9cd58bd03 --- /dev/null +++ b/files/ca/web/html/element/nobr/index.html @@ -0,0 +1,30 @@ +--- +title: <nobr> +slug: Web/HTML/Element/nobr +tags: + - Element + - HTML + - NeedsCompatTable + - Non-standard + - Reference + - Web +translation_of: Web/HTML/Element/nobr +--- +<div>{{non-standard_header}}</div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'element HTML <code><nobr></code> impedeix que un text es trenqui automàticament en una nova línia, per la qual cosa es mostra en una línia llarga i pot ser necessari desplaçar-se. Aquesta etiqueta no és HTML estàndard i no ha d'utilitzar-se. En el seu lloc, utilitzi la propietat CSS {{Cssxref("white-space")}} de la següent manera:</p> + +<p> + </p><pre class="brush:css"><span style="white-space: nowrap">Long line with no breaks</span></pre> +<p></p> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{Cssxref("white-space")}}</li> + <li>{{Cssxref("overflow")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/noembed/index.html b/files/ca/web/html/element/noembed/index.html new file mode 100644 index 0000000000..b2d420043d --- /dev/null +++ b/files/ca/web/html/element/noembed/index.html @@ -0,0 +1,35 @@ +--- +title: <noembed> +slug: Web/HTML/Element/noembed +tags: + - Deprecated + - HTML + - NeedsCompatTable + - Non-standard + - Reference +translation_of: Web/HTML/Element/noembed +--- +<div>{{HTMLRef}}{{Non-standard_header}}{{deprecated_header}}</div> + +<p>L'element <code><noembed></code> és una forma obsoleta i no estàndard per proporcionar contingut alternatiu o de "reserva" per als navegadors que no suporten l'element {{HTMLElement("embed")}} o no són compatibles amb <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Embedded_content">contingut incrustat</a> (<a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Embedded_content">embedded content</a>) que un autor desitji usar. Aquest element va ser desaprovat en HTML 4.01 i anteriorment en favor de {{HTMLElement("object")}}. El contingut de reserva ha de ser inserit entre les etiquetes d'obertura i tancament de {{HTMLElement("object")}}.</p> + +<div class="note"> +<p>Si bé aquest element actualment encara funciona en molts navegadors, s'ha quedat obsolet i no ha de ser utilitzat. Utilitza {{HTMLElement("object")}} al seu lloc.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', '#noembed', '<noembed>')}}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Característica no conforme.</td> + </tr> + </tbody> +</table> diff --git a/files/ca/web/html/element/noframes/index.html b/files/ca/web/html/element/noframes/index.html new file mode 100644 index 0000000000..492727308a --- /dev/null +++ b/files/ca/web/html/element/noframes/index.html @@ -0,0 +1,38 @@ +--- +title: <noframes> +slug: Web/HTML/Element/noframes +tags: + - Element + - HTML + - Reference + - Web +translation_of: Web/HTML/Element/noframes +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><noframes></code> s'utilitza per donar suport als navegadors que no són capaços de suportar elements {{HTMLElement("frame")}} o està configurats per a fer-ho.</p> + +<p>Es pot utilitzar qualsevol element HTML dins de <code><noframes></code> que s'espera que sigui vist dins de l'element {{HTMLElement("body")}} , excepte els elements {{HTMLElement("frameset")}} i {{HTMLElement("frame")}}.</p> + +<div class="note"><strong>Nota:</strong> El fet de que els principals navegadors suportin marcs, l'ús d'aquest element no és necessari en casos generals. Sent totalment obsolet en HTML5, s'ha d'evitar per ajustar-se a la norma.</div> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>és compatible</span> <span>amb</span> <span>els</span> </span><a href="/en-US/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><frameset cols="50%,50%"> + <frame src="https://developer.mozilla.org/en/HTML/Element/frameset" /> + <frame src="https://developer.mozilla.org/en/HTML/Element/frame" /> + <noframes><p>It seems your browser does not support frames or configured to does not so.</p></noframes> +</frameset></pre> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("frameset")}}</li> + <li>{{HTMLElement("frame")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/noscript/index.html b/files/ca/web/html/element/noscript/index.html new file mode 100644 index 0000000000..de222ce457 --- /dev/null +++ b/files/ca/web/html/element/noscript/index.html @@ -0,0 +1,145 @@ +--- +title: <noscript> +slug: Web/HTML/Element/noscript +tags: + - Element + - HTML + - HTML scripting + - Reference + - Web +translation_of: Web/HTML/Element/noscript +--- +<div>{{HTMLRef}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <code><noscript></code></strong> defineix una secció d'HTML per inserir si un tipus de script a la pàgina no és compatible o si scripting està actualment desactivat en el navegador.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Metadata_content" title="HTML/Content_categories#Metadata_content">Contingut Metadata</a>, <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Quan scripting està desactivat i quan és un descendent de l'element {{HTMLElement("head")}} en qualsevol ordre, zero o més elements {{HTMLElement("link")}}, zero o més elements {{HTMLElement("style")}} i zero o més elements {{HTMLElement("meta")}}.<br> + Quan scripting està desactivat i quan no és un descendent de l'element {{HTMLElement("head")}}: qualsevol contingut transparent, però sense l'element <code><noscript></code> ha d'estar entre els seus descendents.<br> + Altrament: contingut dinàmic o phrasing content.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>, si no hi ha un element ancestre <code><noscript></code>, o en un element {{HTMLElement("head")}} (però només per un document HTML), aquí de nou si no hi ha un element ancestre <code><noscript></code>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><noscript> + <!-- anchor linking to external file --> + <a href="http://www.mozilla.com/">External Link</a> +</noscript> +<p>Rocks!</p> +</pre> + +<h3 id="Resultat_amb_scripting_activat">Resultat amb scripting activat</h3> + +<p>Rocks!</p> + +<h3 id="Resultat_amb_scripting_desactivat">Resultat amb scripting desactivat</h3> + +<p><a class="external" href="http://www.mozilla.com/">External Link</a></p> + +<p>Rocks!</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'scripting-1.html#the-noscript-element', '<noscript>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'scripting-1.html#the-noscript-element', '<noscript>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/scripts.html#h-18.3.1', '<noscript>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/html/element/object/index.html b/files/ca/web/html/element/object/index.html new file mode 100644 index 0000000000..2651a14c6b --- /dev/null +++ b/files/ca/web/html/element/object/index.html @@ -0,0 +1,196 @@ +--- +title: <object> +slug: Web/HTML/Element/object +tags: + - Element + - HTML + - HTML embedded content + - Reference + - Web +translation_of: Web/HTML/Element/object +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML objecte incrustat</em> (<strong><object></strong>) representa un recurs extern, que pot ser entès com una imatge, un context de navegació niada, o un recurs per ser manejat per un complement.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Content categories</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>; <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>; <a href="/en-US/docs/HTML/Content_categories#Embedded_content" title="HTML/Content categories#Embedded content">contingut incrustat</a>, contingut palpable; si l'element té un atribut <strong>usemap</strong>, <a href="/en-US/docs/HTML/Content_categories#Interactive_content" title="HTML/Content categories#Interactive content">contingut interactiu</a>; <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerat</a>, element <a href="/en-US/docs/HTML/Content_categories#Form_submittable" title="HTML/Content categories#Form submittable">enviable</a> <a href="/en-US/docs/HTML/Content_categories#Form-associated_content" title="HTML/Content categories#Form-associated content">associat a un formulari</a>.</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>zero o més elements {{HTMLElement("deviceId")}}, llavors <a href="/en-US/docs/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">transparent</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Embedded_content" title="HTML/Content categories#Embedded content">contingut incrustat</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLObjectElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("archive")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>llista</span> <span>separada per</span> <span>espais dels</span> <span>URI</span>s <span>d'arxius de</span> <span>recursos</span> <span>per a l'objecte</span><span>.</span></span></dd> + <dt>{{htmlattrdef("border")}} {{deprecatedGeneric('inline','HTML4.01')}}; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd><span id="result_box" lang="ca"><span>L'ample</span> <span>d'una vora</span> <span>al voltant</span> <span>del control,</span> <span>en píxels</span><span>.</span></span></dd> + <dt>{{htmlattrdef("classid")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>L'URI de la implementació de l'objecte. Es pot utilitzar juntament amb, o en lloc de, l'atribut <strong>data</strong></dd> + <dt>{{htmlattrdef("codebase")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>La ruta base utilitzada per resoldre URIs relatius especificats per <strong>classid</strong>, <strong>data</strong> o <strong>archive</strong>. Si no s'especifica, el valor predeterminat és l'URI base del document actual.</dd> + <dt>{{htmlattrdef("codetype")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd><span id="result_box" lang="ca"><span>El tipus</span> <span>de contingut</span> <span>de les dades especificades</span> <span>per</span> <strong><span>classid</span></strong><span>.</span></span></dd> + <dt>{{htmlattrdef("data")}}</dt> + <dd>La direcció del recurs com un URL vàlida. Com a mínim s'han de definir un <strong>data</strong> i <strong>type</strong>.</dd> + <dt>{{htmlattrdef("declare")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>La presència d'aquest atribut booleà fa que aquest element només sigui una declaració. L'objecte ha de ser instanciat per un element <code><object></code> subsegüent. En HTML5, repetir tot l'element <code><object></code> per cada recurs que es torna a utilitzar.</dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline(5)}}</dt> + <dd>L'element formulari, si existeix, amb el qual està associat l'element object (el seu <em>propietari del formulari</em>). El valor de l'atribut ha de ser un ID d'un element {{HTMLElement("form")}} en el mateix document.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd>L'alçada del recurs visualitzat, en píxels CSS.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>El nom del context de navegació vàlid (HTML5), o el nom del control (HTML 4).</dd> + <dt>{{htmlattrdef("standby")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>Un missatge que el navegador pot mostrar durant la càrrega de la implementació dels objectes i dades.</dd> + <dt>{{htmlattrdef("tabindex")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>La posició de l'element en l'ordre de navegació de pestanyes del document actual.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd> + <p>El <a href="https://developer.mozilla.org/en-US/docs/Glossary/Content_type">tipus de contingut (content type)</a> del recurs especificat per les dades. Com a mínim ha de ser definit un data i type.</p> + </dd> + <dt>{{htmlattrdef("typemustmatch")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut booleà indica si han de coincidir el <strong>type</strong> i el recurs de <a href="https://developer.mozilla.org/en-US/docs/Glossary/Content_type">tipus de contingut (content type)</a> real per ordre d'aquest per ser utilitzat.</dd> + <dt>{{htmlattrdef("usemap")}}</dt> + <dd>Una referència a un hash-name a un element {{HTMLElement("map")}}; que és un "#" seguit pel valor d'un {{htmlattrxref("name", "map")}} d'un element map.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd>L'amplada del recurs visualitzat, en píxels CSS</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Incrusta_una_pel·lícula_flash"><span class="short_text" id="result_box" lang="ca"><span>Incrusta</span> <span>una pel·lícula</span> <span>flash</span></span></h3> + +<pre class="brush: html"><!-- Embed a flash movie --> +<object data="movie.swf" type="application/x-shockwave-flash"></object> + +<!-- Embed a flash movie with parameters --> +<object data="movie.swf" type="application/x-shockwave-flash"> + <param name="foo" value="bar"> +</object> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'embedded-content.html#the-object-element', '<object>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-object-element', '<object>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/objects.html#h-13.3', '<object>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>typemustmatch</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("27")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>typemustmatch</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("27")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("param")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/ol/index.html b/files/ca/web/html/element/ol/index.html new file mode 100644 index 0000000000..3d4893e40c --- /dev/null +++ b/files/ca/web/html/element/ol/index.html @@ -0,0 +1,277 @@ +--- +title: <ol> +slug: Web/HTML/Element/ol +tags: + - Element + - HTML + - HTML grouping content + - 'HTML:Flow content' + - Reference +translation_of: Web/HTML/Element/ol +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>Element HTML <code><ol></code></strong> (o <em>llista ordenada d'elements HTML</em>) representa una llista ordenada d'elements. En general, els elements de la llista ordenada es mostren amb una numeració anterior, que pot ser de qualsevol forma, com números, lletres o números romans o fins i tot bales simples. Aquest estil numerat no està definit en la descripció HTML de la pàgina, sinó en la seva CSS associat, mitjançant la propietat {{cssxref("list-style-type")}}.</p> + +<p>No hi ha cap limitació a la profunditat i la superposició de les llistes definides amb els elements {{HTMLElement("ol")}} i {{HTMLElement("ul")}}.</p> + +<div class="note"><strong>Nota d'ùs: </strong> El {{HTMLElement("ol")}} i {{HTMLElement("ul")}} tots dos representen una llista d'elements. Es diferencien en la forma en què, amb l'element {{HTMLElement("ol")}} l'ordre és significatiu. Com a regla general per determinar quin d'ells utilitzar, tracteu de canviar l'ordre dels elements de la llista; si canvia el significat, l'element {{HTMLElement("ol")}} s'ha d'utilitzar, en cas contrari el {{HTMLElement("ul")}} és l'adequat.</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Phrasing_content">Contingut dinàmic</a>, i si els fills de l'element <code><ol></code> inclouen almenys un element {{HTMLElement("li")}}, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Zero o més elements {{HTMLElement("li")}}</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Phrasing_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLOListElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("compact")}}{{ Deprecated_inline() }}</dt> + <dd>Aquest atribut booleà indica que la llista s'ha de representar en un estil compacte. La interpretació d'aquest atribut depèn de l'agent d'usuari i no funciona en tots els navegadors. {{noteStart}} No utilitzeu aquest atribut, ja que ha quedat obsolet: l'element {{HTMLElement("ol")}} se li ha d'aplicar els estils amb <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Per donar un efecte similar a l'atribut compacte, la propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> {{cssxref("line-height")}} es pot usar amb un valor de <code>80%</code>. {{noteEnd}}</dd> + <dt>{{htmlattrdef("reversed")}} {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut booleà especifica que els elements de l'element s'especifiquen en l'ordre invers, és a dir, que el menys important apareix en primer lloc.</dd> + <dt>{{htmlattrdef("start")}}{{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut enter especifica el valor inicial per a la numeració dels elements individuals de la llista. Tot i que el tipus d'ordre dels elements de la llista podria ser nombres romans, com XXXI, o lletres, el valor inicial sempre és representat com un nombre. Per començar a numerar els elements de la lletra "C", utilitzeu <code><ol start = "3"></code>. + <div class="note"><strong>Nota</strong>: Aquest atribut està desaprovat en HTML 4, però es va tornar a introduir en HTML5.</div> + </dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd><span id="result_box" lang="ca"><span>Indica</span> <span>el tipus</span> <span>de numeració</span><span>:</span></span> + <ul> + <li><code>'a'</code> indica que les lletres són minúscules,</li> + <li><code>'A'</code> indica que les lletres són majúscules,</li> + <li><code>'i'</code> indica els nombres romans en minúscula,</li> + <li><code>'I'</code> indica els nombres romans en majúscules,</li> + <li>i <code>'1'</code> indica els números (per defecte).</li> + </ul> + + <p>El conjunt de tipus s'utilitza per a la llista completa a menys que un atribut {{htmlattrxref("type", "li")}} diferent s'utilitzi dins d'un element {{HTMLElement ("li")}} tancat.</p> + + <div class="note"><strong>Nota: </strong>Aquest atribut està desaprovat en HTML 4, però es va tornar a introduir en HTML5.Tret que el valor del nombre de llista importi (per exemple, en documents legals o tècnics en els quals els elements han de referenciar-se pel seu nombre / lletra), hauria d'usar-se la propietat CSS {{cssxref ("list-style-type")}} al seu lloc.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Simple_example" name="Simple_example">Exemple senzill</h3> + +<pre class="brush: html"><ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> +</pre> + +<p>Sortida del codi HTML anterior:</p> + +<ol> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> + +<h3 id="Usant_l'atribut_start"><span id="result_box" lang="ca"><span>Usant</span> <span>l'atribut</span> </span><span style="font-family: courier new;"><code>start</code></span></h3> + +<pre class="brush: html"><ol start="7"> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> +</pre> + +<p>Sortida del codi HTML anterior:</p> + +<ol start="7"> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ol> + +<h3 id="Llistes_niades">Llistes niades</h3> + +<pre class="brush: html"><ol> + <li>first item</li> + <li>second item <!-- Look, the closing </li> tag is not placed here! --> + <ol> + <li>second item first subitem</li> + <li>second item second subitem</li> + <li>second item third subitem</li> + </ol> + </li> <!-- Here is the closing </li> tag --> + <li>third item</li> +</ol> +</pre> + +<p>Sortida del codi HTML anterior:</p> + +<ol> + <li>first item</li> + <li>second item + <ol> + <li>second item first subitem</li> + <li>second item second subitem</li> + <li>second item third subitem</li> + </ol> + </li> + <li>third item</li> +</ol> + +<h3 id="Niar_<ol>_i_<ul>">Niar <ol> i <ul></h3> + +<pre class="brush: html"><ol> + <li>first item</li> + <li>second item <!-- Look, the closing </li> tag is not placed here! --> + <ul> + <li>second item first subitem</li> + <li>second item second subitem</li> + <li>second item third subitem</li> + </ul> + </li> <!-- Here is the closing </li> tag --> + <li>third item</li> +</ol> +</pre> + +<p>Sortida del codi HTML anterior:</p> + +<ol> + <li>first item</li> + <li>second item + <ul> + <li style="list-style-type: square;">second item first subitem</li> + <li style="list-style-type: square;">second item second subitem</li> + <li style="list-style-type: square;">second item third subitem</li> + </ul> + </li> + <li>third item</li> +</ol> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-ol-element', '<ol>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última presentació en W3C, {{SpecName('HTML5 W3C')}}.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "grouping-content.html#the-ol-element", "HTMLOListElement")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Afegeix els atributs <code>reversed</code> i <code>start</code>; desaprovat <code>type</code></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/lists.html#h-10.2', '<ol>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Desaprovat <code>compact</code> i <code>type</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>1.0</td> + <td>1.0</td> + <td>1.0</td> + </tr> + <tr> + <td>atribut <code>reversed</code></td> + <td>18</td> + <td>{{CompatGeckoDesktop("18.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>5.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>reversed</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("18.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres Elements HTM relacionats amb Llistes : {{HTMLElement("ul")}}, {{HTMLElement("li")}}, {{HTMLElement("menu")}} i el obsolet {{HTMLElement("dir")}};</li> + <li><span id="result_box" lang="ca"><span>Propietats CSS</span> <span>que poden ser</span> <span>especialment</span> <span>útils</span> <span>per a l'estil</span> <span>de l'element</span> <code><span><</span><span>ol></span></code><span>:</span></span> + <ul> + <li>la propietat {{cssxref("list-style")}}, útil per triar la forma de visualització del ordinal,</li> + <li><a href="/en-US/docs/CSS_Counters" title="CSS_Counters">CSS counters</a>, útil per gestionar llistes niades complexes,</li> + <li>la propietat {{cssxref("line-height")}}, útil per simular l'atribut {{htmlattrxref("compact", "ol")}} que està obselet,</li> + <li>la propietat {{cssxref("margin")}}, útil per controlar la sagnia de la llista.</li> + </ul> + </li> +</ul> + +<div> </div> diff --git a/files/ca/web/html/element/optgroup/index.html b/files/ca/web/html/element/optgroup/index.html new file mode 100644 index 0000000000..e7d0f7a4fe --- /dev/null +++ b/files/ca/web/html/element/optgroup/index.html @@ -0,0 +1,162 @@ +--- +title: <optgroup> +slug: Web/HTML/Element/optgroup +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web +translation_of: Web/HTML/Element/optgroup +--- +<h2 id="Sumari">Sumari</h2> + +<p>En un formulari web, l'<strong>element HTML <code><optgroup></code></strong> crea una agrupació d'opcions dins d'un element {{HTMLElement ("select")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Zero o més elements {{HTMLElement("option")}} .</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>L'etiqueta</span> <span>d'inici és</span> <span>obligatòria.</span> <span>L'etiqueta</span> <span>de tancament</span> <span>és</span> <span>opcional si</span> <span>aquest</span> <span>element</span> <span>és seguit</span> <span>immediatament</span> <span>per un altre</span> <span>element</span> <code><span><</span><span>optgroup</span><span>></span></code><span>,</span> <span>o</span> <span>si l'element</span> <span>pare no</span> <span>té</span> <span>més</span> <span>contingut.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("select")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLOptGroupElement")}}</td> + </tr> + </tbody> +</table> + +<p>{{Note("Optgroup elements may not be nested.")}}</p> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Si aquest atribut booleà està establert, cap dels elements en aquest grup d'opcions es pot seleccionar. Sovint, els navegadors no habiliten aquest control i no reben cap esdeveniment de navegació, com clics del ratolí o els relacionats amb l'enfocament.</dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>El nom del grup d'opcions, que el navegador pot utilitzar en etiquetar les opcions de la interfície d'usuari. Aquest atribut és obligatori si s'utilitza aquest element.</dd> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><select> + <optgroup label="Group 1"> + <option>Option 1.1</option> + </optgroup> + <optgroup label="Group 2"> + <option>Option 2.1</option> + <option>Option 2.2</option> + </optgroup> + <optgroup label="Group 3" disabled> + <option>Option 3.1</option> + <option>Option 3.2</option> + <option>Option 3.3</option> + </optgroup> +</select> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-optgroup-element', '<optgroup>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-optgroup-element', '<optgroup>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.6', '<optgroup>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formularis: {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("select")}}, {{HTMLElement("datalist")}}, {{HTMLElement("option")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/option/index.html b/files/ca/web/html/element/option/index.html new file mode 100644 index 0000000000..70beea7368 --- /dev/null +++ b/files/ca/web/html/element/option/index.html @@ -0,0 +1,150 @@ +--- +title: <option> +slug: Web/HTML/Element/option +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web +translation_of: Web/HTML/Element/option +--- +<div>{{HTMLRef}}</div> + +<p>En un formulari web, l'element HTML <option> s'utilitza per crear un control que representa un element dins d'un {{HTMLElement("select")}}, un {{HTMLElement("optgroup")}} o un element d'HTML5 {{HTMLElement("datalist")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Content categories</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Text amb caràcters escapats provisionals (això és <code>&eacute;</code>).</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>L'etiqueta</span> <span>d'inici és</span> <span>obligatòria.</span> <span>L'etiqueta</span> <span>de tancament</span> <span>és</span> <span>opcional si</span> <span>aquest</span> <span>element</span> <span>és seguit</span> <span>immediatament</span> <span>per un altre</span> <span>element</span> <code><span><</span><span>option</span><span>></span></code> <span>o</span> <span>{</span><span>{</span><span>HTMLElement</span> <span>(</span><span>"</span><span>optgroup</span><span>"</span><span>)</span><span>}</span><span>}</span><span>,</span> <span>o</span> <span>si l'element</span> <span>pare no</span> <span>té</span> <span>més</span> <span>contingut.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un {{HTMLElement("select")}}, un {{HTMLElement("optgroup")}} o un element {{HTMLElement("datalist")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLOptionElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Si aquest atribut booleà s'estableix, aquesta opció no és comprovable.<br> + Sovint, els navegadors no habiliten aquest control i no reben cap esdeveniment de navegació, com clics del ratolí o els relacionats amb l'enfocament. Si aquest atribut no està establert, l'element encara es pot desactivar si un dels seus ancestres és un element {{HTMLElement("optgroup")}} deshabilitat.</dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>Aquest atribut és el text de l'etiqueta que indica el significat de l'opció. Si no es defineix l'atribut <code>label</code>, el seu valor és la del contingut del text de l'element.</dd> + <dt>{{htmlattrdef("selected")}}</dt> + <dd>Si és present, aquest atribut booleà indica que l'opció està seleccionada inicialment. Si l'element <code><option></code> és el descendent d'un element {{HTMLElement ("select")}} en que el seu atribut {{htmlattrxref("multiple", "select")}} no està establert, només una sola <code><option></code> d'aquest element {{HTMLElement("select")}} té l'atribut <code>selected</code>.</dd> + <dt>{{htmlattrdef("value")}}</dt> + <dd>El contingut d'aquest atribut representa el valor que s'ha de presentar amb el formulari, si està seleccionada aquesta opció. Si s'omet aquest atribut, el valor es pren del contingut de text de l'element option.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure exemples de {{HTMLElement("select")}}.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-option-element', '<option>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-option-element', '<option>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.6', '<option>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definció incial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup>[1][2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Gecko no mostra el valor de l'atribut <code>label</code> com a text d'opció si el contingut de l'element està buit. Veure {{bug("1205213")}}.</p> + +<p>[2] Històricament, Firefox ha permès que els esdeveniments de teclat i ratolí és generin des de l'element <code><option></code> al element pare {{HTMLElement("select")}}. Això no succeeix en Chrome, encara que aquest comportament és incoherent en molts navegadors.Per a una millor compatibilitat web (i per raons tècniques), quan Firefox està en modalitat multi-procés l'element <code><select></code> es mostra com una llista desplegable. El comportament no té canvis si <select> es presenta en línia i té l'atribut <code>multiple</code> definit o un atribut <code>size</code> ajustat a més de 1.<br> + En lloc d'observar elements <code><option></code> per a esdeveniments, heu d'estar atents els esdeveniments {event("change")}} en {{HTMLElement("select")}}. Veure {{bug(1090602)}} per a més informació.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formualris: {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("select")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> diff --git a/files/ca/web/html/element/output/index.html b/files/ca/web/html/element/output/index.html new file mode 100644 index 0000000000..c6397d2fd4 --- /dev/null +++ b/files/ca/web/html/element/output/index.html @@ -0,0 +1,150 @@ +--- +title: <output> +slug: Web/HTML/Element/output +tags: + - Element + - HTML + - HTML forms + - HTML5 + - 'HTML:Flow content' + - NeedsMobileBrowserCompatibility + - Reference + - Web +translation_of: Web/HTML/Element/output +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<strong>element HTML <code><output></code></strong> representa el resultat d'una acció de càlcul o d'usuari.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerat</a>, <a href="/en-US/docs/HTML/Content_categories#Form_labelable" title="HTML/Content categories#Form labelable">etiquetable</a><a href="/en-US/docs/HTML/Content_categories#Form_resettable" title="HTML/Content categories#Form resettable">, reiniciable</a> <a href="/en-US/docs/HTML/Content_categories#Form-associated_content" title="HTML/Content categories#Form-associated content">element associat a formulari </a>, contingut palpable .</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLOutputElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("for")}}</dt> + <dd>Una llista IDs d'altres elements, indicant que aquests elements van aportar valors d'entrada al càlcul (o afectat d'una altra manera).</dd> + <dt>{{htmlattrdef("form")}}</dt> + <dd>L'element form al que està associat aquest element (el seu "propietari de formulari"). El valor de l'atribut ha de ser un ID d'un element formulari en el mateix document. Si no s'especifica aquest atribut, l'element de sortida ha de ser un descendent d'un element formulari. Aquest atribut li permet dipositar elements de sortida en qualsevol lloc dins d'un document, no només com descendents dels seus elements formulari.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>El nom de l'element.</dd> +</dl> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush: html"><form oninput="result.value=parseInt(a.value)+parseInt(b.value)"> + <input type="range" name="b" value="50" /> + + <input type="number" name="a" value="10" /> = + <output name="result">60</output> +</form> +</pre> + +<p>{{ EmbedLiveSample('Example')}}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-output-element', '<output>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-output-element', '<output>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>10</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{ CompatNo() }}</td> + <td>11</td> + <td>7</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>7</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formualris: {{HTMLElement("form")}}, {{HTMLElement("input")}}, {{HTMLElement("button")}}, {{HTMLElement("datalist")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("select")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("option")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> + +<div>{{HTMLRef}}</div> + +<p> </p> diff --git a/files/ca/web/html/element/p/index.html b/files/ca/web/html/element/p/index.html new file mode 100644 index 0000000000..a70e51f84c --- /dev/null +++ b/files/ca/web/html/element/p/index.html @@ -0,0 +1,148 @@ +--- +title: <p> +slug: Web/HTML/Element/p +tags: + - Element + - HTML + - HTML grouping content + - Reference + - Web +translation_of: Web/HTML/Element/p +--- +<div>{{HTMLRef}}</div> + +<p>L'<strong>element HTML <code><p></code></strong> (o <em>element HTML Paràgraf</em> ) representa un paràgraf de text. Els paràgrafs solen estar representats en els mitjans visuals com a blocs de text que estan separats dels blocs adjacents per un espai en blanc vertical i/o una sagnia de primera línia. El paràgraf ha d'estar tancat al final del text utilitzant el format <strong>"<p> text </ p>"</strong> per col·locar el text entre el paràgraf. Els paràgrafs són <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements">elements de bloc</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici és obligatòria. L'etiqueta final es pot ometre si l'element {{HTMLElement("p")}} és seguit immediatament per un {{HTMLElement("address")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("blockquote")}}, {{HTMLElement("div")}}, {{HTMLElement("dl")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("footer")}}, {{HTMLElement("form")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("header")}}, {{HTMLElement("hr")}}, {{HTMLElement("menu")}}, {{HTMLElement("nav")}}, {{HTMLElement("ol")}}, {{HTMLElement("pre")}}, {{HTMLElement("section")}}, {{HTMLElement("table")}}, {{HTMLElement("ul")}} o una altra element {{HTMLElement("p")}}, o si no hi ha més contingut en l'element primari i l'element pare no és un element {{HTMLElement("a")}}.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLParagraphElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<p>L'atribut <code>align</code> a <p> és obsolet. No el feu servir.</p> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>This is the first paragraph of text. This is the first paragraph of text. + This is the first paragraph of text. This is the first paragraph of text.</p> + +<p>This is second paragraph of text. This is second paragraph of text. + This is second paragraph of text. This is second paragraph of text.</p> +</pre> + +<p>Això genera:</p> + +<p>{{EmbedLiveSample('Example')}}</p> + +<h2 id="Notes">Notes</h2> + +<p>Per canviar els espais entre els paràgrafs, utilitzar la propietat <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> {{cssxref("margin")}}. <strong>No introduir</strong> elements paràgrafs buits o {{HTMLElement("br")}} entre ells.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-p-element', '<p>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi des de l'última presentació W3C {{SpecName("HTML5 W3C")}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-p-element', '<p>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>l'atribut <code>align</code> està obsolet</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.3.1', '<p>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definció inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("hr")}}</li> + <li>{{HTMLElement("br")}}</li> +</ul> diff --git a/files/ca/web/html/element/param/index.html b/files/ca/web/html/element/param/index.html new file mode 100644 index 0000000000..5c8f96c4ea --- /dev/null +++ b/files/ca/web/html/element/param/index.html @@ -0,0 +1,151 @@ +--- +title: <param> +slug: Web/HTML/Element/param +tags: + - Element + - HTML + - HTML embedded content + - Reference + - Web +translation_of: Web/HTML/Element/param +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><param></code></strong> (o element HTML de paràmetre ) defineix paràmetres per {{ HTMLElement("object") }}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ja</span> <span>que és un</span> <span>element</span> <span>buit,</span> <span>l'etiqueta</span> <span>d'inici</span> <span>ha d'estar present</span> <span>i</span> <span>l'etiqueta</span> <span>final</span> <span>no ha d'estar</span> <span>present.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un {{ HTMLElement("object") }} <span class="short_text" id="result_box" lang="ca"><span>abans</span> <span>de qualsevol</span></span> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLParamElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{ htmlattrdef("name") }}</dt> + <dd>Nom del paràmetre .</dd> + <dt>{{ htmlattrdef("type") }} {{ obsolete_inline() }}</dt> + <dd><span id="result_box" lang="ca"><span>Només s'utilitza</span> <span>si el</span> <code><span>valuetype</span> </code><span>està</span> <span>ajustat a</span> <span>"</span><span>ref</span><span>"</span><span>.</span> <span>Especifica</span> <span>el tipus</span> <span>MIME</span> <span>dels</span> <span>valors</span> <span>trobats en</span> <span>l'URI</span> <span>especificat</span> <span>pel valor.</span></span></dd> + <dt>{{ htmlattrdef("value") }}</dt> + <dd><span id="result_box" lang="ca"><span>Especifica</span> <span>el valor del paràmetre</span></span>.</dd> + <dt>{{ htmlattrdef("valuetype") }} {{ obsolete_inline() }}</dt> + <dd>Especifica el tipus de l'atribut <code>value</code>. Els valors possibles són: + <ul> + <li>data: El valor per defecte. El valor es passa a la implementació de l'objecte com una cadena.</li> + <li>ref: El valor és una URI a un recurs on s'emmagatzemen els valors de temps d'execució.</li> + <li>object: Un ID d'una altra {{ HTMLElement("object") }} en el mateix document.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, veure la pàgina {{ HTMLElement("object") }} per exemples de <param>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-iframe-element.html#the-param-element', '<param>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-param-element', '<param>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/objects.html#h-13.3.2', '<param>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsict</td> + <td>1.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{ HTMLElement("object") }}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/picture/index.html b/files/ca/web/html/element/picture/index.html new file mode 100644 index 0000000000..540ee5bb7b --- /dev/null +++ b/files/ca/web/html/element/picture/index.html @@ -0,0 +1,141 @@ +--- +title: <picture> +slug: Web/HTML/Element/picture +tags: + - Element + - Experimental + - HTML + - Reference + - Web + - picture +translation_of: Web/HTML/Element/picture +--- +<div>{{HTMLRef}}{{SeeCompatTable}}</div> + +<p>L'<strong>element HTML <code><picture></code></strong> és un contenidor utilitzat per especificar diversos elements {{HTMLElement("source")}} per a una determinada {{HTMLElement("img")}} continguda en el mateix. El navegador triarà la font més adequada d'acord amb el disseny actual de la pàgina (les restriccions del quadre en el qual apareixerà la imatge) i el dispositiu en el qual es mostrarà (per exemple, un dispositiu normal o HiDPI).</p> + +<h2 id="Context_d'ús">Context <span class="short_text" id="result_box" lang="ca"><span>d'ús</span></span></h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, phrasing content, contingut incrustat</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Zero or més elements {{HTMLElement("source")}}, seguits per un element {{HTMLElement("img")}}, <span id="result_box" lang="ca"><span>opcionalment</span> <span>barrejats</span> <span>amb</span> <span>elements</span> <span>amb </span><span>suport script</span></span></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut incrustat.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLPictureElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemple_1_Usant_l'atribut_media">Exemple 1: <span class="short_text" id="result_box" lang="ca"><span>Usant</span> <span>l'atribut</span> </span> <code>media</code></h2> + +<p>L'atribut <code>media</code> li permet especificar una consulta de medis que l'agent d'usuari avaluarà per a seleccionar un element {{HTMLElement("source")}}. Si la consulta de medis s'avalua com a <code>false</code> , l'element {{HTMLElement("source")}} s'omet.</p> + +<pre class="brush: html"><picture> + <source srcset="mdn-logo-wide.png" media="(min-width: 600px)"> + <img src="mdn-logo-narrow.png" alt="MDN"> +</picture> +</pre> + +<h2 id="Exemple_2_Usant_l'atribut_type">Exemple 2: <span class="short_text" id="result_box" lang="ca"><span>Usant</span> <span>l'atribut</span></span> <code>type</code></h2> + +<p>L'atribut <code>type</code> li permet especificar un tipus MIME per als recursos que es proporcionen en l'atribut <code>srcset</code> de l'element {{HTMLElement ( "source")}}. Si l'agent d'usuari no admet el tipus donat, l'element {{HTMLElement("source")}} s'omet.</p> + +<pre class="brush: html"><picture> + <source srcset="mdn-logo.svg" type="image/svg+xml"> + <img src="mdn-logo.png" alt="MDN"> +</picture> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'embedded-content.html#the-picture-element', '<picture>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Definició incial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("38")}}</td> + <td>Edge 13</td> + <td>25</td> + <td>9.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoMobile("38")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>iOS 9.3</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("img")}}</li> +</ul> diff --git a/files/ca/web/html/element/plaintext/index.html b/files/ca/web/html/element/plaintext/index.html new file mode 100644 index 0000000000..31da9c5784 --- /dev/null +++ b/files/ca/web/html/element/plaintext/index.html @@ -0,0 +1,48 @@ +--- +title: <plaintext> +slug: Web/HTML/Element/plaintext +tags: + - Element + - HTML + - NeedsCompatTable + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/plaintext +--- +<div>{{Obsolete_header}}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>element HTML text sense format </em>(<code><plaintext></code>) fa que tot el que ve després de l'etiqueta inicial sigui text sense format, sense interpretar res d'HTML. No té etiqueta de tancament, ja que tot el que ve després es considera text sense format.</p> + +<div class="note"><strong>Nota: </strong> <span class="short_text" id="result_box" lang="ca"><span>No utilitzeu</span> <span>aquest</span> <span>element</span></span>. + +<ul> + <li>Aquest element està desaprovat des d'HTML 2 i mai va ser implementat per tots els navegadors; fins i tot aquells que ho van implementar no ho van fer de forma coherent. A més, ha quedat obsolet en HTML 5; navegadors que encara ho accepten podem tractar-lo simplement com un element {{HTMLElement ("pre")}}, que encara interpreta dins HTML, tot i que això no és el que probablement és vulgui.</li> + <li>Si l'element {{HTMLElement("plaintext")}} és el primer element de la pàgina (a més de qualsevol element no mostrat), no utilitzeu HTML en absolut. Configura el servidor per enviar la seva pàgina amb el <code>text/plain</code> <a href="https://developer.mozilla.org/en-US/docs/Properly_Configuring_Server_MIME_Types">MIME-type</a>.</li> + <li>En lloc d'utilitzar aquest element, s'ha d'utilitzar l'element {{HTMLElement("pre")}} o, si semànticament és adequat, l'element {{HTMLElement("code")}}. Assegurar-vos d'obviar els caràcters "<", ">" i "&", per evitar interpretar distretament el contingut com HTML.</li> + <li>Una font de pas fix també es pot aplicar a un element {{HTMLElement ("div")}} mitjançant l'aplicació d'un estil <a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a> adequat usant espai senzill com el valor d'una font genèrica en una propietat {{cssxref("font-family")}}.</li> +</ul> +</div> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element no</span> <span>té altres</span> <span>atributs que els</span></span> <a href="/en-US/docs/Web/HTML/Global_attributes" rel="internal" title="HTML/global attributes">global attributes</a>, <span id="result_box" lang="ca"><span>comuns a</span> <span>tots</span> <span>els</span> <span>elements.</span></span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref('HTMLElement')}} .</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong> <span id="result_box" lang="ca"><span>Fins</span> <span>Gecko</span> <span>1.9.2</span> <span>inclosos,</span> <span>Firefox</span> <span>implementa</span> <span>la interfície</span></span> {{domxref('HTMLSpanElement')}} <span id="result_box" lang="ca"><span>per a aquest</span> <span>element.</span></span></p> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Els elements {{HTMLElement("pre")}} i {{HTMLElement("code")}} es poden utilitzar al seu lloc.</li> + <li>Els elements {{HTMLElement("listing")}} i {{HTMLElement("xmp")}}, similars a {{HTMLElement("plaintext")}} són també obsolets.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/pre/index.html b/files/ca/web/html/element/pre/index.html new file mode 100644 index 0000000000..f3ed7ecb27 --- /dev/null +++ b/files/ca/web/html/element/pre/index.html @@ -0,0 +1,211 @@ +--- +title: <pre> +slug: Web/HTML/Element/pre +tags: + - Element + - HTML + - HTML grouping content + - 'HTML:Flow content' + - Reference + - Web +translation_of: Web/HTML/Element/pre +--- +<div>{{HTMLRef}}</div> + +<p>L'<strong>element HTML <code><pre></code></strong> (o <em>text preformatat HTML</em>) Representa el text amb format previ. El text dins d'aquest element en general es mostra en una font no proporcional ("<a href="https://developer.mozilla.org/en-US/docs/XUL/Style/monospace">espai senzill (monoespace)</a>") tal com es presenta a l'arxiu. Els espais en blanc dins d'aquest element es mostran tal com s'han escrit.</p> + +<div class="note"> +<p><strong>Nota:</strong> haureu d'evitar qualsevol contingut '<code><</code>' caràcters com '<code>& lt;</code>' per assegurar-vos que el codi tancat no s'interpreti com marcat.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/Guide/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/Guide/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/Guide/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLPreElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("cols")}} {{non-standard_inline}}{{obsolete_inline}}</dt> + <dd>Conté el nombre de caràcters <em>preferit</em> que una línia hauria de tenir. Era un sinònim no estàndard de {{htmlattrxref("width", "pre")}}. Per aconseguir aquest efecte, utilitzar al seu lloc CSS {{Cssxref("width")}}.</dd> + <dt>{{htmlattrdef("width")}} {{obsolete_inline}}</dt> + <dd>Conté el nombre de caràcters <em>preferit</em> que una línia hauria de tenir. <span id="result_box" lang="ca"><span class="alt-edited">Encara que tècnicament segueix vigent, aquest atribut no té cap efecte visual</span></span>; per aconseguir aquest efecte, utilitzar al seu lloc CSS {{Cssxref("width")}}.</dd> + <dt>{{htmlattrdef("wrap")}} {{non-standard_inline}}</dt> + <dd>És una <em>pista</em> que indica com ha de succeir el desbordament. En el navegador modern aquest suggeriment és ignorat i no hi ha resultats dels efectes visuals en l'actualitat; per aconseguir aquest efecte, utilitzar al seu lloc CSS {{Cssxref("white-space")}}.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- Some example CSS code --> +<pre> +body { + color:red; +} +</pre> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<pre>body { + color:red; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'grouping-content.html#the-pre-element', '<pre>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap canvi</span> <span>significatiu</span> <span>des</span></span> de {{SpecName("HTML WHATWG")}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-pre-element', '<pre>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>Cap canvi</span> <span>significatiu</span> <span>des</span></span> de {{SpecName("HTML4.01")}}</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.3.4', '<dl>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Desaprovat l'atribut <code>cols</code></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>width</code></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop("1.0")}}<br> + {{CompatGeckoDesktop("29.0")}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + </tr> + <tr> + <td><code>cols</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("1.0")}}<br> + {{CompatNo}} {{CompatGeckoDesktop("29.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>wrap</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>width</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}{{CompatGeckoMobile("29.0")}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>cols</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>wrap</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Especificar l'atribut <code>width</code> no té cap efecte en el disseny.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>CSS: {{Cssxref('white-space')}}, {{Cssxref('word-break')}}</li> +</ul> diff --git a/files/ca/web/html/element/progress/index.html b/files/ca/web/html/element/progress/index.html new file mode 100644 index 0000000000..a25f3ae93b --- /dev/null +++ b/files/ca/web/html/element/progress/index.html @@ -0,0 +1,173 @@ +--- +title: <progress> +slug: Web/HTML/Element/progress +tags: + - Element + - HTML + - HTML forms + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/progress +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>Element HTML <code><progress></code></strong> s'utilitza per veure l'avenç de realització d'una tasca. Encara que els detalls de com es visualitza es deixa en mans del desenvolupador del navegador, normalment es mostra com una barra de progrés. Es pot utilitzar Javascript per manipular el valor de la barra de progrés.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, contingut etiquetable, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>, <span id="result_box" lang="ca"><span>però</span> <span>no ha d'haver</span> <span>cap element</span></span> <code><progress></code> <span id="result_box" lang="ca"><span>entre els seus</span> <span>descendents.</span></span></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLProgressElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{ htmlattrdef("max") }}</dt> + <dd>Aquest atribut descriu la quantitat de treball que requereix la tasca indicada per l'element <code>progress</code>. L'atribut <code>max</code>, si està present, ha de tenir un valor més gran que zero i ser un nombre de coma flotant vàli</dd> + <dt>{{ htmlattrdef("value") }}</dt> + <dd>Aquest atribut especifica quina part de la tasca s'ha completat. Ha de ser un nombre de coma flotant vàlid entre 0 i <code>max</code>, o entre 0 i 1 si s'omet <code>max</code>. Si no hi ha cap atribut <code>value</code>, la barra de progrés és indeterminada; això indica que una activitat està en curs sense cap indicació de quant temps s'espera que prengui.</dd> +</dl> + +<p>Es pot utilitzar la propietat {{ cssxref("-moz-orient") }} per especificar si la barra de progrés es presentarà horitzontalment (per defecte) o verticalment. La pseudo-classe {{ cssxref(":indeterminate") }} es pot utilitzar per a que coincideixi amb barres de progrés indeterminades.</p> + +<dl> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><progress value="70" max="100">70 %</progress> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{ EmbedLiveSample("Examples", 200, 50) }}</p> + +<p>A Mac OS X, <span id="result_box" lang="ca"><span>el resultat del </span></span><span lang="ca"><span>progress</span> <span>s'assembla a</span> <span>això</span><span>:</span></span></p> + +<p><img alt="The progress bar seen in OS X Mavericks" class="default internal" src="https://mdn.mozillademos.org/files/6863/Screenshot%202014-01-30%2011.14.30.png" style="height: 24px; width: 167px;"></p> + +<p><span id="result_box" lang="ca"><span>A Windows 7, el resultat del </span></span><span lang="ca"><span>progress</span> <span>s'assembla a</span> <span>això</span><span>:</span></span></p> + +<p><img alt="progress-firefox.JPG" class="default internal" src="/@api/deki/files/6031/=progress-firefox.JPG"></p> + +<h3 id="Exemples_addicionals">E<span class="short_text" id="result_box" lang="ca"><span>xemples</span> <span>addicionals</span></span></h3> + +<p>Veure {{ cssxref("-moz-orient") }}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-progress-element', '<progress>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-progress-element', '<progress>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>6.0</td> + <td>{{ CompatGeckoMobile("6.0") }} [1] [2]<br> + {{ CompatGeckoMobile("14.0")}} [2]</td> + <td>10</td> + <td>11.0</td> + <td>5.2</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatGeckoMobile("6.0") }} [1] [2]<br> + {{ CompatGeckoMobile("14.0")}} [2]</td> + <td>{{ CompatNo() }}</td> + <td>11.0</td> + <td>7 [3]</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Abans de Gecko 14,0 {{geckoRelease ("14.0")}}, l'element <progrés> va ser classificat erròniament com un element de formulari, i per tant tenia una atribut <code>form</code>. Això s'ha solucionat.</p> + +<p>[2] Gecko proporciona el pseudo-element {{ cssxref("::-moz-progress-bar") }}, que permet que l'estil de la part interior de la barra de progrés representi la quantitat de treball realitzat fins al moment.</p> + +<p>[3] Safari en iOS no és compatible amb les barres de progrés indeterminades (es representen com barres de progrés completades en 0%).</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{ cssxref(":indeterminate") }}</li> + <li>{{ cssxref("-moz-orient") }}</li> + <li>{{ cssxref("::-moz-progress-bar") }}</li> + <li>{{ cssxref("::-ms-fill") }}</li> + <li>{{ cssxref("::-webkit-progress-bar") }}</li> + <li>{{ cssxref("::-webkit-progress-value") }}</li> + <li>{{ cssxref("::-webkit-progress-inner-element") }}</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/q/index.html b/files/ca/web/html/element/q/index.html new file mode 100644 index 0000000000..7759a3e5dd --- /dev/null +++ b/files/ca/web/html/element/q/index.html @@ -0,0 +1,111 @@ +--- +title: <q> +slug: Web/HTML/Element/q +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/q +--- +<div>{{HTMLRef}}</div> + +<p>L'<em>Element HTML Cita (Quote)</em> (<strong><q></strong>) indica que el text adjunt és una breu cita en línia. Aquest element està dissenyat per a cites curtes que no requereixen salts de paràgraf; per a cites llargues s'utilitza l'element {{HTMLElement("blockquote")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLQuoteElement")}}</td> + </tr> + </tbody> +</table> + +<p>{{NoteStart}}La majoria dels navegadors que compleixen amb els estàndards moderns, com Mozilla Firefox, Opera i Safari, han d'agregar cometes al voltant del text inclòs dins de l'element <code><q></code>.Alguns navegadors, com Internet Explorer, no poden fer qualsevol tipus de canvi d'estil per a les cites, però és possible aplicar una regla d'estil.{{NoteEnd}}</p> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("cite")}}</dt> + <dd>El valor d'aquest atribut és una adreça URL que designa un document d'origen o un missatge per a la informació citada. Aquest atribut està destinat a assenyalar informació que expliqui el context o la referència de la citació.</dd> +</dl> + +<h2 id="Example" name="Example">Exemple</h2> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><p>Everytime Kenny is killed, Stan will announce + <q cite="http://en.wikipedia.org/wiki/Kenny_McCormick#Cultural_impact"> + Oh my God, you/they killed Kenny! + </q>. +</p> +</pre> + +<p>{{ EmbedLiveSample('Example') }}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-q-element', '<q>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-q-element', '<q>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.2', '<q>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p> </p> + +<div> + + +<p>{{Compat("html.elements.q")}}</p> +</div> + +<p> </p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("blockquote")}} per a cites llargues.</li> + <li>L'element {{HTMLElement("cite")}} per cites originals.</li> +</ul> diff --git a/files/ca/web/html/element/rp/index.html b/files/ca/web/html/element/rp/index.html new file mode 100644 index 0000000000..9cfcdd0184 --- /dev/null +++ b/files/ca/web/html/element/rp/index.html @@ -0,0 +1,133 @@ +--- +title: <rp> +slug: Web/HTML/Element/rp +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/rp +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<strong>element HTML <code><rp></code></strong> s'utilitza per proporcionar un parèntesis alternatiu als navegadors que no suporten les notacions de ruby. Les notacions ruby estan per mostrar la pronunciació dels caràcters de l'Àsia oriental, com l'ús de furigana japonès o els caràcters Taiwainese bopomofo. L'element <code><rp></code> s'utilitza en el cas de manca de suport de l'element {{ HTMLElement("ruby") }} el seu contingut té el que s'ha de mostrar per tal d'indicar la presència d'una notació de ruby, generalment entre parèntesis.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("ruby")}}. <code><rp></code> s'ha de col·locar immediatament abans o després d'un element {{HTMLElement("rt")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush: html"><ruby> + 漢 <rp>(</rp><rt>Kan</rt><rp>)</rp> + 字 <rp>(</rp><rt>ji</rt><rp>)</rp> +</ruby></pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-rp-element', '<rp>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-rp-element', '<rp>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop(38)}}</td> + <td>5.0</td> + <td>{{CompatNo}}</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile(38)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("ruby")}}</li> + <li>{{HTMLElement("rt")}}</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/rt/index.html b/files/ca/web/html/element/rt/index.html new file mode 100644 index 0000000000..8bf4e919d6 --- /dev/null +++ b/files/ca/web/html/element/rt/index.html @@ -0,0 +1,134 @@ +--- +title: <rt> +slug: Web/HTML/Element/rt +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/rt +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<strong>Element HTML <code><rt></code></strong> abasta la pronunciació dels caràcters presentats en notacions ruby, que s'utilitzen per descriure la pronunciació dels caràcters de l'est asiàtic. Aquest element s'utilitza sempre dins d'un element {{ HTMLElement("ruby") }}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta final es pot ometre si l'element {{HTMLElement("rt")}} és seguit immediatament per un element {{HTMLElement("rt")}} o {{HTMLElement("rp")}} o si hi ha més contingut en l'element pare</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("ruby")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush: html"><ruby> + 漢 <rt>Kan</rt> + 字 <rt>ji</rt> +</ruby> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-rt-element', '<rt>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-rt-element', '<rt>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop(38)}}</td> + <td>5.0</td> + <td>{{CompatNo}}</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile(38)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("ruby")}}</li> + <li>{{HTMLElement("rp")}}</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/rtc/index.html b/files/ca/web/html/element/rtc/index.html new file mode 100644 index 0000000000..ad250ba8ca --- /dev/null +++ b/files/ca/web/html/element/rtc/index.html @@ -0,0 +1,134 @@ +--- +title: <rtc> +slug: Web/HTML/Element/rtc +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/rtc +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<strong>Element HTML <code><rtc></code></strong> abasta notacions semàntiques dels caràcters presentats en un ruby d'elements {{HTMLElement("rb")}} utilitzats a l'interior de l'element {{HTMLElement ("ruby")}}. Els elements {{HTMLElement ("rb")}} poden tenir tant la pronunciació ({{HTMLElement("rt")}}) com notacions semàntiques ({{HTMLElement("rtc")}}) .</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a> or elements {{HTMLElement("rt")}} .</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>L'etiqueta de tancament es pot ometre si és seguit immediatament per una etiqueta d'obertura de l'element {{HTMLElement("rb")}}, {{HTMLElement("rtc")}} o {{HTMLElement("rt")}} o per la seva etiqueta de tancament dels pares.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("ruby")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Example" name="Example">Exemple</h2> + +<pre class="brush: html"><ruby> + <rb>旧</rb> + <rb>金</rb> + <rb>山</rb> + <rt>jiù</rt> + <rt>jīn</rt> + <rt>shān</rt> + <rtc>San Francisco</rtc> +</ruby> +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML5 W3C', 'the-rtc-element.html#the-rtc-element', '<rtc>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop(33)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile(33)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{HTMLElement("ruby")}}</li> + <li>{{HTMLElement("rp")}}</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/ruby/index.html b/files/ca/web/html/element/ruby/index.html new file mode 100644 index 0000000000..58dd5b703f --- /dev/null +++ b/files/ca/web/html/element/ruby/index.html @@ -0,0 +1,120 @@ +--- +title: <ruby> +slug: Web/HTML/Element/ruby +translation_of: Web/HTML/Element/ruby +--- +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'<strong>Element</strong> <strong>HTML <code><ruby></code> </strong> representa una notació ruby. Les notacions Ruby s'utilitzen per mostrar la pronunciació de caràcters asiàtics.</p> + +<ul class="htmlelt"> + <li><dfn><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></dfn> <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Phrasing_content">Flow content</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>, contingut palpable.</li> + <li><dfn>Contingut permès</dfn> <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</li> + <li><dfn>Omissió d'etiquetes</dfn> {{no_tag_omission}}</li> + <li><dfn>Elements pares permessos</dfn> See prose</li> + <li><dfn>Interfície DOM </dfn> {{domxref("HTMLElement")}}</li> +</ul> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Exemple_1_Caràcter">Exemple 1: Caràcter</h3> + +<pre class="brush:html"><ruby> + 漢 <rp>(</rp><rt>Kan</rt><rp>)</rp> + 字 <rp>(</rp><rt>ji</rt><rp>)</rp> +</ruby></pre> + +<h3 id="Exemple_2_Word">Exemple 2: Word</h3> + +<pre class="brush:html"><ruby> + 明日 <rp>(</rp><rt>Ashita</rt><rp>)</rp> +</ruby></pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-ruby-element', '<ruby>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-ruby-element', '<ruby>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatiblitat_amb_navegadors">Compatiblitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>5.0</td> + <td>{{CompatGeckoDesktop(38)}}</td> + <td>5.0</td> + <td>{{CompatNo}}</td> + <td>5.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile(38)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{HTMLElement("rt")}}</li> + <li>{{HTMLElement("rp")}}</li> +</ul> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/s/index.html b/files/ca/web/html/element/s/index.html new file mode 100644 index 0000000000..4d11be3c1b --- /dev/null +++ b/files/ca/web/html/element/s/index.html @@ -0,0 +1,71 @@ +--- +title: <s> +slug: Web/HTML/Element/s +tags: + - Element + - HTML + - HTML text-level semantics + - NeedsNewBrowserCompatTable + - Reference + - Web + - text-decoration +translation_of: Web/HTML/Element/s +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML ratllat</em> (<code><s></code>) processa el text amb un ratllat, o una línia a través d'ell. Utilitzeu l'element <code><s></code> per representar coses que ja no són pertinents o no són exactes. No obstant això, <code><s></code> no és adequat per indicar edicions de documents; per això, utilitzar els elements {{ HTMLElement("del") }} i {{ HTMLElement("ins") }}, segons el cas.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de categories</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Phrasing content</a> o <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/DOM/element" title="DOM/element">HTMLElement</a></code>.</p> + +<div class="note"><strong><span id="result_box" lang="ca"><span>Nota</span> <span>d'implementació</span></span>: </strong> <span id="result_box" lang="ca"><span>Fins</span> <span>Gecko</span> <span>1.9.2</span> <span>inclos,</span> <span>Firefox</span> <span>implementa</span> <span>la interfície</span> <span>HTMLSpanElement</span> <span>per a aquest</span> <span>element</span></span></div> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:xml"><s>Today's Special: Salmon</s> SOLD OUT<br> +<span style="text-decoration:line-through;">Today's Special: Salmon</span> SOLD OUT</pre> + +<h3 id="Resultat">Resultat</h3> + +<p><s>Today's Special: Salmon</s> SOLD OUT<br> + <s style="text-decoration: line-through;">Today's Special: Salmon</s> SOLD OUT</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{ HTMLElement("strike") }}, alter ego de l'element {{ HTMLElement("s") }} és obsolet i no s'ha d'utilitzar en els llocs web.</li> + <li>L'element {{ HTMLElement("del") }} s'utilitzarà en el seu lloc si les dades s'han <em>eliminat (deleted)</em>.</li> + <li>La propietat CSS {{ cssxref("text-decoration") }}-line-through es va utilitzar per aconseguir el primer aspecte visual de l'element {{HTMLElement ("s")}}.</li> +</ul> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/samp/index.html b/files/ca/web/html/element/samp/index.html new file mode 100644 index 0000000000..4d13bf29ed --- /dev/null +++ b/files/ca/web/html/element/samp/index.html @@ -0,0 +1,101 @@ +--- +title: <samp> +slug: Web/HTML/Element/samp +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/samp +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <code><samp></code> és un element destinat a identificar la sortida de mostra d'un programa informàtic. Normalment es mostra en la font monotip predeterminada del navegador (com a Lucida Console).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en/HTML/Content_categories#Flow_content" style="line-height: 22px;" title="en/HTML/Content categories#Flow content">Contingut dinàmic</a><span style="line-height: 22px;">, </span><a href="/en/HTML/Content_categories#Phrasing_content" style="line-height: 22px;" title="en/HTML/Content categories#Phrasing content">phrasing content</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en/HTML/Content_categories#Phrasing_content" style="line-height: 22px;" title="en/HTML/Content categories#Phrasing content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en/DOM/element" title="en/DOM/element">HTMLElement</a></code>.</p> + +<div class="note"> +<p><strong><span id="result_box" lang="ca"><span>Nota</span> <span>d'implementació</span></span>: </strong>fins Gecko 1.9.2 inclosos, Firefox implementa la interfície <a href="/en/DOM/span" title="en/DOM/span"><span style="font-family: courier new;">HTMLSpanElement</span></a> per a aquest element.</p> +</div> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>Regular text. <samp>This is sample text.</samp> Regular text.</p> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>Regular text. <samp>This is sample text.</samp> Regular text.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-samp-element', '<samp>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-samp-element', '<samp>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<samp>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Nota">Nota</h2> + +<p>Es pot definir una regla CSS perquè el selector <code>samp</code> substitueixi el tipus de font predeterminat del navegador. Les preferències establertes per l'usuari poden tenir prioritat sobre la CSS especificat.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en/HTML/Element/code" title="en/HTML/Element/code">HTML Code Element</a></li> +</ul> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/script/index.html b/files/ca/web/html/element/script/index.html new file mode 100644 index 0000000000..44d8b22278 --- /dev/null +++ b/files/ca/web/html/element/script/index.html @@ -0,0 +1,255 @@ +--- +title: <script> +slug: Web/HTML/Element/script +tags: + - Element + - HTML + - HTML scripting + - Reference + - Web +translation_of: Web/HTML/Element/script +--- +<p>L'element <code><strong><script></strong></code> (o <em>element HTML script "Seqüència de comandaments"</em> ) s'utilitza per inserir o fer referència a un script executable dins d'un document <abbr title="Hypertext Markup Language">HTML</abbr> or <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>.</p> + +<p>Els scripts sense atributs <code>async</code> o <code>defer</code>, així com els scripts en línia, es capten i s'executen immediatament, abans que el navegador segueixi analitzant la pàgina.</p> + +<p>El script ha de ser servit amb el tipus <code>text/javascript</code> MIME, però els navegadors són indulgents i només bloquejan si el script es serveix amb un tipus d'imatge (<code>image/*</code>), de vídeo (<code>video/*</code>), arxiu d'àudio (<code>audio/*</code>), o <code>text/csv</code>. Si el script és bloquejat, un {{event("error")}} s'envia a l'element, sinó s'envia un esdeveniment {{event("success")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content" title="HTML/Content_categories#Metadata_content">Contingut Metadata</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Script dinàmic com <code>text/javascript</code>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content" title="HTML/Content_categories#Metadata_content">contingut Metadata</a>, o qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLScriptElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("async")}} {{HTMLVersionInline(5)}}</dt> + <dd>Establir aquest atribut booleà per indicar que el navegador hauria, si és possible, executar l'script de manera asincrònica. No té cap efecte sobre els scripts en línia (és a dir, scripts que no tenen l'atribut <strong>src</strong>).</dd> + <dd>Veure {{anch("Browser compatibility")}} <span id="result_box" lang="ca"><span>notes</span> <span>sobre el suport del</span> <span>navegador.</span></span> Veure <a href="/en-US/docs/Games/Techniques/Async_scripts">Async scripts per asm.js</a>.</dd> + <dt>{{htmlattrdef("integrity")}}</dt> + <dd>Conté metadades en línia que un agent d'usuari pot utilitzar per verificar que un recurs recuperat ha estat lliurat sense manipulació inesperada. Veure <a href="/en-US/docs/Web/Security/Subresource_Integrity">Integritat de subrecursos</a>.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>Aquest atribut especifica l'URI d'un script extern; això es pot utilitzar com una alternativa per a la incorporació d'un script directament dins d'un document. Si un element de script té un atribut <code>src</code> especificat, no ha de tenir un script incrustat dins les seves etiquetes.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Aquest atribut identifica el llenguatge de script de codi incrustat dins d'un element de script o referenciat a través de l'atribut src de l'element. Això s'especifica com un tipus MIME; exemples dels tipus MIME suportats inclouen <code>text/javascript</code>, <code>text/ecmascript</code>, <code>application/javascript</code>, i <code>application/ecmascript</code>. Si aquest atribut està absent, el script és tractat com JavaScript.</dd> + <dd>Si el tipus <abbr title="Multi-purpose Internet Mail Extensions">MIME</abbr> especificat no és un tipus JavaScript escriviu el contingut incrustat dins les seves etiquetes, es tracta com un bloc de dades que no serà processada pel navegador.</dd> + <dd>Si el tipus especificat és mòdul el codi es tracta com un mòdul de JavaScript {{experimental_inline}}. Veure <a class="external external-icon" href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 en Profunditat: Mòduls</a><br> + <br> + Recordeu que Firefox pot utilitzar les funcions avançades com ara deixar que les declaracions i altres característiques en les versions posteriors JS, mitjançant l'ús <code>type=application/javascript;version=1.8</code> {{Non-standard_inline}}. Aneu amb compte, però, que aquesta és una característica no estàndard, això farà que probablement s'interrompi el suport per a altres navegadors, en particular els navegadors basats en Chromium.</dd> + <dd><span id="result_box" lang="ca"><span>Per</span> <span>la manera d'incloure</span> <span>els</span> <em><span>llenguatges</span> <span>de programació</span> <span>exòtics</span></em><span>, llegir</span> <span>sobre</span></span> <a href="/en-US/Add-ons/Code_snippets/Rosetta">Rosetta</a>.</dd> + <dt>{{htmlattrdef("text")}}</dt> + <dd>Igual que l'atribut <code>textContent</code>, aquest atribut estableix el contingut de text de l'element. A diferència de l'atribut <code>textContent</code>, aquest atribut s'avalua com a codi executable després que el node s'insereix en el DOM.</dd> + <dt>{{htmlattrdef("language")}} {{Deprecated_inline}}</dt> + <dd>Igual que l'atribut <code>type</code>, aquest atribut identifica el llenguatge de script en ús. A diferència de l'atribut <code>type</code>, els possibles valors d'aquest atribut mai van ser estandarditzats. L'atribut <code>type</code> s'ha d'utilitzar al seu lloc</dd> + <dt>{{htmlattrdef("defer")}}</dt> + <dd>Aquest atribut booleà s'estableix per indicar a un navegador que el script està destinat a ser executat després que el document s'ha analitzat, però abans de activar {{event("DOMContentLoaded")}}. L'atribut <code>defer</code> no ha de ser utilitzat en els scripts que no tenen l'atribut <code>src</code>.</dd> + <dt>{{htmlattrdef("crossorigin")}}</dt> + <dd>Elements normals dels scripts passen un mínim d'informació a {{domxref('GlobalEventHandlers.onerror', 'window.onerror')}} pels scripts que no passen els controls estàndard <a href="/en-US/docs/HTTP_access_control">CORS</a> Per permetre el registre d'errors per als llocs que utilitzen un domini separat per als medis estàtics, utilitzeu aquest atribut.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- HTML4 and (x)HTML --> +<script type="text/javascript" src="javascript.js"></script> + +<!-- HTML5 --> +<script src="javascript.js"></script> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', "scripting.html#the-script-element", "<script>")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Afegeix el mòdul type</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'scripting-1.html#script', '<script>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/scripts.html#h-18.2.1', '<script>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('Subresource Integrity', '#htmlscriptelement', '<script>')}}</td> + <td>{{Spec2('Subresource Integrity')}}</td> + <td>Afegeix l'atribut integrity.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(1.0)}}</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut async</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop("1.9.2")}}<sup>[1]</sup></td> + <td>10<sup>[1]</sup></td> + <td>15<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut defer</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}<sup>[6]</sup></td> + <td> + <p>4<sup>[3]</sup><br> + 10</p> + </td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut crossorigin</td> + <td>{{CompatChrome(30.0)}}</td> + <td>{{CompatGeckoDesktop("13")}}</td> + <td>{{CompatNo}}</td> + <td>12.50</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>atribut integrity</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("43")}}</td> + <td> </td> + <td> </td> + <td>{{CompatNo}}<sup>[5]</sup></td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut async</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut defer</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut integrity</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("43")}}</td> + <td> </td> + <td> </td> + <td> </td> + <td>{{CompatChrome(45.0)}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] En navegadors antics que no suporten l'atribut <code>async</code>, els scripts inserits en l'analitzador bloquegen l'analitzador; en scripts inserits s'executen els scripts de forma asncrònica en IE i WebKit, però de forma sincrònica a Opera i Firefox pre-4.0. En Firefox 4.0, la propietat DOM <code>async</code> es converteix per defecte en <code>true</code> pels scripts creats per script, per la qual cosa el comportament predeterminat coincideix amb el comportament de IE i WebKit.. En la sol·licitud d'inserció de scripts externs, els scripts s'executaran en l'ordre d'inserció en els navegadors on <code>document.createElement("script").async</code> estigui avaluat a <code>true</code> (com Firefox 4.0), establir <code>.async=false</code> en els scripts que desitjeu mantenir l'ordre. Mai crideu a <code>document.write()</code> des d'un script <code>async</code>. En Gecko 1.9.2, cridar a <code>document.write()</code> té un efecte impredictible. En Gecko 2.0, cridar a <code>document.write()</code> des d'un script <code>async</code> no té cap efecte (que no sigui la impressió d'un advertiment a la consola d'errors).</p> + +<p>[2] A partir de Gecko 2.0 {{geckoRelease ( "2.0")}}, inserir elements de script que s'han creat en cridar a <code>document.createElement("script")</code> al DOM ja no imposa l'execució en ordre d'inserció. Aquest canvi permet a Gecko complir adequadament amb l'especificació HTML5. Perquè els scripts externs inserits en scripts s'executin en el seu ordre d'inserció, establiu <code>.async=false</code> en ells.</p> + +<p>A més, els elements {{HTMLElement ("script")}} dins d'elements {{HTMLElement ("iframe")}}, {{HTMLElement ("noembed")}} i {{HTMLElement ("noframes")}} són ara executats, per les mateixes raons.</p> + +<p>[3] En les versions anteriors a Internet Explorer 10 Trident implementava <code><script></code> per una especificació propietària. Des de la versió 10 s'ajusta a l'especificació W3C.</p> + +<p>[4] L'atribut <code>crossorigin</code> es va implementar en WebKit en {{WebKitBug(81438)}}.</p> + +<p>[5] {{WebKitBug(148363)}} seguiment de l'implementació a WebKit el Subresource Integrity (que inclou l'atribut <code>integrity</code>).</p> + +<p>[6] Des Gecko 1.9.2 {{geckoRelease ("1.9.2")}}, l'atribut <code>defer</code> és ignorat en scripts que no tenen l'atribut <code>src</code>. No obstant això, en Gecko 1.9.1 {{geckoRelease ("1.9.1")}} els scripts en línia es diferiran si s'estableix l'atribut <code>defer</code>.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{domxref("document.currentScript")}}</li> + <li><a href="http://pieisgood.org/test/script-link-events/">Gràfic de compatibilitat d'esdeveniments de node <script> i <link> de Ryan Grove</a></li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/section/index.html b/files/ca/web/html/element/section/index.html new file mode 100644 index 0000000000..4eb5f0021f --- /dev/null +++ b/files/ca/web/html/element/section/index.html @@ -0,0 +1,173 @@ +--- +title: <section> +slug: Web/HTML/Element/section +tags: + - Element + - HTML + - HTML sections + - Reference + - Web +translation_of: Web/HTML/Element/section +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><section></code></strong> representa una secció genèrica d'un document, és a dir, una agrupació temàtica de continguts, normalment amb un capçalera. Cada <code><section></code> ha d'estar identificada, mitjançant la inclusió d'una capçalera (element {{HTMLElement('h1')}}-{{HTMLElement('h6')}}) com un fill de l'element <code><section></code>.</p> + +<div class="note"> +<p><em>Notes d'ùs :</em></p> + +<ul> + <li>Si té sentit assenyalar per separat el contingut d'un element {{HTMLElement("section")}}, utilitzeu en el seu llocun element {{HTMLElement("article")}}.</li> + <li>No utilitzeu l'element {{HTMLElement("section")}} com un contenidor genèric; per a això està {{HTMLElement ("div")}}, sobretot quan el seccionament és només per a fins d'estil. Una regla d'or és que un section hauria d'aparèixer lògicament en l'esquema d'un document.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Sectioning_content">contingut secció</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>. Tingueu en compte que un element {{HTMLElement("section")}} no ha de ser un descendent d'un element {{HTMLElement("address")}}.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs global</a>.</p> + +<h2 id="Exemple_1">Exemple 1</h2> + +<h3 id="Abans">Abans</h3> + +<pre><div> + <h1>Heading</h1> + <p>Bunch of awesome content</p> +</div></pre> + +<h3 id="Després">D<span class="short_text" id="result_box" lang="ca"><span>esprés</span></span></h3> + +<pre class="brush: html"><section> + <h1>Heading</h1> + <p>Bunch of awesome content</p> +</section> +</pre> + +<h2 id="Exemple_2">Exemple 2</h2> + +<h3 id="Abans_2">Abans</h3> + +<pre class="brush: html"><div> + <h2>Heading</h2> + <img src="bird.jpg" alt="bird"> +</div> +</pre> + +<h3 id="Després_2">D<span class="short_text" id="result_box" lang="ca"><span>esprés</span></span></h3> + +<pre class="brush: html"><section> + <h2>Heading</h2> + <img src="bird.jpg" alt="bird"> +</section> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'sections.html#the-section-element', '<section>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'sections.html#the-section-element', '<section>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'sections.html#the-section-element', '<section>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>5</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>11.10</td> + <td>4.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.2</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>9.0</td> + <td>11.0</td> + <td>5.0 (iOS 4.2)</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements section relacionats : {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};</li> + <li><a href="/en-US/docs/Sections_and_Outlines_of_an_HTML5_document">Seccions i esquemes d'un document HTML5</a>.</li> +</ul> diff --git a/files/ca/web/html/element/select/index.html b/files/ca/web/html/element/select/index.html new file mode 100644 index 0000000000..d37fbf1229 --- /dev/null +++ b/files/ca/web/html/element/select/index.html @@ -0,0 +1,196 @@ +--- +title: <select> +slug: Web/HTML/Element/select +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web +translation_of: Web/HTML/Element/select +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML <em>seleccionar</em> (<code><select></code>) és un control que mostra un menú d'opcions. Les opcions del menú estan representades per elements <code>{{HTMLElement("option")}}</code>, que es poden agrupar per elements <code>{{HTMLElement("optgroup")}}</code>. Les opcions poden ser pre-seleccionades per l'usuari.</p> + +<h2 id="Contingut_d'ùs">Contingut d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content categories">Categories de contingut</a></td> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, <a href="/en-US/docs/HTML/Content_categories#Interactive_content" title="HTML/Content categories#Interactive content">i contingut interactiu</a>, <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerat</a>, <a href="/en-US/docs/HTML/Content_categories#Form_labelable" title="HTML/Content categories#Form labelable">etiquetable</a>, <a href="/en-US/docs/HTML/Content_categories#Form_resettable" title="HTML/Content categories#Form resettable">reiniciable</a>, i <a href="/en-US/docs/HTML/Content_categories#Form_submittable" title="HTML/Content categories#Form submittable">enviable</a> de elements <a href="/en-US/docs/HTML/Content_categories#Form-associated_" title="HTML/Content categories#Form-associated "> asociats a formularis </a></td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Zero o més elements {{HTMLElement("option")}} o {{HTMLElement("optgroup")}}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Cap, <span id="result_box" lang="ca"><span>tant</span> <span>l'etiqueta</span> <span>inicial com la</span> <span>final són</span> <span>obligatories</span></span></td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti phrasing content</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("autofocus")}} {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut permet especificar que un control de formulari ha de tenir el focus d'entrada quan es carrega la pàgina, llevat que l'usuari el redefineixi, per exemple escrivint en un control diferent. Només un element de formulari en un document pot tenir l'atribut <code>autofocus</code>, el qual és un valor booleà.</dd> + <dt>{{htmlattrdef("disabled")}}</dt> + <dd>Aquest atribut booleà indica que l'usuari no pot interactuar amb el control. Si no s'especifica aquest atribut, el control hereta la seva configuració des de l'element que ho conté, per exemple <code>fieldse</code>t; si no hi ha cap element que ho conté amb l'atribut <code>disabled</code> establert, llavors el control està <code>enabled</code>.</dd> + <dt>{{htmlattrdef("form")}} {{HTMLVersionInline("5")}}</dt> + <dd>L'element formulari en el qual està associat l'element select (el seu "formulari propietari"). Si s'especifica aquest atribut, el seu valor ha de ser l'ID d'un element formulari en el mateix document. Això li permet col.locar elements select en qualsevol lloc dins d'un document, no només com descendents dels seus elements de formulari.</dd> + <dt>{{htmlattrdef("multiple")}}</dt> + <dd>Aquest atribut booleà indica que es poden fer seleccions múltiples a la llista. Si no s'especifica, llavors només una opció pot ser seleccionada alhora.</dd> + <dt>{{htmlattrdef("name")}}</dt> + <dd>El nom del control.</dd> + <dt>{{htmlattrdef("required")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un atribut</span> <span>booleà que</span> <span>indica</span> <span>que una opció</span> <span>amb</span> <span>un valor</span> <span>de cadena</span> <span>no</span> <span>buida</span> <span>ha d'està</span> <span>seleccionat.</span></span></dd> + <dt>{{htmlattrdef("selected")}}</dt> + <dd>Un atribut booleà el qual indica que una opció específica es pot seleccionar inicialment.</dd> + <dt>{{htmlattrdef("size")}}</dt> + <dd>Si el control es mostra com un quadre de llista desplegable, aquest atribut representa el nombre de files en la llista que han de ser visibles alhora. Els navegadors no estan obligats a presentar un element de selecció com un quadre de llista desplegable. El valor per defecte és 0.</dd> +</dl> + +<div class="note"><strong>Nota Firefox:</strong> D'acord amb l'especificació d'HTML 5, el valor per defecte per a la mida ha de ser 1; No obstant això, en la pràctica, s'ha trobat que això trenca alguns llocs web, i cap altre navegador actualment té això, pel que Mozilla ha optat per seguir retornant 0, de moment amb Firefox.</div> + +<dl> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/DOM/HTMLSelectElement" title="DOM/select">HTMLSelectElement</a></code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- The second value will be selected initially --> +<select name="select"> + <option value="value1">Value 1</option> + <option value="value2" selected>Value 2</option> + <option value="value3">Value 3</option> +</select> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p><select name="select"><option value="value1">Value 1</option><option selected value="value2">Value 2</option><option value="value3">Value 3</option></select></p> + +<h3 id="Notes">Notes</h3> + +<p>El contingut d'aquest element és estàtic i no <a href="/en-US/docs/HTML/Content_Editable" title="HTML/Content_Editable">editable</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-select-element', '<select>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.6', '<select>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup> [3]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>required</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>10</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}<sup> [1]</sup></td> + <td>{{CompatGeckoMobile("1.0")}}<sup> [2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>required</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p> </p> + +<p>[1]En l'aplicació del navegador per Android 4.1 (i possiblement versions posteriors), hi ha un error en el qual el triangle indicador de menú al costat d'un {{HTMLElement("select")}} no es mostrarà si un estil {{ cssxref("background") }}, {{ cssxref("border") }} o {{ cssxref("border-radius") }} s'aplica a {{HTMLElement("select")}}.</p> + +<p>[2] Firefox per a Android, per defecte, fixa un gradient {{ cssxref("background-image") }} en tots els elements <code><select multiple></code>. Això es pot desactivar usant <code>background-image: none</code>.</p> + +<p>[3] Històricament, Firefox ha permès que els esdeveniments del teclat i ratolí es generin des de l'element <code><opció></code> fins l'element pare {{HTMLElement ("select")}}. Això no succeeix en Chrome, encara que aquest comportament és incoherent en molts navegadors. Per a una millor compatibilitat web (i per raons tècniques), quan Firefox està en modalitat multi-procés l'element <code><select></code> es mostra com una llista desplegable. El comportament és sense canvis si <code><select></code> es mostra en línia i té l'atribut <code>multiple</code> definit o un atribut <code>size</code> ajustat a més de 1. En lloc d'observar esdeveniments en elements <code><option></code>, heu d'estar atents en els esdeveniments {{event("change")}} en {{HTMLElement("select")}}. Veure {{bug(1090602)}} per a més informació.</p> + +<p>Tant Chrome com Safari ignoren {{cssxref("border-radius")}} en elements {{HTMLElement("select")}} a menys que es reemplaci {{cssxref("-webkit-appearance")}} a un valor apropiat.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements relacionats amb formularis : {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("option")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/shadow/index.html b/files/ca/web/html/element/shadow/index.html new file mode 100644 index 0000000000..59d02dcbf1 --- /dev/null +++ b/files/ca/web/html/element/shadow/index.html @@ -0,0 +1,164 @@ +--- +title: <shadow> +slug: Web/HTML/Element/Shadow +tags: + - Element + - HTML + - Reference + - Web Components +translation_of: Web/HTML/Element/shadow +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'element <strong><a href="/en-US/docs/Web/HTML">HTML</a> <code><shadow></code></strong> s'utilitza com una ombra DOM {{glossary("insertion point")}}. És possible utilitzar-ho si s'han creat múltiples arrels d'ombra sota una ombra d'acollida. No és útil en HTML ordinari. S'utilitza amb <a href="/en-US/docs/Web/Web_Components">Components Web (Web Components)</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Transparent_content_model" title="HTML/Content_categories#Transparent_content_model">Contingut transparent</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut dinàmic</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLShadowElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<p>Aquí teniu un exemple senzill de l'ús de l'element <code><shadow</code>>. És un arxiu HTML amb tot el necessari.</p> + +<div class="note"> +<p><strong>Nota:</strong> Aquesta és una tecnologia experimental. Perquè aquest codi funcioni, el navegador que ho mostri ha de ser compatible amb els components web. Veure <a href="https://developer.mozilla.org/en-US/docs/Web/Web_Components#Enabling_Web_Components_in_Firefox">Habilitan components web en Firefox (Enabling Web Components in Firefox).</a></p> +</div> + +<pre class="brush: html"><html> + <head></head> + <body> + + <!-- This <div> will hold the shadow roots. --> + <div> + <!-- This heading will not be displayed --> + <h4>My Original Heading</h4> + </div> + + <script> + // Get the <div> above with its content + var origContent = document.querySelector('div'); + // Create the first shadow root + var shadowroot1 = origContent.createShadowRoot(); + // Create the second shadow root + var shadowroot2 = origContent.createShadowRoot(); + + // Insert something into the older shadow root + shadowroot1.innerHTML = + '<p>Older shadow root inserted by &lt;shadow&gt;</p>'; + // Insert into younger shadow root, including <shadow>. + // The previous markup will not be displayed unless + // <shadow> is used below. + shadowroot2.innerHTML = + '<shadow></shadow> <p>Younger shadow root, displayed because it is the youngest.</p>'; + </script> + + </body> +</html> +</pre> + +<p>Si visualitzes això en un navegador web ha de ser similar al següent.</p> + +<p><img alt="shadow example" src="https://mdn.mozillademos.org/files/10083/shadow-example.png" style="height: 343px; width: 641px;"></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="spec-table standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('Shadow DOM', "#the-shadow-element", "shadow")}}</td> + <td>{{Spec2('Shadow DOM')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>35</td> + <td>{{CompatGeckoDesktop("28")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>26</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>37</td> + <td>{{CompatGeckoMobile("28")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Si Shadow DOM no està activat en Firefox, l'element <code><shadow></code> es comportarà com {{domxref("HTMLUnknownElement")}}. Shadow DOM es va implementar per primera vegada a Firefox 33 i està darrere d'una preferència, <code>dom.webcomponents.enabled</code>, que està desactivat per defecte.</p> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/Web_Components">Web Components</a></li> + <li>{{HTMLElement("content")}}, {{HTMLElement("template")}}, {{HTMLElement("element")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/small/index.html b/files/ca/web/html/element/small/index.html new file mode 100644 index 0000000000..772ef2566a --- /dev/null +++ b/files/ca/web/html/element/small/index.html @@ -0,0 +1,109 @@ +--- +title: <small> +slug: Web/HTML/Element/small +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web + - font-size +translation_of: Web/HTML/Element/small +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML petit (<code><small></code>) fa que la mida de la font del text sigui d'una mida més petita (per exemple, de gran a mitjana o de petit a x-petit) fins a la mida mínima de la font del navegador. En HTML5, aquest element és reutilitzat per representar comentaris secundaris i lletra petita, incloent els drets d'autor i el text legal, amb independència del seu estil en la presentació.</p> + +<h2 class="editable" id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Categories de contingut</td> + <td><a href="/en/HTML/Content_categories#Flow_content" title="en/HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en/HTML/Content_categories#Phrasing_content" title="en/HTML/Content categories#Phrasing content">phrasing content</a></td> + </tr> + <tr> + <td>Contingut permès</td> + <td><a href="/en/HTML/Content_categories#Phrasing_content" title="en/HTML/Content categories#Phrasing content">Phrasing content</a></td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Cap, <span id="result_box" lang="ca"><span>ha de tenir</span> <span>tant una</span> <span>etiqueta d'inici</span> <span>i una </span><span>de tancament</span></span> .</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti <a href="/en/HTML/Content_categories#Phrasing_content" title="https://developer.mozilla.org/en/HTML/Content_categories#Phrasing_content">phrasing content</a>, o qualsevol element que accepti <a href="/en/HTML/Content_categories#Flow_content" title="en/HTML/Content categories#Flow content">contingut dinàmic</a>.</td> + </tr> + </tbody> +</table> + +<h2 class="editable" id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="/en-US/docs/Web/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="DOM_Interface" name="DOM_Interface">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLElement")}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 incloso, Firefox implementa la interfície {{domxref ("HTMLSpanElement")}} per a aquest element.</p> +</div> + +<h2 id="Example_1" name="Example_1">Exemples</h2> + +<h3 id="Exemple_1">Exemple 1</h3> + +<pre class="brush: html"><p>This is the first sentence. <small>This whole sentence is in small letters.</small></p> +</pre> + +<h4 id="Result" name="Result">Resultat</h4> + +<p>This is the first sentence. <small>This whole sentence is in small letters.</small></p> + +<h3 id="Example_2" name="Example_2">Exemple 2 (CSS alternatiu)</h3> + +<pre class="brush: html"><p>This is the first sentence. <span style="font-size:0.8em">This whole sentence is in small letters.</span></p> +</pre> + +<h4 id="Result_2" name="Result_2">Resultat</h4> + +<p>This is the first sentence. <span style="font-size: 0.8em;">This whole sentence is in small letters.</span></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-small-element', '<small>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', '/present/graphics.html#edef-SMALL', '<small>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Notes" name="Notes">Notes</h2> + +<p>Encara que l'element <code><small></code>, igual que els elements <code><b></code> i <code><i></code>, poden ser percebuts en violar el principi de separació entre l'estructura i la presentació, els tres són vàlids en HTML5. S'anima els autors a utilitzar el seu judici per determinar si s'ha d'utilitzar <code><small></code> o CSS.</p> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{ HTMLElement("b") }}</li> + <li>{{ HTMLElement("font") }}</li> + <li>{{ HTMLElement("style") }}</li> + <li>HTML 4.01 Specification: <a class="external" href="http://www.w3.org/TR/html4/present/graphics.html#h-15.2">Font Styles</a></li> +</ul> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/source/index.html b/files/ca/web/html/element/source/index.html new file mode 100644 index 0000000000..67a62ad8a1 --- /dev/null +++ b/files/ca/web/html/element/source/index.html @@ -0,0 +1,223 @@ +--- +title: <source> +slug: Web/HTML/Element/source +tags: + - Element + - HTML + - HTML embedded content + - Media + - Reference + - Web +translation_of: Web/HTML/Element/source +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><source></code></strong> especifica múltiples recursos multimèdia, ja sigui per l'element {{HTMLElement("picture")}}, {{HTMLElement("audio")}} o {{HTMLElement("video")}}. És un element buit. S'utilitza comunament per servir el mateix contingut multimèdia en<a href="https://developer.mozilla.org/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements"> múltiples formats suportats pels diferents navegadors</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"> + <p>Contexte d'ùs</p> + </th> + <td>Un element multimèdia {{HTMLElement("audio")}} o {{HTMLelement("video")}}, s'ha de col·locar abans de qualsevol <a href="/en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a> o element {{HTMLElement("track")}}.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Un element {{HTMLElement("picture")}}, s'ha de col·locar abans que l'element {{HTMLElement ("img")}}.</td> + </tr> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Cap, és un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Ha de tenir</span> <span>una etiqueta</span> <span>d'inici,</span> <span>però</span> <span>no ha de tenir</span> <span>una etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLSourceElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("sizes")}} {{experimental_inline}}</dt> + <dd>És una llista de mides de font que descriu l'ample final donat de la imatge representada per l'origen. Cada mida de font consisteix en una llista separada per comes de parells de condició-longitud del medi. Aquesta informació és utilitzada pel navegador per determinar, abans de col·locar la pàgina, quina imatge es defineix en {{htmlattrxref ( "srcset", "source")}} per usar. L'atribut <code>sizes</code> només té efecte quan l'element {{HTMLElement("source")}} és el fill directe d'un element {{HTMLElement("picture")}}.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>Obligatori per {{HTMLElement("audio")}} i {{HTMLElement("video")}}, l'adreça del recurs de medi. El valor d'aquest atribut s'ignora quan l'element <code><source></code> es col·loca dins d'un element {{HTMLElement("picture")}}.</dd> + <dt>{{htmlattrdef("srcset")}} {{experimental_inline}}</dt> + <dd>Una llista d'una o més cadenes separades per comes que indiquen un conjunt de possibles imatges representades per la font per a l'ús del navegador. Cada cadena es compon de: + <ol> + <li><span id="result_box" lang="ca"><span>un URL</span> <span>a</span> <span>una imatge,</span></span></li> + <li><span id="result_box" lang="ca"><span>un descriptor</span> <span>d'amplada, que</span> <span>és</span> <span>un enter</span> <span>positiu</span> <span>seguit</span> <span>directament</span> <span>per <code>'</code></span><code><span>w'</span></code><span>.</span> <span>El valor</span> <span>per defecte,</span> <span>si és que</span> <span>cal,</span> <span>és</span> <span>l'infinit.</span></span></li> + <li>un descriptor de densitat de píxels, que és un nombre flotant positiu seguit directament per <code>'x'</code>. El valor per defecte, si és que cal, és <code>1x</code>.</li> + </ol> + + <p>Cada cadena de la llista ha de tenir almenys un descriptor d'ample o un descriptor de densitat de píxels per ser vàlida. Entre la llista, hi ha d'haver una sola cadena que contingui la mateixa tupla de descriptor d'ample i descriptor de densitat de píxels.<br> + El navegador escull la imatge més adequada per mostrar-la en un moment donat.<br> + L'atribut <code>srcset</code> només té efecte quan l'element {{HTMLElement("source")}} és el fill directe d'un element {{HTMLElement("picture")}}.</p> + </dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>El tipus MIME del recurs, opcionalment amb un paràmetre <code>codecs</code>. Veure <a class="external" href="http://tools.ietf.org/html/rfc4281">RFC 4281</a> per obtenir informació sobre com especificar els còdecs.</dd> + <dt>{{htmlattrdef("media")}} {{experimental_inline}}</dt> + <dd>Consulta de mitjans dels mitjans de comunicació previstos del recurs; això s'ha d'utilitzar només en un element {{HTMLElement("picture")}}.</dd> +</dl> + +<p>Si no s'especifica l'atribut <strong>type</strong>, el tipus del mitjà es recupera del servidor i es verifica si Gecko pot manejar-ho; Si no es pot processar, es comprova la font següent. Si s'especifica l'atribut <strong>type</strong>, es compara amb els tipus que Gecko pot reproduir i, si no es reconeix, el servidor ni tan sols el consulta; En el seu lloc, el següent element font es comprova alhora.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Aquest exemple demostra com oferir un vídeo en format Ogg per als usuaris que tinguin el navegador compatible amb el format Ogg, i un format de vídeo de QuickTime per als usuaris de navegadors que donin aquest suport. Si l'element <code>audio</code> o <code> video</code> no és compatible amb el navegador, apareixerà un avís al seu lloc. Si el navegador és compatible amb l'element, però no admet qualsevol dels formats especificats, es genera un esdeveniment d'error i els controls multimèdia per defecte (si està activat) donarà un error. Veure també la llista de <a href="https://developer.mozilla.org/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements">formats de mitjans suportats pels elements audio i video</a> en diferents navegadors.</p> + +<pre class="brush: html"><video controls> + <source src="foo.webm" type="video/webm"> + <source src="foo.ogg" type="video/ogg"> + <source src="foo.mov" type="video/quicktime"> + I'm sorry; your browser doesn't support HTML5 video. +</video> +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>Per a més</span> <span>exemples</span><span>,</span> <span>vegeu</span></span> <a class="internal" href="/en-US/docs/Using_HTML5_audio_and_video">Utilitzant àudio i video en Firefox</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'edits.html#the-source-element-when-used-with-the-picture-element', '<source>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Definició inicial de <code><source></code> utilitzat dins d'un element {{HTMLElement("picture")}}.</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-video-element.html#the-source-element', '<source>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Definició inicial de <code><source></code> utilitzat dins d'un element multimedia, {{HTMLElement("audio")}} o {{HTMLElement("video")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>media</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("15.0")}}</td> + <td>9.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>sizes</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop(33)}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>srcset</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop(33)}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>media</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("15.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>sizes</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(33)}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>srcset</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(33)}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Aquesta característica</span> <span>està darrere</span> <span>de la preferència</span> <code><span>dom.image.picture.enabled</span></code><span>, per defecte</span> <span>és</span><code> <span>fals</span>e</code></span>.</p> + +<p>Actualment, només s'implementa un petit subconjunt de la funcionalitat: Gecko recull el primer element font que té un tipus que coincideixi amb <a href="https://developer.mozilla.org/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements">el tipus MIME d'un format de suport multimèdia</a>; veure {{bug(449363)}} per a més informació</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("picture")}}</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/spacer/index.html b/files/ca/web/html/element/spacer/index.html new file mode 100644 index 0000000000..df5281bdce --- /dev/null +++ b/files/ca/web/html/element/spacer/index.html @@ -0,0 +1,46 @@ +--- +title: <spacer> +slug: Web/HTML/Element/spacer +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/spacer +--- +<div>{{ obsolete_header() }}</div> + +<div> </div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'element HTML<code><spacer></code> s'utilitza per a la inserció d'espais en blanc en les pàgines web. Va ser creat per Netscape per aconseguir el mateix efecte de disseny d'una imatge GIF d'un sol píxel, la qual cosa era utilitzada per els dissenyadors web per afegir espais en blanc en les pàgines web, sense arribar a utilitzar un GIF. No obstant això <code><spacer></code> no està suportat per qualsevol navegador, els mateixos efectes es poden crear amb diverses regles CSS. En aplicacions de Mozilla, el suport a aquest element es va eliminar a {{gecko ("2.0")}}. Per tant l'ús de <code><spacer></code> és innecessària.</p> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>és</span> <span>compatible amb el</span></span>s <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{ htmlattrdef("type") }}</dt> + <dd>Aquest atribut determina el tipus de espai. Els valors possibles són <code>horizontal</code>, <code>vertical</code> i <code>block</code>.</dd> + <dt>{{ htmlattrdef("size") }}</dt> + <dd>Aquest atribut es pot utilitzar per definir la mida de espai en píxels quan el tipus és <code>horizontal</code> o <code>vertical</code>.</dd> + <dt>{{ htmlattrdef("width") }}</dt> + <dd>Aquest atribut es pot utilitzar per definir l'amplada de espai en píxels quan el tipus és <code>block</code>.</dd> + <dt>{{ htmlattrdef("height") }}</dt> + <dd>Aquest atribut es pot utilitzar per definir l'altura de espaia en píxels quan el tipus és <code>block</code>.</dd> + <dt>{{ htmlattrdef("align") }}</dt> + <dd>Aquest atribut determina l'alineació de l'espai. Els valors possibles són <code>left</code>, <code>right</code> and <code>center</code>.</dd> + <dt> </dt> +</dl> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><span>Just a text node</span> +<spacer type="horizontal" size="10"></spacer> +<span>Just another text node</span> +<spacer type="block" width="10" height="10"></spacer> +</pre> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/span/index.html b/files/ca/web/html/element/span/index.html new file mode 100644 index 0000000000..4a9f13f45f --- /dev/null +++ b/files/ca/web/html/element/span/index.html @@ -0,0 +1,160 @@ +--- +title: <span> +slug: Web/HTML/Element/span +tags: + - Element + - HTML + - HTML text-level semantics + - 'HTML:Flow content' + - Reference + - Web +translation_of: Web/HTML/Element/span +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><span></code></strong> és un contenidor en línia genèric per a contingut textual, que no representa res essencial. Pot ser utilitzat per agrupar elements amb fins d'estil (utilitzant els atributs <code>class</code> o <code>id</code>), o perquè comparteixen valors d'atribut, com lang. S'ha d'utilitzar només quan cap altre element semàntic sigui apropiat. <code><span></code> és molt semblant a un element {{HTMLElement ("div")}}, però {{HTMLElement ("div")}} és un <a href="https://developer.mozilla.org/en-US/docs/HTML/Block-level_elements">element a nivell de bloc</a>, mentre que un <code><span></code> és un <a href="https://developer.mozilla.org/en-US/docs/HTML/Inline_elements">element en línia</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Contingut textual</a></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">Contingut textual</a>, o qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLSpanElement")}} ( <span class="short_text" id="result_box" lang="ca"><span>abans</span> <span>d'HTML</span> <span>5,</span> <span>la interfície</span> <span>era</span></span> {{domxref("HTMLElement")}})</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Exemple_1">Exemple 1</h2> + +<pre class="brush:html;gutter:false"><p><span>Some text</span></p></pre> + +<h3 id="Resultat">Resultat</h3> + +<p><span>Some text</span></p> + +<h2 id="Exemple_2">Exemple 2</h2> + +<pre class="brush:html;gutter:false"><li><span> + <a href="portfolio.html" target="_blank">See my portfolio</a> +</span></li> +</pre> + +<h3 id="CSS">CSS:</h3> + +<div class="note"> +<p>li span {<br> + background: gold;<br> + }</p> +</div> + +<h2 id="Nota">Nota</h2> + +<div class="warning"> +<p>És il·legal col·locar un element a nivell de bloc dins d'un element en línia.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-span-element', '<span>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-span-element', '<span>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td><span class="short_text" id="result_box" lang="ca"><span>La interfície</span> <span>DOM és</span> <span>ara</span></span> {{domxref("HTMLSpanElement")}}.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#edef-SPAN', '<span>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element HTML {{HTMLElement("div")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/strike/index.html b/files/ca/web/html/element/strike/index.html new file mode 100644 index 0000000000..3adaf387d4 --- /dev/null +++ b/files/ca/web/html/element/strike/index.html @@ -0,0 +1,51 @@ +--- +title: <strike> +slug: Web/HTML/Element/strike +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/strike +--- +<div>{{ Obsolete_header() }}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML ratllat</em> (<code><strike></code>) representa el text amb un ratllat o una línia a través d'ell. Aquest element és obsolet en HTML5. Utilitzar el {{HTMLElement ("del")}} en el seu lloc si l'element està marcant una edició (text eliminat), altrament utilitzar l'element {{ HTMLElement("s") }}.</p> + +<div class="note"><strong>Nota d'ùs: </strong>Igual que amb tots els elements purament d'estil, {{ HTMLElement("strike") }} ha estat desaprovat en HTML 4 i XHTML 1, i ha quedat obsolet en HTML5. Si semànticament és apropiat, és a dir, si es representa contingut eliminat, utilitzeu en el seu lloc {{HTMLElement ("del")}} ; en els altres casos utilitzar l'element {{ HTMLElement("s") }}.</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element no té altres atributs que els <a href="/en-US/docs/HTML/global_attributes" rel="internal" title="HTML/global attributes">atributs globals</a>, comuns a tots els elements.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref('HTMLElement')}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa el {{domxref('HTMLSpanElement')}} interfície per a aquest element.</p> +</div> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:xml"><strike>Today's Special: Salmon</strike> NO LONGER AVAILABLE<br /> +<s>Today's Special: Salmon</s> SOLD OUT +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p><s>Today's Special: Salmon</s> NO LONGER AVAILABLE<br> + <s style="text-decoration: line-through;">Today's Special: Salmon</s> SOLD OUT</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element {{ HTMLElement("s") }}.</li> + <li>L'element {{ HTMLElement("del") }} és per ser utilitzat en el lloc on s'han <em>eliminat</em> dades.</li> + <li>La propietat CSS {{ cssxref("text-decoration") }} es va a utilitzar per aconseguir el primer aspecte visual de l'element {{ HTMLElement("strike") }}.</li> +</ul> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/strong/index.html b/files/ca/web/html/element/strong/index.html new file mode 100644 index 0000000000..b988397400 --- /dev/null +++ b/files/ca/web/html/element/strong/index.html @@ -0,0 +1,83 @@ +--- +title: <strong> +slug: Web/HTML/Element/strong +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web + - font-weight +translation_of: Web/HTML/Element/strong +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML fort (<code><strong></code>) dóna al text una gran importància, i en general es mostra en negreta.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Contingut de categories</td> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a></td> + </tr> + <tr> + <td>Contingut permès</td> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a></td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>None, must have both a start tag and an end tag</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>, o qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">contingut dinàmic</a></td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a href="http://www.w3.org/TR/html5/text-level-semantics.html#the-strong-element" title="http://www.w3.org/TR/html5/text-level-semantics.html#the-strong-element">HTML5, secció 4.6.3</a>; <a href="http://www.w3.org/TR/html401/struct/text.html#edef-STRONG" title="http://www.w3.org/TR/html401/struct/text.html#edef-STRONG">HTML 4.01, secció 9.2.1</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a>.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/DOM/element" title="DOM/element">HTMLElement</a></code>.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa la interfície <a href="/en-US/docs/DOM/span" title="DOM/span"><code>HTMLSpanElement</code></a> per aquest element.</p> +</div> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush: html"><p>When doing x it is <strong>imperative</strong> to do y before proceeding.</p> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>When doing x it is <strong>imperative</strong> to do y before proceeding.</p> + +<h3 id="Bold_vs._Strong">Bold vs. Strong</h3> + +<p>Sovint es confús per als nous desenvolupadors de les diverses manera que hi ha d'expressar la mateixa cosa en un lloc web. Negreta i forta són potser un dels més comuns. Per què utilitzar <strong></ strong> vs <b></ b>? Teniu que escriure molt més fort i això produeix exactament el mateix resultat, oi?</p> + +<p>Potser no; fort és un estat lògic i negreta és un estat físic. El estat lògic separa la presentació del contingut, en fer-ho, permeten que s'expressi de moltes maneres diferents. Aixó pot donar lloc que en comptes de fer un text en negreta desitgeu que sigui vermell, o tingui una mida diferent, o subratllat, o el que sigui. Té més sentit el canvi de les propietats de presentació de fort que de negreta. Això es deu a que la negreta és un estat físic; no hi ha separació de presentació i contingut, fer negreta, qualsevol cosa que no sigui text en negreta seria confús i il·lògic.</p> + +<p>És important tenir en compte que <b></ b> té altres usos, quan es vol cridar l'atenció sense aumentar la importància.</p> + +<h3 id="Emphasis_vs._Strong">Emphasis vs. Strong</h3> + +<p>Mentre que en HTML 4, Strong simplement indica un major èmfasi, en HTML 5, l'element es descriu com representan "una gran importància pel seu contingut." Aquesta és una distinció important que fer. Mentre Emphasis s'utilitza per canviar el sentit d'una frase ("<em>m'encanten</em> lespastanagues" enfront de "m'encanten les <em>pastanagues</em>"), Strong s'utilitza per donar porcions de importància a una frase afegida (per exemple, el "<strong>Compte!</strong> Això és <strong>molt perillós</strong>."). Tant Strong com Emphasis es poden niar per augmentar el grau d'importància relativa o èmfasi en el estrès, respectivament.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/HTML/Element/b" title="HTML/Element/b">L'element HTML bold</a></li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/style/index.html b/files/ca/web/html/element/style/index.html new file mode 100644 index 0000000000..0b3e426e70 --- /dev/null +++ b/files/ca/web/html/element/style/index.html @@ -0,0 +1,193 @@ +--- +title: <style> +slug: Web/HTML/Element/style +tags: + - Element + - HTML + - HTML document metadata + - Reference + - Web +translation_of: Web/HTML/Element/style +--- +<p id="Summary">{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><style></code></strong> conté informació d'estil per a un document, o part d'un document. Per defecte, s'espera que les instruccions d'estil escrites a l'interior d'aquest element siguin <a href="/en-US/docs/Web/CSS">CSS</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content">Contingut metadata</a>, i si l'atribut <code>scoped</code> és present: <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>El contingut del text que coincideixi amb l'atribut type, que és <code>text/css</code>.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td><span class="short_text" id="result_box" lang="ca"><span>Tampoc</span> <span>es</span> <span>pot</span> <span>ometre</span> <span>l'etiqueta</span></span>.</td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Si l'atribut <strong>scoped</strong> <em>no</em> està present: s'espera que el contingut de metadades o un element {{HTMLElement ("noscript")}} sigui un fill de l'element {{HTMLElement("head")}}.Si l'atribut <strong>scoped</strong> està present: s'espera contingut dinàmic, però abans de qualsevol altre <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>, que no sigui un espai en blanc entre elements i elements {{HTMLElement("style")}}, i no com el fill d'un element, el model del qual es de contingut <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#Transparent_content_model">transparent</a>.</td> + </tr> + <tr> + <th>Interfície DOM</th> + <td>{{domxref("HTMLStyleElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("type")}}</dt> + <dd>Aquest atribut defineix el llenguatge d'estil com un tipus MIME (joc de caràcters no s'ha d'especificar). Aquest atribut és opcional i per defecte és <code>text/css</code> si no es troba.</dd> + <dt>{{htmlattrdef("media")}}</dt> + <dd>Aquest atribut defineix a quin mitjà s'ha d'aplicar l'estil. El seu valor és una <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries">consulta de mitjans</a>, que per defecte és <code>all</code> si l'atribut no es trova.</dd> + <dt>{{htmlattrdef("scoped")}} {{experimental_inline}} {{deprecated_inline}}</dt> + <dd><span id="result_box" lang="ca"><span>Si aquest</span> <span>atribut</span> <span>és present,</span> <span>llavors l'estil</span> <span>s'aplica</span> <span>només al seu</span> <span>element</span> <span>pare.</span> <span>Si no n'hi ha</span><span>, l'estil</span> <span>s'aplica a tot</span> <span>el document.</span></span></dd> + <dt>{{htmlattrdef("title")}}</dt> + <dd><span class="short_text" id="result_box" lang="ca"><span>Especifica</span> <span>conjunts</span> <span>de fulls d'estil</span> <span>alternatius.</span></span></dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Un_full_d'estil_senzill">Un <span class="short_text" id="result_box" lang="ca"><span>full d'estil senzill</span></span></h3> + +<pre class="brush:html"><style type="text/css"> +body { + color:red; +} +</style> +</pre> + +<h3 id="Un_full_d'estil_amb_scoped">Un <span class="short_text" id="result_box" lang="ca"><span>full d'estil amb </span></span> scoped</h3> + +<p>En aquest exemple, l'atribut <code>scoped</code> s'utilitza per crear un estil que només s'aplica a un element {{HTMLElement("section")}} en la qual està contingut.</p> + +<div class="warning"> +<p>L'atribut <code>scoped</code> s'ha eliminat de l'especificació després de l'adopció només limitada i experimental per Chrome i Firefox. Heu ha d'evitar l'ús d'ell, ja que és gairebé segur que serà eliminat d'aquests navegadors aviat.</p> +</div> + +<pre class="brush:html;highlight:7"><article> + <div>The scoped attribute allows for you to include style elements mid-document. + Inside rules only apply to the parent element.</div> + <p>This text should be black. If it is red your browser does not support the scoped attribute.</p> + <section> + <style scoped> + p { color: red; } + </style> + <p>This should be red.</p> + </section> +</article> +</pre> + +<h4 id="Mostra_directa">Mostra directa</h4> + +<div>{{ EmbedLiveSample('A_scoped_stylesheet', '100%', '200') }}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{ SpecName('HTML WHATWG', 'document-metadata.html#the-style-element', 'style') }}</td> + <td>{{ Spec2('HTML WHATWG') }}</td> + <td>Afegeix l'atribut <code>scoped</code>.</td> + </tr> + <tr> + <td>{{ SpecName('HTML5 W3C', 'document-metadata.html#the-style-element', 'style') }}</td> + <td>{{ Spec2('HTML5 W3C') }}</td> + <td>No canvia des de {{ SpecName('HTML4.01') }}.</td> + </tr> + <tr> + <td>{{ SpecName('HTML4.01', 'present/styles.html#h-14.2.3', 'style') }}</td> + <td>{{ Spec2('HTML4.01') }}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop(1.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>scoped</code></td> + <td>20<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop(21.0)}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop(1.0)}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td><code>scoped</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(25.0)}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Suportat en Chrome 20+ a 34 habilitant l'opció "<strong>Enable <style scoped>"</strong> o la marca <strong>"característiques experimentals WebKit"</strong> en <code>chrome://flags</code>. <a href="https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/scoped/blink-dev/R1x18ZLS5qQ/Bjuh_cENhlQJ">Eliminat en Chrome 35+, a causa de la complexitat del codi</a>.</p> + +<p>[2] Gecko 20 i posterior implementa la pseudo-classe {{cssxref(":scope")}}, però la preferència <code>layout.css.scope-pseudo.enabled</code> han de tenir el valor <code>true</code>. Aquest és només el cas per defecte en les versions de prova en Nightly i Aurora</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>The {{HTMLElement("link")}} element allowing to use external style sheets.</li> +</ul> diff --git a/files/ca/web/html/element/sub/index.html b/files/ca/web/html/element/sub/index.html new file mode 100644 index 0000000000..ff3c7227ce --- /dev/null +++ b/files/ca/web/html/element/sub/index.html @@ -0,0 +1,80 @@ +--- +title: <sub> +slug: Web/HTML/Element/sub +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/sub +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML subíndex</em> (<code><sub></code>) defineix un fragment de text que s'ha de mostrar, per raons tipogràfiques, més baix, i sovint més petit, que el tram principal del text.</p> + +<div class="note"> +<p><strong>Nota d'ùs:</strong></p> + +<ul> + <li>Aquest element s'ha d'utilitzar només per raons tipogràfiques, és a dir, el canvi de la posició del text canviant el seu significat com en matemàtiques (com <var>t<sub>2</sub></var>, encara que l'ús d'una fórmula <a href="/en-US/docs/MathML" title="en-US/docs/MathML">MathML</a> ha de ser considerat) o fórmules químiques (com <span style="font-family: Courier New;">H<sub>2</sub>O</span>).</li> + <li>Aquest element no ha de ser utilitzat amb el propòsit de donar estil, com l'estil del nom del producte de Latex. En aquest cas s'ha d'utilitzar l'estil <a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a> de la propietat {{ cssxref("vertical-align") }}, amb el valor <code>sub</code> aconseguireu el mateix efecte.</li> +</ul> +</div> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en-US/docs/HTML/Content_categories" title="en-US/docs/HTML/Content categories">Categories de contingut</a></td> + <td>Contingut dinàmic i contingut textual</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Contingut textual</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Cap, ja que tant l'etiqueta d'inici com la final són obligatories</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element que</span> <span>pogui</span> <span>contenir</span> <span>contingut</span> <span>textual</span></span></td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-sub-and-sup-elements" rel="external nofollow" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-sub-and-sup-elements">HTML5, secció 4.6.14</a> (<a class="external" href="http://www.w3.org/TR/REC-html40/struct/text.html#h-9.2.3" title="http://www.w3.org/TR/REC-html40/struct/text.html#h-9.2.3">HTML4.01, secció 9.2.3</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implement la interfície <code><a href="/en-US/docs/DOM/element" title="en-US/docs/DOM/element">HTMLElement</a></code>.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa la interfície <a href="/en-US/docs/DOM/span" title="en-US/docs/DOM/span"><span style="font-family: Courier New;">HTMLSpanElement</span></a> per aquest element.</p> +</div> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><p>The chemical formula of water is H<sub>2</sub>O</p> +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>The chemical formula of water is H<sub>2</sub>O</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element HTML {{HTMLElement ("sup")}} produeix el superíndex. Recordeu que no podeu utilitzar els dos al mateix temps i és necessari utilitzar <a href="https://developer.mozilla.org/en-US/docs/MathML">MathML</a> per produir tant un superíndex com un subíndex al costat del símbol químic d'un element, que representa el seu nombre atòmic i el seu nombre nuclear.</li> + <li>Els elements MathML <a href="/en-US/docs/MathML/Element/msub" title="en-US/docs/MathML/Element/msub"><code><msub></code></a>, <a href="/en-US/docs/MathML/Element/msup" title="en-US/docs/MathML/Element/msup"><code><msup></code></a> i <a href="/en-US/docs/MathML/Element/msubsup" title="en-US/docs/MathML/Element/msubsup"><code><msubsup></code></a>.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/summary/index.html b/files/ca/web/html/element/summary/index.html new file mode 100644 index 0000000000..b50c7bbaf5 --- /dev/null +++ b/files/ca/web/html/element/summary/index.html @@ -0,0 +1,139 @@ +--- +title: <summary> +slug: Web/HTML/Element/summary +tags: + - Element + - HTML + - HTML interactive elements + - Reference + - Web +translation_of: Web/HTML/Element/summary +--- +<div>{{HTMLRef}}</div> + +<p>L'element HTML <strong><code><summary></code></strong> s'utilitza a manera de resum, el títol o la llegenda per al contingut d'un element {{HTMLElement("details")}}.</p> + +<div class="note"><strong>Nota:</strong> Si s'omet l'element <code><summary></code>, s'utilitzarà la capçalera "details".</div> + +<div class="note"><strong>Nota:</strong> L'estil per defecte per <code><summary></code> és <code>display:list-item</code> segons la <a href="https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements">norma HTML</a>. Si es canvia l'estil a <code>display:block</code>, el triangle de divulgació serà descartat. Veure <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1283989">Bug 1283989</a> per a més informació.</div> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">Contingut textual</a> o un element de <a href="/en-US/docs/Web/Guide/HTML/Content_categories#Heading_content">contingut capçalera</a></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td><span id="result_box" lang="ca"><span>Cap</span><span>, tant</span> <span>l'etiqueta</span> <span>inicial </span>com la <span>final són</span> <span>obligatories</span><span>.</span></span></td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>L'element {{HTMLElement("details")}}.</td> + </tr> + <tr> + <th scope="row">Normativa del document</th> + <td><a class="external" href="https://html.spec.whatwg.org/multipage/forms.html#the-summary-element" rel="external nofollow">HTML5, secció 4.11.2</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLElement")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<details> +<p>In summation, get details from the link on the next line</p> +</details> + +<p>Si us plau, vegeu la pàgina {{HTMLElement("details")}} d'exemples de <summary>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'forms.html#the-summary-element', '<summary>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'interactive-elements.html#the-summary-element', '<summary>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>12</td> + <td>{{CompatGeckoDesktop("49.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>6</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatGeckoMobile("49.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Aquesta característica està disponible des de la versió 47 darrere de la preferència <code>dom.details_element.enabled</code>, per defecte és <code>false</code>, excepte en les versions Nightly i Aurora ({{bug(1241750)}}). El suport està habilitat per defecte, és a dir, la preferència per defecte es <code>true</code>, des de Firefox 49.0 ({{bug("1226455")}}).</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{HTMLElement("details")}}</li> +</ul> diff --git a/files/ca/web/html/element/sup/index.html b/files/ca/web/html/element/sup/index.html new file mode 100644 index 0000000000..477213261f --- /dev/null +++ b/files/ca/web/html/element/sup/index.html @@ -0,0 +1,74 @@ +--- +title: <sup> +slug: Web/HTML/Element/sup +translation_of: Web/HTML/Element/sup +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML superíndex</em> (<code><sup></code>) defineix un fragment de text que s'ha de mostrar, per raons tipogràfiques, més alt, i sovint més petit, que el tram principal del text.</p> + +<div class="note"> +<p><strong>Nota d'ùs:</strong></p> + +<ul> + <li>Aquest element s'ha d'utilitzar només per raons tipogràfiques, és a dir, el canvi de la posició del text canviant el seu significat com en matemàtiques (com <var>f<sup>4</sup></var>, encara que l'ús d'una fórmula <a href="https://developer.mozilla.org/en/MathML">MathML</a> ha de ser considerat) o les abreviatures franceses (com M<sup>lle</sup>, M<sup>me</sup> or C<sup>ie</sup>).</li> + <li>Aquest element no ha de ser utilitzat amb el propòsit de donar estil, com l'estil del nom del producte de Latex. En aquest cas s'ha d'utilitzar l'estil <a href="/en/CSS" title="en/CSS">CSS</a> de la propietat {{ cssxref("vertical-align") }}, amb el valor <code>super</code> aconseguireu el mateix efecte.</li> +</ul> +</div> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en/HTML/Content_categories" title="en/HTML/Content categories">Categories de contingut</a></td> + <td>Contingut dinàmic i contingut textual</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Contingut textual</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Cap, ja que tant l'etiqueta d'inici com la final són obligatories</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td><span id="result_box" lang="ca"><span>Qualsevol</span> <span>element que</span> <span>pogui</span> <span>contenir</span> <span>contingut</span> <span>textual</span></span></td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-sub-and-sup-elements" rel="external nofollow" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-sub-and-sup-elements">HTML5, secció 4.6.14</a> (<a class="external" href="http://www.w3.org/TR/REC-html40/struct/text.html#h-9.2.3" title="http://www.w3.org/TR/REC-html40/struct/text.html#h-9.2.3">HTML4.01, secció 9.2.3</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implement la interfície <code><a href="https://developer.mozilla.org/en-US/docs/DOM/element" title="en-US/docs/DOM/element">HTMLElement</a></code>.</p> + +<div class="note"> +<p><strong>Nota d'implementació</strong> <strong>: </strong> fins Gecko 1.9.2 inclos, Firefox implementa la interfície <a href="/en/DOM/span" title="en/DOM/span"><span style="font-family: Courier New;">HTMLSpanElement</span></a> per aquest element.</p> +</div> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><p>This text is <sup>superscripted</sup></p> +</pre> + +<h4 id="Resultat">Resultat</h4> + +<p>This text is <sup>superscripted</sup></p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>L'element HTML {{HTMLElement ("sub")}} produeix el subíndex. Recordeu que no podeu utilitzar els dos al mateix temps i és necessari utilitzar <a href="https://developer.mozilla.org/en/MathML">MathML</a> per produir tant un superíndex com un subíndex al costat del símbol químic d'un element, que representa el seu nombre atòmic i el seu nombre nuclear.</li> + <li>Els elements MathML <a href="/en/MathML/Element/msub" title="en/MathML/Element/msub"><span style="font-family: Courier New;"><msub></span></a>, <a href="/en/MathML/Element/msup" title="en/MathML/Element/msup"><span style="font-family: Courier New;"><msup></span></a> i <a href="/en/MathML/Element/msubsup" title="en/MathML/Element/msubsup"><span style="font-family: Courier New;"><msubsup></span></a>.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/table/index.html b/files/ca/web/html/element/table/index.html new file mode 100644 index 0000000000..a4a7e04b14 --- /dev/null +++ b/files/ca/web/html/element/table/index.html @@ -0,0 +1,442 @@ +--- +title: <table> +slug: Web/HTML/Element/table +tags: + - CSS Elemen + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/table +--- +<div>{{HTMLRef}}</div> + +<p>L'<strong>Element HTML Taula</strong> (<code><table>)</code> representa dades tabulars, és a dir, informació expressada a través d'una taula de dades bidimensionals.</p> + +<div class="note"><strong>Nota: </strong>Abans de la creació de <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>, els elements HTML {{HTMLElement("table")}} s'utilitzaven sovint com un mètode per al disseny de pàgines. Aquest ús ha estat descoratjat des de HTML 4. No obstant això, els correus electrònics HTML són una excepció on les taules estan sent utilitzats amb fins de disseny. La raó d'això és el <a href="https://css-tricks.com/using-css-in-html-emails-the-real-story/">poc suport de CSS en clients de correu electrònic populars</a>.</div> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en-US/docs/HTML/Content_categories">Categories de contingut</a></td> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content">Contingut dinàmic</a></td> + </tr> + <tr> + <td>Contingut permès</td> + <td> + <div class="content-models"> + <div id="table-mdls">En aquest ordre: + <ol> + <li>un element opcional {{HTMLElement("caption")}},</li> + <li>zero o més elements {{HTMLElement("colgroup")}},</li> + <li>un element opcional {{HTMLElement("thead")}},</li> + <li>un element opcional {{HTMLElement("tfoot")}}, <span class="short_text" id="result_box" lang="ca"><span>ja</span> <span>sigui</span> <span>abans</span> <span>o després</span> <span>d'un de</span> <span>les</span> <span>següents</span></span>: + <ul> + <li>zero o més elements {{HTMLElement("tbody")}}</li> + <li>un o més elements {{HTMLElement("tr")}}</li> + </ul> + </li> + </ol> + </div> + </div> + </td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Cap, tant l'etiqueta d'inici com final són obligatories</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti contingut dinàmic</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.w3.org/TR/html5/tabular-data.html#the-table-element" rel="external nofollow">HTML5, secció 4.9.1</a> (<a class="external" href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-TABLE">HTML4.01, secció 11.2.1</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>inclou</span> <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes">atributs globals</a><span>.</span> <span>Els</span> <span>següents</span> <span>atributs</span> <span>mostrats en</span> <span>aquesta</span> <span>pàgina</span> ara están desaprovats<span>.</span></span></p> + +<dl> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut enumerat indica com ha d'alinear-se la taula dins del document que ho conté. Pot tenir els següents valors: + <ul> + <li><span>left: </span>la taula es mostra a la part esquerra del document;</li> + <li><span>center:</span> la taula es mostra al centre del document;</li> + <li><span>right:</span> la taula es mostra a la part dreta del document.</li> + </ul> + + <div class="note"><strong>Nota d'ùs</strong> + + <ul> + <li>No utilitzeu aquest atribut, ja que ha estat desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb CSS. Establir {{cssxref("margin-left")}} i {{cssxref("margin-right")}} a <code>auto</code> o {{cssxref("margin")}} a<code> 0 auto</code> per aconseguir el efecte similar a l'atribut align.</li> + <li>Abans del Firefox 4, Firefox també donava suport els valors <code>middle</code>, <code>absmiddle</code>, and <code>abscenter</code> com a sinònims de <code>center</code>, d'una manera peculiar.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("bgcolor")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut defineix el color de fons d'una taula. Consisteix en un codi hexadecimal de 6 dígits com es defineix en <a href="http://www.w3.org/Graphics/Color/sRGB">sRGB</a> i està prefixat per "#". Aquest atribut es pot utilitzar amb una de les setze cadenes de color predefinits: + <table> + <tbody> + <tr> + <td style="width: 24px; background-color: black;"> </td> + <td><span>black</span> = "#000000"</td> + <td style="width: 24px; background-color: green;"> </td> + <td><span>green</span> = "#008000"</td> + </tr> + <tr> + <td style="width: 24px; background-color: silver;"> </td> + <td><span>silver</span> = "#C0C0C0"</td> + <td style="width: 24px; background-color: lime;"> </td> + <td><span>lime</span> = "#00FF00"</td> + </tr> + <tr> + <td style="width: 24px; background-color: gray;"> </td> + <td><span>gray</span> = "#808080"</td> + <td style="width: 24px; background-color: olive;"> </td> + <td><span>olive</span> = "#808000"</td> + </tr> + <tr> + <td style="width: 24px; background-color: white;"> </td> + <td><span>white</span> = "#FFFFFF"</td> + <td style="width: 24px; background-color: yellow;"> </td> + <td><span>yellow</span> = "#FFFF00"</td> + </tr> + <tr> + <td style="width: 24px; background-color: maroon;"> </td> + <td><span>maroon</span> = "#800000"</td> + <td style="width: 24px; background-color: navy;"> </td> + <td><span>navy</span> = "#000080"</td> + </tr> + <tr> + <td style="width: 24px; background-color: red;"> </td> + <td><span>red</span> = "#FF0000"</td> + <td style="width: 24px; background-color: blue;"> </td> + <td><span>blue</span> = "#0000FF"</td> + </tr> + <tr> + <td style="width: 24px; background-color: purple;"> </td> + <td><span>purple</span> = "#800080"</td> + <td style="width: 24px; background-color: teal;"> </td> + <td><span>teal</span> = "#008080"</td> + </tr> + <tr> + <td style="width: 24px; background-color: fuchsia;"> </td> + <td><span>fuchsia</span> = "#FF00FF"</td> + <td style="width: 24px; background-color: aqua;"> </td> + <td><span>aqua</span> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que està desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Utilitzar la propietat <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> {{cssxref("background-color")}} per crear un efecte similar a l'atribut <code>bgcolor</code>.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("border")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut enter defineix, en píxels, la mida del marc que envolta la taula. Si s'estableix a 0, l'atribut {{htmlattrxref("frame", "table")}} es posa a void. + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que ha està desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Per crear un efecte similar a l'atribut <code>border</code>, podeu utlitzar les propietats <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a> {{cssxref("border")}}, {{cssxref("border-color")}}, {{cssxref("border-width")}} i {{cssxref("border-style")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("cellpadding")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut defineix l'espai entre el contingut d'una cel·la i la seva vora, que es mostra o no. Si la longitud de la cellpadding es defineix en píxels, aquest espai de mida de píxel s'aplicarà als quatre costats del contingut de la cel·la. Si la longitud es defineix amb un valor percentual, el contingut se centra i l'espai vertical total (superior i inferior) representarà aquest valor. El mateix succeeix amb l'espai horitzontal total (esquerra i dreta). + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que està desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb <a href="/en-US/docs/CSS">CSS</a>. Per crear un efecte similar a l'atribut <code>cellpadding</code>, aplicar la propietat {{cssxref("border-collapse")}} a l'element {{HTMLElement("table")}}, amb el seu valor establert a collapse, i la propietat {{cssxref("padding")}} a l'element {{HTMLElement("td")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("cellspacing")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut defineix la mida de l'espai entre dues cel·les en un valor de percentatge o píxels. L'atribut s'aplica tant horitzontal com verticalment, a l'espai entre la part superior de la taula i les cel·les de la primera fila, l'esquerra de la taula i la primera columna, a la dreta de la taula i l'última columna i la part inferior de la taula i l'última fila. + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que està desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb <a href="/en-US/docs/CSS">CSS</a>. Per crear un efecte similar a l'atribut <code>cellspacing</code>, aplicar la propietat {{cssxref("border-spacing")}} a l'element {{HTMLElement("table")}}. Border-spacing no té cap efecte si {{cssxref ("border-collapse")}} s'estableix a collapse.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("frame")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut enumerat defineix quin costat del marc que envolta la taula ha de mostrar-se. Pot tenir els següents valors: + <table style="width: 668px;"> + <tbody> + <tr> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>above</span></td> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>below</span></td> + </tr> + <tr> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>hsides</span></td> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>vsides</span></td> + </tr> + <tr> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>lhs</span></td> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>rhs</span></td> + </tr> + <tr> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>border</span></td> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>box</span></td> + </tr> + <tr> + <td style="width: 24px; background-color: rgb(224, 224, 224);"> </td> + <td><span>void</span></td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que està desaprovat. L'element {{HTMLElement("table")}} se li ha de donar estil amb <a href="/en-US/docs/CSS">CSS</a>. Per crear un efecte similar a l'atribut <code><span>frame</span></code>, aplicar les propietats {{cssxref("border-style")}} i {{cssxref("border-width")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("rules")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut enumerat defineix on han d'aparèixer les regles, és a dir línies, en una taula. Pot tenir els següents valors: + <ul> + <li>cap, indica que no es mostraran les regles; que és el valor per defecte;</li> + <li>grups, farà que les regles es mostrin entre grups de files (definit per els elements {{HTMLElement("thead")}}, {{HTMLElement("tbody")}} i {{HTMLElement("tfoot")}}) i entre els grups de columnes (definits per els elements {{HTMLElement("col")}} i {{HTMLElement("colgroup")}});</li> + <li>files, farà que les regles es mostrin entre les files;</li> + <li><span>columnes</span>, farà que les regles es mostrin entre les columnes;</li> + <li><span>tot</span>, farà que les regles es mostrin entre les files and columnes.</li> + </ul> + + <div class="note"><strong>Nota</strong>: + + <ul> + <li>L'estil de les regles depenen del navegador i no pot ser modificat.</li> + <li>No utilitzeu aquest atribut, ja que està desaprovat. Les regles han de ser definides i se'ls dóna estil usant <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Aplicar la propietat {{cssxref("border")}} adequadament els elements {{HTMLElement("thead")}}, {{HTMLElement("tbody")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("col")}} o {{HTMLElement("colgroup")}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("summary")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut defineix un text alternatiu que resumeix el contingut de la taula. En general, permet els discapacitats visuals que estan navegant per la web amb una pantalla Braille, adquirir informació sobre la taula. Si la informació afegida per aquest atribut també és útil per a persones que no tenen problemes visuals, considereu l'ús de {{HTMLElement("caption")}} al seu lloc. L'atribut <code>summary</code> no és obligatori i pot ser omès quan un element {{HTMLElement("caption")}} compleix la seva funció. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que està desaprovat. En el seu lloc, triar un d'aquests mètodes per afegir una descripció d'una taula: + <ul> + <li>Utilitzeu la prosa al voltant de la taula (aquest mètode és menys semàntic).</li> + <li>Afegir una descripció a la taula amb l'element {{HTMLElement("caption")}}.</li> + <li>Afegir una descripció en un element {{HTMLElement("details")}}, a l'interior de la taula de l'element {{HTMLElement("caption")}}.</li> + <li>Incloure en un element {{HTMLElement("table")}} un element {{HTMLElement("figure")}} i afegir la descripció en prosa al seu costat.</li> + <li>Incloure en un element {{HTMLElement("table")}} un element {{HTMLElement("figure")}} i afegir la descripció en prosa dins d'un element {{HTMLElement("figcaption")}}.</li> + <li>Configurar la taula de manera que no sigui necessària una descripció (per exemple, amb l'ús dels elements {{HTMLElement("th")}} i {{HTMLElement("thead")}}).</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("width")}} {{Deprecated_inline}}</dt> + <dd>Aquest atribut defineix l'amplada de la taula. L'amplada es pot definir per píxels o un valor de percentatge. Un valor percentual serà definit per l'amplada del contenidor en el qual es col·loca la taula. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que està desaprovat. Les regles han de ser definides i se'ls dóna estil usant <a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a>. Utilitzar la propietat {{cssxref("width")}} en el seu lloc.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/DOM/HTMLTableElement">HTMLTableElement</a></code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Taula_senzilla">Taula senzilla</h3> + +<pre class="brush: html"><table> + <tr> + <td>John</td> + <td>Doe</td> + </tr> + <tr> + <td>Jane</td> + <td>Doe</td> + </tr> +</table> +</pre> + +<p>{{EmbedLiveSample('Simple_Table', '100%', '100', '', 'Web/HTML/Element/table')}}</p> + +<h3 id="Més_Exemples">Més Exemples</h3> + +<pre class="brush: html"><p>Simple table with header</p> +<table> + <tr> + <th>First name</th> + <th>Last name</th> + </tr> + <tr> + <td>John</td> + <td>Doe</td> + </tr> + <tr> + <td>Jane</td> + <td>Doe</td> + </tr> +</table> + +<p>Table with thead, tfoot, and tbody</p> +<table> + <thead> + <tr> + <th>Header content 1</th> + <th>Header content 2</th> + </tr> + </thead> + <tfoot> + <tr> + <td>Footer content 1</td> + <td>Footer content 2</td> + </tr> + </tfoot> + <tbody> + <tr> + <td>Body content 1</td> + <td>Body content 2</td> + </tr> + </tbody> +</table> + +<p>Table with colgroup</p> +<table> + <colgroup span="4"></colgroup> + <tr> + <th>Countries</th> + <th>Capitals</th> + <th>Population</th> + <th>Language</th> + </tr> + <tr> + <td>USA</td> + <td>Washington D.C.</td> + <td>309 million</td> + <td>English</td> + </tr> + <tr> + <td>Sweden</td> + <td>Stockholm</td> + <td>9 million</td> + <td>Swedish</td> + </tr> +</table> + +<p>Table with colgroup and col</p> +<table> + <colgroup> + <col style="background-color: #0f0"> + <col span="2"> + </colgroup> + <tr> + <th>Lime</th> + <th>Lemon</th> + <th>Orange</th> + </tr> + <tr> + <td>Green</td> + <td>Yellow</td> + <td>Orange</td> + </tr> +</table> + +<p>Simple table with caption</p> +<table> + <caption>Awesome caption</caption> + <tr> + <td>Awesome data</td> + </tr> +</table> +</pre> + +<div class="hidden"> +<pre class="brush: css">table +{ +border-collapse: collapse; +border-spacing: 0px; +} +table, th, td +{ +padding: 5px; +border: 1px solid black; +}</pre> +</div> + +<p>{{EmbedLiveSample('More_Examples', '100%', '700', '', 'Web/HTML/Element/table')}}</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1")}}</td> + <td>4.0<sup>[1]</sup></td> + <td>7.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoMobile("1")}}</td> + <td>6.0<sup>[1]</sup></td> + <td>6.0</td> + <td>1.0</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span class="alt-edited">Hi ha un error de representació en Internet Explorer 9 que implica {{HTMLElement("table")}} i {{cssxref(":hover")}}; vegeu <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:hover#Browser_compatibility">la secció "Compatibilitat del navegador" del article :hover</a> per a més detalls.</span></span></p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};</li> + <li>Propietats CSS que poden ser especialment útils per donat estil a l'element <code><table></code>: + <ul> + <li>{{cssxref("width")}} <span class="short_text" id="result_box" lang="ca"><span>per controlar</span> <span>l'ample de</span> <span>la taula</span><span>;</span></span> ;</li> + <li>{{cssxref("border")}}, {{cssxref("border-style")}}, {{cssxref("border-color")}}, {{cssxref("border-width")}}, {{cssxref("border-collapse")}}, {{cssxref("border-spacing")}} per controlar l'aspecte de les vores, regles i marc de les cel.les;</li> + <li>{{cssxref("margin")}} and {{cssxref("padding")}} <span id="result_box" lang="ca"><span>donar-li</span> <span>estil</span> <span>al contingut de la</span> <span>cel·la individual</span><span>;</span></span></li> + <li>{{cssxref("text-align")}} and {{cssxref("vertical-align")}} per definir l'alineació de text i el contingut cel·la.</li> + </ul> + </li> +</ul> diff --git a/files/ca/web/html/element/tbody/index.html b/files/ca/web/html/element/tbody/index.html new file mode 100644 index 0000000000..1fae0638a3 --- /dev/null +++ b/files/ca/web/html/element/tbody/index.html @@ -0,0 +1,281 @@ +--- +title: <tbody> +slug: Web/HTML/Element/tbody +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/tbody +--- +<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 1.38;">L'<strong>Element HTML Cos de la Taula (<code><tbody></code>) </strong>defineix un o més elements {{HTMLElement ("tr")}} de dades de fileres que dona cos a l'element {{ HTMLElement("table") }} que és el seu pare (si no hi ha altres elements, els elements <tr> són fills immediats d'aquest element taula.) en combinació de si hi ha elements que puguin precedir com {{ HTMLElement("thead") }} i/o {{ HTMLElement("tfoot") }}, <tbody> proporciona informació semàntica addicional per a dispositius com ara impressores i pantalles. D'els elements fills de la taula pare, <tbody> representa el contingut en el cual, quan més llarg sigui d'una pàgina, més probable serà que difereixi per a cada pàgina impresa; mentre que el contingut de {{HTMLElement ("thead")}} i {{HTMLElement ("tfoot")}} serà el mateixa o semblant per a cada pàgina impresa. Com a mostra, <tbody> permetrà el desplaçament independent dels elements {{ HTMLElement("thead") }}, {{ HTMLElement("tfoot") }} i {{ HTMLElement("caption") }} del mateixa element pare {{ HTMLElement("table") }}. Recordeu que a diferència dels elements <thead>, <tfoot> i <caption>, múltiples elements <code><tbody></code> són acceptats (si consecutiu), permetent que les files de dades de taules llargues puguin ser dividides en diferents seccions, cadascuna amb un format separat si és necessari.</p> + +<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 1.38;"> </p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en/HTML/Content_categories" title="en/HTML/Content categories">Categories de contingut</a></td> + <td>Cap.</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Zero o més elements {{ HTMLElement("tr") }}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>L'element {{ HTMLElement("tbody") }} no és un element fill obligatori per a un element pare {{ HTMLElement("table") }} com a representació gràfica. No obstant això, no ha d'estar present, si l'element pare {{ HTMLElement("table") }} té un element {{ HTMLElement("tr") }} com a fill.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Dins de l'element pare obligatori {{ HTMLElement("table") }}, l'element {{HTMLElement ("tbody")}} es pot afegir després d'un element {{ HTMLElement("caption") }}, {{HTMLElement("colgroup") }}, {{ HTMLElement("thead") }} i {{ HTMLElement("tfoot") }}.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element" rel="external nofollow" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element">HTML5, secció 4.9.5</a> (<a class="external" href="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.3" title="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.3">HTML4.01, secció 11.2.3</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{ htmlattrdef("align") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline(4.01) }}, {{ obsolete_inline() }} in {{ HTMLVersionInline(5) }}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><span style="font-family: courier new;">left</span>, <span class="short_text" id="result_box" lang="ca"><span>alinea el</span> <span>contingut</span> <span>a l'esquerra</span> <span>de la cel·la</span></span></li> + <li><span style="font-family: courier new;">center</span>, centra el contingut de la cel·la</li> + <li><span style="font-family: courier new;">right</span>, <span class="short_text" id="result_box" lang="ca"><span>alinea el</span> <span>contingut</span> <span>a la dreta</span> <span>de la cel·la</span></span></li> + <li><span style="font-family: courier new;">justify</span>, inserta espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><span style="font-family: courier new;">char</span>, alinea el contingut textual en un caràcter especial amb una desplaçament mínima definit per els atributs {{ htmlattrxref("char", "tbody") }} i {{ htmlattrxref("charoff", "tbody") }}.</li> + </ul> + + <p>Si aquest atribut no està establert, el valor assumit és <code>left</code>.</p> + + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> or <span style="font-family: courier new;">justify</span> utilitzeu la propietat CSS {{ cssxref("text-align") }}.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, podeu utilitzar el valor de {{htmlattrxref ("char", "tbody")}} com el valor de la propietat {{ cssxref("text-align") }} {{ unimplemented_inline() }}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("bgcolor") }} {{ Non-standard_inline() }}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi hexadecimal de 6 dígits com es defineix en <a class="external" href="http://www.w3.org/Graphics/Color/sRGB" title="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, prefixat per un '#'. Podeu utilitzar una de les setze cadenes de color predefinits: + <table style="width: 80%;"> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">black</span> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">green</span> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">silver</span> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">lime</span> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">gray</span> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">olive</span> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">white</span> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">yellow</span> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">maroon</span> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">navy</span> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">red</span> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">blue</span> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">purple</span> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">teal</span> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">fuchsia</span> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">aqua</span> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que no és estàndard i només s'executa en algunes versions de Microsoft Internet Explorer: l'element {{ HTMLElement("tbody") }} se li ha de donar estil amb <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> . Per donar un efecte similar a l'atribut bgcolor, utilitzeu la propietat <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> {{cssxref ("background-color") }}, en els elements corresponents {{ HTMLElement("td") }} o {{ HTMLElement("th") }}.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("char") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline(4.01) }}, {{ obsolete_inline() }} in {{ HTMLVersionInline(5) }}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna. Els valors típics d'això inclouen un punt (.) en intentar alinear els números o valors monetaris. Si {{ htmlattrxref("align", "tbody") }} no està establert a <code>char</code>, aquest atribut s'ignora. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard. Per aconseguir el mateix efecte que {{htmlattrxref("char", "tbody") }} , en CSS3, podeu utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "tbody") }} com el valor de la propietat {{cssxref ("text-align") }} {{unimplemented_inline() }}.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("charoff") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline(4.01) }}, {{ obsolete_inline() }} in {{ HTMLVersionInline(5) }}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters a desplaçar de les dades de la columna dels caràcters d'alineació especificats per l'atribut <code>char</code>. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("valign") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline(4.01) }}, {{ obsolete_inline() }} in {{ HTMLVersionInline(5) }}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada fila de cel·les de la capçalera de la taula. Els valors possibles per aquest atribut són: + <ul> + <li><span style="font-family: courier new;">baseline</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible, però alineant-ho en la <a href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">línia de base (</a><a class="external" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29" title="http://en.wikipedia.org/wiki/Baseline_(typography)">baseline)</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <span style="font-family: courier new;">bottom</span>.</li> + <li><span style="font-family: courier new;">bottom</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><span style="font-family: courier new;">middle</span>, centra el text en la cel·la;</li> + <li>i <span style="font-family: courier new;">top</span>, posarà el text tant a prop de la part superior de la cel·la com sigui possible.</li> + </ul> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard : en el seu lloc aplicar la propietat CSS {{cssxref ("vertical-align")}}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/Web/API/HTMLTableSectionElement" title="Documentation for HTMLTableSectionElement">HTMLTableSectionElement</a></code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, veure la pàgina {{ HTMLElement("table") }} per exemples de <code><tbody></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{ CompatGeckoDesktop("1.0") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>1.0</td> + <td>{{ CompatNo() }} [1]</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>1.0</td> + <td>{{ CompatNo() }} [2]</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{ Non-standard_inline() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoMobile("1.0") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo() }} [1]</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo() }} [2]</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{ Non-standard_inline() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure {{bug(915)}}.</p> + +<p>[2] Veure {{bug(2212)}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{ HTMLElement("caption") }}, {{ HTMLElement("col") }}, {{ HTMLElement("colgroup") }}, {{ HTMLElement("table") }}, {{ HTMLElement("td") }}, {{ HTMLElement("tfoot") }}, {{ HTMLElement("th") }}, {{ HTMLElement("thead") }}, {{ HTMLElement("tr") }};</li> + <li>Les propietats CSS i pseudo-classes poden ser especialment útils per donar estil a l'element <code><tbody></code>: + <ul> + <li>la pseudo-classe {{cssxref (":nth-child")}} per aplicar l'alineació de les cel·les en la columna;</li> + <li>La propietat {{cssxref ("text-align")}} per alinear el contingut de totes les cel·les en el mateix caràcter, com '.'.</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/td/index.html b/files/ca/web/html/element/td/index.html new file mode 100644 index 0000000000..f95750d2c8 --- /dev/null +++ b/files/ca/web/html/element/td/index.html @@ -0,0 +1,299 @@ +--- +title: <td> +slug: Web/HTML/Element/td +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/td +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'element <a href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a> <em>cel·la de Taula</em> (<strong><code><td></code></strong>) defineix una cel·la d'una taula que conté dades. Participa en el <em>model de taula</em>.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td>Cap.</td> + </tr> + <tr> + <th>Contingut permès</th> + <td>Contingut dinàmic.</td> + </tr> + <tr> + <th>Omissió de l'etiqueta</th> + <td>L'etiqueta d'inici és obligatòria. L'etiqueta final es pot ometre, si és seguit immediatament per un element {{HTMLElement("th")}} o {{HTMLElement("td")}} o si no hi ha més dades en el seu element pare.</td> + </tr> + <tr> + <th>Elements pares permesos</th> + <td>Un element {{HTMLElement("tr")}}.</td> + </tr> + <tr> + <th>Normativa del document</th> + <td><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-td-element" rel="external">HTML5, secció 4.9.9</a> (<a href="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.6">HTML4.01, secció 11.2.6</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("abbr")}} {{obsoleteGeneric('inline','HTML5')}}</dt> + <dd>Aquest atribut conté una breu descripció del contingut de la cel·la. Alguns agents d'usuari, com ara lectors de parla, poden presentar aquesta descripció abans que el propi contingut. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet en l'últim estàndard: en lloc d'un altre, considereu iniciar el contingut de la cel·la per un contingut abreujat independent en si o utilitzar el contingut abreujat com el contingut de la cel·la i utilitzar el contingut llarg com la descripció de la cel·la posant-ho en l'atribut <strong>title</strong>.</div> + </dd> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}, {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><code>left</code>, alinea el contingut a l'esquerra de la cel·la</li> + <li><code>center</code>, centra el contingut de la cel·la</li> + <li><code>right</code>, alinea el contingut a la dreta de la cel·la</li> + <li><code>justify</code>, inserta espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><code>char</code>, alinea el contingut textual en un caràcter especial amb una desplaçament mínim definit per els atributs {{htmlattrxref("char", "td")}} i {{htmlattrxref("charoff", "td")}} {{unimplemented_inline(2212)}}.</li> + </ul> + + <p>Si aquest atribut no està establert, el valor assumit és <code>left</code>.</p> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> or <span style="font-family: courier new;">justify</span> utilitzeu la propietat CSS {{cssxref("text-align")}}.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, podeu utilitzar el valor de {{htmlattrxref("char", "td")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("axis")}} {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut conté una llista de cadenes separades per espais. Cada cadena és l'ID d'un grup de cel·les a les que s'aplica aquesta capçalera. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet en l'últim estàndard: en el seu lloc utilitzar l'atribut {{htmlattrxref("scope", "td")}}.</div> + </dd> + <dt>{{htmlattrdef("bgcolor")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi hexadecimal de 6 dígits com es defineix en <a class="external external-icon" href="http://www.w3.org/Graphics/Color/sRGB" title="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, prefixat per un '#'. Podeu utilitzar una de les setze cadenes de color predefinits: + <table style="width: 80%;"> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>black</code> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>green</code> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>silver</code> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>lime</code> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>gray</code> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>olive</code> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>white</code> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>yellow</code> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>maroon</code> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>navy</code> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>red</code> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>blue</code> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>purple</code> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>teal</code> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>fuchsia</code> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border: 1px solid black;"> </td> + <td><code>aqua</code> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs:</strong> <strong> </strong>No utilitzeu aquest atribut, ja que no és estàndard i només s'implementa en algunes versions de Microsoft Internet Explorer : l'element {{HTMLElement("td")}} se li ha de donar estil amb <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a>. Per donar un efecte similar a l'atribut <strong>bgcolor</strong>, utilitzeu la propietat <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> {{cssxref("background-color")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}, {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna. Els valors típics d'això inclouen un punt (.) en intentar alinear els números o valors monetaris. Si {{htmlattrxref("align", "td")}} no està establert a <code>char</code>, aquest atribut s'ignora. + <div class="note"><strong>Nota: </strong> <strong> </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard. Per aconseguir el mateix efecte que {{htmlattrxref("char", "thead")}}, en CSS3, podeu utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "th")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</div> + </dd> + <dt>{{htmlattrdef("charoff")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}, {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters a desplaçar de les dades de la columna dels caràcters d'alineació especificats per l'atribut <code>char</code>. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard.</div> + </dd> + <dt>{{htmlattrdef("colspan")}}</dt> + <dd>Aquest atribut conté un valor enter no negatiu que indica el nombre de columnes que s'estén la cel·la. El seu valor per defecte és 1; si el seu valor s'estableix en 0, s'estén fins al final de {HTMLElement("colgroup")}}, fins i tot si es defineix implícitament que pertany a la cel·la. Els valors superiors a 1000 seran considerats incorrectes i s'estableixen en el valor predeterminat (1). + <div class="note"><strong>Nota: </strong>En {{HTMLVersionInline (5)}} aquest atribut només accepta valors més gran que zero, ja que no ha de ser utilitzat per solapar cel·les. A més, Firefox és l'únic navegador compatible amb el valor 0 com es defineix a l'especificació {{HTMLVersionInline (4,01)}}.</div> + </dd> + <dt>{{htmlattrdef("headers")}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Aquest atribut conté una llista de cadenes separades per espais, cadascun corresponent a l'atribut <strong>id</strong> del elements {{HTMLElement ("th")}} que s'apliquen a aquest element</span></span>.</dd> + <dt>{{htmlattrdef("rowspan")}}</dt> + <dd>Aquest atribut conté un valor enter no negatiu que indica a quantes files s'estén la cel·la. El seu valor per defecte és 1; si el seu valor s'estableix en 0, s'estén fins al final de la secció de la taula ({{HTMLElement("thead")}}, {{HTMLElement("tbody")}}, {{HTMLElement("tfoot")}}, fins i tot si es defineix implícitament que pertany a la cel·la. Els valors superiors a 65534 es retallen fins 65534.</dd> + <dt>{{htmlattrdef("scope")}} {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd> </dd> + <dt>{{htmlattrdef("valign")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}, {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada fila de cel·les de la capçalera de la taula. Els valors possibles per aquest atribut són + <ul> + <li><code>baseline</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible, però alineant-ho en la <a class="external external-icon" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">línia de base (</a><a class="external external-icon" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29" title="http://en.wikipedia.org/wiki/Baseline_(typography)">baseline)</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <span style="font-family: courier new;">bottom</span>.</li> + <li><code>bottom</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><code>middle</code>, centra el text en la cel·la;</li> + <li>i <code>top</code>, posarà el text tant a prop de la part superior de la cel·la com sigui possible.</li> + </ul> + + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref ("vertical-align")}}.</div> + </dd> + <dt>{{htmlattrdef("width")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}, {{obsolete_inline}} in {{HTMLVersionInline(5)}}</dt> + <dd><span id="result_box" lang="ca"><span class="alt-edited">Aquest atribut s'utilitza per definir l'amplada de cel·la recomanada. Les propietats</span></span> <a href="/en-US/docs/Web/API/HTMLTableElement/cellSpacing">cellspacing</a> and <a href="/en-US/docs/Web/API/HTMLTableElement/cellPadding">cellpadding</a> <span id="result_box" lang="ca"><span class="alt-edited">poden afegir espai addicional, i l'element {{HTMLElement ("col")}} amplada, també pot tenir algun efecte. En general, si l'ample d'una columna és massa estreta per mostrar correctament una cel·la en particular, les mateixes cel·les s'eixamplaran perque es pogui mostrar</span></span> + <div class="note"><strong>Note: </strong>No utilitzeu aquest atribut en l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref("width")}}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLTableDataCellElement")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, veure la pàgina {{HTMLElement("table")}} per exemples de <code><td></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>1.0</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>1.0</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>atribut <code>colspan</code> amb valor 0 (s'extén fins el final de colgroup)</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>Això</span> <span>actualment</span> <span>no està</span> <span>implementat en</span> <span>Gecko</span><span>.</span> <span>veure</span></span> {{bug("915")}}.</p> + +<p>[2] <span id="result_box" lang="ca"><span>Això</span> <span>actualment</span> <span>no està</span> <span>implementat en</span> <span>Gecko</span><span>.</span> <span>veure</span></span> {{bug("2212")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules : {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/template/index.html b/files/ca/web/html/element/template/index.html new file mode 100644 index 0000000000..c86f078b21 --- /dev/null +++ b/files/ca/web/html/element/template/index.html @@ -0,0 +1,197 @@ +--- +title: <template> +slug: Web/HTML/Element/template +tags: + - Element + - HTML + - Reference + - Web + - Web Components +translation_of: Web/HTML/Element/template +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<strong>element</strong><span class="seoSummary"> <strong><a href="/en-US/docs/Web/HTML">HTML</a></strong></span> <strong>plantilla <code><template></code></strong> és un mecanisme per mantenir el contingut del costat del client que no es renderizará quan es carregui una pàgina, però posteriorment es instanciará durant el temps d'execució mitjançant Javascript.<span class="seoSummary"> </span></p> + +<p>Penseu en una plantilla com un fragment de contingut que s'emmagatzema per al seu ús posterior en el document. Mentre que l'analitzador fa processar el contingut de l'element <code><template></code> durant la càrrega de la pàgina, ho fa només per assegurar-se que aquests continguts són vàlids; No obstant això, el contingut de l'element no es representa.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content">Contingut metadata</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic</a>, <a href="/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">contingut textual</a>, element de suport script</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content">Contingut metadata</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">contingut dinàmic, </a> <span id="result_box" lang="ca"><span>qualsevol</span> <span>contingut</span> <span>HTML</span> <span>vàlid que</span> <span>es</span> <span>permet</span> <span>que passi</span> <span>dins dels elements</span></span> {{HTMLElement("ol")}}, {{HTMLElement("dl")}}, {{HTMLElement("figure")}}, {{HTMLElement("ruby")}}, {{HTMLElement("object")}}, {{HTMLElement("video")}}, {{HTMLElement("audio")}}, {{HTMLElement("table")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("thead")}}, {{HTMLElement("tbody")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("tr")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("select")}}, {{HTMLElement("details")}} i {{HTMLElement("menu")}} <span id="result_box" lang="ca"><span>l'atribut</span> <span><code>type</code> és</span> <span>en l'estat de</span> <span>menú</span> <span>emergent</span></span></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>{{HTMLElement("body")}}, {{HTMLElement("frameset")}}, {{HTMLElement("head")}} and {{HTMLElement("colgroup")}} sense un atribut <code>span</code></td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTemplateElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<p>També hi ha un atribut <code>content</code>, que és de només lectura i proporciona l'accés als continguts de la plantilla. L'existència de l'atribut <code>content</code> s'utilitza sovint com una manera de determinar si el navegador de l'usuari suporta l'element <strong><code><template></code></strong>.</p> + +<h2 id="Example" name="Example">Exemple</h2> + +<p>Primer començarem amb la part HTML de l'exemple.</p> + +<pre class="brush: html"><table id="producttable"> + <thead> + <tr> + <td>UPC_Code</td> + <td>Product_Name</td> + </tr> + </thead> + <tbody> + <!-- existing data could optionally be included here --> + </tbody> +</table> + +<template id="productrow"> + <tr> + <td class="record"></td> + <td></td> + </tr> +</template> +</pre> + +<p>En primer lloc, tenim una taula en la qual més endavant inserirem el contingut mitjançant codi JavaScript. Després ve la plantilla, que descriu l'estructura d'un fragment d'HTML que representa una sola fila de la taula.</p> + +<p>Ara que la taula s'ha creat i la plantilla definida, fem servir JavaScript per a inserir files a la taula, amb cada fila construïda usant la plantilla com a base.</p> + +<pre class="brush:js;">// Test to see if the browser supports the HTML template element by checking +// for the presence of the template element's content attribute. +if ('content' in document.createElement('template')) { + + // Instantiate the table with the existing HTML tbody and the row with the template + var t = document.querySelector('#productrow'), + td = t.content.querySelectorAll("td"); + td[0].textContent = "1235646565"; + td[1].textContent = "Stuff"; + + // Clone the new row and insert it into the table + var tb = document.getElementsByTagName("tbody"); + var clone = document.importNode(t.content, true); + tb[0].appendChild(clone); + + // Create a new row + td[0].textContent = "0384928528"; + td[1].textContent = "Acme Kidney Beans"; + + // Clone the new row and insert it into the table + var clone2 = document.importNode(t.content, true); + tb[0].appendChild(clone2); + +} else { + // Find another way to add the rows to the table because + // the HTML template element is not supported. +} +</pre> + +<p>El resultat és la taula HTML original, amb dues noves files afegides a través de JavaScript:</p> + +<div class="hidden"> +<pre class="brush: css">table { + background: #000; +} +table td { + background: #fff; +}</pre> +</div> + +<p>{{EmbedLiveSample("Example", 500, 120)}}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG','/scripting-1.html#the-template-element','template element')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C','/scripting-1.html#the-template-element','template element')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>26</td> + <td>{{CompatGeckoDesktop("22")}}</td> + <td>Edge 13</td> + <td>15</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>iOS 8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>Components Web : {{HTMLElement("content")}}, {{HTMLElement("shadow")}}</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/textarea/index.html b/files/ca/web/html/element/textarea/index.html new file mode 100644 index 0000000000..c208fe6102 --- /dev/null +++ b/files/ca/web/html/element/textarea/index.html @@ -0,0 +1,182 @@ +--- +title: <textarea> +slug: Web/HTML/Element/textarea +tags: + - Element + - Forms + - HTML + - HTML forms + - Reference + - Web + - textarea +translation_of: Web/HTML/Element/textarea +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><textarea></code></strong> representa un control d'edició de text multi-línia sense format.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>, <a href="/en-US/docs/HTML/Content_categories#Interactive_content" title="HTML/Content categories#Interactive content">contingut interactiu</a>, <a href="/en-US/docs/HTML/Content_categories#Form_listed" title="HTML/Content categories#Form listed">enumerat</a>, <a href="/en-US/docs/HTML/Content_categories#Form_labelable" title="HTML/Content categories#Form labelable">etiquetable</a>, <a href="/en/HTML/Content_categories#form_resettable" title="en/HTML/Content categories#form resettable">reiniciable</a>, i elements <a href="/en-US/docs/HTML/Content_categories#Form_submittable" title="HTML/Content categories#Form submittable">enviables associats a formularis</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Dades <span class="short_text" id="result_box" lang="ca"><span>caràcter</span></span></td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTextAreaElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("autocapitalize")}} {{non-standard_inline}}</dt> + <dd>Aquest és un atribut no estàndard amb el suport de WebKit en iOS (per tant, gairebé tots els navegadors que s'executen en iOS, incloent Safari, Firefox i Chrome) el qual controla si i com el valor de text ha de ser automàticament en majúscula quan és entrat/editat per l'usuari. Els valors no desaprovats estan disponibles en IOS 5 i posteriors. Els valors possibles són: + <ul> + <li><code>none</code>: <span id="result_box" lang="ca"><span>Completament</span> <span>desactiva</span>da <span>la majúscula</span></span><span lang="ca"> <span>automàtica.</span></span></li> + <li><code>sentences</code>: <span id="result_box" lang="ca"><span>Automàticament</span> <span>en majúscula</span> <span>la primera lletra</span> <span>d'una oració</span></span> .</li> + <li><code>words</code>: <span id="result_box" lang="ca"><span>Automàticament</span> <span>en majúscula</span> <span>la primera lletra</span> <span>de les</span> <span>paraules</span></span>.</li> + <li><code>characters</code>: <span class="short_text" id="result_box" lang="ca"><span>Automàticament</span> <span>en</span> <span>majúscula</span> <span>tots</span> <span>els</span> <span>caràcters</span></span> .</li> + <li><code>on</code>: {{deprecated_inline()}} Desaprovat des de iOS 5.</li> + <li><code>off</code>: {{deprecated_inline()}} Desaprovat des de iOS 5.</li> + </ul> + </dd> + <dt>{{htmlattrdef("autocomplete")}} {{HTMLVersionInline("5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>indica</span> <span>si el valor del</span> <span>control</span> <span>es</span> <span>pot completar</span> <span>automàticament</span> <span>pel navegador.</span> <span>Els</span> <span>valors</span> <span>possibles</span> <span>són</span><span>:</span></span> + <ul> + <li><code>off</code>: L'usuari ha d'introduir explícitament un valor en aquest camp per a cada ús, o el document proporciona el seu propi mètode d'autocompletat; el navegador no completa l'entrada automàticament.</li> + <li><code>on</code>: <span id="result_box" lang="ca"><span>El navegador</span> <span>pot completar</span> <span>automàticament el</span> <span>valor basat</span> <span>en els valors</span> <span>que l'usuari ha</span> <span>entrat</span> <span>en usos</span> <span>anteriors.</span></span></li> + </ul> + + <p>Si l'atribut <strong>autocomplete</strong> no s'especifica en un element <code><textarea></code>, el navegador utilitza el valor de l'atribut <strong>autocomplete</strong> del propietari del formulari de l'element <code><textarea></code>. El propietari del formulari és l'element {{HTMLElement("form")}} en el qual l'element <code><textarea></code> és un descendent o bé l'element de formulari que el seu <strong>id</strong> és especificat per l'atribut <strong>form</strong> de l'element d'entrada. Per obtenir més informació, consulteu {{htmlattrxref("autocomplete", "form")}} en {{HTMLElement("form")}}.</p> + </dd> + <dt>{{ htmlattrdef("autofocus") }} {{ HTMLVersionInline("5") }}</dt> + <dd>Aquest atribut booleà permet especificar que un control de formulari ha de tenir el focus d'entrada quan es carrega la pàgina, llevat que l'usuari el redefineixi, per exemple escrivint en un control diferent. Només un element de formularu associat a un document pot tenir aquest atribut especificat.</dd> + <dt>{{ htmlattrdef("cols") }}</dt> + <dd>L'ample visible del control de text, en caràcters d'amplària mitjana. Si s'especifica, ha de ser un nombre enter positiu. Si no s'especifica, el valor per defecte és <span style="font-family: courier new;">20</span> (HTML5).</dd> + <dt>{{ htmlattrdef("disabled") }}</dt> + <dd>Aquest atribut booleà indica que l'usuari no pot interactuar amb el control. (Si no s'especifica aquest atribut, el control hereta la seva configuració des de l'element que conté, per exemple {{HTMLElement ("fieldset")}};. Si no hi ha cap element que contimgui l'atribut <code>disabled</code>, el control està activat)</dd> + <dt>{{ htmlattrdef("form") }} {{ HTMLVersionInline("5") }}</dt> + <dd>L'element formulari en el qual està associat l'element <code><textarea></code> (el seu "propietari formulari"). El valor de l'atribut ha de ser l'ID d'un element de formulari en el mateix document. Si no s'especifica aquest atribut, l'element <code><textarea></code> ha de ser un descendent d'un element de formulari. Aquest atribut li permet col.locar elements <code><textarea></code> en qualsevol lloc dins d'un document, no només com descendents dels seus elements de formulari.</dd> + <dt>{{ htmlattrdef("maxlength") }} {{ HTMLVersionInline("5") }}</dt> + <dd><span id="result_box" lang="ca"><span>El nombre</span> <span>màxim</span> <span>de caràcters</span> <span>(</span><span>punts</span> <span>de codi</span> <span>Unicode</span><span>)</span> <span>que l'usuari pot</span> <span>introduir.</span> <span>Si no s'especifica</span> <span>aquest valor,</span> <span>l'usuari pot</span> <span>introduir un</span> <span>nombre il·limitat</span> <span>de caràcters</span></span></dd> + <dt>{{ htmlattrdef("minlength") }} {{ HTMLVersionInline("5") }}</dt> + <dd>El nombre mínim de caràcters (punts de codi Unicode) requerits que l'usuari ha d'introduir.</dd> + <dt>{{ htmlattrdef("name") }}</dt> + <dd>El nom del control.</dd> + <dt>{{ htmlattrdef("placeholder") }} {{ HTMLVersionInline("5") }}</dt> + <dd>Un indici a l'usuari del que pot ser introduït en el control. Els retorns de carro o salts de línia dins del text de marcador de posició han de ser tractats com salts de línia quan es representa l'indici.</dd> + <dt>{{ htmlattrdef("readonly") }}</dt> + <dd>Aquest atribut booleà indica que l'usuari no pot modificar el valor del control. A diferència de l'atribut <code>disabled</code>, l'atribut <code>readonly</code> no impedeix que l'usuari faci clic o seleccioni en el control. El valor d'un control de només lectura segueix sent enviat en el formulari.</dd> + <dt>{{ htmlattrdef("required") }} {{ HTMLVersionInline("5") }}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>especifica</span> <span>que l'usuari</span> <span>ha d'omplir</span> <span>un valor</span> <span>abans</span> <span>d'enviar un</span> <span>formulari.</span></span></dd> + <dt>{{ htmlattrdef("rows") }}</dt> + <dd><span id="result_box" lang="ca"><span>El nombre</span> <span>de línies</span> <span>de text</span> <span>visibles</span> <span>per al control.</span></span></dd> + <dt>{{ htmlattrdef("selectionDirection") }} {{ HTMLVersionInline("5") }}</dt> + <dd>La direcció en què es va produir la selecció. És "cap endavant (forward)" si la selecció es va fer d'esquerra a dreta en una configuració regional LTR o de dreta a esquerra en una configuració regional RTL, o "cap enrere (backward)" si la selecció es va fer en la direcció oposada. Això pot ser "cap (none)" si la direcció de la selecció és desconegut.</dd> + <dt>{{ htmlattrdef("selectionEnd") }}</dt> + <dd><span id="result_box" lang="ca"><span>L'índex</span> <span>de l'últim</span> <span>caràcter</span> <span>de la selecció</span> <span>actual.</span> <span>Si no hi ha</span> <span>selecció,</span> <span>el valor és</span> <span>l'índex</span> <span>del caràcter que</span> <span>segueix a</span> <span>la posició del cursor</span> <span>d'entrada de</span> <span>text.</span></span></dd> + <dt>{{ htmlattrdef("selectionStart") }}</dt> + <dd><span id="result_box" lang="ca"><span>L'índex</span> <span>per al primer</span> <span>caràcter</span> <span>de la selecció</span> <span>actual.</span> <span>Si no hi ha</span> <span>selecció</span><span>, aquest valor</span> <span>és l'índex</span> <span>del caràcter que</span> <span>segueix a</span> <span>la posició del cursor</span> <span>d'entrada de</span> <span>text.</span></span></dd> + <dt>{{ htmlattrdef("spellcheck") }} {{ HTMLVersionInline(5) }}</dt> + <dd>Establir el valor d'aquest atribut en <code>true</code> indica que l'element ha de tenir la seva ortografia i gramàtica revisada. El valor per omissió indica que l'element està actuant d'acord amb un comportament predeterminat, possiblement basat en el valor de la revisió ortogràfica de l'element pare. El valor <code>false</code> indica que l'element no ha de ser revisat.</dd> + <dt>{{ htmlattrdef("wrap") }} {{ HTMLVersionInline("5") }}</dt> + <dd>Indica com el control ajusta el text. Els valors possibles són: + <ul> + <li><span style="font-family: courier new;">hard</span>: El navegador insereix automàticament salts de línia (CR + LF) de manera que cada línia tingui nomes l'ample del control; l'atribut <code>cols</code> ha de ser especificat.</li> + <li><span style="font-family: courier new;">soft</span>: El navegador s'assegura que tots els salts de línia en el valor consisteixen en un parell CR + LF, però no insereix salts de línia addicionals.</li> + </ul> + + <p>Si no s'especifica aquest atribut, <span style="font-family: courier new;">soft</span> és el valor predeterminat.</p> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en/DOM/HTMLTextAreaElement" title="en/DOM/textarea">HTMLTextAreaElement</a></code>.</p> + +<p>{{ h1_gecko_minversion("Resizable textareas", "2.0") }}</p> + +<p>{{Gecko ("2.0")}} introdueix suport per les textareas redimensionables. Això és controlat per la propietat CSS {{ cssxref("resize") }}. Canviar la mida de les àrees de text està activat per defecte, però es pot desactivar de forma explícita mitjançant la inclusió de la següent CSS:</p> + +<pre>textarea { + resize: none; +} +</pre> + +<h2 id="Interacció_amb_CSS">Interacció amb CSS</h2> + +<p>Pel que fa a CSS, un <code><textarea></code> és un <a href="https://developer.mozilla.org/en-US/docs/CSS/Replaced_element" title="/en-US/docs/CSS/Replaced_element">element reemplaçat</a>. L'especificació HTML no defineix on està la línia de base d'un <code><textarea></code>. Així que diferents navegadors ajustan a diferents posicions. Per Gecko, la línia de base de un <code><textarea></code> es troba en la línia de base de la primera línia de la primera línia del textarea, en altre navegador pot ajustar a la part inferior del quadre del <code><textarea></code>. No utilitzeu {{cssxref ("vertical-align")}}: <code>baseline</code>, ja que el comportament serà impredictible.</p> + +<p>Un <em>textarea</em> té dimensions intrínseques, com una imatge ampliada.</p> + +<h2 id="Example" name="Example">Example</h2> + +<h3 id="Contingut_HTML">Contingut HTML</h3> + +<pre class="brush: html"><textarea name="textarea" rows="10" cols="50">Write something here</textarea></pre> + +<p>{{ EmbedLiveSample('Example','600','200') }}</p> + + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'the-button-element.html#the-textarea-element', '<textarea>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'forms.html#the-textarea-element', '<textarea>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.7', '<textarea>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div> + + +<p>{{Compat("html.elements.textarea")}}</p> +</div> + +<p> </p> + +<h2 id="Veure">Veure</h2> + +<p>Altres elements relacionats amb formularis: {{ HTMLElement("form") }}, {{ HTMLElement("button") }}, {{ HTMLElement("datalist") }}, {{ HTMLElement("legend") }}, {{ HTMLElement("label") }}, {{ HTMLElement("select") }}, {{ HTMLElement("optgroup") }}, {{ HTMLElement("option") }}, {{ HTMLElement("input") }}, {{ HTMLElement("keygen") }}, {{ HTMLElement("fieldset") }}, {{ HTMLElement("output") }}, {{ HTMLElement("progress") }} and {{ HTMLElement("meter") }}.</p> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/tfoot/index.html b/files/ca/web/html/element/tfoot/index.html new file mode 100644 index 0000000000..755200bfad --- /dev/null +++ b/files/ca/web/html/element/tfoot/index.html @@ -0,0 +1,280 @@ +--- +title: <tfoot> +slug: Web/HTML/Element/tfoot +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/tfoot +--- +<p id="Summary">L'<em>Element HTML Peu de Taula</em> (<code><tfoot></code>) defineix un conjunt de files que resumeixen les columnes de la taula.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <td><a href="/en-US/docs/Web/Guide/HTML/Content_categories">Categories de contingut</a></td> + <td>Cap.</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Zero o més elements {{HTMLElement("tr")}}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>L'etiqueta d'inici és obligatòria. L'etiqueta final es pot ometre si l'element {{HTMLElement ("tfoot")}} és seguit immediatament per un {{HTMLElement ("tbody")}} eventualment definit implicitament,o si no hi ha més contingut en el seu element pare {{HTMLElement("table")}}.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Un element {{HTMLElement("table")}}. L' element {{HTMLElement("tfoot")}} <span class="short_text" id="result_box" lang="ca"><span>ha d'aparèixer</span> <span>després de qualsevol</span></span> {{HTMLElement("caption")}}, {{HTMLElement("colgroup")}} o {{HTMLElement("thead")}}. Pot ser abans o després de tots els elements {{HTMLElement ("tbody")}} i {{HTMLElement ("tr")}}, però no barrejats amb ells.<br> + {{HTMLVersionInline ("4")}} L'element {{HTMLElement ("tfoot")}} no es pot posar després de qualsevol element {{HTMLElement ("tbody")}} i {{HTMLElement ("tr")}}. Aquesta restricció s'ha suavitzat en HTML5.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tfoot-element" rel="external nofollow">HTML5, secció 4.9.7</a> (<a class="external" href="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.3">HTML4.01, secció 11.2.3</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><span style="font-family: courier new;">left</span>, alinea el contingut a l'esquerra de la cel·la</li> + <li><span style="font-family: courier new;">center</span>, centra el contingut de la cel·la</li> + <li><span style="font-family: courier new;">right</span>, alinea el contingut a la dreta de la cel·la</li> + <li><span style="font-family: courier new;">justify</span>, inserta espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><span style="font-family: courier new;">char</span>, alinea el contingut textual en un caràcter especial amb una desplaçament mínim definit per els atributs {{htmlattrxref("char", "tbody")}} i {{htmlattrxref("charoff", "tbody")}} {{unimplemented_inline("2212")}}.</li> + </ul> + + <p>Si aquest atribut no està establert, el valor assumit és <code>left</code>.</p> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> or <span style="font-family: courier new;">justify</span> utilitzeu la propietat CSS {{cssxref("text-align")}}.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, podeu utilitzar el valor {{htmlattrxref("char", "tfoot")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("bgcolor")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi hexadecimal de 6 dígits com es defineix en <a href="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, prefixat per un '#'. Podeu utilitzar una de les setze cadenes de color predefinits: + <table style="width: 80%;"> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">black</span> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">green</span> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">silver</span> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">lime</span> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">gray</span> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">olive</span> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">white</span> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">yellow</span> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">maroon</span> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">navy</span> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">red</span> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">blue</span> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">purple</span> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">teal</span> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">fuchsia</span> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">aqua</span> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs: </strong> No utilitzeu aquest atribut, ja que no és estàndard i només s'implementa en algunes versions de Microsoft Internet Explorer: l'element {{HTMLElement("tfoot")}} se li ha de donar estil amb <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a>. Per donar un efecte similar a l'atribut <strong>bgcolor</strong>, utilitzeu la propietat <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> {{cssxref("background-color")}}, en els elements pertinents {{HTMLElement("td")}} o {{HTMLElement("th")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna. Els valors típics d'això inclouen un punt (.) en intentar alinear els números o valors monetaris. Si {{htmlattrxref("align", "tfoot")}} no està establert a <code>char</code>, aquest atribut s'ignora + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard. Per aconseguir el mateix efecte que {{htmlattrxref("char", "tbtfootody")}}, en CSS3, podeu utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "tfoot")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("charoff")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters a desplaçar de les dades de la columna dels caràcters d'alineació especificats per l'atribut <strong>char</strong>. + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("valign")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada fila de cel·les de la capçalera de la taula. Els valors possibles per aquest atribut són: + <ul> + <li><span style="font-family: courier new;">baseline</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible, però alineant-ho en la <a href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">línia de base (baseline)</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <span style="font-family: courier new;">bottom</span>.</li> + <li><span style="font-family: courier new;">bottom</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><span style="font-family: courier new;">middle</span>, centra el text en la cel·la;</li> + <li>i <span style="font-family: courier new;">top</span>, posarà el text tant a prop de la part superior de la cel·la com sigui possible.</li> + </ul> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref("vertical-align")}}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/Web/API/HTMLTableSectionElement">HTMLTableSectionElement</a></code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Si us plau, veure la pàgina {{HTMLElement("table")}} per exemples de <code><tfoot></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>1.0</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>1.0</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}<sup>[2]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure {{bug("915")}}.</p> + +<p>[2] Veure {{bug("2212")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tbody")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};</li> + <li>Propietats CSS i pseudo-classes que poden ser especialment útils per a l'estil de l'element <code><tfoot></code>: + <ul> + <li>la pseudo-classe {{cssxref(":nth-child")}} per ajustar l'alineació de les cel·les de la columna;</li> + <li>la propietat {{cssxref("text-align")}} per alinear el contingut de totes les cel·les en el mateix caràcter, com '.'.</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/th/index.html b/files/ca/web/html/element/th/index.html new file mode 100644 index 0000000000..13614a6d62 --- /dev/null +++ b/files/ca/web/html/element/th/index.html @@ -0,0 +1,303 @@ +--- +title: <th> +slug: Web/HTML/Element/th +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/th +--- +<p>L'<em>element HTML cel·la de capçalera de la taula</em> <code><th></code> defineix una cel·la com a capçalera d'un grup de cel·les de la taula. La naturalesa exacta d'aquest grup es defineix pels atributs {{htmlattrxref("scope", "th")}} i {{htmlattrxref("headers", "th")}}.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content categories">Categories de contingut</a></td> + <td>Cap.</td> + </tr> + <tr> + <td>Contingut permès</td> + <td> + <div class="content-models"> + <div id="table-mdls">Contingut textual.</div> + </div> + </td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>L'etiqueta d'inici és obligatòria.<br> + L'etiqueta final es pot ometre, si és seguit immediatament per un element {{HTMLElement("th")}} o {{HTMLElement("td")}} o si no hi ha més dades en el seu element pare.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Un element {{HTMLElement("tr")}}.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-th-element" rel="external nofollow" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-th-element">HTML5, secció 4.9.10</a> (<a href="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.6" title="http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.6">HTML4.01, secció 11.2.6</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els següents <a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("abbr")}} {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut conté una breu descripció del contingut de la cel·la. Un agent d'usuari (per exemple, un lector de parla) pot estar present davant de la descripció. + <div class="note"><strong>Nota d'ùs: </strong> No utilitzeu aquest atribut, ja que és obsolet en l'últim estàndard. Alternativament, es pot posar la descripció abreujada dins de la cel·la i posar el contingut llarg en l'atribut <code>title</code>.</div> + </dd> + <dt>{{htmlattrdef("align")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><code>left</code>: El contingut s'alinea a l'esquerra de la cel·la.</li> + <li><code>center</code>: El contingut es centra en la cel·la.</li> + <li><code>right</code>: El contingut s'alinea a la dreta de la cel·la.</li> + <li><code>justify</code> (només amb text): El contingut s'estén dins de la cel·la de manera que cobreixi tota la seva amplada.</li> + <li><code>char</code> ( només amb text): El contingut està alineat a un caràcter dins de l'element <th> amb un mínim desplaçament. Aquest caràcter es definit per els atributs {{htmlattrxref("char", "th")}} i {{htmlattrxref("charoff", "th")}} {{unimplemented_inline("2212")}}.</li> + </ul> + + <p>El valor per defecte quan aquest atribut no està especificat és <code>left</code>.</p> + + <div class="note"><strong>Nota d'ùs: </strong> No utilitzeu aquest atribut, ja que és obsolet en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> o <span style="font-family: courier new;">justify</span> aplicar la propietat CSS {{cssxref("text-align")}} per l'atribut.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, donar a la propietat {{cssxref ("text-align")}} el mateix valor que utilitzaria per {{htmlattrxref("char", "th")}}. {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("axis")}} {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut conté una llista de cadenes separades per espais. Cada cadena és l'ID d'un grup de cel·les a les que s'aplica aquesta capçalera. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que és obsolet en l'últim estàndard: en el seu lloc utilitzar l'atribut {{htmlattrxref("scope", "th")}}.</div> + </dd> + <dt>{{htmlattrdef("bgcolor")}} {{Non-standard_inline}}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi hexadecimal de 6 dígits com es defineix en <a href="http://www.w3.org/Graphics/Color/sRGB" title="http://www.w3.org/Graphics/Color/sRGB">sRGB</a> prefixat per un '#'. Podeu utilitzar una de les setze cadenes de color predefinits: + <table> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>black</code> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>green</code> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>silver</code> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>lime</code> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>gray</code> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>olive</code> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>white</code> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>yellow</code> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>maroon</code> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>navy</code> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>red</code> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>blue</code> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>purple</code> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>teal</code> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>fuchsia</code> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><code>aqua</code> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que no és estàndard i només s'implementa en algunes versions de Microsoft Internet Explorer: L'element {{HTMLElement("th")}} se li ha de donar estil amb <a href="/en-US/docs/CSS" title="CSS">CSS</a>. Per donar un efecte similar utilitzeu la propietat <a href="/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref("background-color")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>El contingut d'una columna s'alinea amb un caràcter en l'element <code><th></code>. Els valors típics inclouen un punt (.) per alinear nombres o valors monetaris. Si {{htmlattrxref ("align", "th")}} no s'ha establert a <code>char</code>, aquest atribut s'ignora. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que no és suportat amb l'últim estàndard. Per aconseguir el mateix efecte en CSS3, podeu especificar el caràcter com a primer valor de la propietat {{cssxref ("text-align")}}{{unimplemented_inline}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("charoff")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut s'utilitza per desplaçar dades de la columna a la dreta del caràcter especificat per l'atribut char. El seu valor especifica la longitud d'aquest canvi. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que no és suportat amb l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("colspan")}}</dt> + <dd>Aquest atribut conté un valor enter positiu que indica sobre quantes columnes s'estén una cel·la. El seu valor per defecte és 1. Si el valor s'estableix a 0, la cel·la s'estén fins a l'últim element de {{HTMLElement ("colgroup")}}. Els valors superiors a 1000 es retallen fins a 1000.</dd> + <dt>{{htmlattrdef("headers")}}</dt> + <dd>Aquest atribut conté una llista de cadenes separades per espais, cadascuna de les quals correspon als atributs <code>id</code> d'altres elements {{HTMLElement ( "th")}} que es relacionen amb aquest element.</dd> + <dt>{{htmlattrdef("rowspan")}}</dt> + <dd>Aquest atribut conté un valor enter positiu que indica sobre quantes files s'estén a les cel·les. El seu valor per defecte és <code>1</code>. Si el valor s'estableix a <code>0</code>, la cel·la s'estén fins a l'últim element de les seccions de la taula ({{HTMLElement("thead")}}, {{HTMLElement("tbody")}} o {{HTMLElement("tfoot")}}). Els valors superiors a 65534 es retallen fins 65534.</dd> + <dt>{{htmlattrdef("scope")}}</dt> + <dd>Aquest atribut enumerat defineix les cel·les amb les que es relaciona la capçalera (definit en l'element {{HTMLElement("th")}}). Pot tenir els següents valors: + <ul> + <li><code>row</code>: La capçalera es relaciona amb totes les cel·les de la fila a què pertany.</li> + <li><code>col</code>: La capçalera es relaciona amb totes les cel·les de la columna al qual pertany.</li> + <li><code>rowgroup</code>: La capçalera pertany a un rowgroup i es relaciona amb totes les seves cel·les. Aquestes cel·les es poden col·locar a la dreta o l'esquerra de la capçalera, depenent del valor de l'atribut <code><a href="/en-US/docs/Web/HTML/Global_attributes/dir">dir</a></code> en l'element {{HTMLElement("table")}}.</li> + <li><code>colgroup</code>: La capçalera pertany a una colgroup i es relaciona amb totes les seves cel·les.</li> + <li><code>auto</code></li> + </ul> + </dd> + <dt>{{htmlattrdef("valign")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}</dt> + <dd>Aquest atribut especifica com un text s'alinea verticalment dins d'una cel·la. Els valors possibles per aquest atribut són: + <ul> + <li><code>baseline</code>: Posiciona el text a la part inferior de la cel·la i s'alinea amb la <a href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">línia de base (baseline)</a> dels caràcters en lloc de la part inferior. Si els caràcters no descendeixen per sota de la línia de base, el valor de la línea de base aconsegueix el mateix efecte que <code>bottom</code>.</li> + <li><code>bottom</code>: Posiciona el text a la part inferior de la cel·la.</li> + <li><code>middle</code>: Centre el text en la cel·la.</li> + <li>i <code>top</code>: Posiciona el text a la part superior de la cel·la.</li> + </ul> + + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que no és suportat amb l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref("vertical-align")}}.</div> + </dd> + <dt>{{htmlattrdef("width")}} {{Deprecated_inline}} in {{HTMLVersionInline(4.01)}}</dt> + <dd>Aquest atribut s'utilitza per definir l'amplada de cel·la recomanada. L'espai addicional es pot afegir amb les propietats <a href="/en-US/docs/Web/API/HTMLTableElement/cellSpacing">cellspacing</a> i <a href="/en-US/docs/Web/API/HTMLTableElement/cellPadding">cellpadding</a> i l'amplada de l'element {{HTMLElement ("col")}} també pot crear una amplada extra. Però, si l'ample d'una columna és massa estreta per mostrar correctament una cel·la en particular, aquesta s'ampliarà quan es mostri. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que no és suportat amb l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref("width")}}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLTableHeaderCellElement")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{HTMLElement("table")}} per exemples de <code><th></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>1.0</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>1.0</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure {{bug(915)}}.</p> + +<p>[2] Veure {{bug(2212)}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}}.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/thead/index.html b/files/ca/web/html/element/thead/index.html new file mode 100644 index 0000000000..0ec6807d4c --- /dev/null +++ b/files/ca/web/html/element/thead/index.html @@ -0,0 +1,189 @@ +--- +title: <thead> +slug: Web/HTML/Element/thead +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/thead +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML Capçalera de Taula</em> (<code><thead></code>) defineix un conjunt de files que defineixen el capçalera de les columnes de la taula.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en/HTML/Content_categories" title="en/HTML/Content categories">Categories de contingut</a></td> + <td>Cap.</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Zero o més elements {{ HTMLElement("tr") }}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>L'etiqueta d'inici és obligatòria . L'etiqueta final es pot ometre si l'element {{ HTMLElement("thead") }} és seguit immediatament per un {{ HTMLElement("tbody") }} o {{ HTMLElement("tfoot") }}.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Un element {{ HTMLElement("table") }}. L'element {{ HTMLElement("thead") }} ha d'aparèixer després de qualsevol {{ HTMLElement("caption") }} o {{ HTMLElement("colgroup") }} encara que estiguin definits implícitament, però abans de qualsevol {{ HTMLElement("tbody") }}, {{ HTMLElement("tfoot") }} i {{ HTMLElement("tr") }}.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-thead-element" rel="external nofollow" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-thead-element">HTML5, secció 4.9.6</a> (<a href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-THEAD" title="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-THEAD">HTML4.01, secció 11.2.3</a>)</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{ htmlattrdef("align") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline("4") }}, {{ obsolete_inline() }} in {{ HTMLVersionInline("5") }}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><code>left</code>, alinea el contingut a l'esquerra de la cel·la</li> + <li><code>center</code>, centra el contingut de la cel·la</li> + <li><code>right</code>, alinea el contingut a la dreta de la cel·la</li> + <li><code>justify</code>, inserta espais en el contingut textual de manera que el contingut es justifica en la cel·la</li> + <li><code>char</code>, alinea el contingut textual en un caràcter especial amb una desplaçament mínim definit per els atributs {{ htmlattrxref("char", "thead") }} i {{ htmlattrxref("charoff", "thead") }} {{ unimplemented_inline("2212") }}.</li> + </ul> + + <p>Si aquest atribut no està establert, el valor assumit és <code>left</code>.</p> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> or <span style="font-family: courier new;">justify</span> utilitzeu la propietat CSS {{ cssxref("text-align") }}.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, podeu utilitzar el valor {{ htmlattrxref("char", "thead") }} com el valor de la propietat {{ cssxref("text-align") }} {{ unimplemented_inline() }}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("bgcolor") }} {{ Non-standard_inline() }}</dt> + <dd>Aquest atribut defineix el color de fons de cada cel·la de la columna. És un codi hexadecimal de 6 dígits com es defineix en <a class="external" href="http://www.w3.org/Graphics/Color/sRGB" title="http://www.w3.org/Graphics/Color/sRGB">sRGB</a>, prefixat per un '#'. Podeu utilitzar una de les setze cadenes de color predefinits: + <table style="width: 80%;"> + <tbody> + <tr> + <td style="background-color: black; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">black</span> = "#000000"</td> + <td style="background-color: green; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">green</span> = "#008000"</td> + </tr> + <tr> + <td style="background-color: silver; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">silver</span> = "#C0C0C0"</td> + <td style="background-color: lime; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">lime</span> = "#00FF00"</td> + </tr> + <tr> + <td style="background-color: gray; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">gray</span> = "#808080"</td> + <td style="background-color: olive; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">olive</span> = "#808000"</td> + </tr> + <tr> + <td style="background-color: white; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">white</span> = "#FFFFFF"</td> + <td style="background-color: yellow; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">yellow</span> = "#FFFF00"</td> + </tr> + <tr> + <td style="background-color: maroon; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">maroon</span> = "#800000"</td> + <td style="background-color: navy; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">navy</span> = "#000080"</td> + </tr> + <tr> + <td style="background-color: red; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">red</span> = "#FF0000"</td> + <td style="background-color: blue; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">blue</span> = "#0000FF"</td> + </tr> + <tr> + <td style="background-color: purple; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">purple</span> = "#800080"</td> + <td style="background-color: teal; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">teal</span> = "#008080"</td> + </tr> + <tr> + <td style="background-color: fuchsia; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">fuchsia</span> = "#FF00FF"</td> + <td style="background-color: aqua; width: 24px; height: 24px; border-width: 1px; border-color: black; border-style: solid;"> </td> + <td><span style="font-family: courier new;">aqua</span> = "#00FFFF"</td> + </tr> + </tbody> + </table> + + <div class="note"><strong>Nota d'ùs: </strong> No utilitzeu aquest atribut, ja que no és estàndard i només s'implementa en algunes versions de Microsoft Internet Explorer: l'element {{ HTMLElement("thead") }} se li ha de donar estil amb <a href="/en/CSS" title="en/CSS">CSS</a>. Per donar un efecte similar a l'atribut <strong>bgcolor</strong>, utilitzeu la propietat <a href="/en/CSS" title="en/CSS">CSS</a> {{ cssxref("background-color") }}, en els elements pertinents {{ HTMLElement("td") }} o {{ HTMLElement("th") }}.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("char") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline("4") }}, {{ obsolete_inline() }} in {{ HTMLVersionInline("5") }}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna. Els valors típics d'això inclouen un punt (.) en intentar alinear els nombres o valors monetaris. Si {{ htmlattrxref("align", "tr") }} no està establert a <code>char</code>, aquest atribut s'ignora. + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard. Per aconseguir el mateix efecte que {{ htmlattrxref("char", "thead") }}, en CSS3, podeu utilitzar el joc de caràcters utilitzant l'atribut {{ htmlattrxref("char", "thead") }} com el valor de la propietat {{ cssxref("text-align") }} {{ unimplemented_inline() }}.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("charoff") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline("4") }}, {{ obsolete_inline() }} in {{ HTMLVersionInline("5") }}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters a desplaçar de les dades de la columna dels caràcters d'alineació especificats per l'atribut <strong>char</strong>. + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("valign") }} {{ Deprecated_inline() }} in {{ HTMLVersionInline("4") }}, {{ obsolete_inline() }} in {{ HTMLVersionInline("5") }}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada fila de cel·les de la capçalera de la taula. Els valors possibles per aquest atribut són: + <ul> + <li><span style="font-family: courier new;">baseline</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible, però alineant-ho en la <a href="http://en.wikipedia.org/wiki/Baseline_%28typography%29">línia de base (baseline)</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <span style="font-family: courier new;">bottom</span></li> + <li><span style="font-family: courier new;">bottom</span>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><span style="font-family: courier new;">middle</span>, centra el text en la cel·la;</li> + <li><span style="font-family: courier new;">top</span>, posarà el text tant a prop de la part superior de la cel·la com sigui possible.</li> + </ul> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard: en el seu lloc aplicar la propietat CSS {{ cssxref("vertical-align") }}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en/docs/Web/API/HTMLTableSectionElement" title="en/DOM/HTMLTableSectionElement">HTMLTableSectionElement</a></code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{ HTMLElement("table") }} per exemples de <code> <thead></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div> + + +<p>{{Compat("html.elements.thead")}}</p> +</div> + +<p> </p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{ HTMLElement("caption") }}, {{ HTMLElement("col") }}, {{ HTMLElement("colgroup") }}, {{ HTMLElement("table") }}, {{ HTMLElement("tbody") }}, {{ HTMLElement("td") }}, {{ HTMLElement("tfoot") }}, {{ HTMLElement("th") }}, {{ HTMLElement("tr") }};</li> + <li>Propietats CSS i pseudo-classes que poden ser especialment útils per a l'estil de l'element <span style="font-family: courier new;"><thead></span>: + <ul> + <li>la pseudo-classe {{ cssxref(":nth-child") }} per ajustar l'alineació de les cel·les de la columna;</li> + <li>la propietat {{ cssxref("text-align") }} per alinear el contingut de totes les cel·les en el mateix caràcter, com '.'. <</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/time/index.html b/files/ca/web/html/element/time/index.html new file mode 100644 index 0000000000..e61443dbf1 --- /dev/null +++ b/files/ca/web/html/element/time/index.html @@ -0,0 +1,167 @@ +--- +title: <time> +slug: Web/HTML/Element/time +tags: + - Element + - HTML + - HTML text-level semantics + - HTML5 + - Reference + - Web +translation_of: Web/HTML/Element/time +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<strong>element HTML <code><time></code></strong> representa un temps en un rellotge de 24 hores o una data precisa en el calendari gregorià (amb informació opcional sobre el temps i la zona horària).</p> + +<p>Aquest element està destinat a ser utilitzat per la presentació de dates i hores en un format llegible per la màquina. Això pot ser útil per als agents d'usuari que ofereixen qualsevol programació d'esdeveniments per al calendari de l'usuari. </p> + +<div class="note"><strong>Nota d'ùs: </strong>Aquest element no és adequat per als casos en què una data en concret no es pot calcular, ni ha de ser usat per a dates anteriors a la introducció del calendari gregorià (a causa de complicacions amb el càlcul d'aquestes dates).</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de continguts</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">Contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>Cap; Tant l'etiqueta d'inici com la final son obligatòries.</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLTimeElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Igual que tots els altres elements HTML, aquest element suporta els <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("datetime")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>indica l'hora</span> <span>i</span> <span>la data</span> <span>de l'element i</span> <span>ha de ser una</span> <span>data</span> <span>vàlida</span> <span>amb una cadena</span> <span>de temps</span> <span>opcional</span><span>.</span> <span>Si el valor</span> <span>no</span> <span>es</span> <span>pot</span> <span>analitzar</span> <span>com una</span> <span>data</span> <span>amb una cadena</span> <span>de temps</span> <span>opcional</span><span>, l'element</span> <span>no té una</span> <span>marca de temps</span> <span>associada.</span></span></dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Simple_example" name="Simple_example">Exemple senzill</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><p>The concert starts at <time>20:00</time>.</p> +</pre> + +<h4 id="Sortida">Sortida</h4> + +<p>{{ EmbedLiveSample('Simple_example', 250, 60) }}</p> + +<h3 id="Datetime_example" name="Datetime_example">exemple datetime</h3> + +<h4 id="HTML_2">HTML</h4> + +<pre class="brush: html"><p>The concert took place on <time datetime="2001-05-15T19:00">May 15</time>.</p> +</pre> + +<h4 id="Sortida_2">Sortida</h4> + +<p>{{ EmbedLiveSample('Datetime_example', 250, 60) }}</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', '#the-time-element', '<time>')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', 'grouping-content.html#the-time-element', '<time>')}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'grouping-content.html#the-time-element', '<time>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Definició inical.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>33.0</td> + <td>{{CompatGeckoDesktop("22.0")}}</td> + <td>9.0</td> + <td>22.0</td> + <td>7.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>2.1</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("22.0")}}</td> + <td>10.0</td> + <td>11.50<br> + Removed in 15.0</td> + <td>4.0-4.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>L'element {{HTMLElement("data")}}, permet senyalar altre classe de valors.</li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/tr/index.html b/files/ca/web/html/element/tr/index.html new file mode 100644 index 0000000000..c1e6605ad6 --- /dev/null +++ b/files/ca/web/html/element/tr/index.html @@ -0,0 +1,228 @@ +--- +title: <tr> +slug: Web/HTML/Element/tr +tags: + - Element + - HTML + - HTML tabular data + - Reference + - Tables + - Web +translation_of: Web/HTML/Element/tr +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>element HTML fila de taula</em> <code><tr></code> defineix una fila de cel·les d'una taula. Aquests poden ser una barreja de l'elements.{{HTMLElement("td")}} i {{HTMLElement("th")}}.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content categories">Categories de contingut</a></td> + <td>Cap</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Zero o més elements {{HTMLElement("td")}} o {{HTMLElement("th")}}, <span class="short_text" id="result_box" lang="ca"><span>o una barreja</span> <span>d'ells</span></span>.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>L'etiqueta d'inici és obligatòria. L'etiqueta final es pot ometre si l'element {{HTMLElement ("tr")}} és seguit immediatament per un element {{HTMLElement ("tr")}}, o si els elements del grup de taula pare ({{HTMLElement("thead")}}, {{HTMLElement("tbody")}} o {{HTMLElement("tfoot")}}) no tenen més contingut.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Elements {{HTMLElement("table")}}, {{HTMLElement("thead")}}, {{HTMLElement("tbody")}} o {{HTMLElement("tfoot")}}</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://www.whatwg.org/html/#the-tr-element">HTML, "El element <code>tr</code>"</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs global</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{htmlattrdef("align")}} {{deprecatedGeneric("inline","html4.01")}}, {{obsoleteGeneric("inline","html5")}}</dt> + <dd>Aquest atribut enumerat especifica com s'aplicarà l'alineació horitzontal del contingut de cada cel·la. Els valors possibles són: + <ul> + <li><code>left</code>, alinea el contingut a l'esquerra de la cel·les</li> + <li><code>center</code>, centra el contingut de la cel·les</li> + <li><code>right</code>, alinea el contingut a la dreta de la cel·les</li> + <li><code>justify</code>, inserta espais en el contingut textual de manera que el contingut es justifica en les cel·les</li> + <li><code>char</code>, alinea el contingut textual en un caràcter especial amb una desplaçament mínim definit per els atributs {{htmlattrxref("char", "tr")}} {{htmlattrxref("charoff", "tr")}} {{unimplemented_inline("2212")}}</li> + </ul> + + <p><span id="result_box" lang="ca"><span>Si aquest</span> <span>atribut</span> <span>no està</span> <span>establert,</span> <span>s'hereta</span> <span>el valor del</span> <span>node</span> <span>pare</span></span>.</p> + + <div class="note"><strong>Nota: </strong> No utilitzeu aquest atribut, ja que és obsolet (no suportat) en l'últim estàndard. + + <ul> + <li>Per aconseguir el mateix efecte que els valors <span style="font-family: courier new;">left</span>, <span style="font-family: courier new;">center</span>, <span style="font-family: courier new;">right</span> or <span style="font-family: courier new;">justify</span> utilitzeu la propietat CSS {{cssxref("text-align")}}.</li> + <li>Per aconseguir el mateix efecte que el valor <code>char</code>, en CSS3, podeu utilitzar el valor de {{htmlattrxref("char", "tr")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</li> + </ul> + </div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("bgcolor")}} {{deprecatedGeneric("inline","html4.01")}}, {{obsoleteGeneric("inline","html5")}}</dt> + <dd><span id="result_box" lang="ca"><span>Aquest</span> <span>atribut</span> <span>defineix</span> <span>el color de fons</span> <span>de cada cel·la</span> <span>de la fila.</span> <span>Pot ser</span> <span>un </span></span><a href="/en-US/docs/CSS/color_value#HTML.2fSVG.2fX11.c2.a0_Color_Keywords" title="CSS/color value#HTML.2fSVG.2fX11.c2.a0 Color Keywords">codi #RRGGBB</a> o una <a href="/#HTML.2fSVG.2fX11.c2.a0_Color_Keywords" title="#HTML.2fSVG.2fX11.c2.a0 Color Keywords">paraula clau color SVG</a>. + <div class="note"><strong>Nota d'ùs: </strong>l'element {{HTMLElement("tr")}} se li ha de donar estil amb <a href="https://developer.mozilla.org/en-US/docs/CSS" title="CSS">CSS</a> . Per donar un efecte similar a l'atribut <strong>bgcolor</strong>, utilitzeu la propietat <a href="https://developer.mozilla.org/en-US/docs/CSS" title="CSS">CSS</a> {{cssxref ("background-color")}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("char")}} {{deprecatedGeneric("inline","html4.01")}}, {{obsoleteGeneric("inline","html5")}}</dt> + <dd>Aquest atribut s'utilitza per establir el caràcter per alinear les cel·les d'una columna. Els valors típics d'això inclouen un punt (.) en intentar alinear els números o valors monetaris. Si {{htmlattrxref("align", "tr")}} no està establert a <code>char</code>, aquest atribut s'ignora + <div class="note"><strong>Nota: </strong> <strong> </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard. Per aconseguir el mateix efecte que {{htmlattrxref("char", "tr")}}, en CSS3, podeu utilitzar el joc de caràcters utilitzant l'atribut {{htmlattrxref("char", "tr")}} com el valor de la propietat {{cssxref("text-align")}} {{unimplemented_inline}}.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("charoff")}} {{deprecatedGeneric("inline","html4.01")}}, {{obsoleteGeneric("inline","html5")}}</dt> + <dd>Aquest atribut s'utilitza per indicar el nombre de caràcters a desplaçar de les dades de la columna dels caràcters d'alineació especificats per l'atribut <code>char</code>. + <div class="note"><strong>Nota: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard.</div> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("valign")}} {{deprecatedGeneric("inline","html4.01")}}, {{obsoleteGeneric("inline","html5")}}</dt> + <dd>Aquest atribut especifica l'alineació vertical del text dins de cada fila de cel·les de la capçalera de la taula. Els valors possibles per aquest atribut són: + <ul> + <li><code>baseline</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible, però alineant-ho en la <a class="external" href="http://en.wikipedia.org/wiki/Baseline_%28typography%29" title="http://en.wikipedia.org/wiki/Baseline_(typography)">línia de base (baseline)</a> dels caràcters en lloc de la part inferior d'ells. Si els caràcters són tots de la mida, això té el mateix efecte que <span style="font-family: courier new;">bottom</span>.</li> + <li><code>bottom</code>, posarà el text tan a prop de la part inferior de la cel·la com sigui possible;</li> + <li><code>middle</code>, centra el text en la cel·la;</li> + <li>i <code>top</code>, posarà el text tant a prop de la part superior de la cel·la com sigui possible.</li> + </ul> + + <div class="note"><strong>Note: </strong>No utilitzeu aquest atribut, ja que és obsolet (i no està suportat) en l'últim estàndard: en el seu lloc aplicar la propietat CSS {{cssxref("vertical-align")}}.</div> + </dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLTableRowElement")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Veure {{HTMLElement("table")}} per exemples de <code><tr></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>1.0</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>1.0</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut <code>align/valign</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>char/charoff</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>bgcolor</code> {{Non-standard_inline}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Veure {{bug(915)}}.</p> + +<p>[2] Veure {{bug(2212)}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb taules: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}};</li> + <li>Propietats CSS i pseudo-classes que poden ser especialment útils per a l'estil de l'element <code><tr></code>: + <ul> + <li>la pseudo-classe {{cssxref(":nth-child")}} per ajustar l'alineació de les cel·les de la columna;</li> + <li>la propietat {{cssxref("text-align")}} per alinear el contingut de totes les cel·les en el mateix caràcter, com '.'.<</li> + </ul> + </li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/track/index.html b/files/ca/web/html/element/track/index.html new file mode 100644 index 0000000000..024b2cbe3b --- /dev/null +++ b/files/ca/web/html/element/track/index.html @@ -0,0 +1,233 @@ +--- +title: <track> +slug: Web/HTML/Element/track +tags: + - Element + - HTML + - HTML embedded content + - HTML5 + - Multimedia + - Reference + - Web +translation_of: Web/HTML/Element/track +--- +<p>L'<strong>element HTML <code><track></code></strong> s'utilitza com un fill dels elements de mitjans - {{HTMLElement("audio")}} i {{HTMLElement("video")}}. Se li permet especificar pistes de text temporitzat (o dades basades en el temps), per exemple per gestionar automàticament els subtítols. Les pistes estan formatades en format WebVTT (arxius .vtt) - Web Video Text Tracks.</p> + +<p>El tipus de dades que track afegeix al mitjà s'estableix en l'atribut Kind, que pot prendre els valors de <code>subtitles</code>, <code>captions</code>, <code>descriptions</code>, <code>chapters</code> o <code>metadata</code>. L'element apunta a un arxiu d'origen que conté text temporitzat que l'explorador exposa quan l'usuari sol·licita dades addicionals.</p> + +<p>Un element de mitjans no pot tenir més d'un <code>track</code> amb el mateix <code>kind</code>, <code>srclang</code> i <code>label</code>.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Categories de contingut</td> + <td>Cap</td> + </tr> + <tr> + <td>Contingut permès</td> + <td>Cap, es un {{Glossary("empty element")}}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td><span id="result_box" lang="ca"><span>Ja</span> <span>que és un</span> <span>element</span> <span>buit,</span> <span>l'etiqueta</span> <span>d'inici</span> <span>ha d'estar present</span> <span>i</span> <span>l'etiqueta</span> <span>final</span> <span>no ha d'estar</span> <span>present.</span></span></td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Un element de mitjans, abans de qualsevol <a href="/en-US/docs/HTML/Content_categories#Flow_content">contingut dinàmic</a>.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://dev.w3.org/html5/spec/Overview.html#the-track-element" rel="external nofollow">HTML5, secció 4.8.9</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("default")}}</dt> + <dd>Aquest atribut indica que la pista ha d'estar habilitada llevat que les preferències de l'usuari indiquin que una altra pista és més apropiada. Això només es pot utilitzar en un element track per cada element de mitjans.</dd> + <dt>{{htmlattrdef("kind")}}</dt> + <dd>Com s'utilitza la pista (track) de text. Si s'omet kind, per defecte és <code>subtitles</code>. Si l'atribut no està present, s'utilitzen els <code>subtitles</code>. Si l'atribut conté un valor no vàlid, s'utilitzarà metadata. (Les versions de Chrome anterios a la 52 tracta un valor no vàlid com <code>subtitles</code>.) Es permeten les següents paraules clau: + <ul> + <li><code>subtitles</code> + <ul> + <li>Subtitles proporciona traducció dels continguts que no poden ser entesos per l'espectador. Per exemple el diàleg o text que no és l'anglès en un pel·lícula de parla anglès.</li> + <li>Els subtítols poden incloure contingut addicional, en general informació de fons addicional. Per exemple el text en el començament de les pel·lícules de Star Wars, o la data, hora i lloc de l'escena.</li> + </ul> + </li> + <li><code>captions</code> + <ul> + <li>Subtítols que proporcionen una transcripció i possiblement una traducció d'àudio.</li> + <li>Pot incloure informació no verbal important, com ara pistes de música o efectes de so. Es pot indicar la font de la senyal (per exemple, música, text, caràcter).</li> + <li>Adequat per a usuaris sords o quan el so és silenciat.</li> + </ul> + </li> + <li><code>descriptions</code> + <ul> + <li>Descripció textual del contingut del vídeo.</li> + <li>Adequat per als usuaris que són cecs o que el vídeo no es pot veure.</li> + </ul> + </li> + <li><code>chapters</code> + <ul> + <li>Títols dels capítols que estan destinats a ser utilitzats quan l'usuari està navegant per el recurs dels mitjans.</li> + </ul> + </li> + <li><code>metadata</code> + <ul> + <li><span id="result_box" lang="ca"><span>Pistes</span> <span>utilitzades pels</span> <span>scripts.</span> <span>No</span> <span>visible per a l'</span><span>usuari.</span></span></li> + </ul> + </li> + </ul> + </dd> + <dt>{{htmlattrdef("label")}}</dt> + <dd>Un títol llegible per l'usuari de la pista de text que és utilitzada pel navegador quan s'enumeren les pistes de text disponibles.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd><span id="result_box" lang="ca"><span>Direcció</span> <span>de la pista</span> <span>(</span><span>arxiu</span> <code><span>.vtt</span></code><span>)</span><span>.</span> <span>Ha de ser</span> <span>un URL vàlid</span><span>.</span> <span>Aquest</span> <span>atribut</span> <span>s'ha de definir</span><span>.</span></span></dd> + <dt>{{htmlattrdef("srclang")}}</dt> + <dd>Idioma de les dades de text de la pista. Ha de ser una etiqueta d'idioma <a href="http://people.w3.org/rishida/utils/subtags/">BCP 47</a> vàlida. Si s'estableix l'atribut <code>kind</code> en els <code>subtitles</code>, llavors <code>srclang</code> ha de ser definit.</dd> +</dl> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref("HTMLTrackElement")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><video controls <span class="highATT">poster=</span><span class="highVAL">"/images/sample.gif"</span>> +<span class="highLT"> <</span><span class="highELE">source</span> <span class="highATT">src=</span><span class="highVAL">"sample.mp4"</span> <span class="highATT">type=</span><span class="highVAL">"video/mp4"</span><span class="highGT">></span> + <source src="sample.ogv" type="video/ogv"> + <track kind="captions" src="sampleCaptions.vtt" srclang="en"> + <track kind="descriptions" src="sampleDescriptions.vtt" srclang="en"> + <track kind="chapters" src="sampleChapters.vtt" srclang="en"> + <track kind="subtitles" src="sampleSubtitles_de.vtt" srclang="de"> + <track kind="subtitles" src="sampleSubtitles_en.vtt" srclang="en"> + <track kind="subtitles" src="sampleSubtitles_ja.vtt" srclang="ja"> + <track kind="subtitles" src="sampleSubtitles_oz.vtt" srclang="oz"> + <track kind="metadata" src="keyStage1.vtt" srclang="en" label="Key Stage 1"> + <track kind="metadata" src="keyStage2.vtt" srclang="en" label="Key Stage 2"> + <track kind="metadata" src="keyStage3.vtt" srclang="en" label="Key Stage 3"> + <!-- Fallback --> + ... +</video> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("HTML5 W3C", "embedded-content-0.html#the-track-element", "<track>")}}</td> + <td>{{Spec2("HTML5 W3C")}}</td> + <td>Definció incial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>23</td> + <td>{{CompatGeckoDesktop(24)}}<sup>[2]</sup></td> + <td>10</td> + <td>12.10</td> + <td>6</td> + </tr> + <tr> + <td>atribut <code>src</code> ajustable</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop(50)}}<sup>[3]</sup></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Valor</span> </span><strong>kind </strong><span class="short_text" lang="ca"><span>no vàlid</span> <span>com</span> </span><code>metadata</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>25<sup>[1]</sup></td> + <td>{{CompatGeckoMobile(24)}}<sup>[2]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>atribut <code>src</code> ajustable</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(50)}}<sup>[3]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><span class="short_text" id="result_box" lang="ca"><span>Valor</span> </span><strong>kind </strong><span class="short_text" lang="ca"><span>no vàlid</span> <span>com</span> </span><code>metadata</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1]En Chrome per Android, l'element <code><track></code> encara no funciona per vídeo a pantalla completa .</p> + +<p>[2] L'element <code><track></code>, la interfície {{domxref("HTMLTrackElement")}}, i les API associades es van dur a terme en Firefox 24 darrere de la preferència {{pref("media.webvtt.enabled")}}, està desactivat per defecte . Per habilitar el suport WebVTT, establir aquesta preferència en <code>true</code>. WebVTT està activat per defecte a partir del Firefox 31 i es pot desactivar establint la preferència a <code>false</code>.</p> + +<p>[3] Fins a Firefox 50, l'atribut {{htmlattrxref ("src")}} és configurable, però el canvi no aconsegueix manejar-ho adequadament. A partir de Firefox 50, les dades de pista existents s'eliminen correctament, les noves dades de pista es carreguen i es posen en execució, i així successivament.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/HTML/WebVTT">Format de la pista de text WebVTT</a></li> +</ul> + +<p>{{HTMLRef}}</p> diff --git a/files/ca/web/html/element/tt/index.html b/files/ca/web/html/element/tt/index.html new file mode 100644 index 0000000000..d4dc66637a --- /dev/null +++ b/files/ca/web/html/element/tt/index.html @@ -0,0 +1,58 @@ +--- +title: <tt> +slug: Web/HTML/Element/tt +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/tt +--- +<div>{{ obsolete_header() }}</div> + +<h2 id="Sumari">Sumari</h2> + +<p>L'element HTML de text teletip (<code><tt></code>) produeix un element en línia que es mostra amb la font monotip predeterminada del navegador. Aquest element tenia la intenció de donar un estil de text com es mostrar en una pantalla d'amplada fixa, tal com un teletip. Probablement és més comú mostrar el tipus d'amplada fixa utilitzant l'element {{ HTMLElement("code") }}.</p> + +<div class="note">Aquest element és obsolet. Utilitzeu un element més apropiat, com {{ HTMLElement("code") }} o {{ HTMLElement("span") }} amb CSS, al seu lloc.</div> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element no té altres atributs que els <a href="/en-US/docs/Web/HTML/global_attributes" title="HTML/global attributes">atributs globals</a>, comuns a tots els elements.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref('HTMLElement')}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa la interfície {{domxref('HTMLSpanElement')}} per a aquest element.</p> +</div> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><p>Enter the following at the telnet command prompt: <code>set localecho</code><br /> + +The telnet client should display: <tt>Local Echo is on</tt></p> +</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>Enter the following at the telnet command prompt: <code>set localecho</code><br> + The telnet client should display: <code>Local Echo is on</code></p> + +<h2 id="Notes" name="Notes">Notes</h2> + +<ul> + <li>Una regla CSS es pot definir per al selector <code>tt</code> per anul·lar la font per defecte del navegador. Les preferències establertes per l'usuari poden tenir prioritat sobre la CSS especificada.</li> + <li>Encara que aquest element no està desaprovat en l'especificació HTML 4.01, evitar el seu ús en favor de les fulles d'estil.</li> +</ul> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>{{ HTMLElement("code") }}</li> + <li>Especificació HTML 4.01 : <a class="external" href="http://www.w3.org/TR/html4/present/graphics.html#h-15.2">Font Styles</a></li> +</ul> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/u/index.html b/files/ca/web/html/element/u/index.html new file mode 100644 index 0000000000..bbf2de67a2 --- /dev/null +++ b/files/ca/web/html/element/u/index.html @@ -0,0 +1,99 @@ +--- +title: <u> +slug: Web/HTML/Element/u +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/u +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'<em>Element HTML Subratllat</em> (<code><u></code>) representa el text amb un subratllat, una línia sota la línia de base del seu contingut.</p> + +<p>En HTML5, aquest element representa un fragment de text no estructurat, encara que explícitament representat com una anotació no textual, alguna cosa així com etiquetar el text com un nom propi en el text xinès (una marca de nom propi xinès), o etiquetar el text com mal escrit.</p> + +<div class="note"><strong>Nota d'ùs: </strong>Igual que amb tots els elements purament d'estil, {{ HTMLElement("u") }} ha estat desaprovat en HTML 4 i XHTML 1, però s'ha tornat a introduir en HTML5 amb altres semàntiques. Si voleu subratllar el text d'una manera no-semàntica, s'ha d'utilitzar un element {{ HTMLElement("span") }}, o un altre element semànticament apropiat, i l'estil, amb la propietat <a href="/en/CSS" title="en/CSS">CSS</a> {{ cssxref("text-decoration") }} amb el valor <span style="font-family: courier new;">underline</span>.</div> + +<h2 id="Context_d'Ùs">Context d'Ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">contingut textual</a>, contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">Contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">contingut textual</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLElement")}} Fins Gecko 1.9.2 (Firefox 4) inclos, Firefox implementa la interfície {{domxref("HTMLSpanElement")}} per aquest element.</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Notes_i_Consells"><span class="short_text" id="result_box" lang="ca"><span>Notes</span> <span>i</span> </span> Consells</h2> + +<p style="line-height: 21px;"><strong>Consell:</strong> Evitar l'ús de l'element {{ HTMLElement("u") }} que podria ser confós per un enllaç.</p> + +<div class="note"> +<p><span style="line-height: 21px;"><strong>Nota:</strong> </span>L'especificació HTML 5 recorda als desenvolupadors que hi ha altres elements més apropiats que {{ HTMLElement("u") }}.</p> +</div> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en/DOM/element" title="en/DOM/element">HTMLElement</a></code>.</p> + +<div class="note"><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa la interfície {{ domxref("HTMLSpanElement") }} per aquest element.</div> + +<h2 id="Exemple">Exemple</h2> + +<div class="note"> +<p>Els següents exemples són de l'elements que es poden utilitzar en lloc de {{ HTMLElement("u") }}.</p> +</div> + +<pre class="brush: html"><u>Today's Special</u>: Salmon<br /> +<span style="text-decoration:underline;">Today's Special</span>: Salmon +<!-- Here <span> is used as the underlining is purely decorative and it is applied with CSS --> +</pre> + +<p><u>Today's Special</u>: Salmon</p> + +<p><u>Today's Special</u>: Salmon</p> + +<pre class="brush: html"><p><u>All</u> of that is explained in <u>Dive into Python</u></p> +<p><em>All</em> of that is explained in <i>Dive into Python</i></p> +<!-- Here the "All" is marked as stressed, using <em>, while "Dive into Python" is marked as a name using <i> --> </pre> + +<p><u>All</u> of that is explained in <u>Dive into Python</u>.</p> + +<p><em>All</em> of that is explained in<em> Dive into Python</em>.</p> + +<p>A causa de que l'estil per defecte de {{ HTMLElement("em") }} i {{ HTMLElement("i") }} es mostra en cursiva, no obstant això es pot utilitzar CSS per donar estil aquest elements que tinguin un estil de font normal i subratllat.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Els elements {{ HTMLElement("span") }}, {{ HTMLElement("i") }}, {{ HTMLElement("em") }} i {{ HTMLElement("cite") }} <span id="result_box" lang="ca"><span>són</span><span>, segons el cas</span><span>, per a ser</span> <span>utilitzat</span> <span>al seu lloc.</span></span></li> + <li>La propietat CSS {{ cssxref("text-decoration") }} <span id="result_box" lang="ca"><span>es va a</span> <span>utilitzar</span> <span>per aconseguir el primer</span> <span>aspecte visual</span> <span>de</span></span> l'element {{ HTMLElement("u") }} .</li> +</ul> + +<p>{{ languages({"ja":"ja/HTML/Element/u","en":"en/HTML/Element/u"}) }}</p> + +<div>{{ HTMLRef }}</div> diff --git a/files/ca/web/html/element/ul/index.html b/files/ca/web/html/element/ul/index.html new file mode 100644 index 0000000000..d05eef98c9 --- /dev/null +++ b/files/ca/web/html/element/ul/index.html @@ -0,0 +1,181 @@ +--- +title: <ul> +slug: Web/HTML/Element/ul +tags: + - Element + - HTML + - HTML grouping content + - Reference +translation_of: Web/HTML/Element/ul +--- +<p>L'<strong>element HTML</strong> (<em>llista desordenada</em>) <strong><code><ul></code></strong> representa una llista desordenada d'elements, és a dir, un recull d'elements que no tenen un ordre numèric, i el seu ordre a la llista no té sentit. En general, els elements d'una llista desordenada es mostren amb una vinyeta, que pot ser de diverses formes, com un punt, un cercle o un quadrat. L'estil de la vinyeta no està definit en la descripció HTML de la pàgina, sinó en la seva CSS associada, mitjançant la propietat {{ cssxref("list-style-type") }}.</p> + +<p>No hi ha limitació en la profunditat i l'alternança de les llistes niades definides amb els elements {{ HTMLElement("ol") }} i {{ HTMLElement("ul") }}.</p> + +<div class="note"><strong>Nota d'ùs: </strong> Els elements {{ HTMLElement("ol") }} i {{ HTMLElement("ul") }} ambdós representen una llista d'elements. Es diferencien en que, amb l'element {{HTMLElement ("ol")}}, l'ordre és significatiu. Com a regla general per determinar quin d'ells utilitzar, tracteu de canviar l'ordre dels elements de la llista; si canvia el significat teniu que utilitzar l'element {{ HTMLElement("ol") }}, en cas contrari podeu usar {{ HTMLElement("ul") }}.</div> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <td><a href="/en/HTML/Content_categories" title="en/HTML/Content categories">Categories de contingut</a></td> + <td><a href="/en/HTML/Content_categories#flow_content" title="en/HTML/Content categories#Flow content">Contingut dinàmic</a></td> + </tr> + <tr> + <td>Contingut permès</td> + <td>zero o més elements {{ HTMLElement("li") }}, <span id="result_box" lang="ca"><span>que al seu torn</span> <span>contenen sovint</span> <span>niats</span></span> elements {{ HTMLElement("ol") }} o {{ HTMLElement("ul") }}.</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>cap, tant l'etiqueta inicial com l'etiqueta final són obligatories</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti contingut dinàmic</td> + </tr> + <tr> + <td>Interfície DOM</td> + <td>{{domxref("HTMLUListElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<dl> +</dl> + +<p>Aquest element inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<dl> + <dt>{{ htmlattrdef("compact") }}{{ Deprecated_inline() }}</dt> + <dd>Aquest atribut booleà dona entendre que la llista hauria de representar-se en un estil compacte. La interpretació d'aquest atribut depèn de l'agent d'usuari i no funciona en tots els navegadors. + <div class="note"><strong>Nota d'ùs: </strong>No utilitzeu aquest atribut, ja que ha quedat en desús: l'element {{ HTMLElement("ul") }} s'ha de donar estil amb <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> . Per donar un efecte similar com l'atribut <code>compact</code>, la propietat <a href="https://developer.mozilla.org/en/CSS" title="en/CSS">CSS</a> <a href="https://developer.mozilla.org/en/CSS/line-height" title="en/CSS/line-height">line-height</a> es pot utilitzar amb un valor del 80%.</div> + </dd> +</dl> + +<dl> + <dt>{{ htmlattrdef("type") }}{{ Deprecated_inline() }}</dt> + <dd>S'utilitza per definir l'estil de vinyeta de la llista. Els valors definits en <a href="/en/HTML3.2" title="en/HTML3.2">HTML3.2</a> i la versió de transició d'<a href="/en/HTML4.01" title="en/HTML4.01">HTML 4.0/4.01</a> són<span style="font-family: monospace;">:</span> + <ul> + <li><code>circle</code>,</li> + <li><code>disc</code>,</li> + <li>and <code>square</code>.</li> + </ul> + + <p>Un quart tipus de vinyeta s'ha definit en la interfície WebTV, però no tots els navegadors el suporten: <code>triangle.</code></p> + + <p>Si no està present i no s'aplica la propietat CSS {{ cssxref("list-style-type") }} a l'element, l'agent d'usuari pot decidir utilitzar un tipus de vinyetes depenent del nivell d'anidament de la llista.</p> + + <div class="note"><strong>Nota d'ùs:</strong> No utilitzeu aquest atribut, ja que ha quedat desaprovat; utilitzeu la propietat CSS {{ cssxref("list-style-type") }} en el seu lloc.</div> + </dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<pre class="brush: html"><ul> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ul> +</pre> + +<p>Sortida de l'anterior HTML:</p> + +<ul> + <li>first item</li> + <li>second item</li> + <li>third item</li> +</ul> + +<h3 id="Llistes_niades">Llistes niades</h3> + +<pre class="brush: html"><ul> + <li>first item</li> + <li>second item <!-- Look, the closing </li> tag is not placed here! --> + <ul> + <li>second item first subitem</li> + <li>second item second subitem <!-- Same for the second nested unordered list! --> + <ul> + <li>second item second subitem first sub-subitem</li> + <li>second item second subitem second sub-subitem</li> + <li>second item second subitem third sub-subitem</li> + </ul> + </li> <!-- Closing </li> tag for the li that contains the third unordered list --> + <li>second item third subitem</li> + </ul> + </li> <!-- Here is the closing </li> tag --> + <li>third item</li> +</ul></pre> + +<p>Sortida de l'anterior HTML:</p> + +<ul> + <li>first item</li> + <li>second item + <ul> + <li>second item first subitem</li> + <li>second item second subitem + <ul style=""> + <li>second item second subitem first sub-subitem</li> + <li>second item second subitem second sub-subitem</li> + <li>second item second subitem third sub-subitem</li> + </ul> + </li> + + <li>second item third subitem</li> + </ul> + </li> + + <li>third item</li> +</ul> + +<h3 id="Niar_<ul>_i_<ol>">Niar <ul> i <ol></h3> + +<pre class="brush: html"><ul> + <li>first item</li> + <li>second item <!-- Look, the closing </li> tag is not placed here! --> + <ol> + <li>second item first subitem</li> + <li>second item second subitem</li> + <li>second item third subitem</li> + </ol> + </li> <!-- Here is the closing </li> tag --> + <li>third item</li> +</ul> +</pre> + +<p>Sortida de l'anterior HTML:</p> + +<ul> + <li>first item</li> + <li>second item + <ol> + <li>second item first subitem</li> + <li>second item second subitem</li> + <li>second item third subitem</li> + </ol> + </li> + <li>third item</li> +</ul> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Altres elements HTML relacionats amb llistes: {{ HTMLElement("ol") }}, {{ HTMLElement("li") }}, {{ HTMLElement("menu") }} i el obsolet {{ HTMLElement("dir") }};</li> + <li><span id="result_box" lang="ca"><span>Propietats CSS</span> <span>que poden ser</span> <span>especialment</span> <span>útils</span> <span>per a l'estil</span> <span>de l'element</span> <span><</span><span>ul</span><span>></span><span>:</span></span> + <ul> + <li>la propietat <a href="/en/CSS/list-style" title="en/CSS/list-style">list-style</a>, útil per triar la forma en què es mostra l'ordinal,</li> + <li><a href="/en/CSS_Counters" title="en/CSS_Counters">CSS counters</a>, <span id="result_box" lang="ca"><span>útil per</span> <span>gestionar</span> <span>llistes</span> <span>niades</span> <span>complexes,</span></span></li> + <li>la propietat <a href="/en/CSS/line-height" title="en/CSS/line-height">line-height</a>, <span id="result_box" lang="ca"><span>útil</span> <span>per simular</span> l'atribut obsolet </span>{{ htmlattrxref("compact", "ul") }},</li> + <li>la propietat <a href="/en/CSS/margin" title="en/CSS/margin">margin</a>, <span id="result_box" lang="ca"><span>útil</span> <span>per controlar</span> la </span> sagnia <span lang="ca"><span> de la</span> <span>llista</span></span>.</li> + </ul> + </li> +</ul> + +<p>{{ languages({ "en":"en/HTML/Element/ul", "de":"de/HTML/Element/ul", "ja":"ja/HTML/Element/ul", "pl":"pl/HTML/Element/ul"}) }}</p> + +<p>{{ HTMLRef }}</p> diff --git a/files/ca/web/html/element/var/index.html b/files/ca/web/html/element/var/index.html new file mode 100644 index 0000000000..9c71f48417 --- /dev/null +++ b/files/ca/web/html/element/var/index.html @@ -0,0 +1,65 @@ +--- +title: <var> +slug: Web/HTML/Element/var +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/var +--- +<h2 id="Sumari">Sumari</h2> + +<p>L'Element HTML variable (<code><var></code>) representa una variable en una expressió matemàtica o un context de programació.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Contingut permès</td> + <td>Contingut textual</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>Ambdos requereixen etiqueta d'inici i final.</td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">contingut textual</a>.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a href="http://www.whatwg.org/html/#the-var-element">HTML, El element <code>var</code>"</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els<span style="line-height: 21px;"> </span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">atributs globals</a><span style="line-height: 21px;">.</span></p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/DOM/element" title="DOM/element">HTMLElement</a></code>.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclos, Firefox implementa la interfície <a href="/en-US/docs/DOM/span" title="DOM/span"><span style="font-family: courier new;">HTMLSpanElement</span></a> per aquest element.</p> +</div> + +<h2 id="Propietats_típiques_de_l'estil_per_defecte"><span class="short_text" id="result_box" lang="ca"><span>P</span><span>ropietats</span> <span>típiques</span> <span>de l'estil</span> <span>per defecte</span></span></h2> + +<pre class="brush:css">var { + font-style: italic; +} +</pre> + +<h2 id="Exemple">Exemple</h2> + +<pre class="brush:html"><p> A simple equation: <var>x</var> = <var>y</var> + 2 </p> +</pre> + +<p>A simple equation: <var>x</var> = <var>y</var> + 2</p> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/element/video/index.html b/files/ca/web/html/element/video/index.html new file mode 100644 index 0000000000..50633f0855 --- /dev/null +++ b/files/ca/web/html/element/video/index.html @@ -0,0 +1,394 @@ +--- +title: <video> +slug: Web/HTML/Element/video +tags: + - Element + - HTML + - HTML embedded content + - HTML5 + - Media + - Multimedia + - NeedsMobileBrowserCompatibility + - Reference + - Web +translation_of: Web/HTML/Element/video +--- +<p>{{HTMLRef}}</p> + +<p>L'<strong>element HTML <code><vídeo></code></strong> s'utilitza per incrustar el contingut d'un vídeo en un document. L'element video conté una o més fonts de vídeo. Per especificar una font de vídeo, utilitzeu l'atribut <code>src</code> o l'element {{HTMLElement("source")}}; el navegador escollirà el més adequat.</p> + +<p>Per obtenir una llista de formats compatibles, consulteu <a href="/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements">Format dels mitjans admesos pels elements audio i video</a>.</p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Flow_content">Contingut dnàmic</a>, contingut textual, contingut incrustat. Si té un atribut {{htmlattrxref("controls", "video")}}: contingut interactiu i contingut palpable.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td> + <p>Si l'element té un atribut {{htmlattrxref("src", "video")}}: zero o més elements {{HTMLElement ("track")}}, seguit pel contingut transparent que no conté elements mitjà - que no són {{HTMLElement("audio")}} o {{HTMLElement("video")}}</p> + + <p>Llavors: zero o més elements {{HTMLElement("source")}}, seguit de zero o més elements {{HTMLElement("track")}}, seguits pel contingut transparent que no conté elements mitjà - que no són {{HTMLElement("audio")}} o {{HTMLElement("video")}}.</p> + </td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti contingut incrustat.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLVideoElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p><span id="result_box" lang="ca"><span>Igual</span> <span>que tots els altres</span> <span>elements</span> <span>HTML</span><span>, aquest element</span> <span>és compatible</span> <span>amb</span> <span>els</span></span> <a href="/en-US/docs/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("autoplay")}}</dt> + <dd><span id="result_box" lang="ca"><span>Un atribut</span> <span>booleà</span><span>;</span> <span>si</span> <span>s'especifica,</span> <span>el vídeo</span> <span>comença</span> <span>a reproduir-se</span> <span>automàticament</span> <span>tan aviat</span> <span>com pugui</span> <span>fer-ho sense</span> <span>aturar-se per</span> <span>acabar de</span> <span>carregar</span> <span>les dades.</span></span></dd> + <dd> + <pre>Note: Some versions of Chrome only acknowledge <strong><code>autostart</code></strong>, rather than <strong><code>autoplay</code></strong></pre> + </dd> +</dl> + +<dl> + <dt>{{htmlattrdef("buffered")}}</dt> + <dd>Un atribut que pot llegir per determinar els intervals de temps dels mitjans emmagatzemats en búfer. Aquest atribut conté un objecte {{domxref ("TimeRanges")}}.</dd> + <dt>{{htmlattrdef("controls")}}</dt> + <dd><span id="result_box" lang="ca"><span>Si aquest</span> <span>atribut</span> <span>és present, el</span> <span>navegador ofereix</span> <span>controls</span> <span>per</span> <span>permetre a l'usuari</span> <span>controlar la reproducció</span> <span>de vídeo, incloent</span> <span>el volum,</span> <span>recerca</span> <span>i pausa</span><span>/reprendre</span> <span>la reproducció.</span></span></dd> + <dt>{{htmlattrdef("crossorigin")}}</dt> + <dd>Aquest atribut enumerat indica si s'ha d'utilitzar CORS per recuperar la imatge relacionada. Recursos habilitats per CORS poden ser reutilitzats en l'element {{HTMLElement("canvas")}} sense ser contaminada. Els valors permesos són: + <dl> + <dt>anonymous</dt> + <dd>Envia una petició d'origen creuat sense una credencial. En altres paraules, s'envia a l'origen: capçalera HTTP sense una cookie, certificat X.509, o l'autenticació bàsica HTTP. Si el servidor no dóna credencials al lloc d'origen (si no s'estableix l'Access-Control-Allow-Origin: capçalera HTTP), la imatge quedarà contaminada i el seu ús restringit.</dd> + <dt>use-credentials</dt> + <dd>Envia una petició d'origen creuat amb una credencial. En altres paraules, s'envia a l'origen: capçalera HTTP amb una cookie, un certificat o la realització de l'autenticació bàsica HTTP. Si el servidor no dóna credencials al lloc d'origen (a través d'Access-Control-Allow-Credentials: capçalera HTTP), la imatge estarà contaminada i el seu ús restringit.</dd> + </dl> + Quan no està present, el recurs es recupera sense una sol·licitud CORS (és a dir, sense necessitat d'enviar l'Origen: capçalera HTTP), impedint la seva contaminació utilitzant elements {{HTMLElement('canvas')}}. Si no és vàlid, es maneja com si s'utilitzés la paraula clau enumerat <strong>anonymous</strong>. Veure <a href="https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes">atributs de configuració CORS</a> per obtenir informació addicional.</dd> + <dt>{{htmlattrdef("height")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'alçada</span> <span>de l'àrea</span> <span>de visualització</span> <span>del vídeo</span> <span>en píxels</span> <span>CSS.</span></span></dd> + <dt>{{htmlattrdef("loop")}}</dt> + <dd>Un atribut booleà; si s'especifica, en arribar al final del vídeo, tornarà automàticament de nou al inici.</dd> + <dt>{{htmlattrdef("muted")}}</dt> + <dd>Un atribut booleà que indica la configuració per defecte de l'àudio contingut en el vídeo. Si s'estableix, serà inicialment silenciat l'àudio. El seu valor per defecte és false, el que significa que l'àudio es reprodueix quan es reprodueix el vídeo.</dd> + <dt>{{htmlattrdef("played")}}</dt> + <dd>Un objecte {{domxref ("TimeRanges")}} indica totes els rangs del vídeo que s'han reproduït.</dd> + <dt>{{htmlattrdef("preload")}}</dt> + <dd>Aquest atribut enumerat està destinat a proporcionar un suggeriment al navegador sobre el que l'autor creu que li portarà a una millor experiència d'usuari. Pot tenir un dels següents valors: + <ul> + <li><code>none</code>: <span class="short_text" id="result_box" lang="ca"><span>indica</span> <span>que el vídeo</span> <span>no ha de ser</span> <span>precarregat</span><span>.</span></span></li> + <li><code>metadata</code>: Indica que només s'obtenen metadades de vídeo (per exemple, longitud).</li> + <li><code>auto</code>: indica que tot l'arxiu de vídeo pot ser descarregat, encara que no s'espera que l'usuari ho utilitzi.</li> + <li>el <em>empty string</em>: <span class="short_text" id="result_box" lang="ca"><span>sinònim</span> <span>del valor</span> </span><code>auto</code>.</li> + </ul> + + <p><span id="result_box" lang="ca"><span>Si</span> <span>no s'estableix</span>, <span>el valor predeterminat</span> <span>és</span> <span>definit</span> <span>pel navegador</span> <span>(</span><span>és a dir,</span> <span>cada</span> <span>navegador pot</span> <span>tenir el seu valor</span> <span>per defecte).</span> <span>L'especificació</span> <span>informa</span> <span>que s'estableixi en</span> <span>les</span></span> <code>metadata</code>.</p> + + <div class="note"><strong>Nota d'ùs:</strong> + + <ul> + <li>L'atribut <code>autoplay</code> té prioritat sobre la precàrrega. Si s'especifica la reproducció automàtica, el navegador necessitarà òbviament començar a descarregar el video per a la seva reproducció.</li> + <li>L'especificació no força el navegador a seguir el valor d'aquest atribut; és un mer suggeriment.</li> + </ul> + </div> + </dd> + <dt>{{htmlattrdef("poster")}}</dt> + <dd>Un URL que indica un cartell a mostrar fins que l'usuari reprodueixi o busqui. Si no s'especifica aquest atribut, no es mostra res fins que el primer fotograma estigui disponible; a continuació, el primer fotograma es mostra com el cartell.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>La URL del vídeo a incrustar. Això és opcional; en el seu lloc podeu utilitzar l'element {{HTMLElement("source")}} dins el bloc de vídeo per especificar el vídeo al incrustar.</dd> + <dt>{{htmlattrdef("width")}}</dt> + <dd><span id="result_box" lang="ca"><span>L'amplada</span> <span>de l'àrea</span> <span>de visualització</span> <span>del vídeo</span> <span>en píxels</span> <span>CSS.</span></span></dd> +</dl> + +<h2 id="Esdeveniments">Esdeveniments</h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>L'element</span> <code><span><</span><span>vídeo</span><span>></span></code> <span>pot disparar</span> <span>molts</span> <span>diferents</span></span> <a href="/en-US/docs/Web/Guide/Events/Media_events">esdeveniments</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- Simple video example --> +<video src="videofile.webm" autoplay poster="posterimage.jpg"> + Sorry, your browser doesn't support embedded videos, + but don't worry, you can <a href="videofile.webm">download it</a> + and watch it with your favorite video player! +</video> + +<!-- Video with subtitles --> +<video src="foo.webm"> + <track kind="subtitles" src="foo.en.vtt" srclang="en" label="English"> + <track kind="subtitles" src="foo.sv.vtt" srclang="sv" label="Svenska"> +</video> +</pre> + +<p>El primer exemple reprodueix un vídeo, comença la reproducció quant s'hagi rebut prou vídeo per permetre la reproducció sense pauses per descarregar més. Fins que el vídeo comenci a reproduir-se, la imatge "posterimage.jpg" es mostra en el seu lloc.</p> + +<p><span id="result_box" lang="ca"><span>El segon</span> <span>exemple</span> <span>permet a l'usuari</span> <span>triar entre</span> <span>diferents</span> <span>subtítols.</span></span></p> + +<h2 id="Exemple_Múltiples_Fonts">Exemple <span class="short_text" id="result_box" lang="ca"><span>Múltiples </span></span><span class="short_text" lang="ca"><span>Fonts</span></span></h2> + +<pre class="brush: html"><video width="480" controls poster="https://archive.org/download/WebmVp8Vorbis/webmvp8.gif" > + <source src="https://archive.org/download/WebmVp8Vorbis/webmvp8.webm" type="video/webm"> + <source src="https://archive.org/download/WebmVp8Vorbis/webmvp8_512kb.mp4" type="video/mp4"> + <source src="https://archive.org/download/WebmVp8Vorbis/webmvp8.ogv" type="video/ogg"> + Your browser doesn't support HTML5 video tag. +</video></pre> + +<p>Podeu provar l'exemple anterior en l'exemple de demostració de vídeo HTML5 amb l'editor de codi de previsualització en viu.</p> + +<h2 id="Suport_de_servidor">S<span class="short_text" id="result_box" lang="ca"><span>uport de servidor</span></span></h2> + +<p>Si el tipus MIME pel video no està configurat correctament en el servidor, el vídeo no es pot mostrar o mostrar un quadre gris que conté una X (si JavaScript està habilitat).</p> + +<p>Si utilitzeu el servidor web Apache per publicar vídeos Ogg Theora, podeu solucionar aquest problema mitjançant l'addició de les extensions de tipus d'arxius de vídeo a "video/ogg" tipus MIME. Les extensions de tipus d'arxiu de vídeo més comuns són ".ogm", ".ogv" o ".ogg". Per a això, editeu el fitxer "mime.types" a "/etc/ apache" o utilitzar la directiva de configuració "AddType" a httpd.conf.</p> + +<pre class="eval">AddType video/ogg .ogm +AddType video/ogg .ogv +AddType video/ogg .ogg +</pre> + +<p>Si publiqueu els vostres vídeos com WebM, podeu solucionar aquest problema per al servidor web Apache afegint l'extensió utilitzada pels arxius de vídeo (".webm" és el més comú) per al tipus MIME "video/WebM" a través del arxiu "mime.types" en "/etc/ apache" o per mitjà de la directiva de configuració "AddType" en httpd.conf.</p> + +<pre class="eval">AddType video/webm .webm +</pre> + +<p>El vostre proveïdor d'allotjament web pot proporcionar una interfície fàcil dels canvis de configuració de tipus MIME per a les noves tecnologies fins que una actualització global es produeix de forma natural.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <code><a href="/en-US/docs/Web/API/HTMLVideoElement">HTMLVideoElement</a></code>.</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>autoplay</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>buffered</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>controls</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>crossorigin</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("12.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("11.0")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>muted</code></td> + <td>30.0</td> + <td>{{CompatGeckoDesktop("11.0")}}</td> + <td>10.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>5.0</td> + </tr> + <tr> + <td><code>propietat played</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("15.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>poster</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.2")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>preload</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>9.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>3.1</td> + </tr> + <tr> + <td>atribut <code>src</code></td> + <td>3.0</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>9.0</td> + <td>10.5</td> + <td>3.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>autoplay</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>8.1</td> + <td>{{CompatUnknown}}</td> + <td>10.0<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut <code>buffered</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>controls</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>loop</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("11.0")}}</td> + <td>8.0</td> + <td>{{CompatUnknown}}</td> + <td>6.0</td> + </tr> + <tr> + <td>atribut <code>muted</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("11.0")}}</td> + <td>8.0</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>propietat played</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("15.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>poster</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>preload</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>src</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>atribut <code>crossorigin</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("12.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] A partir d'IOS 10, la reproducció automàtica és permissible només per als vídeos que <a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html">no tenen cap so o que tenen la pista d'àudio deshabilitat.</a></p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Media_formats_supported_by_the_audio_and_video_elements">Formats de mitjans suportats pels elements audio i video</a></li> + <li>{{htmlelement("audio")}}</li> + <li><a href="/en-US/docs/Using_HTML5_audio_and_video">L'ùs d'HTML5 audio i video</a></li> + <li><a href="/en-US/docs/Manipulating_video_using_canvas">Manipulan video usant canvas</a></li> + <li><a href="/en-US/docs/XPCOM_Interface_Reference/NsIDOMHTMLMediaElement"><code>nsIDOMHTMLMediaElement</code></a></li> + <li><a class="external" href="https://html.spec.whatwg.org/#the-video-element">L'element <code>video</code></a> (especificació HTML5 )</li> + <li><a href="/en-US/docs/Configuring_servers_for_Ogg_media">Configuració de servidors de mitjans Ogg</a></li> + <li><a href="http://www.jwplayer.com/html5/">L'estat de video en HTML5</a></li> +</ul> diff --git a/files/ca/web/html/element/wbr/index.html b/files/ca/web/html/element/wbr/index.html new file mode 100644 index 0000000000..c23f22dd6e --- /dev/null +++ b/files/ca/web/html/element/wbr/index.html @@ -0,0 +1,112 @@ +--- +title: <wbr> +slug: Web/HTML/Element/wbr +tags: + - Element + - HTML + - HTML text-level semantics + - Reference + - Web +translation_of: Web/HTML/Element/wbr +--- +<div>{{HTMLRef}}</div> + +<p>L'element HTML <em>oportunitat de ruptura de la paraula</em> <code><wbr></code> representa una posició dins d'un text en el qual el navegador pot trencar opcionalment una línia, malgrat les seves regles de divisió de línies, no crearien una interrupció en aquest lloc.</p> + +<p>En pàgines codificades UTF-8 , <code><wbr></code> es comporta com el punt de codi <code>U+200B</code> <code>ZERO-WIDTH SPACE</code>. En particular, es comporta com un punt de codi Unicode bidi BN, el que significa que no té efecte sobre bidi-ordering: <code><div dir=rtl></code>123, <code><wbr></code>456<code></div></code> mostra, quan no està trencada en dues línies, <code>123,456</code> i no <code>456,123</code>.</p> + +<p>Per la mateixa raó, l'element <code><wbr></code> no introdueix un guió en el punt d'interrupció de línia. Perquè aparegui un guió només al final d'una línia, utilitzeu l'entitat de caràcter de guió tou (<code>&shy;</code>).</p> + +<p><span id="result_box" lang="ca"><span>Aquest</span> <span>element</span> <span>es va implementar</span> <span>per primera</span> <span>vegada</span> <span>a Internet</span> <span>Explorer</span> <span>5.5</span> <span>i</span> <span>es va definir</span> <span>oficialment</span> <span>en HTML5.</span></span></p> + +<h2 id="Context_d'ùs">Context d'ùs</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td>Contingut permès</td> + <td>Buit</td> + </tr> + <tr> + <td>Omissió de l'etiqueta</td> + <td>És un {{Glossary("empty element")}}; <span id="result_box" lang="ca"><span>ha de tenir una</span> <span>etiqueta</span> <span>d'inici,</span> <span>però</span> <span>no ha de tenir</span> <span>una etiqueta</span> <span>de tancament.</span></span></td> + </tr> + <tr> + <td>Elements pares permesos</td> + <td>Qualsevol element que accepti <a href="/en-US/docs/HTML/Content_categories#Phrasing_content">contingut textual</a>.</td> + </tr> + <tr> + <td>Normativa del document</td> + <td><a class="external" href="http://dev.w3.org/html5/spec/text-level-semantics.html#the-wbr-element">HTML 5, secció 4.6.24</a></td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element només inclou els <a href="/en-US/docs/HTML/Global_attributes">atributs global</a>.</p> + +<h2 id="Interfície_DOM">Interfície DOM</h2> + +<p>Aquest element implementa la interfície <a href="/en-US/docs/DOM/HTMLElement">HTMLElement</a>.</p> + +<h2 id="Exemple">Exemple</h2> + +<p><em><a class="external" href="http://styleguide.yahoo.com/">La Guia d'Estil de Yahoo</a> </em>recomana <a class="external" href="http://styleguide.yahoo.com/editing/treat-abbreviations-capitalization-and-titles-consistently/website-names-and-addresses">trencar una adreça URL aban de la puntuació</a>, per evitar deixar un signe de puntuació al final de la línia, que el lector pugui confondre amb el final de la URL.</p> + +<pre class="brush: html"><p>http://this<wbr>.is<wbr>.a<wbr>.really<wbr>.long<wbr>.example<wbr>.com/With<wbr>/deeper<wbr>/level<wbr>/pages<wbr>/deeper<wbr>/level<wbr>/pages<wbr>/deeper<wbr>/level<wbr>/pages<wbr>/deeper<wbr>/level<wbr>/pages<wbr>/deeper<wbr>/level<wbr>/pages</p> +</pre> + +<p>{{EmbedLiveSample("Example")}}</p> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.0</td> + <td>1.0</td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>11.7</td> + <td>4.0</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>1.5</td> + <td>1.0</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <span id="result_box" lang="ca"><span>El suport a</span> <span>l'etiqueta</span> </span><code><wbr></code><span lang="ca"> <span>es va introduir</span> <span>a Internet</span> <span>Explorer</span> <span>5.5,</span> <span>encara que</span> <span>és va retira</span> <span>de nou en la</span> <span>versió 7</span><span>.</span></span></p> diff --git a/files/ca/web/html/element/xmp/index.html b/files/ca/web/html/element/xmp/index.html new file mode 100644 index 0000000000..0135b49522 --- /dev/null +++ b/files/ca/web/html/element/xmp/index.html @@ -0,0 +1,46 @@ +--- +title: <xmp> +slug: Web/HTML/Element/xmp +tags: + - Element + - HTML + - Obsolete + - Reference + - Web +translation_of: Web/HTML/Element/xmp +--- +<div>{{Obsolete_header}}</div> + +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>L'<em>Element HTML Exemple</em> (<code><xmp></code>) processa el text entre les etiquetes d'inici i de finalització sense interpretar l'HTML entre elles i usar una font de pas fix. L'especificació HTML2 va recomanar que hauria de ser suficientment àmplia per permetre 80 caràcters per línia.</p> + +<div class="note"><strong>Nota: </strong> <span class="short_text" id="result_box" lang="ca"><span>No utilitzeu</span> <span>aquest</span> <span>element.</span></span> + +<ul> + <li>Està desaprovat des d'HTML3.2 i no va ser implementat d'una manera consistent. Va ser retirat per complet del llenguatge en HTML5.</li> + <li>Utilitzar l'element {{HTMLElement("pre")}} o, si és més adequat semànticament, l'element {{HTMLElement("code")}} al seu lloc. Recordeu que és necessari evitar el caràcter '<code><</code>' com '<code>&lt;</code>' per assegurar-se que no s'interpreti com marcat.</li> + <li>Una font de pas fix també es pot obtenir en qualsevol element, aplicant un estil <a href="/en-US/docs/CSS" title="CSS">CSS</a> adequat usant espai senzill com el valor genèric de la font amb la propietat {{cssxref ("font-family")}}.</li> +</ul> +</div> + +<h2 id="Attributes" name="Attributes">Atributs</h2> + +<p>Aquest element no té altres atributs que els <a href="/en-US/docs/Web/HTML/global_attributes" title="HTML/global attributes">atributs globals</a>, comuns a tots els elements.</p> + +<h2 id="DOM_interface" name="DOM_interface">Interfície DOM</h2> + +<p>Aquest element implementa la interfície {{domxref('HTMLElement')}}.</p> + +<div class="note"> +<p><strong>Nota d'implementació: </strong>fins Gecko 1.9.2 inclòs, Firefox implementa la interfície {{domxref('HTMLSpanElement')}} per aquest element.</p> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li>Els elements {{HTMLElement("pre")}} i {{HTMLElement("code")}} per utilitzar en el seu lloc.</li> + <li>Els elements {{HTMLElement("plaintext")}} i {{HTMLElement("listing")}}, similars a {{HTMLElement("xmp")}} però estan obsolets.</li> +</ul> + +<div>{{HTMLRef}}</div> diff --git a/files/ca/web/html/elements_en_línia/index.html b/files/ca/web/html/elements_en_línia/index.html new file mode 100644 index 0000000000..0ec8db2c0d --- /dev/null +++ b/files/ca/web/html/elements_en_línia/index.html @@ -0,0 +1,82 @@ +--- +title: Elements en línia +slug: Web/HTML/Elements_en_línia +tags: + - Beginner + - HTML + - 'HTML:Element Reference' +translation_of: Web/HTML/Inline_elements +--- +<h2 id="Summary" name="Summary">Sumari</h2> + +<p>Els elements HTML (Hypertext Markup Language) solen ser elements "en línia" o elements a "nivell de bloc". Un element en línia ocupa només l'espai delimitat per les etiquetes que defineixen l'element en línia. El següent exemple demostra la influència de l'element en línia:</p> + +<h2 id="Inline_example" name="Inline_example">Exemple en línia</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><p>This <span>span</span> is an inline element; its background has been colored to display both the beginning and end of the inline element's influence</p></pre> + +<h3 id="CSS">CSS</h3> + +<pre class="brush: css">span { background-color: #8ABB55; } +</pre> + +<p>{{ EmbedLiveSample('Inline_example') }}</p> + +<h2 id="En_línia_vs._nivell_de_bloc">En línia vs. nivell de bloc</h2> + +<dl> + <dt>Model de contingut</dt> + <dd>En general, els elements en línia poden contenir únicament les dades i altres elements en línia.</dd> + <dt>Format</dt> + <dd>Per defecte, els elements en línia no comencen amb nova línia.</dd> +</dl> + +<h2 id="Elements" name="Elements">Elements</h2> + +<p>Els següents elements són "en línia":</p> + +<div class="threecolumns"> +<dl> + <dt>{{ HTMLElement("a") }}</dt> + <dt>{{ HTMLElement("b") }}</dt> + <dt>{{ HTMLElement("big") }}</dt> + <dt>{{ HTMLElement("i") }}</dt> + <dt>{{ HTMLElement("small") }}</dt> + <dt>{{ HTMLElement("tt") }}</dt> + <dt>{{ HTMLElement("abbr") }}</dt> + <dt>{{ HTMLElement("acronym") }}</dt> + <dt>{{ HTMLElement("cite") }}</dt> + <dt>{{ HTMLElement("code") }}</dt> + <dt>{{ HTMLElement("dfn") }}</dt> + <dt>{{ HTMLElement("em") }}</dt> + <dt>{{ HTMLElement("kbd") }}</dt> + <dt>{{ HTMLElement("strong") }}</dt> + <dt>{{ HTMLElement("samp") }}</dt> + <dt>{{ HTMLElement("time") }}</dt> + <dt>{{ HTMLElement("var") }}</dt> + <dt>{{ HTMLElement("a") }}</dt> + <dt>{{ HTMLElement("bdo") }}</dt> + <dt>{{ HTMLElement("br") }}</dt> + <dt>{{ HTMLElement("img") }}</dt> + <dt>{{ HTMLElement("map") }}</dt> + <dt>{{ HTMLElement("object") }}</dt> + <dt>{{ HTMLElement("q") }}</dt> + <dt>{{ HTMLElement("script") }}</dt> + <dt>{{ HTMLElement("span") }}</dt> + <dt>{{ HTMLElement("sub") }}</dt> + <dt>{{ HTMLElement("sup") }}</dt> + <dt>{{ HTMLElement("button") }}</dt> + <dt>{{ HTMLElement("input") }}</dt> + <dt>{{ HTMLElement("label") }}</dt> + <dt>{{ HTMLElement("select") }}</dt> + <dt>{{ HTMLElement("textarea") }}</dt> +</dl> +</div> + +<h2 id="See_also" name="See_also">Veure</h2> + +<ul> + <li><a href="/en/HTML/Block-level_elements" title="en/HTML/Block-level_elements">Elements a nivell de bloc</a></li> +</ul> diff --git a/files/ca/web/html/global_attributes/accesskey/index.html b/files/ca/web/html/global_attributes/accesskey/index.html new file mode 100644 index 0000000000..fb7e6062d4 --- /dev/null +++ b/files/ca/web/html/global_attributes/accesskey/index.html @@ -0,0 +1,143 @@ +--- +title: accesskey +slug: Web/HTML/Global_attributes/accesskey +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/accesskey +--- +<p>{{HTMLSidebar("Global_attributes")}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global </a><strong>accesskey</strong> ofereix un suggeriment per generar una drecera de teclat per a l'element actual. Aquest atribut consisteix en una llista separada per espais de caràcters (un únic punt de codi Unicode). El navegador utilitza la primera que existeix en la distribució del teclat de l'ordinador.</p> + +<p>L'operació per activar l'accesskey depèn de navegador i la seva plataforma.</p> + +<table class="standard-table"> + <tbody> + <tr> + <th> </th> + <th>Windows</th> + <th>Linux</th> + <th>Mac</th> + </tr> + <tr> + <th>Firefox</th> + <td colspan="2" rowspan="1" style="text-align: center;"><kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd><em>key</em></kbd></td> + <td>En Firefox 14 o superior, <kbd>Control</kbd> + <kbd>Alt</kbd> + <kbd><em>key</em></kbd><br> + En Firefox 13 o anterior, <kbd>Control</kbd> + <kbd><em>key</em></kbd></td> + </tr> + <tr> + <th>Internet Explorer</th> + <td><kbd>Alt</kbd> + <kbd><em>key</em></kbd></td> + <td colspan="2" rowspan="1">N/A</td> + </tr> + <tr> + <th>Google Chrome</th> + <td colspan="2" rowspan="1" style="text-align: center;"><kbd>Alt</kbd> + <kbd>Shift</kbd> + <kbd><em>key</em></kbd></td> + <td><kbd>Control</kbd> + <kbd>Alt</kbd> + <kbd><em>key</em></kbd></td> + </tr> + <tr> + <th>Safari</th> + <td><kbd>Alt</kbd> + <kbd><em>key</em></kbd></td> + <td>N/A</td> + <td><kbd>Control</kbd> + <kbd>Alt</kbd> + <kbd><em>key</em></kbd></td> + </tr> + <tr> + <th>Opera</th> + <td colspan="3" rowspan="1"><kbd>Shift</kbd> + <kbd>Esc</kbd> s'obre una llista de continguts que són accessibles per accesskey i, a continuació, pot seleccionar un element fent clic <kbd><em>key</em></kbd></td> + </tr> + </tbody> +</table> + +<p><span id="result_box" lang="ca"><span>Recordeu que</span> <span>Firefox es pot</span> <span>personalitzar</span> <span>la tecla</span> <span>de modificació</span> <span>requerida per les</span> <span>preferències de l'usuari</span><span>.</span></span></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "interaction.html#the-accesskey-attribute", "accesskey")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània , {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#the-accesskey-attribute", "accesskey")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "editing.html#the-accesskey-attribute", "accesskey")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}. Des de {{SpecName('HTML4.01')}}, diversos caràcters es poden establir com accesskey. A més, es pot configurar en qualsevol element.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', "interact/forms.html#h-17.11.2", "accesskey")}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Unicament suportat en {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("button") }}, {{ HTMLElement("input") }}, {{ HTMLElement("label") }}, {{ HTMLElement("legend") }} i {{ HTMLElement("textarea") }}</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/class/index.html b/files/ca/web/html/global_attributes/class/index.html new file mode 100644 index 0000000000..e1e91991eb --- /dev/null +++ b/files/ca/web/html/global_attributes/class/index.html @@ -0,0 +1,106 @@ +--- +title: class +slug: Web/HTML/Global_attributes/class +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/class +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>class</strong> és una llista separada per espais de les classes de l'element. Les classes permeten a CSS i Javascript seleccionar i accedir a elements específics a través dels <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors">selectors de classe</a> o funcions com el mètode DOM {{domxref("document.getElementsByClassName")}}.</p> + +<p>Encara que l'especificació no posa requisits en el nom de les classes, s'anima als desenvolupadors web a utilitzar noms que descriguin el propòsit semàntic de l'element, en lloc de la presentació de l'element (Per exemple, <em>atribut</em> per descriure un atribut en lloc de <em>cursiva</em>, encara que un element d'aquesta classe pot presentar-se en <em>cursiva</em>). Els noms semàntics segueixen sent lògics encara que la presentació de la pàgina canviï.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "elements.html#classes", "class")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània , {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "elements.html#classes", "class")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "elements.html#classes", "class")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}. Des de {{SpecName('HTML4.01')}}, <code>class</code> és ara un veritable atribut global.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', "struct/global.html#h-7.5.2", "class")}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Suportat en tots els elements però {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("param")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}}, i {{HTMLElement("title")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <code>class</code> és un veritable atribut global només a partir de Firefox 32.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/contenteditable/index.html b/files/ca/web/html/global_attributes/contenteditable/index.html new file mode 100644 index 0000000000..10fb43c949 --- /dev/null +++ b/files/ca/web/html/global_attributes/contenteditable/index.html @@ -0,0 +1,107 @@ +--- +title: contenteditable +slug: Web/HTML/Global_attributes/contenteditable +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/contenteditable +--- +<p>{{HTMLSidebar("Global_attributes")}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>contenteditable</strong> és un atribut enumerat que indica si l'element ha de ser modificable per l'usuari. Si és així, el navegador modifica el seu widget per permetre l'edició. L'atribut ha de prendre un dels següents valors:</p> + +<ul> + <li><span style="font-family: courier new;">true</span> o <em>cadena buida</em>, indica que l'element ha de ser editable;</li> + <li><span style="font-family: courier new;">false</span>, indica que l'element no ha de ser editable</li> +</ul> + +<p>Si aquest atribut no està definit, el seu valor per defecte és <em>heretat</em> del seu element pare.</p> + +<p>Aquest és un atribut enumerat i no un booleà. Això vol dir que l'ús explícit d'un dels valors <span style="font-family: courier new;">true</span>, <span style="font-family: courier new;">false</span> o empty string és obligatori i que no està permès una forma abreujada com <code><label contenteditable></code> Exemple d'etiqueta <code></label></code> . L'ús correcte és <code><label contenteditable="true"></code> Exemple d'etiqueta <code></label></code> .</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "editing.html#attr-contenteditable", "contenteditable")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#attr-contenteditable", "contenteditable")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "editing.html#attr-contenteditable", "contenteditable")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoDesktop("1.9") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoMobile("1.9") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a></li> + <li>{{domxref("HTMLElement.contentEditable")}} i {{domxref("HTMLElement.isContentEditable")}}</li> +</ul> diff --git a/files/ca/web/html/global_attributes/contextmenu/index.html b/files/ca/web/html/global_attributes/contextmenu/index.html new file mode 100644 index 0000000000..220950716f --- /dev/null +++ b/files/ca/web/html/global_attributes/contextmenu/index.html @@ -0,0 +1,117 @@ +--- +title: contextmenu +slug: Web/HTML/Global_attributes/contextmenu +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/contextmenu +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <code><strong>contextmenu</strong></code> és l'<strong><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id">id</a></strong> d'un {{HTMLElement("menu")}} per ser utilitzat com el menú contextual d'aquest element.</p> + +<p>Un <em>menú contextual</em> és un menú que apareix després de la interacció de l'usuari, com un clic dret. HTML5 ara ens permet personalitzar aquest menú. Aquests són alguns exemples d'implementació, incloent menús niats.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush:html; highlight:[1,10,15]"><body contextmenu="share"> + <menu type="context" id="share"> + <menu label="share"> + <menuitem label="Twitter" onclick="shareViaTwitter()"></menuitem> + <menuitem label="Facebook" onclick="shareViaFacebook()"></menuitem> + </menu> + </menu> + <ol> + <li> + Anywhere in the example you can share the page on Twitter and + Facebook using the Share menu from your context menu. + </li> + <li contextmenu="changeFont" id="fontSizing"> + On this specific list element, you can change the size of the text + by using the "Increase/Decrease font" actions from your context menu + </li> + <menu type="context" id="changeFont"> + <menuitem label="Increase Font" onclick="incFont()"></menuitem> + <menuitem label="Decrease Font" onclick="decFont()"></menuitem> + </menu> + <li contextmenu="ChangeImage" id="changeImage"> + On the image below, you can fire the "Change Image" action + in your Context Menu.<br /> + <img src="https://developer.mozilla.org/media/img/promote/promobutton_mdn5.png" + contextmenu="ChangeImage" id="promoButton" /> + <menu type="context" id="ChangeImage"> + <menuitem label="Change Image" onclick="changeImage()"></menuitem> + </menu> + </li> + </ol> +</body> +</pre> + +<h3 id="JavaScript">JavaScript</h3> + +<pre class="brush:js">function shareViaTwitter() { + window.open("https://twitter.com/intent/tweet?text=" + + "Hurray! I am learning ContextMenu from MDN via Mozilla"); +} + +function shareViaFacebook() { + window.open("https://facebook.com/sharer/sharer.php?u=" + + "https://developer.mozilla.org/en/HTML/Element/Using_HTML_context_menus"); +} + +function incFont() { + document.getElementById("fontSizing").style.fontSize = "larger"; +} + +function decFont() { + document.getElementById("fontSizing").style.fontSize = "smaller"; +} + +function changeImage() { + var index = Math.ceil(Math.random() * 39 + 1); + document.images[0].src = + "https://developer.mozilla.org/media/img/promote/promobutton_mdn" + + index + ".png"; +}</pre> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample("Example", "100%", 400)}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "forms.html#attr-contextmenu", "contextmenu")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "interactive-elements.html#context-menus", "contextmenu")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{Compat("html.global_attributes.contextmenu")}}</p> + +<p>[1] Una implementació experimental està disponible a través de l'opció de línia d'ordres <code>--enable-blink-features=ContextMenu</code>. Fins Chrome 52 i Opera 39 estava disponible l'opció d'habilitació de les <em>característiques de la Plataforma Web Experimental</em>, però va ser eliminada a causa d'un <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=412945">problema de compatibilitat web</a>. El suport per aquesta caracteristica se sol·licita en <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=87553">Chromium bug 87553</a>.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>{{domxref("HTMLElement.contextMenu")}}</li> +</ul> diff --git a/files/ca/web/html/global_attributes/data-_star_/index.html b/files/ca/web/html/global_attributes/data-_star_/index.html new file mode 100644 index 0000000000..e0984687a0 --- /dev/null +++ b/files/ca/web/html/global_attributes/data-_star_/index.html @@ -0,0 +1,119 @@ +--- +title: data-* +slug: Web/HTML/Global_attributes/data-* +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/data-* +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}</p> + +<p>Els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a> <strong>data-*</strong> formen una classe d'atributs anomenats <strong>atributs de dades personalitzades</strong>, que permeten que la informació propietària s'intercanviï entre l' <a href="https://developer.mozilla.org/en-US/docs/Web/HTML" title="en/HTML">HTML</a> i la seva representació <a href="https://developer.mozilla.org/en-US/docs/DOM" title="en/DOM">DOM</a> mitjançan scripts. Totes aquestes dades personalitzades estan disponibles a través de la interfície {{domxref ("HTMLElement")}} de l'element en el qual s'estableix l'atribut. La propietat {{domxref ("HTMLElement.dataset")}} li dóna accés. El * pot ser reemplaçat per qualsevol nom que segueix <a href="http://www.w3.org/TR/REC-xml/#NT-Name">la regla de producció de noms XML</a> amb les següents restriccions:</p> + +<ul> + <li>el nom no ha de començar amb <code>xml</code>, qualsevol que sigui el cas que s'utilitzi per a aquestes lletres;</li> + <li>el nom no ha de contenir cap punt i coma (U+003A);</li> + <li>el nom no ha de contenir majúscules de l'A a la Z.</li> +</ul> + +<p>Recordeu que la propietat {{domxref ("HTMLElement.dataset")}} és un {{domxref ("DOMStringMap")}}, i el nom de l'atribut de dades personalitzades <em>data-test-value</em> serà accessible a través de <code>HTMLElement.dataset.testValue</code> ( o <code>HTMLElement.dataset["testValue"]</code> ) com qualsevol guió (<code>u+002D</code>) se substitueix la següent lletra en majúscula, convertint el nom a (CamelCase).</p> + +<h3 id="Ùs">Ùs</h3> + +<p>Mitjançant la incorpoarció d'atributs <strong>data-</strong>*, fins i tot els elements HTML ordinaris poden convertir-se en programes-objectes força complexos i potents. Per exemple, una nau espacial "<a href="https://en.wikipedia.org/wiki/Sprite_%28computer_graphics%29">sprite</a>" en un joc podria ser un simple element {{HTMLElement ("img")}} amb un atribut <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class">class</a> i diversos atributs data- *:</p> + +<pre><img class="spaceship cruiserX3" src="shipX3.png" + data-ship-id="324" data-weapons="laserI laserII" data-shields="72%" + data-x="414354" data-y="85160" data-z="31940" + onclick="spaceships[this.dataset.shipId].blasted()" +</img> +</pre> + +<p id="Specifications">(Veure més <em><a href="https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes">aquí</a>)</em></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes", "data-*")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes", "data-*")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes", "data-*")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoDesktop(6) }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoMobile(6) }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>La propietat {{domxref ("HTMLElement.dataset")}} permet accedir i modificar aquests valors.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/dir/index.html b/files/ca/web/html/global_attributes/dir/index.html new file mode 100644 index 0000000000..13421f5361 --- /dev/null +++ b/files/ca/web/html/global_attributes/dir/index.html @@ -0,0 +1,130 @@ +--- +title: dir +slug: Web/HTML/Global_attributes/dir +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/dir +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}</p> + +<p><span id="result_box" lang="ca"><span>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a></span><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes"> <span>global</span></a> <strong><span>dir</span></strong> <span>és</span> <span>un atribut</span> <span>enumerat</span> <span>indica la</span> <span>direccionalitat</span> <span>del text</span> <span>de l'element.</span> <span>Pot tenir</span> <span>els</span> <span>següents</span> <span>valors</span><span>:</span></span></p> + +<ul> + <li><span style="font-family: Courier New;">ltr</span>, significa d'<em>esquerra a dreta</em> i s'utilitza per als idiomes que s'escriuen d'esquerra a la dreta (com l'anglès)</li> + <li><span style="font-family: Courier New;">rtl</span>, significa <em>dreta a esquerra</em> i s'utilitza per als idiomes que s'escriuen de dreta a l'esquerra (com l'àrab);</li> + <li><span style="font-family: Courier New;">auto</span>, permet a l'agent d'usuari que decideixi. S'utilitza un algoritme bàsic, que analitza els caràcters dins de l'element fins que troba un caràcter amb una direccionalitat forta, a continuació, aplicar la direccionalitat a tot l'element.</li> +</ul> + +<div class="note"> +<p><strong>Notes d'ùs</strong></p> + +<p>Aquest atribut és obligatori per a l'element {{ HTMLElement("bdo") }} on té un significat semàntic diferent.</p> + +<ul> + <li> + <p>Aquest atribut <em>no</em> és heretat per l'element {{ HTMLElement("bdi") }}. Si no s'estableix el seu valor a <code>auto</code>.</p> + </li> + <li> + <p>Aquest atribut pot ser anul·lat per les propietats CSS {{ cssxref("direction") }} i {{ cssxref("unicode-bidi") }}, si una pàgina CSS està activa i l'element és compatible amb aquestes propietats.</p> + </li> + <li> + <p>A mesura que la direccionalitat del text està semànticament relacionada amb el seu contingut i no a la seva presentació, es recomana que els desenvolupadors web utilitzin aquest atribut en lloc de les propietats CSS relacionades quan sigui possible. D'aquesta manera, el text es mostrarà correctament fins i tot en un navegador que no suporti CSS o tingui desactivada la CSS.</p> + </li> + <li> + <p>El valor <code>auto</code> s'ha d'utilitzar per a les dades amb una direccionalitat desconeguda, igual que les dades procedents de l'entrada de l'usuari, eventualment emmagatzemades en una base de dades.</p> + </li> +</ul> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#the-dir-attribute", "dir")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-dir-attribute", "dir")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#the-dir-attribute", "dir")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, des de {{SpecName('HTML4.01')}} s'afegeix el valor <code>auto</code>, i ara és un veritable atribut global.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', "dirlang.html#h-8.2", "dir")}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Suportat en tots els elements però {{HTMLElement("applet")}}, {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("bdo")}}, {{HTMLElement("br")}}, {{HTMLElement("frame")}}, {{HTMLElement("frameset")}}, {{HTMLElement("iframe")}}, {{HTMLElement("param")}} i {{HTMLElement("script")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>{{domxref ("HTMLElement.dir")}} reflecteix aquest atribut.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/draggable/index.html b/files/ca/web/html/global_attributes/draggable/index.html new file mode 100644 index 0000000000..1e1090fc70 --- /dev/null +++ b/files/ca/web/html/global_attributes/draggable/index.html @@ -0,0 +1,104 @@ +--- +title: draggable +slug: Web/HTML/Global_attributes/draggable +tags: + - Experimental + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/draggable +--- +<p>{{HTMLSidebar("Global_attributes")}} {{SeeCompatTable}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a><strong> draggable</strong> és un atribut enumerat que indica si l'element es pot arrossegar, mitjançant el {{domxref("HTML_Drag_and_Drop_API","HTML Drag and Drop API")}}. Pot tenir els següents valors:</p> + +<ul> + <li><span style="font-family: courier new;">true</span>, indica que l'element pot ser arrossegat</li> + <li><span style="font-family: courier new;">false</span>, indica que l'element no pot ser arrossegat.</li> +</ul> + +<p>Si aquest atribut no està establert, el valor predeterminat és <code>auto</code>, és a dir, el comportament ha de ser el definit per incompliment per part del navegador.</p> + +<p>Aquest atribut és enumerat i no un booleà. Això vol dir que l'ús explícit d'un dels valors <code>true</code> o <code>false</code> és obligatori i que una forma abreujada com <code><label draggable></code> Exemple <code>Label</label></code> no està permès. L'ús correcte és <code><label draggable="true"></code> Exemple <code>Label</label></code>.</p> + +<p>Per defecte, només seleccions de textes, imatges i enllaços es poden arrossegar. Per a tots els altres elements, l'esdeveniment <strong>{{domxref('GlobalEventHandlers.ondragstart','ondragstart')}}</strong> ha d'establir-se perquè funcioni el mecanisme d'arrossegar i deixar anar, com es mostra en aquest <a href="https://developer.mozilla.org/en-US/docs/DragDrop/Drag_Operations">exemple complet</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "interaction.html#the-draggable-attribute", "draggable")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#the-draggable-attribute", "draggable")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoDesktop("1.8.1") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoMobile("1.8.1") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/dropzone/index.html b/files/ca/web/html/global_attributes/dropzone/index.html new file mode 100644 index 0000000000..9435eb1c68 --- /dev/null +++ b/files/ca/web/html/global_attributes/dropzone/index.html @@ -0,0 +1,99 @@ +--- +title: dropzone +slug: Web/HTML/Global_attributes/dropzone +tags: + - Experimental + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/dropzone +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}{{SeeCompatTable}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>dropzone</strong> és un atribut enumerat que indica quin tipus de contingut poden ser arrossegats sobre un element, utilitzant l'<a href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop" style="text-decoration: none; color: rgb(51, 102, 153) !important; cursor: default;" title="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">API Drag and Drop</a>. Pot tenir els següents valors:</p> + +<ul> + <li><span style="font-family: courier new;">copy</span>, indica que el deixa anar crearà una còpia de l'element que va ser arrossegat.</li> + <li><span style="font-family: courier new;">move</span>, indica que l'element arrossegat es mourà a aquesta nova ubicació.</li> + <li><span style="font-family: courier new;">link</span>, crearà un enllaç a les dades arrossegats.</li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "interaction.html#the-dropzone-attribute", "dropzone")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#the-dropzone-attribute", "dropzone")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown}}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/hidden/index.html b/files/ca/web/html/global_attributes/hidden/index.html new file mode 100644 index 0000000000..3c25165b26 --- /dev/null +++ b/files/ca/web/html/global_attributes/hidden/index.html @@ -0,0 +1,109 @@ +--- +title: hidden +slug: Web/HTML/Global_attributes/hidden +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/hidden +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong><code>hidden</code></strong> és un atribut booleà que indica que l'element no és encara, o ja no és rellevant. Per exemple, es pot fer servir per ocultar els elements de la pàgina que no es poden utilitzar fins que el procés d'inici de sessió s'ha completat. Els navegadors no mostraran els elements amb l'atribut <code>hidden</code> establert.</p> + +<p>L'atribut <code>hidden</code> no ha de ser utilitzat per a ocultar el contingut que legítimament es podria mostrar en una altra presentació. Per exemple, és incorrecte utilitzar hidden per ocultar els panells en un diàleg amb pestanyess, ja que la interfície amb pestanyes no és més que una mena de presentació de desbordament - un podria igualment mostrar les imatges de tots els controls de formulari en una pàgina gran amb una barra de desplaçament. De la mateixa manera és incorrecte utilitzar aquest atribut solsament per a ocultar el contingut d'una presentació - si per alguna cosa es el marcat de hidden, és que ho amaga a totes les presentacions, incloent, per exemple, els lectors de pantalla.</p> + +<p>Els elements ocults no s'han de vincular des d'elements no-ocults i els elements que són descendents d'un element ocult encara estan actius, el que significa que els elements del script encara es poden executar i els elements de formulari encara poden ser presentats.</p> + +<div class="note"> +<p><strong>Nota:</strong> El canvi del valor de la propietat CSS {{cssxref ("display")}} d'un element amb l'atribut <code>hidden</code> sobreescriu el seu comportament. Per exemple, els elements d'estil <code>display: flex</code> es mostrarà tot i la presència de l'atribut <code>hidden</code>.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "interaction.html#the-hidden-attribute", "hidden")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "rendering.html#hiddenCSS", "Hidden elements")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Defineix la representació per defecte suggerida usant l'atribut <code>hidden</code> CSS</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#the-hidden-attribute", "hidden")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, + <p>definició inicial</p> + + <p> </p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoDesktop("2") }}</td> + <td>11</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoMobile("2") }}</td> + <td>11</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/id/index.html b/files/ca/web/html/global_attributes/id/index.html new file mode 100644 index 0000000000..15d6226ba1 --- /dev/null +++ b/files/ca/web/html/global_attributes/id/index.html @@ -0,0 +1,113 @@ +--- +title: id +slug: Web/HTML/Global_attributes/id +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/id +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>id</strong> defineix un identificador únic (ID) que ha de ser únic en tot el document. El seu propòsit és identificar l'element quan es vincula (usant un identificador de fragment), scripts, o estil (CSS).</p> + +<p>El valor d'aquest atribut és una cadena opaca: això vol dir que l'autor web no ho ha de fer servir per transmetre qualsevol informació. Un significat particular, per exemple el significat semàntic, no ha de derivar de la cadena.</p> + +<p>El valor d'aquest atribut no ha de contenir espais en blanc (espais, tabulacions, etc.). Els navegadors tracten IDs no conformes que contenen espais en blanc com si l'espai en blanc fora part de l'ID. En contrast amb l'atribut <strong>class</strong>, que permet valors separats per espais, els elements només poden tenir un únic ID.</p> + +<div class="note"> +<p><strong>Nota:</strong> L'ús de caràcters ASCII, excepte les lletres i dígits, '_', '-' i '.' pot causar problemes de compatibilitat, ja que no estaven permesos en HTML 4. Malgrat aquesta restricció ha estat aixecada en HTML 5, un ID ha de començar amb una lletra per compatibilitat.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#the-id-attribute", "id")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-id-attribute", "id")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#the-id-attribute", "id")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, ara acceptar '_', '-' i '.' al començament del id. És també un verdader atribut global.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#adef-id', 'id')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Suportat en tots els elements però {{HTMLElement("base")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}}, i {{HTMLElement("title")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] <code>id</code> és un veritable atribut global només a partir de Gecko 32.0 {{geckoRelease("32.0")}}.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>{{domxref("Element.id")}} <span class="short_text" id="result_box" lang="ca"><span>que reflecteix</span> <span>aquest</span> <span>atribut</span></span>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/index.html b/files/ca/web/html/global_attributes/index.html new file mode 100644 index 0000000000..bbe00ae786 --- /dev/null +++ b/files/ca/web/html/global_attributes/index.html @@ -0,0 +1,463 @@ +--- +title: Global attributes +slug: Web/HTML/Global_attributes +tags: + - Attribute + - HTML + - NeedsBrowserCompatibility + - NeedsTranslation + - Reference + - TopicStub + - Web +translation_of: Web/HTML/Global_attributes +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<div class="summary"> +<p><strong>Global attributes</strong> are attributes common to all HTML elements; they can be used on all elements, though the attributes may have no effect on some elements.</p> +</div> + +<p>Global attributes may be specified on all <a href="/en-US/docs/Web/HTML/Element">HTML elements</a>, <em>even those not specified in the standard</em>. That means that any non-standard elements must still permit these attributes, even though using those elements means that the document is no longer HTML5-compliant. For example, HTML5-compliant browsers hide content marked as <code><foo hidden>...<foo></code><code>, </code>even though <code><foo></code> is not a valid HTML element.</p> + +<p>In addition to the basic HTML global attributes, the following global attributes also exist:</p> + +<ul> + <li>Both <strong><code>xml:lang</code></strong> and <code><strong>xml:base</strong></code>, deprecated, inherited from the XHTML specifications and kept for compatibility purpose.</li> + <li>The multiple <code><strong><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA">aria-*</a></strong></code> attributes, used for improving accessibility.</li> + <li>The event handler attributes: <code><strong>onabort</strong></code>, <code><strong>onautocomplete</strong></code>, <code><strong>onautocompleteerror</strong></code>, <code><strong>onblur</strong></code>, <code><strong>oncancel</strong></code>, <code><strong>oncanplay</strong></code>, <code><strong>oncanplaythrough</strong></code>, <code><strong>onchange</strong></code>, <code><strong>onclick</strong></code>, <code><strong>onclose</strong></code>, <code><strong>oncontextmenu</strong></code>, <code><strong>oncuechange</strong></code>, <code><strong>ondblclick</strong></code>, <code><strong>ondrag</strong></code>, <code><strong>ondragend</strong></code>, <code><strong>ondragenter</strong></code>, <code><strong>ondragexit</strong></code>, <code><strong>ondragleave</strong></code>, <code><strong>ondragover</strong></code>, <code><strong>ondragstart</strong></code>, <code><strong>ondrop</strong></code>, <code><strong>ondurationchange</strong></code>, <code><strong>onemptied</strong></code>, <code><strong>onended</strong></code>, <code><strong>onerror</strong></code>, <code><strong>onfocus</strong></code>, <code><strong>oninput</strong></code>, <code><strong>oninvalid</strong></code>, <code><strong>onkeydown</strong></code>, <code><strong>onkeypress</strong></code>, <code><strong>onkeyup</strong></code>, <code><strong>onload</strong></code>, <code><strong>onloadeddata</strong></code>, <code><strong>onloadedmetadata</strong></code>, <code><strong>onloadstart</strong></code>, <code><strong>onmousedown</strong></code>, <code><strong>onmouseenter</strong></code>, <code><strong>onmouseleave</strong></code>, <code><strong>onmousemove</strong></code>, <code><strong>onmouseout</strong></code>, <code><strong>onmouseover</strong></code>, <code><strong>onmouseup</strong></code>, <code><strong>onmousewheel</strong></code>, <code><strong>onpause</strong></code>, <code><strong>onplay</strong></code>, <code><strong>onplaying</strong></code>, <code><strong>onprogress</strong></code>, <code><strong>onratechange</strong></code>, <code><strong>onreset</strong></code>, <code><strong>onresize</strong></code>, <code><strong>onscroll</strong></code>, <code><strong>onseeked</strong></code>, <code><strong>onseeking</strong></code>, <code><strong>onselect</strong></code>, <code><strong>onshow</strong></code>, <code><strong>onsort</strong></code>, <code><strong>onstalled</strong></code>, <code><strong>onsubmit</strong></code>, <code><strong>onsuspend</strong></code>, <code><strong>ontimeupdate</strong></code>, <code><strong>ontoggle</strong></code>, <code><strong>onvolumechange</strong></code>, <code><strong>onwaiting</strong></code>.</li> +</ul> + +<h2 id="Description">Description</h2> + +<dl> + <dt id="accesskey"><code><a href="/en-US/docs/Web/HTML/Global_attributes/accesskey">accesskey</a></code></dt> + <dd>Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout.</dd> + <dt id="class"><code><a href="/en-US/docs/Web/HTML/Global_attributes/class">class</a></code></dt> + <dd>Is a space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the <a href="/En/CSS/Class_selectors" title="https://developer.mozilla.org/En/CSS/Class_selectors">class selectors</a> or functions like the method {{domxref("Document.getElementsByClassName()")}}.</dd> + <dt id="contenteditable"><code><a href="/en-US/docs/Web/HTML/Global_attributes/contenteditable">contenteditable</a></code></dt> + <dd>Is an enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values: + <ul> + <li><code>true</code> or the <em>empty string</em>, which indicates that the element must be editable;</li> + <li><code>false</code>, which indicates that the element must not be editable.</li> + </ul> + </dd> + <dt id="contextmenu"><code><a href="/en-US/docs/Web/HTML/Global_attributes/contextmenu">contextmenu</a></code></dt> + <dd>Is the <code><a href="#attr-id"><strong>id</strong></a></code> of an {{HTMLElement("menu")}} to us as the contextual menu for this element.</dd> + <dt><code><a href="/en-US/docs/Web/HTML/Global_attributes/data-*">data-*</a></code></dt> + <dd>Forms a class of attributes, called custom data attributes, that allow proprietary information to be exchanged between the <a href="/en-US/docs/Web/HTML" title="en/HTML">HTML</a> and its <a href="/en-US/docs/Glossary/DOM" title="en/DOM">DOM</a> representation that may be used by scripts. All such custom data are available via the {{domxref("HTMLElement")}} interface of the element the attribute is set on. The {{domxref("HTMLElement.dataset")}} property gives access to them.</dd> + <dt><code><a href="/en-US/docs/Web/HTML/Global_attributes/dir">dir</a></code></dt> + <dd>Is an enumerated attribute indicating the directionality of the element's text. It can have the following values: + <ul> + <li><code>ltr</code>, which means <em>left to right </em>and is to be used for languages that are written from the left to the right (like English);</li> + <li><code>rtl</code>, which means <em>right to left</em> and is to be used for languages that are written from the right to the left (like Arabic);</li> + <li><code>auto</code>, which let the user agent decides. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then apply that directionality to the whole element.</li> + </ul> + </dd> + <dt><code><a href="/en-US/docs/Web/HTML/Global_attributes/draggable">draggable</a></code> {{experimental_inline}}</dt> + <dd>Is an enumerated attribute indicating whether the element can be dragged, using the <a href="/en-us/docs/DragDrop/Drag_and_Drop">Drag and Drop API</a>. It can have the following values: + <ul> + <li><code>true</code>, which indicates that the element may be dragged</li> + <li><code>false</code>, which indicates that the element may not be dragged.</li> + </ul> + </dd> + <dt><code><a href="/en-US/docs/Web/HTML/Global_attributes/dropzone">dropzone</a></code> {{experimental_inline}}</dt> + <dd>Is an enumerated attribute indicating what types of content can be dropped on an element, using the <a href="/En-us/docs/DragDrop/Drag_and_Drop" title="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">Drag and Drop API</a>. It can have the following values: + <ul> + <li><code>copy</code>, which indicates that dropping will create a copy of the element that was dragged</li> + <li><code>move</code>, which indicates that the element that was dragged will be moved to this new location.</li> + <li><code>link</code>, will create a link to the dragged data.</li> + </ul> + </dd> + <dt id="hidden"><code><a href="/en-US/docs/Web/HTML/Global_attributes/hidden">hidden</a></code></dt> + <dd>Is a Boolean attribute indicates that the element is not yet, or is no longer, <em>relevant</em>. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown.</dd> + <dt id="id"><code><a href="/en-US/docs/Web/HTML/Global_attributes/id">id</a></code></dt> + <dd>Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).</dd> + <dt id="itemid"><code><a href="/en-US/docs/Web/HTML/Global_attributes/itemid">itemid</a></code> {{experimental_inline}}</dt> + <dt id="itemprop"><code><a href="/en-US/docs/Web/HTML/Global_attributes/itemprop">itemprop</a></code> {{experimental_inline}}</dt> + <dt id="itemref"><code><a href="/en-US/docs/Web/HTML/Global_attributes/itemref">itemref</a></code> {{experimental_inline}}</dt> + <dt id="itemscope"><code><a href="/en-US/docs/Web/HTML/Global_attributes/itemscope">itemscope</a> </code>{{experimental_inline}}</dt> + <dt id="itemtype"><code><a href="/en-US/docs/Web/HTML/Global_attributes/itemtype">itemtype</a></code> {{experimental_inline}}</dt> + <dd>These attributes are related to the <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#microdata" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#microdata">WHATWG HTML Microdata feature</a>.</dd> + <dt id="lang"><code><a href="/en-US/docs/Web/HTML/Global_attributes/lang">lang</a></code></dt> + <dd>Participates in defining the language of the element, the language that non-editable elements are written in or the language that editable elements should be written in. The tag contains one single entry value in the format defines in the <a class="external" href="http://www.ietf.org/rfc/bcp/bcp47.txt" title="http://www.ietf.org/rfc/bcp/bcp47.txt"><em>Tags for Identifying Languages (BCP47)</em></a> IETF document. <a href="#attr-xml:lang"><strong>xml:lang</strong></a> has priority over it.</dd> + <dt id="spellcheck_.7B.7Bexperimental_inline.7D.7D"><code><a href="/en-US/docs/Web/HTML/Global_attributes/spellcheck">spellcheck</a></code> {{experimental_inline}}</dt> + <dd>Is an enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values: + <ul> + <li><code>true</code>, which indicates that the element should be, if possible, checked for spelling errors;</li> + <li><code>false</code>, which indicates that the element should not be checked for spelling errors.</li> + </ul> + </dd> + <dt id="style"><code><a href="/en-US/docs/Web/HTML/Global_attributes/style">style</a></code></dt> + <dd>Contains <a href="/en/CSS" title="en/CSS">CSS</a> styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the {{ HTMLElement("style") }} element have mainly the purpose of allowing for quick styling, for example for testing purposes.</dd> + <dt id="tabindex"><code><a href="/en-US/docs/Web/HTML/Global_attributes/tabindex">tabindex</a></code></dt> + <dd>Is an integer attribute indicates if the element can take input focus (is <em>focusable</em>), if it should participate to sequential keyboard navigation, and if so, at what position. It can takes several values: + <ul> + <li>a <em>negative value</em> means that the element should be focusable, but should not be reachable via sequential keyboard navigation;</li> + <li><code>0</code> means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;</li> + <li>a <em>positive value</em> which means should be focusable and reachable via sequential keyboard navigation; its relative order is defined by the value of the attribute: the sequential follow the increasing number of the <a href="#attr-tabindex"><strong>tabindex</strong></a>. If several elements share the same tabindex, their relative order follows their relative position in the document).</li> + </ul> + </dd> + <dt id="title"><code><a href="/en-US/docs/Web/HTML/Global_attributes/title">title</a></code></dt> + <dd>Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip.</dd> + <dt id="title"><code><a href="/en-US/docs/Web/HTML/Global_attributes/translate">translate</a></code></dt> + <dd>Is an enumerated attribute that is used to specify whether an element's attribute values and the values of it<code>s</code> {{domxref("Text")}} node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values: + <ul> + <li>empty string and <code>"yes"</code>, which indicates that the element will be translated.</li> + <li><code>"no</code>", which indicates that the element will not be translated.</li> + </ul> + </dd> +</dl> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#global-attributes", "Global attributes")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>From latest snapshot, {{SpecName('HTML5.1')}}, <strong>itemid</strong>, <strong>itemprop</strong>, <strong>itemref</strong>, <strong>itemscope</strong>, and <strong>itemtype</strong> have been added.</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#global-attributes", "Global attributes")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Snapshot of {{SpecName('HTML WHATWG')}}. From {{SpecName('HTML5 W3C')}}, <strong>spellcheck</strong>, <strong>draggable</strong>, and <strong>dropzone</strong> have been added.</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#global-attributes", "Global attributes")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Snapshot of {{SpecName('HTML WHATWG')}}. From {{SpecName("HTML4.01")}}, the concept of global attributes is introduced and the <strong>dir</strong>, <strong>lang</strong>, <strong>style</strong>, <strong>id</strong>, <strong>class</strong>, <strong>tabindex</strong>, <strong>accesskey</strong>, and <strong>title</strong> are now true global attributes.<br> + <strong>xml:lang</strong> which was initially part of XHTML, is now also part of HTML.<br> + <strong>hidden</strong>, <strong>data-*</strong>, <strong>contextmenu</strong>, <strong>contenteditable</strong>, and<strong> <strong>translate</strong></strong> have been added.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>There are no global attributes defined. Several attributes that will become global attributes in subsequent specifications are defined on a subset of elements.<br> + <strong>class</strong> and <strong>style</strong> are supported on all elements but {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("param")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}}, and {{HTMLElement("title")}}.<br> + <strong>dir</strong> is supported on all elements but {{HTMLElement("applet")}}, {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("bdo")}}, {{HTMLElement("br")}}, {{HTMLElement("frame")}}, {{HTMLElement("frameset")}}, {{HTMLElement("iframe")}}, {{HTMLElement("param")}}, and {{HTMLElement("script")}}.<br> + <strong>id</strong> is supported on all elements but {{HTMLElement("base")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}}, and {{HTMLElement("title")}}.<br> + <strong>lang</strong> is supported on all elements but {{HTMLElement("applet")}}, {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("br")}}, {{HTMLElement("frame")}}, {{HTMLElement("frameset")}}, {{HTMLElement("iframe")}}, {{HTMLElement("param")}}, and {{HTMLElement("script")}}.<br> + <strong>tabindex</strong> is only supported on {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("button")}}, {{HTMLElement("object")}}, {{HTMLElement("select")}}, and {{HTMLElement("textarea")}}.<br> + <strong>accesskey</strong> is only supported on {{ HTMLElement("a") }}, {{ HTMLElement("area") }}, {{ HTMLElement("button") }}, {{ HTMLElement("input") }}, {{ HTMLElement("label") }}, {{ HTMLElement("legend") }} and {{ HTMLElement("textarea") }}.<br> + <strong>title</strong> is supported on all elements but {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("param")}}, {{HTMLElement("script")}}, and {{HTMLElement("title")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>accesskey</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>class</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>contenteditable</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>contextmenu</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop(9)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>data-*</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("6")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>dir</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>draggable</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8.1")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>dropzone</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>hidden</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("2")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>id</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>itemid, itemprop, itemref, itemscope, itemtype</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>lang</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>spellcheck</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8.1")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>style</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>tabindex</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>title</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>accesskey</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>class</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>contenteditable</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>contextmenu</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>data-*</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("6")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>dir</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>draggable</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8.1")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>dropzone</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>hidden</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>id</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>itemid, itemprop, itemref, itemscope, itemtype</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>lang</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>spellcheck</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8.1")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>style</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>tabindex</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>title</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{domxref("Element")}} and {{domxref("GlobalEventHandlers")}} interfaces that allow to query most global attributes.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/itemid/index.html b/files/ca/web/html/global_attributes/itemid/index.html new file mode 100644 index 0000000000..79941cabc2 --- /dev/null +++ b/files/ca/web/html/global_attributes/itemid/index.html @@ -0,0 +1,149 @@ +--- +title: itemid +slug: Web/HTML/Global_attributes/itemid +tags: + - Attribute + - Global attribute + - HTML + - Microdata + - Reference +translation_of: Web/HTML/Global_attributes/itemid +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>itemid</strong> és l'identificador únic i global d'un element. Els atributs itemid només es poden especificar en els elements que tenen tant els atributs <strong>itemscope</strong> com <strong>itemtype</strong>. A més, el itemid només es pot especificar en elements amb un atribut itemscope de qui el corresponent itemtype es refereix o defineix un vocabulari que suporta identificadors globals.</p> + +<p>El vocabulari dels <code>itemtype's</code> donarà el significat exacte d'un identificador global definit dins del vocabulari. El vocabulari definirà si diversos elements amb el mateix identificador global poden coexistir i, si se'ls permet, de com manejar els elements amb el mateix identificador.</p> + +<p class="note"><strong>Nota:</strong> La definició de Whatwg.org d'un itemid diu que ha de ser una adreça URL. Això no sembla ser el cas, com mostra el següent exemple. Més aviat la definició de facto és que un itemid és un identificador únic, de manera que un URN és apropiat. Aquesta inconsistència reflecteix, sens dubte, el caràcter incomplet de l'especificació de Microdata.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><dl itemscope + itemtype="http://vocab.example.net/book" + itemid="urn:isbn:0-330-34032-8"> +<dt>Title <dd itemprop="title">The Reality Dysfunction +<dt>Author <dd itemprop="author">Peter F. Hamilton +<dt>Publication date +<dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time> </dl></pre> + +<h3 id="Estructuració_de_les_dades"><span class="short_text" id="result_box" lang="ca"><span>Estructuració de les dades</span></span></h3> + +<table class="standard-table"> + <tbody> + <tr> + <td colspan="1" rowspan="14">itemscope</td> + <td>itemtype: itemid</td> + <td colspan="2" rowspan="1"> + <div class="jyrRxf-eEDwDf jcd3Mb IZ65Hb-hUbt4d">http://vocab.example.net/book: urn:isbn:0-330-34032-8</div> + </td> + </tr> + <tr> + <td>itemprop</td> + <td>title</td> + <td>The Reality Dysfunction</td> + </tr> + <tr> + <td>itemprop</td> + <td>author</td> + <td> + <div class="jyrRxf-eEDwDf jcd3Mb">Peter F. Hamilton</div> + </td> + </tr> + <tr> + <td>itemprop</td> + <td>pubdate</td> + <td>1996-01-26</td> + </tr> + </tbody> +</table> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('HTML', '', '', '', 'Web/HTML/Global_attributes/itemid')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td><code><a href="https://html.spec.whatwg.org/multipage/microdata.html#attr-itemid">itemid</a></code></td> + <td> </td> + <td>WG Nota - <span class="short_text" id="result_box" lang="ca"><span>Ja</span> <span>no s'està</span> <span>desenvolupant</span> <span>activament</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTML/Global_attributes">Altres atributs globals diferents</a></li> + <li>Altres atributs globals relacionats amb microdata: + <ul> + <li>{{htmlattrxref("itemid")}}</li> + <li>{{htmlattrxref("itemprop")}}</li> + <li>{{htmlattrxref("itemref")}}</li> + <li>{{htmlattrxref("itemscope")}}</li> + <li>{{htmlattrxref("itemtype")}}</li> + </ul> + </li> +</ul> diff --git a/files/ca/web/html/global_attributes/itemprop/index.html b/files/ca/web/html/global_attributes/itemprop/index.html new file mode 100644 index 0000000000..47e607921a --- /dev/null +++ b/files/ca/web/html/global_attributes/itemprop/index.html @@ -0,0 +1,463 @@ +--- +title: itemprop +slug: Web/HTML/Global_attributes/itemprop +tags: + - Attribute + - Global attribute + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/itemprop +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'atribut global <strong>itemprop</strong> s'utilitza per afegir propietats a un element. Cada element HTML pot tenir un atribut itemprop especificat, i un itemprop es compon d'un parell nom-valor. Cada parell nom-valor es denomina <strong>propietat</strong>, i un grup d'una o més propietats constitueix un <strong>element</strong>. Els valors de propietat són una cadena o una adreça URL i es poden associar amb una gamma molt àmplia d'elements incloent {{HTMLElement("audio")}}, {{HTMLElement("embed")}}, {{HTMLElement("iframe")}}, {{HTMLElement("img")}}, {{HTMLElement("link")}}, {{HTMLElement("object")}}, {{HTMLElement("source")}} , {{HTMLElement("track")}}, and {{HTMLElement("video")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div itemscope itemtype ="http://schema.org/Movie"> + <h1 <strong>itemprop="name"</strong>>Avatar</h1> + <span>Director: <span <strong>itemprop="director"</strong>>James Cameron</span> (born August 16, 1954)</span> + <span <strong>itemprop="genre"</strong>>Science fiction</span> + <a href="../movies/avatar-theatrical-trailer.html" <strong>itemprop="trailer"</strong>>Trailer</a> +</div></pre> + +<h3 id="Estructuració_de_les_dades"><span class="short_text" id="result_box" lang="ca"><span>Estructuració de les dades</span></span></h3> + +<table class="standard-table"> + <tbody> + <tr> + <td colspan="1" rowspan="2"> </td> + <th colspan="2" rowspan="1"><strong>Item</strong></th> + </tr> + <tr> + <th><strong>itemprop name</strong></th> + <th><strong>itemprop value</strong></th> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Avatar</td> + </tr> + <tr> + <td>itemprop</td> + <td>director</td> + <td>James Cameron</td> + </tr> + <tr> + <td>itemprop</td> + <td>genre</td> + <td>Science fiction</td> + </tr> + <tr> + <td>itemprop</td> + <td>trailer</td> + <td>../movies/avatar-theatrical-trailer.html</td> + </tr> + </tbody> +</table> + +<h2 id="Propietats">Propietats</h2> + +<p>Les propietats tenen valors que són una cadena o un URL. Quan un valor de cadena és una adreça URL, s'expressa mitjançant l'element i el seu atribut href, l'element img i el seu atribut src, o altres elements que tenen enllaços o que incoproran recursos externs.</p> + +<h4 id="Tres_propietats_amb_valors_que_són_cadenes"><span class="short_text" id="result_box" lang="ca"><span>Tres</span> <span>propietats amb</span> <span>valors</span> <span>que són</span> <span>cadenes</span></span></h4> + +<pre class="brush: html"><div itemscope> + <p>My name is <span itemprop="name">Neil</span>.</p> + <p>My band is called <span itemprop="band">Four Parts Water</span>.</p> + <p>I am <span itemprop="nationality">British</span>.</p> +</div></pre> + +<h4 id="Una_propietat_image_el_valor_del_qual_és_una_adreça_URL">Una propietat, "image", el valor del qual és una adreça URL</h4> + +<pre class="brush: html"><div itemscope> + <img itemprop="image" src="google-logo.png" alt="Google"> +</div></pre> + +<p>Quan un valor de cadena no pot ser fàcilment llegit i comprès per una persona (per exemple, una cadena llarga de números i lletres), aquest es pot visualitzar utilitzant l'atribut value de l'element data, aquesta versió és més fàcil d'entendre per un humà ja que determina el contingut dels elements (que no forma part de les dades estructurades - vegeu l'exemple següent).</p> + +<h4 id="Un_element_amb_una_propietat_el_valor_de_la_qual_és_un_ID_de_producte._L'ID_no_és_humanament_amistós_pel_que_el_nom_del_producte_s'utilitza_el_text_per_a_ser_humanament_visible_en_lloc_del_ID.">Un element amb una propietat el valor de la qual és un ID de producte. L'ID no és humanament amistós, pel que el nom del producte s'utilitza el text per a ser humanament visible en lloc del ID.</h4> + +<pre class="brush: html"><h1 itemscope> + <data itemprop="product-id" value="9678AOU879">The Instigator 2000</data> +</h1></pre> + +<p>Per les dades numèriques, l'element meter i el seu atribut value es poden utilitzar.</p> + +<h4 id="Un_exemple_de_l'element_meter">Un exemple de l'element meter</h4> + +<pre class="brush: html"><div itemscope itemtype="http://schema.org/Product"> + <span itemprop="name">Panasonic White 60L Refrigerator</span> + <img src="panasonic-fridge-60l-white.jpg" alt=""> + <div itemprop="aggregateRating" + itemscope itemtype="http://schema.org/AggregateRating"> + <meter itemprop="ratingValue" min=0 value=3.5 max=5>Rated 3.5/5</meter> + (based on <span itemprop="reviewCount">11</span> customer reviews) + </div> +</div></pre> + +<p>De la mateixa manera, per les dades relacionades amb la data i hora , l'element time i el seu atribut datetime es poden utilitzar.</p> + +<h4 id="En_aquest_exemple_l'element_té_una_propietat_birthday_el_valor_de_la_qual_és_una_date.">En aquest exemple, l'element té una propietat, "birthday", el valor de la qual és una date.</h4> + +<pre class="brush: html"><div itemscope> + I was born on <time itemprop="birthday" datetime="2009-05-10">May 10th 2009</time>. +</div></pre> + +<p>Les propietats també poden ser grups de parells nom-valor, posant l'atribut itemscope en l'element que es declara la propietat. Cada valor és una cadena o un grup de parells nom-valor (és a dir, un element).</p> + +<h4 id="En_aquest_exemple_l'element_exterior_representa_una_persona_i_la_interior_representa_una_banda"><span id="result_box" lang="ca"><span>En aquest</span> <span>exemple</span><span>, l'element</span> <span>exterior representa</span> <span>una persona,</span> <span>i la interior</span> <span>representa una</span> <span>banda</span></span></h4> + +<pre class="brush: html"><div itemscope> + <p>Name: <span itemprop="name">Amanda</span></p> + <p>Band: <span itemprop="band" itemscope> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p> +</div></pre> + +<p>L'element exterior superior té dues propietats, "name" i "band". El "name" és "Amanda", i la "band" és un element en si mateix, amb dues propietats, "name" i "size". El "name" de la banda és "Jazz Band", i la "size" és "12". L'element exterior en aquest exemple és un element microdata de nivell superior. Els elements que no formen part dels altres s'anomenen elements microdata de nivell superior.</p> + +<h4 id="Aquest_exemple_és_el_mateix_que_l'anterior_però_totes_les_propietats_són_separades_dels_seus_elements">Aquest exemple és el mateix que l'anterior, però totes les propietats són separades dels seus elements</h4> + +<pre class="brush: html"><div itemscope id="amanda" itemref="a b"></div> +<p id="a">Name: <span itemprop="name">Amanda</span></p> +<div id="b" itemprop="band" itemscope itemref="c"></div> +<div id="c"> + <p>Band: <span itemprop="name">Jazz Band</span></p> + <p>Size: <span itemprop="size">12</span> players</p> +</div></pre> + +<p>Això dóna el mateix resultat que l'exemple anterior. El primer element té dues propietats, "name", té asignat "Amanda" i "band", té asignat un altre element. Aquest segon element té dues propietats addicionals, "name" té assignat "Jazz Band", i "size ", té assignat "12".</p> + +<p><span id="result_box" lang="ca"><span>Un element</span> <span>pot</span> <span>tenir diverses</span> <span>propietats amb</span> <span>el mateix</span> <span>nom</span> <span>i diferents</span> <span>valors.</span></span></p> + +<h4 id="Aquest_exemple_descriu_un_gelat_amb_dos_sabors"><span class="short_text" id="result_box" lang="ca"><span>Aquest exemple</span> <span>descriu</span> <span>un gelat</span><span>, amb dos</span> <span>sabors</span></span></h4> + +<pre class="brush: html"><div itemscope> + <p>Flavors in my favorite ice cream:</p> + <ul> + <li itemprop="flavor">Lemon sorbet</li> + <li itemprop="flavor">Apricot sorbet</li> + </ul> +</div></pre> + +<p>Això dóna com a resultat un element amb dues propietats, ambdues amb el nom "flavor" i amb els valors "Lemon sorbet" i "Apricot sorbet" .</p> + +<p>Un element que introdueix una propietat també pot introduir múltiples propietats a la vegada, per evitar la duplicació quan algunes de les propietats tenen el mateix valor.</p> + +<h4 id="Aquí_veiem_un_element_amb_dues_propietats_favorite-color_i_favorite-fruit_ambdues_establertes_en_el_valor_orange">Aquí veiem un element amb dues propietats, "favorite-color" i "favorite-fruit", ambdues establertes en el valor "orange"</h4> + +<pre class="brush: html"><div itemscope> + <span itemprop="favorite-color favorite-fruit">orange</span> +</div></pre> + +<div class="note"> +<p>Nota: No hi ha relació entre els microdata i el contingut del document, on els microdata son marcats.</p> +</div> + +<h4 id="No_hi_ha_cap_diferència_semàntica_entre_els_dos_exemples_següents"><span id="result_box" lang="ca"><span>No hi ha</span> <span>cap diferència</span> <span>semàntica</span> <span>entre els</span> <span>dos exemples</span> <span>següents</span></span></h4> + +<pre class="brush: html"><figure> + <img src="castle.jpeg"> + <figcaption><span itemscope><span itemprop="name">The Castle</span></span> (1986)</figcaption> +</figure></pre> + +<pre class="brush: html"><span itemscope><meta itemprop="name" content="The Castle"></span> +<figure> + <img src="castle.jpeg"> + <figcaption>The Castle (1986)</figcaption> +</figure></pre> + +<p>Tots dos tenen una figura amb un títol, i tots dos, sense cap relació amb la figura, té un element amb un parell nom-valor amb el nom "name" i el valor "The Castle". L'única diferència és que si l'usuari arrossega el figcaption fora del document, l'element serà inclos en les dades d'arrossegar i deixar anar. No s'inclourà la imatge associada amb l'element.</p> + +<h2 id="Noms_i_valors">Noms i valors</h2> + +<p>Una propietat és un conjunt desordenat de símbols únics que són sensibles i representen els parells de nom-valor. El valor de la propietat ha de tenir almenys un símbol. En el següent exemple, cada cel·la de dades és un símbol.</p> + +<h3 id="Exemples_Noms">Exemples Noms</h3> + +<table class="standard-table"> + <thead> + <tr> + <th colspan="1" rowspan="2" scope="col"> </th> + <th colspan="2" rowspan="1" scope="col">Item</th> + </tr> + <tr> + <th scope="col">itemprop <strong>name</strong></th> + <th scope="col">itemprop <strong>value</strong></th> + </tr> + </thead> + <tbody> + <tr> + <th>itemprop</th> + <td>country</td> + <td>Ireland</td> + </tr> + <tr> + <th>itemprop</th> + <td>Option</td> + <td>2</td> + </tr> + <tr> + <th>itemprop</th> + <td>https://www.flickr.com/photos/nlireland/6992065114/</td> + <td>Ring of Kerry</td> + </tr> + <tr> + <th>itemprop</th> + <td>img</td> + <td>https://www.flickr.com/photos/nlireland/6992065114/</td> + </tr> + <tr> + <th>itemprop</th> + <td>website</td> + <td>flickr</td> + </tr> + <tr> + <th>itemprop</th> + <td>(token)</td> + <td>(token)</td> + </tr> + </tbody> +</table> + +<p>Els tokens són cadenes o URL's. Un element es denomina un <strong>element escrit ( typed item )</strong> si és un URL. Altrament, és una cadena. Les cadenes no poden contenir un punt o dos punts (vegeu més endavant).</p> + +<ol> + <li>Si l'element és un element escrit aquest ha de ser: + <ol> + <li>Un nom de propietat definida, o</li> + <li>Una URL vàlida, que es refereix a la definició del vocabulari, o</li> + <li>Una URL vàlida que s'usa com un nom de propietari propietat de l'element (és a dir, no està definit en una especificació pública), o</li> + </ol> + </li> + <li>Si l'element no és un element escrit aquest ha de ser: + <ol> + <li>Una cadena que no conté caràcters "." (U+002E FULL STOP) i sense caràcters ":" (U+003A COLON) i s'usa com un nom de propietat d'element propietari (de nou, no s'ha definit en una especificació pública).</li> + </ol> + </li> +</ol> + +<p class="note"><strong>Nota:</strong> les regles anteriors no permeten caràcters ":" en valors no URL, perquè en cas contrari no podien distingir-se de les URLs. Els valors amb caràcters "." estan reservats per a futures ampliacions. Els caràcters d'espai no es permeten perquè en cas contrari els valors serien analitzats com múltiples símbols.</p> + +<h2 id="Valors">Valors</h2> + +<p>El valor de la propietat d'un parell nom-valor es dóna per al primer cas coincident de la llista següent:</p> + +<ul> + <li>Si l'element té un atribut <strong>itemscope</strong> + + <ul> + <li><span id="result_box" lang="ca"><span>El valor és</span> <span>l'<strong>item</strong></span> <span>creat</span> <span>per l'element</span><span>.</span></span> .</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>meta</strong> + <ul> + <li>El valor és el valor de l'atribut <strong>content</strong> de l'element</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>audio</strong>, <strong>embed</strong>, <strong>iframe</strong>, <strong>img</strong>, <strong>source</strong>, <strong>track</strong> o <strong>video</strong> + <ul> + <li>El valor és la cadena URL resultant que resulta d'analitzar el valor de l'atribut src de l'element en relació amb el document node (part de <a href="https://developer.mozilla.org/en-US/docs/Web/API/Microdata_DOM_API">Microdata DOM API</a>) de l'element en el moment en què s'estableix l'atribut</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>a</strong>, <strong>area</strong> o <strong>link</strong> + <ul> + <li>El valor és la cadena URL resultant que resulta d'analitzar el valor de l'atribut href de l'element en relació amb el document node de l'element en el moment que s'estableix l'atribut</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>object</strong> + <ul> + <li>El valor és la cadena URL resultant que resulta d'analitzar el valor de l'atribut data de l'element en relació amb el document node de l'element en el moment que s'estableix l'atribut</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>data</strong> + <ul> + <li>El valor és el valor de l'atribut value de l'element</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>meter </strong> + <ul> + <li>El valor és el valor de l'atribut <strong>value</strong> de l'element</li> + </ul> + </li> + <li><span id="result_box" lang="ca"><span>Si l'element</span> <span>és un</span> <span>element</span></span> <strong>time </strong> + <ul> + <li>El valor és el valor <strong>datetime</strong> de l'element</li> + </ul> + </li> +</ul> + +<p><span class="short_text" id="result_box" lang="ca"><span>D'una altra manera</span></span></p> + +<ul> + <li><span class="short_text" id="result_box" lang="ca"><span>El valor és</span> <strong><span>textContent</span></strong> <span>de l'element.</span></span></li> +</ul> + +<p>Si el valor d'una propietat és un URL, la propietat s'haurà d'especificar mitjançant un element de propietat URL. Els elements de la propietat URL són els elements <strong>a</strong>, <strong>area</strong>, <strong>audio</strong>, <strong>embed</strong>, <strong>iframe</strong>, <strong>img</strong>, <strong>link</strong>, <strong>object</strong>, <strong>source</strong>, <strong>track</strong> i <strong>video</strong>.</p> + +<h3 id="Ordre_dels_noms">Ordre dels noms</h3> + +<p>Els noms estan desordenats respecte a l'altra, però si un nom en particular té diversos valors, tenen un ordre relatiu.</p> + +<h4 id="En_el_següent_exemple_la_propietat_a_té_els_valors_1_i_2_en_aquest_ordre_però_si_la_propietat_a_ve_abans_que_la_propietat_b_o_no_no_és_important">En el següent exemple, la propietat "a" té els valors "1" i "2", en aquest ordre, però si la propietat "a" ve abans que la propietat "b" o no, no és important</h4> + +<pre class="brush: html"><div itemscope> + <p itemprop="a">1</p> + <p itemprop="a">2</p> + <p itemprop="b">test</p> +</div></pre> + +<h4 id="El_següent_és_equivalent"><span class="short_text" id="result_box" lang="ca"><span>El següent</span> <span>és</span> <span>equivalent</span></span></h4> + +<pre class="brush: html"><div itemscope> + <p itemprop="b">test</p> + <p itemprop="a">1</p> + <p itemprop="a">2</p> +</div></pre> + +<h4 id="Com_és_el_següent"><span class="short_text" id="result_box" lang="ca"><span>Com és el</span> <span>següent</span></span></h4> + +<pre class="brush: html"><div itemscope> + <p itemprop="a">1</p> + <p itemprop="b">test</p> + <p itemprop="a">2</p> +</div></pre> + +<h4 id="I_el_següent"> <span class="short_text" id="result_box" lang="ca"><span>I el</span> <span>següent</span></span></h4> + +<pre class="brush: html"><div id="x"> + <p itemprop="a">1</p> +</div> +<div itemscope itemref="x"> + <p itemprop="b">test</p> + <p itemprop="a">2</p> +</div> +</pre> + +<h2 id="Altres_exemples">Altres exemples</h2> + +<h3 id="HTML_2">HTML</h3> + +<pre class="brush: html"><dl itemscope itemtype="http://vocab.example.net/book" itemid="urn:isbn:0-330-34032-8"> + <dt>Title <dd itemprop="title">The Reality Dysfunction + <dt>Author <dd itemprop="author">Peter F. Hamilton + <dt>Publication date + <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time> +</dl> +</pre> + +<h3 id="Estructuració_de_les_dades_2"><span class="short_text" id="result_box" lang="ca"><span>Estructuració de les dades</span></span></h3> + +<table class="standard-table"> + <tbody> + <tr> + <td colspan="1" rowspan="14">itemscope</td> + <td>itemtype: itemid</td> + <td colspan="2" rowspan="1">http://vocab.example.net/book: urn:isbn:0-330-34032-8</td> + </tr> + <tr> + <td>itemprop</td> + <td>title</td> + <td>The Reality Dysfunction</td> + </tr> + <tr> + <td>itemprop</td> + <td>author</td> + <td>Peter F. Hamilton</td> + </tr> + <tr> + <td>itemprop</td> + <td>pubdate</td> + <td>1996-01-26</td> + </tr> + </tbody> +</table> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('HTML_2', '', '', '', 'Web/HTML/Global_attributes/itemprop')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td><code><a href="https://html.spec.whatwg.org/multipage/microdata.html#names:-the-itemprop-attribute:names:-the-itemprop-attribute">itemprop</a></code></td> + <td> </td> + <td>WG Nota - <span class="short_text" id="result_box" lang="ca"><span>Ja</span> <span>no s'està</span> <span>desenvolupant</span> <span>activament</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">Altres atributs globals diferents</a></li> + <li>Altres atributs globals relacionats amb microdata: + <ul> + <li>{{htmlattrxref("itemid")}}</li> + <li>{{htmlattrxref("itemprop")}}</li> + <li>{{htmlattrxref("itemref")}}</li> + <li>{{htmlattrxref("itemscope")}}</li> + <li>{{htmlattrxref("itemtype")}}</li> + </ul> + </li> +</ul> +</div> +</div> diff --git a/files/ca/web/html/global_attributes/itemref/index.html b/files/ca/web/html/global_attributes/itemref/index.html new file mode 100644 index 0000000000..3a1a9f19e5 --- /dev/null +++ b/files/ca/web/html/global_attributes/itemref/index.html @@ -0,0 +1,181 @@ +--- +title: itemref +slug: Web/HTML/Global_attributes/itemref +tags: + - Attribute + - Global attribute + - HTML + - Microdata + - Reference +translation_of: Web/HTML/Global_attributes/itemref +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>itemref</strong> Les propietats que no són descendents d'un element amb l'atribut <code>itemscope</code> es poden associar amb l'element utilitzant una <code><strong>itemref</strong></code>. <code>itemref</code> proporciona una llista d'elements id's (no Itemids) amb propietats addicionals en qualsevol lloc del document.</p> + +<p><span id="result_box" lang="ca"><span>L'atribut</span> <code><span>itemref</span></code> <span>només</span> <span>es</span> <span>pot</span> <span>especificar</span> <span>en elements que</span> <span>tinguin un</span> <span>atribut</span> <code><span>itemscope</span></code> <span>especificat.</span></span></p> + +<p class="note"><strong>Nota: </strong>l'atribut <code>itemref</code> no és part del model de dades microdata. No és més que una construcció sintàctica per ajudar els autors a afegir anotacions a les pàgines en què les dades anotades no segueixen una estructura d'arbre convenient. Per exemple, es permet als autors el marcatge de dades en una taula de manera que cada columna defineix un element a part, mantenint les propietats de les cel·les.</p> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML">HTML</h3> + +<pre class="brush: html"><div itemscope id="amanda" itemref="a b"></div> +<p id="a">Name: <span itemprop="name">Amanda</span> </p> +<div id="b" itemprop="band" itemscope itemref="c"></div> +<div id="c"> + <p>Band: <span itemprop="name">Jazz Band</span> </p> + <p>Size: <span itemprop="size">12</span> players</p> +</div> +</pre> + +<h3 id="Estructuració_de_les_dades"><span class="short_text" id="result_box" lang="ca"><span>Estructuració de les dades</span></span></h3> + +<table class="standard-table"> + <tbody> + <tr> + <th>id's</th> + <th>itemscope</th> + <th>itemref</th> + <th> </th> + <th>(itemprop name)</th> + <th>(itemprop value)</th> + </tr> + <tr> + <td>id=amanda</td> + <td>itemscope</td> + <td>itemref=a,b</td> + <td> </td> + <td> </td> + <td> </td> + </tr> + <tr> + <td>id=a</td> + <td> </td> + <td> </td> + <td>itemprop</td> + <td>name</td> + <td>Amanda</td> + </tr> + <tr> + <td>id=b</td> + <td>itemscope</td> + <td>itemref=c</td> + <td> </td> + <td>band</td> + <td> </td> + </tr> + <tr> + <td colspan="1" rowspan="2">id=c</td> + <td> </td> + <td> </td> + <td>itemprop</td> + <td>Band</td> + <td>Jazz Band</td> + </tr> + <tr> + <td> </td> + <td> </td> + <td>itemprop</td> + <td>Size</td> + <td>12</td> + </tr> + </tbody> +</table> + +<h3 id="Resultat">Resultat</h3> + +<p>{{EmbedLiveSample('Example', '', '', '', 'Web/HTML/Global_attributes/itemref')}}</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td><code><a href="https://html.spec.whatwg.org/multipage/microdata.html#items">itemref</a></code></td> + <td> </td> + <td>WG Nota - <span class="short_text" id="result_box" lang="ca"><span>Ja</span> <span>no s'està</span> <span>desenvolupant</span> <span>activament</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">Altres atributs globals diferents</a></li> + <li>Altres atributs globals relacionats amb microdata: + <ul> + <li>{{htmlattrxref("itemid")}}</li> + <li>{{htmlattrxref("itemprop")}}</li> + <li>{{htmlattrxref("itemref")}}</li> + <li>{{htmlattrxref("itemscope")}}</li> + <li>{{htmlattrxref("itemtype")}}</li> + </ul> + </li> +</ul> + +<div class="s3gt_translate_tooltip" id="s3gt_translate_tooltip" style="position: absolute; left: 106px; top: 156px; opacity: 0;"> +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_logo" title="Traducir texto seleccionado"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_sound" title="Reproducir"> </div> + +<div class="s3gt_translate_tooltip_mini" id="s3gt_translate_tooltip_mini_copy" title="Copy text to Clipboard"> </div> +</div> diff --git a/files/ca/web/html/global_attributes/itemscope/index.html b/files/ca/web/html/global_attributes/itemscope/index.html new file mode 100644 index 0000000000..6e7c42d8e9 --- /dev/null +++ b/files/ca/web/html/global_attributes/itemscope/index.html @@ -0,0 +1,315 @@ +--- +title: itemscope +slug: Web/HTML/Global_attributes/itemscope +tags: + - Attribute + - Global attribute + - HTML + - Microdata + - Reference +translation_of: Web/HTML/Global_attributes/itemscope +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <code><strong>itemscope</strong></code> (en general) treballa juntament amb {{htmlattrxref ("itemtype")}} per especificar que el contingut HTML en un bloc es sobre un element en particular. <code>itemscope</code> crea l'element i defineix l'ambit del <code>itemtype</code> associat a ell. <code>itemtype</code> és un URL vàlid d'un vocabulari (com schema.org) que descriu l'element i el seu context de propietats. En els exemples següents el vocabulari utilitzat és de schema.org. Cada element HTML pot tenir un atribut <code>itemscope</code> especificat. Un element i<code>temscope</code> que no té un <code>itemtype</code> associat té una <code>itemref.</code></p> + +<div class="note"> +<p><strong>Nota:</strong> Més informació sobre els atributs <code>itemtype</code> es poden trobar a <a href="http://schema.org/Thing">http://schema.org/Thing</a></p> +</div> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush:html"><div itemscope itemtype ="http://schema.org/Movie"> + <h1 itemprop="name">Avatar</h1> + <span>Director: <span itemprop="director">James Cameron</span> (born August 16, 1954)</span> + <span itemprop="genre">Science fiction</span> + <a href="https://youtu.be/0AY1XIkX7bY" itemprop="trailer">Trailer</a> +</div> +</pre> + +<h4 id="sect1"> </h4> + +<h4 id="Estructuració_de_les_dades">Estructuració de les dades</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td rowspan="6">itemscope</td> + <td>Itemtype</td> + <td colspan="2">Movie</td> + </tr> + <tr> + <td>itemprop</td> + <td>(itemprop name)</td> + <td>(itemprop value)</td> + </tr> + <tr> + <td>itemprop</td> + <td>director</td> + <td>James Cameron</td> + </tr> + <tr> + <td>itemprop</td> + <td>genre</td> + <td>Science Fiction</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Avatar</td> + </tr> + <tr> + <td>itemprop</td> + <td>https://youtu.be/0AY1XIkX7bY</td> + <td>Trailer</td> + </tr> + </tbody> +</table> + +<h3 id="itemscope_id's"><code>itemscope</code> id's</h3> + +<p>Un element amb l'atribut <code>itemscope</code> especificat crea un nou element que consisteix en un grup de parells de nom-valor. Els elements amb un atribut <code>itemscope</code> i un atribut <code>itemtype</code> també poden tenir un atribut {{htmlattrxref ("id")}} especificat (no un itemid, cf. {{htmlattrxref ("itemref")}}), per donar un identificador global a l'element, de manera que pot estar relacionat amb altres elements de pàgines d'altres llocs a la web.</p> + +<h3 id="Exemple">Exemple</h3> + +<p>Hi ha tres <code>itemscope</code> en aquest exemple. Els tres <code>itemscope</code>, al seu torn, estableixen l'ambit corresponent de tres <code>itemtype</code>. Els tres <code>itemtype</code> són <code>Recipe</code>, <code>AggregateRating</code> i <code>NutritionInformation</code> . Aquests <code>itemtype</code> són part de la estructura de dades de schema.org per a una recepta.</p> + +<pre class="brush: html"><div itemscope itemtype="http://schema.org/Recipe"> +<h2 itemprop="name">Grandma's Holiday Apple Pie</h2> +<img itemprop="image" src="https://c1.staticflickr.com/1/30/42759561_8631e2f905_n.jpg" width="50" height="50"/> +<p>By <span itemprop="author" itemscope itemtype="http://schema.org/Person"> +<span itemprop="name">Carol Smith</p></span> +</span> +<p>Published: <time datetime="2009-11-05" itemprop="datePublished"> +November 5, 2009</p></time> +<span itemprop="description">This is my grandmother's apple pie recipe. I like to add a dash of nutmeg.<br></span> + <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> + <span itemprop="ratingValue">4.0</span> stars based on <span itemprop="reviewCount">35</span> reviews<br></span> +Prep time: <time datetime="PT30M" itemprop="prepTime">30 min<br></time> + Cook time: <time datetime="PT1H" itemprop="cookTime">1 hour<br></time> + Total time: <time datetime="PT1H30M" itemprop="totalTime">1 hour 30 min<br></time> + Yield: <span itemprop="recipeYield">1 9" pie (8 servings)<br></span> + <span itemprop="nutrition" itemscope itemtype="http://schema.org/NutritionInformation"> + Serving size: <span itemprop="servingSize">1 medium slice<br></span> + Calories per serving: <span itemprop="calories">250 cal<br></span> + Fat per serving: <span itemprop="fatContent">12 g<br></span> +</span> +<p>Ingredients:<br> + <span itemprop="recipeIngredient">Thinly-sliced apples: 6 cups<br></span> + <span itemprop="recipeIngredient">White sugar: 3/4 cup<br></span> + ... </p> + +Directions: <br> + <div itemprop="recipeInstructions"> + 1. Cut and peel apples<br> + 2. Mix sugar and cinnamon. Use additional sugar for tart apples. <br> + ... + </div> +</div> </pre> + +<h3 id="Resultats">Resultats</h3> + +<h4 id="HTML_2">HTML</h4> + +<p>{{EmbedLiveSample('Example', '500', '550', '', 'Web/HTML/Global_attributes/itemscope')}}</p> + +<h4 id="Estructuració_de_les_dades_2">Estructuració de les dades</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td colspan="1" rowspan="14">itemscope</td> + <td>itemtype</td> + <td colspan="2" rowspan="1">Recipe</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Grandma's Holiday Apple Pie</td> + </tr> + <tr> + <td>itemprop</td> + <td>image</td> + <td>https://c1.staticflickr.com/1/30/42759561_8631e2f905_n.jpg</td> + </tr> + <tr> + <td>itemprop</td> + <td>datePublished</td> + <td>2009-11-05</td> + </tr> + <tr> + <td>itemprop</td> + <td>description</td> + <td>This is my grandmother's apple pie recipe. I like to add a dash of nutmeg.</td> + </tr> + <tr> + <td>itemprop</td> + <td>prepTime</td> + <td>PT30M</td> + </tr> + <tr> + <td>itemprop</td> + <td>cookTime</td> + <td>PT1H</td> + </tr> + <tr> + <td>itemprop</td> + <td>totalTime</td> + <td>PT1H30M</td> + </tr> + <tr> + <td>itemprop</td> + <td>recipeYield</td> + <td>1 9" pie (8 servings)</td> + </tr> + <tr> + <td>itemprop</td> + <td>recipeIngredient</td> + <td>Thinly-sliced apples: 6 cups</td> + </tr> + <tr> + <td>itemprop</td> + <td>recipeIngredient</td> + <td>White sugar: 3/4 cup</td> + </tr> + <tr> + <td>itemprop</td> + <td>recipeInstructions</td> + <td>1. Cut and peel apples 2. Mix sugar and cinnamon. Use additional sugar for tart apples .</td> + </tr> + <tr> + <td>itemprop</td> + <td colspan="2" rowspan="1">author [Person]</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Carol Smith</td> + </tr> + <tr> + <td colspan="1" rowspan="3">itemscope</td> + <td>itemprop[itemtype]</td> + <td colspan="2" rowspan="1">aggregateRating [AggregateRating]</td> + </tr> + <tr> + <td>itemprop</td> + <td>ratingValue</td> + <td>4.0</td> + </tr> + <tr> + <td>itemprop</td> + <td>reviewCount</td> + <td>35</td> + </tr> + <tr> + <td colspan="1" rowspan="4">itemscope</td> + <td>itemprop[itemtype]</td> + <td colspan="2" rowspan="1">nutrition [NutritionInformation]</td> + </tr> + <tr> + <td>itemprop</td> + <td>servingSize</td> + <td>1 medium slice</td> + </tr> + <tr> + <td>itemprop</td> + <td>calories</td> + <td>250 cal</td> + </tr> + <tr> + <td>itemprop</td> + <td>fatContent</td> + <td>12 g</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: Una eina molt útil per a l'extracció d'estructures de microdata d'HTML és Google's <a href="https://developers.google.com/structured-data/testing-tool/">Structured Data Testing Tool</a>. Intenteu-ho en el codi HTML que es mostra a dalt.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td><code><a href="https://html.spec.whatwg.org/multipage/microdata.html#items">itemscope</a></code></td> + <td> </td> + <td>WG Nota - <span class="short_text" id="result_box" lang="ca"><span>Ja</span> <span>no s'està</span> <span>desenvolupant</span> <span>activament</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">Altres atributs globals diferents</a></li> + <li>Altres atributs globals relacionats amb microdata: + <ul> + <li>{{htmlattrxref("itemid")}}</li> + <li>{{htmlattrxref("itemprop")}}</li> + <li>{{htmlattrxref("itemref")}}</li> + <li>{{htmlattrxref("itemscope")}}</li> + <li>{{htmlattrxref("itemtype")}}</li> + </ul> + </li> +</ul> diff --git a/files/ca/web/html/global_attributes/itemtype/index.html b/files/ca/web/html/global_attributes/itemtype/index.html new file mode 100644 index 0000000000..9e6d0b8671 --- /dev/null +++ b/files/ca/web/html/global_attributes/itemtype/index.html @@ -0,0 +1,295 @@ +--- +title: itemtype +slug: Web/HTML/Global_attributes/itemtype +tags: + - Attribute + - Global attribute + - HTML + - Microdata + - Reference +translation_of: Web/HTML/Global_attributes/itemtype +--- +<div>{{HTMLSidebar("Global_attributes")}}</div> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong><code>itemtype</code></strong> especifica l'URL del vocabulari que s'utilitzarà per definir <code>itemprop</code> (propietats dels elements) en l'estructura de dades. {{Htmlattrxref ("itemscope")}} s'utilitza per establir l'ambit d'on en l'estructura de dades del vocabulari establert per <code>itemtype</code> estarà actiu.</p> + +<p>Google i altres motors de cerca donen suport al vocabulari <a href="http://schema.org/">schema.org</a> per dades estructurades. Aquest vocabulari defineix un conjunt estàndard de noms de tipus i noms de propietats, per exemple, <code><a href="http://schema.org/MusicEvent">MusicEvent</a> </code> indica la representació d'un concert amb <code><a href="http://schema.org/startDate">startDate</a></code> i propietats d'ubicació per especificar els detalls clau del concert. En aquest cas, seria <code><a href="http://schema.org/MusicEvent">MusicEvent</a></code> l'URL utilitzada per itemtype i startDate i la ubicació seria itemprop que <code><a href="http://schema.org/MusicEvent">MusicEvent</a> </code> defineix.</p> + +<div class="note"> +<p><strong>Note:</strong> Més informació sobre els atributs <code>itemtype</code> es poden trobar a <a href="http://schema.org/Thing">http://schema.org/Thing</a></p> +</div> + +<ul> + <li>L'atribut <strong>itemtype</strong> ha de tenir un valor que és un conjunt desordenat de cadenes úniques que distingeixen entre majúscules i minúscules, cadascuna de les quals és un URL vàlid que és un URL absoluta, i tots les quals estan definides per utilitzar el mateix vocabulari. El valor de l'atribut ha de tenir almenys una cadena.</li> + <li>Els tipus d'elements han de ser definits en les especificacions aplicables (com <a href="http://schema.org/">schema.org</a> ) i han ser definits per utilitzar el mateix vocabulari.</li> + <li>L'atribut <code>itemtype</code> només es pot especificar en elements que tinguin especificat un atribut <code>itemscope</code>.</li> + <li>L'atribut <code>itemid</code> només es pot especificar en elements que tinguin definit un atribut <code>itemscope</code> i un atribut <code>itemtype</code>, i només es pot definir en elements amb un atribut <code>itemscope</code> en el que el seu atribut <code>itemtype</code> especifica un vocabulari que no admet identificadors globals per els elements, com es definit en l'especificació del vocabulari.</li> + <li>El significat exacte d'un identificador global està determinat mitjançant l'especificació del vocabulari. Correspon a aquestes especificacions definir si es permet que existeixin múltiples elements amb el mateix identificador global (ja sigui en la mateixa pàgina o diferents pàgines), i quines són les regles de processament per a aquest vocabulari pel que fa al maneig del cas de diversos elements amb el mateix ID.</li> +</ul> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<h4 id="HTML">HTML</h4> + +<pre class="brush: html"><div itemscope itemtype="http://schema.org/Product"> + <span itemprop="brand">ACME</span> + <span itemprop="name">Executive Anvil</span> +</div></pre> + +<h4 id="Estructuració_de_les_dades">Estructuració de les dades</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td rowspan="4">itemscope</td> + <td>itemtype</td> + <td colspan="2" rowspan="1">schema.org Product</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Executive Anvil</td> + </tr> + <tr> + <td>itemprop</td> + <td colspan="2" rowspan="1">brand [Thing]</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>ACME</td> + </tr> + </tbody> +</table> + +<h2 id="Exemple">Exemple</h2> + +<h3 id="HTML_2">HTML</h3> + +<pre class="brush: html"><div itemscope itemtype="http://schema.org/Product"> + <span itemprop="brand">ACME<br></span> + <span itemprop="name">Executive Anvil<br></span> + <img itemprop="image" src="https://pixabay.com/static/uploads/photo/2015/09/05/18/15/suitcase-924605_960_720.png" width="50" height="50" alt="Executive Anvil logo" /><br> + +<span itemprop="description">Sleeker than ACME's Classic Anvil, the + Executive Anvil is perfect for the business traveler + looking for something to drop from a height. + <br> +</span> + + Product #: <span itemprop="mpn">925872<br></span> + <span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> + Rating: <span itemprop="ratingValue">4.4</span> stars, based on <span itemprop="reviewCount">89 + </span> reviews<p> + </span> + +<span itemprop="offers" itemscope itemtype="http://schema.org/Offer"> + Regular price: $179.99<br> + <meta itemprop="priceCurrency" content="USD" /> + <span itemprop="price">Sale price: $119.99<br></span> + (Sale ends <time itemprop="priceValidUntil" datetime="2020-11-05"> + 5 November!</time>)<br> + Available from: <span itemprop="seller" itemscope itemtype="http://schema.org/Organization"> + <span itemprop="name">Executive Objects<br></span> + </span> + Condition: <link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>Previously owned, + in excellent condition<br> + <link itemprop="availability" href="http://schema.org/InStock"/>In stock! Order now! +</span> + + </span> + +</div></pre> + +<h3 id="Resultat">Resultat</h3> + +<h4 id="HTML_3">HTML</h4> + +<p>{{EmbedLiveSample('HTML_2', '300', '400', '', 'Web/HTML/Global_attributes/itemtype')}}</p> + +<h4 id="Estructuració_de_les_dades_2">Estructuració de les dades</h4> + +<table class="standard-table"> + <tbody> + <tr> + <td colspan="1" rowspan="7">itemscope</td> + <td>itemtype</td> + <td colspan="2" rowspan="1">Product (http://schema.org/Product)</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Executive Anvil</td> + </tr> + <tr> + <td>itemprop</td> + <td>image</td> + <td>https://pixabay.com/static/uploads/photo/2015/09/05/18/15/suitcase-924605_960_720.png</td> + </tr> + <tr> + <td>itemprop</td> + <td>description</td> + <td>Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.</td> + </tr> + <tr> + <td>itemprop</td> + <td>mpn</td> + <td>925872</td> + </tr> + <tr> + <td>itemprop</td> + <td>brand [Thing]</td> + <td> </td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>ACME</td> + </tr> + <tr> + <td colspan="1" rowspan="9">itemscope</td> + <td>itemprop[itemtype]</td> + <td>aggregateRating[AggregateRating]</td> + <td> </td> + </tr> + <tr> + <td>itemprop</td> + <td>ratingValue</td> + <td>4.4</td> + </tr> + <tr> + <td>itemprop</td> + <td>reviewCount</td> + <td>89</td> + </tr> + <tr> + <td>itemprop</td> + <td>offers [Offer]</td> + <td>http://schema.org/Offer</td> + </tr> + <tr> + <td>itemprop</td> + <td>priceCurrency</td> + <td>USD</td> + </tr> + <tr> + <td>itemprop</td> + <td>price</td> + <td>119.99</td> + </tr> + <tr> + <td>itemprop</td> + <td>priceValidUntil</td> + <td>2020-11-05</td> + </tr> + <tr> + <td>itemprop</td> + <td>itemCondition</td> + <td>http://schema.org/UsedCondition</td> + </tr> + <tr> + <td>itemprop</td> + <td>availability</td> + <td>http://schema.org/InStock</td> + </tr> + <tr> + <td colspan="1" rowspan="2">itemscope</td> + <td>itemprop[itemtype]</td> + <td>seller [Organization]</td> + <td>http://schema.org/Organization</td> + </tr> + <tr> + <td>itemprop</td> + <td>name</td> + <td>Executive Objects</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p><strong>Nota</strong>: Una eina molt útil per a l'extracció d'estructures de microdata d'HTML és Google's <a class="external external-icon" href="https://developers.google.com/structured-data/testing-tool/">Structured Data Testing Tool</a>. Intenteu-ho en el codi HTML que es mostra a dalt.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td><code><a href="https://html.spec.whatwg.org/multipage/microdata.html#items">itemtype</a></code></td> + <td> </td> + <td>WG Nota - <span class="short_text" id="result_box" lang="ca"><span>Ja</span> <span>no s'està</span> <span>desenvolupant</span> <span>activament</span></span></td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">Altres atributs globals diferents</a></li> + <li>Altres atributs globals relacionats amb microdata: + <ul> + <li>{{htmlattrxref("itemid")}}</li> + <li>{{htmlattrxref("itemprop")}}</li> + <li>{{htmlattrxref("itemref")}}</li> + <li>{{htmlattrxref("itemscope")}}</li> + <li>{{htmlattrxref("itemtype")}}</li> + </ul> + </li> +</ul> diff --git a/files/ca/web/html/global_attributes/lang/index.html b/files/ca/web/html/global_attributes/lang/index.html new file mode 100644 index 0000000000..5817c27aca --- /dev/null +++ b/files/ca/web/html/global_attributes/lang/index.html @@ -0,0 +1,102 @@ +--- +title: lang +slug: Web/HTML/Global_attributes/lang +translation_of: Web/HTML/Global_attributes/lang +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}</p> + +<p> L'<a href="/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>lang </strong>participa en la definició de la llengua de l'element,la llengua en que els elements no editables estan escrits o la llengua en que els elements editables han de ser escrit. L'etiqueta conté un valor d'entrada únic que correspon a una de les etiquetes del document IETF <a class="external" href="http://www.ietf.org/rfc/bcp/bcp47.txt" title="http://www.ietf.org/rfc/bcp/bcp47.txt"><em>Tags for Identifying Languages (BCP47)</em></a>. Si el contingut de l'etiqueta és uan <em>cadena buida </em>la llengua s'estableix com <em>a </em><em>desgoneguda</em> ; si el contingut de l'etiqueta no és valid, en referència al BCP47, s'estableix com a <em>invàlida</em>.</p> + +<p>Encara que l'atribut <strong>lang</strong> hagi sigut establert, pot no tenir-se e compte, ja que l'atribut <a href="/en-US/docs/Web/HTML/Global_attributes/xml:lang"><strong>xml:lang</strong></a> té prioritat. Llegiu <a href="/en-US/docs/Determining_the_language_of_element" title="en/Determining the language of element"> l'algoritme per determinar la llengua</a> d'un contingut d'un element per veure com la llengua es determina en tots els casos.</p> + +<p>Per la pseudo-classe de CSS {{ cssxref(":lang") }}, dos noms de llengües invàlides són diferents si els seus noms són diferents.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#the-lang-and-xml:lang-attributes", "lang")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>No hi ha canvis de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-lang-and-xml:lang-attributes", "lang")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, no hi ha canvis de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#the-lang-and-xml:lang-attributes", "lang")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, comprotament amb <strong>xml:lang</strong> i determinació de llenguatge algorísmic definit. També és un veritable atribut global.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/dirlang.html#h-8.1', 'lang')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Supportat en tots elements menys en {{HTMLElement("applet")}}, {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("br")}}, {{HTMLElement("frame")}}, {{HTMLElement("frameset")}}, {{HTMLElement("iframe")}}, {{HTMLElement("param")}}, i {{HTMLElement("script")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport Bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport Bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Tots els <a href="/en-US/docs/Web/HTML/Global_attributes">Atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/spellcheck/index.html b/files/ca/web/html/global_attributes/spellcheck/index.html new file mode 100644 index 0000000000..6a9d94f1fc --- /dev/null +++ b/files/ca/web/html/global_attributes/spellcheck/index.html @@ -0,0 +1,215 @@ +--- +title: spellcheck +slug: Web/HTML/Global_attributes/spellcheck +tags: + - Experimental + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/spellcheck +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}{{SeeCompatTable}}</p> + +<p>L'atribut global spellcheck és un atribut enumerat defineix si en l'element es poden comprovar els errors d'ortografia. Pot tenir els següents valors:</p> + +<ul> + <li><code>true</code>, indica que l'element, si és possible, se li ha de comprovar els errors d'ortografia;</li> + <li><code>false</code>, indica que l'element, si és possible, no se li ha de comprovar els errors d'ortografia.</li> +</ul> + +<p>Si aquest atribut no està establert, el valor predeterminat és de tipus d'element i definit pel navegador. Aquest valor per defecte també pot <em>heretar</em>, la qual cosa vol dir que el contingut de l'element es revisa l'ortografia només si el seu ancestre més proper té un estat <code>true</code> per la correcció ortogràfica.<br> + <br> + Podeu consultar <a href="/en/HTML/Controlling_spell_checking_in_HTML_forms" title="en/Controlling spell checking in HTML forms">aquest article</a> per veure un exemple complet de l'ús d'aquest atribut.</p> + +<p>Aquest atribut és un enumerat i no un booleà. Això vol dir que l'ús explícit d'un dels valors <code>true</code> o <code>false</code> és obligatori i que una forma abreujada com <code><label spellcheck></code>Exemple <code>Label</ label></code> no està permès. L'ús correcte és <code><label spellcheck="true"></code>Exemple <code>Label</label></code>.</p> + +<p>Aquest atribut és simplement un suggeriment per al navegador: els navegadors no són necessaris per a poder comprovar els errors d'ortografia. Generalment, els elements no editables no es comproven els errors d'ortografia, tot i que l'atribut <strong>spellcheck</strong> s'estableixi en <code>true</code> i el navegador sigui compatible amb la correcció ortogràfica.</p> + +<p>El <em>valor per defecte</em> d'aquest atribut depèn del navegador i l'element:</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Browser</th> + <th>{{ HTMLElement("html") }}</th> + <th>{{ HTMLElement("textarea") }}</th> + <th>{{ HTMLElement("input") }}</th> + <th>others</th> + <th>Comment</th> + </tr> + <tr> + <td rowspan="3">Firefox</td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <code>0</code></td> + </tr> + <tr> + <td><strong><code>false</code></strong></td> + <td><strong><code>true</code></strong></td> + <td><strong><em>inherited</em></strong></td> + <td><strong><em>inherited</em></strong></td> + <td><strong>When <code>layout.spellcheckDefault</code> is <code>1</code> (default value)</strong></td> + </tr> + <tr> + <td><code>false</code></td> + <td><code>true</code></td> + <td><code>true</code></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <code>2</code></td> + </tr> + <tr> + <td rowspan="3">Seamonkey</td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <span style="font-family: Courier New;"><code>0</code></span></td> + </tr> + <tr> + <td><strong><code>false</code></strong></td> + <td><strong><code>true</code></strong></td> + <td><strong><em>inherited</em></strong></td> + <td><strong><em>inherited</em></strong></td> + <td><strong>When <code>layout.spellcheckDefault</code> is <span style="font-family: Courier New;">1</span> (default value)</strong></td> + </tr> + <tr> + <td><code>false</code></td> + <td><code>true</code></td> + <td><code>true</code></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <span style="font-family: Courier New;"><code>2</code></span></td> + </tr> + <tr> + <td rowspan="3">Camino</td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><code>false</code></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <span style="font-family: Courier New;"><code>0</code></span></td> + </tr> + <tr> + <td><code>false</code></td> + <td><code>true</code></td> + <td><em>inherited</em></td> + <td><em>inherited</em></td> + <td>When <code>layout.spellcheckDefault</code> is <span style="font-family: Courier New;"><code>1</code></span></td> + </tr> + <tr> + <td><strong><code>false</code></strong></td> + <td><strong><code>true</code></strong></td> + <td><strong><code>true</code></strong></td> + <td><strong><em>inherited</em></strong></td> + <td><strong>When <span style="font-family: Courier New;">layout.spellcheckDefault</span> is <span style="font-family: Courier New;"><code>2</code> </span><strong>(default value)</strong></strong></td> + </tr> + <tr> + <td>Chrome</td> + <td><code>false</code></td> + <td><code>true</code></td> + <td>?</td> + <td><em>inherited</em></td> + </tr> + <tr> + <td>Internet Explorer</td> + <td><code>false</code></td> + <td><code>true</code></td> + <td>?</td> + <td><em>inherited</em></td> + </tr> + <tr> + <td>Opera</td> + <td><code>false</code></td> + <td><code>true</code></td> + <td>?</td> + <td><em>inherited</em></td> + </tr> + <tr> + <td>Safari</td> + <td><code>false</code></td> + <td><code>true</code></td> + <td>?</td> + <td><em>inherited</em></td> + </tr> + </tbody> +</table> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "interaction.html#spelling-and-grammar-checking", "spellcheck")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#spelling-and-grammar-checking", "spellcheck")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatGeckoDesktop("1.8.1") }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown}}</td> + <td>{{ CompatGeckoMobile("1.8.1") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/style/index.html b/files/ca/web/html/global_attributes/style/index.html new file mode 100644 index 0000000000..5487e42a7f --- /dev/null +++ b/files/ca/web/html/global_attributes/style/index.html @@ -0,0 +1,107 @@ +--- +title: style +slug: Web/HTML/Global_attributes/style +translation_of: Web/HTML/Global_attributes/style +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}</p> + +<p>L'<a href="/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>style</strong> contè declaracions d'estil <a href="/en/CSS" title="en/CSS">CSS</a> per ser aplicat a l'element. Fixeu-vos que es recomana definir els estils en un fitxer o fitxers diferent. Tant aquest atribut com l'element {{ HTMLElement("style") }} tenen principalment la finalitat de permetre aplicar estils de forma ràpida, per exemple per propòsits de testeig.</p> + +<div class="note"> +<p><strong>Nota d'ús: </strong>Aquest atribut no s'ha d'utilitzar per transmetre informació semàntica. Fins i tot en el cas que s'eliminin tots els estils, la pàgina hauria de remandre semànticament correcta. No s'hauria d'utilitzar per amagar informació irrellevant; si aquest és l'objectiu, s'hauria d'utilitzar l'atribut <a href="#attr-hidden" title="#attr-hidden"><strong>hidden</strong></a>.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#the-style-attribute", "style")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Cap canvi des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-style-attribute", "style")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, cap canvi desde {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#the-style-attribute", "style")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània {{SpecName('HTML WHATWG')}}. A partir de {{SpecName("HTML4.01")}}, és un atribut global vertader.</td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'present/styles.html#h-14.2.2', 'style')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Suportat en tots els elements excepte:{{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("param")}}, {{HTMLElement("script")}}, {{HTMLElement("style")}}, and {{HTMLElement("title")}}.</td> + </tr> + <tr> + <td>{{ SpecName("CSS3 Style", "", "") }}</td> + <td>{{Spec2("CSS3 Style")}}</td> + <td>Es defineix el contingut de l'atribut <strong>style</strong>.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Tots els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/tabindex/index.html b/files/ca/web/html/global_attributes/tabindex/index.html new file mode 100644 index 0000000000..13ccd52808 --- /dev/null +++ b/files/ca/web/html/global_attributes/tabindex/index.html @@ -0,0 +1,116 @@ +--- +title: tabindex +slug: Web/HTML/Global_attributes/tabindex +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/tabindex +--- +<p>{{HTMLSidebar("Global_attributes")}}</p> + +<p class="note">El valor màxim per tabindex no ha d'excedir de 32.767 especificació W3C secció 17.11.1. Si no s'especifica el valor per omissió és -1</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <span lang="ca"> <strong><span>tabindex</span></strong> <span>és</span> <span>un enter que</span> <span>indica</span> <span>si l'element</span> <span>pot</span> <span>tenir</span> <span>el focus</span> <span>d'entrada</span> <span>(</span><span>és</span> <em><span>enfocable</span></em><span>)</span><span>,</span> <span>si</span> <span>ha de participar</span> <span>en la navegació</span> <span>per teclat</span> <span>seqüencial</span><span>, i en cas</span> <span>afirmatiu</span><span>,</span> <span>en quina posició</span><span>.</span> <span>Pot prendre</span> <span>diversos</span> <span>valors</span><span>:</span></span></p> + +<ul> + <li><em>un valor negatiu</em> significa que l'element ha de ser enfocable, però no ha de ser accessible a través de la navegació seqüencial del teclat;</li> + <li><code>0</code> vol dir que l'element ha de ser enfocable i accessible a través de la navegació seqüencial del teclat, però el seu ordre relatiu està definit per la convenció de la plataforma;</li> + <li>un <em>valor positiu</em> significa que ha de ser enfocable i accessible a través de la navegació seqüencial del teclat; el seu ordre relatiu es defineix pel valor de l'atribut: el seguiment seqüencial va incrementan el nombre de tabindex. Si diversos elements comparteixen el mateix tabindex, el seu ordre relatiu segueix la seva posició relativa en el document.</li> +</ul> + +<p>Un element amb un valor <code>0</code>, un valor no vàlid o cap valor <strong>tabindex</strong> ha de ser col·locat després dels elements amb un <strong>tabindex</strong> positiu en l'ordre navegació seqüencial del teclat.</p> + +<p>Podeu consultar <a href="/en/Focus_management_in_HTML" title="en/Focus management in HTML">aquest article</a> per veure una explicació completa d'administració de l'enfocament.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "editing.html#attr-tabindex", "tabindex")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "editing.html#attr-tabindex", "tabindex")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "editing.html#attr-tabindex", "tabindex")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}. Des de {{SpecName("HTML4.01")}}, <span id="result_box" lang="ca"><span>l'atribut</span> <span>ara</span> <span>és compatible</span> <span>amb</span> <span>tots</span> <span>els</span> <span>elements</span> <span>(</span><span>atributs</span> <span>globals</span><span>)</span><span>.</span></span></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/forms.html#adef-tabindex', 'tabindex')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Només soportat en {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("button")}}, {{HTMLElement("object")}}, {{HTMLElement("select")}} i {{HTMLElement("textarea")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>{{domxref("HTMLElement.tabIndex")}} <span class="short_text" id="result_box" lang="ca"><span>que reflecteix</span> <span>aquest</span> <span>atribut.</span></span></li> + <li>Problemes d'accessibilitat amb tabindex: Veure <a href="http://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html" id="id-22" style="font-size: inherit; line-height: inherit;" title="Don’t Use Tabindex Greater than 0 | Adrian Roselli">No utilitzar Tabindex més gran que 0 | Adrian Roselli</a>.</li> +</ul> diff --git a/files/ca/web/html/global_attributes/title/index.html b/files/ca/web/html/global_attributes/title/index.html new file mode 100644 index 0000000000..de5b97f8e2 --- /dev/null +++ b/files/ca/web/html/global_attributes/title/index.html @@ -0,0 +1,139 @@ +--- +title: title +slug: Web/HTML/Global_attributes/title +tags: + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/title +--- +<p>{{HTMLSidebar("Global_attributes")}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <strong>title</strong> conté un text que representa informació d'assessorament en relació amb l'element al qual pertany. Aquesta informació pot generalment, però no necessàriament, presentar-se a l'usuari com una descripció. Aquests són alguns dels usos típics d'aquest atribut:</p> + +<ul> + <li>Vincle: <span class="short_text" id="result_box" lang="ca"><span>el títol</span> <span>o una descripció</span> <span>del document</span> <span>vinculat</span></span></li> + <li>Element Media com una imatge: <span class="short_text" id="result_box" lang="ca"><span>una descripció o</span> <span>crèdits</span> <span>associats</span></span></li> + <li><span class="short_text" id="result_box" lang="ca"><span>Paràgraf</span></span>: <span class="short_text" id="result_box" lang="ca"><span>una nota</span> <span>al peu o</span> <span>un comentari</span> <span>sobre ell</span></span></li> + <li>Cita: <span id="result_box" lang="ca"><span>alguna informació</span> <span>sobre l'autor,</span> <span>i</span> <span>així</span> <span>successivament</span></span>.</li> +</ul> + +<p>Si s'omet aquest atribut, vol dir que el títol de l'ancestre més proper d'aquest element segueix sent rellevant per a ell (i legítimament es pot utilitzar com la descripció d'aquest element). Si aquest atribut s'estableix en una <em>cadena buida</em>, significa explícitament que el títol del seu ancestre més proper no és rellevant per a aquest element (i no ha de ser utilitzat en la descripció d'aquest element).</p> + +<p>Semàntiques addicionals estan connectats als atributs del <strong>title</strong> dels elements {{ HTMLElement("link") }}, {{ HTMLElement("abbr") }}, {{ HTMLElement("input") }} i {{ HTMLElement("menuitem") }}.</p> + +<p>L'atribut <strong>title</strong> pot contenir diverses línies. Cada <code>U+LINE FEED (LF)</code> que s'insereix representa un salt de línia. Algunes precaucions han de ser preses encara que, lo que vol dir que:</p> + +<pre class="brush: html"><p>Newlines in title should be taken into account,like this <abbr title="This is a +multiline title">example</abbr>.</p> +</pre> + +<p><span class="short_text" id="result_box" lang="ca"><span>defineix un</span> <span>títol</span> <span>de dues</span> <span>línies.</span></span></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "elements.html#the-title-attribute", "title")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-title-attribute", "title")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, sense canvis des de {{SpecName('HTML5 W3C')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', "dom.html#the-title-attribute", "title")}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}. Des de {{SpecName("HTML4.01")}}, <span class="short_text" id="result_box" lang="ca"><span>és un veritable</span> <span>atribut</span> <span>global</span></span></td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'struct/global.html#adef-title', 'title')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td>Suportat amb tots els elements però {{HTMLElement("base")}}, {{HTMLElement("basefont")}}, {{HTMLElement("head")}}, {{HTMLElement("html")}}, {{HTMLElement("meta")}}, {{HTMLElement("param")}}, {{HTMLElement("script")}} i {{HTMLElement("title")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>Suport Multi-línia</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoDesktop(12)}}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td>Suport Multi-línia</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(12)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>{{domxref("HTMLElement.title")}} <span class="short_text" id="result_box" lang="ca"><span>que reflecteix</span> <span>aquest</span> <span>atribut.</span></span></li> +</ul> diff --git a/files/ca/web/html/global_attributes/translate/index.html b/files/ca/web/html/global_attributes/translate/index.html new file mode 100644 index 0000000000..34d63218b9 --- /dev/null +++ b/files/ca/web/html/global_attributes/translate/index.html @@ -0,0 +1,99 @@ +--- +title: translate +slug: Web/HTML/Global_attributes/translate +tags: + - Experimental + - Global attributes + - HTML + - Reference +translation_of: Web/HTML/Global_attributes/translate +--- +<p class="note">{{HTMLSidebar("Global_attributes")}}{{SeeCompatTable}}</p> + +<p>L'<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atribut global</a> <span lang="ca"> </span> <strong>translate</strong> és un atribut enumerat que s'utilitza per especificar si els valors dels atributs d'un element i els valors dels seus node de <code id="the-translate-attribute:text"><a href="https://html.spec.whatwg.org/multipage/infrastructure.html#text">Text</a></code> fills s'han de traduir quan la pàgina es localitzada, o deixar-los sense canvis. Pot tenir els següents valors:</p> + +<ul> + <li>cadena buida i <code>"yes"</code>, indica que l'element s'ha de traduir quan es localitza la pàgina.</li> + <li><code>"no"</code>, <span class="short_text" id="result_box" lang="ca"><span>indica que</span> <span>l'element no</span> <span>s'ha de traduir.</span></span></li> +</ul> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "dom.html#attr-translate", "translate")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Sense canvis des de l'última instantània, {{SpecName('HTML5.1')}}</td> + </tr> + <tr> + <td>{{SpecName('HTML5.1', "dom.html#the-translate-attribute", "translate")}}</td> + <td>{{Spec2('HTML5.1')}}</td> + <td>Instantània de {{SpecName('HTML WHATWG')}}, definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + <td>{{ CompatNo }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>Tots els <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</li> + <li>La propietat {{domxref("HTMLElement.translate")}} <span class="short_text" id="result_box" lang="ca"><span>reflecteix</span> <span>aquest</span> <span>atribut</span></span> .</li> +</ul> diff --git a/files/ca/web/html/index.html b/files/ca/web/html/index.html new file mode 100644 index 0000000000..81475f514a --- /dev/null +++ b/files/ca/web/html/index.html @@ -0,0 +1,106 @@ +--- +title: HTML (HyperText Markup Language) +slug: Web/HTML +tags: + - HTML + - HTML Lesson + - HTML Programming + - HTML Tutorials + - HTML5 + - Hyper text + - Hypertext + - Landing + - Reference + - Web + - What is HTML + - 'l10n:priority' +translation_of: Web/HTML +--- +<div>{{HTMLSidebar}}</div> + +<p class="summary"><strong>HTML</strong><strong> </strong>(llenguatge de marcatge hipertextual - HyperText Markup Language) és el bloc de construcció més bàsic de la web. Defineix el significat i l'estructura del contingut web. Altres tecnologies a més de HTML s'utilitzen generalment per descriure l'aparença/presentació (<a href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a>) o la funcionalitat (<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a>) d'una pàgina web.</p> + +<p>"HyperText" fa referència als enllaços que connecten pàgines web entre si, ja sigui dins d'un únic lloc web o entre llocs web. Els enllaços són un aspecte fonamental de la web. En penjar contingut a Internet i enllaçar-lo a pàgines creades per altres persones, us convertiu en un participant actiu a la World Wide Web.</p> + +<p>HTML utilitza "marcat" per anotar text, imatges i altres continguts per mostrar-ho en un navegador web. El marcat HTML inclou "elements" especials com {{HTMLElement("head")}}, {{HTMLElement("title")}}, {{HTMLElement("body")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("p")}}, {{HTMLElement("div")}}, {{HTMLElement("span")}}, {{HTMLElement("img")}} i molts altres.</p> + +<p class="brush: html">Un element d'HTML és separa d'un altre text en un document mitjançant "etiquetes", les quals consisteixen en el nom de l'element envoltat per "<code><</code>" i "<code>></code>". El nom d'un element dins una etiqueta és indiferent a majúscules o minúscules. Que és, pot ser escrit dins majúscul, minúscula, o una mescla. Per exemple, l'etiqueta <code><title></code> es pot escriure com <code><Title></code>, <code><TITLE></code>, o en qualsevol altre manera.</p> + +<p>Els següents articles us ajudaran a aprendre més sobre HTML.</p> + +<section class="cleared" id="sect1"> +<ul class="card-grid"> + <li><span>Introducció a HTML</span> + + <p>Si sou nou en el desenvolupament web, assegureu-vos de llegir l'article <a href="/en-US/docs/Learn/Getting_started_with_the_web/HTML_basics">HTML Bàsics</a> per aprendre què és HTML i com utilitzar-lo.</p> + </li> + <li><span>Tutorials HTML</span> + <p>Per articles sobre com utilitzar HTML, així com tutorials i exemples complets, consulteu el nostre <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML">àrea d'aprenentatge HTML</a>.</p> + </li> + <li><span>Referència HTML</span> + <p>A la nostra àmplia secció de <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference">referència HTML</a>, trobareu els detalls sobre cada element i atribut en HTML.</p> + </li> +</ul> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Tools" id="Tools" name="Tools">Tutorials per principiants</h2> + +<p>La nostra <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML">àrea d'aprenentatge HTML</a> ofereix múltiples mòduls que ensenyen HTML des del principi, sense necessitat d'un coneixement previ.</p> + +<dl> + <dt><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a></dt> + <dd>Aquest mòdul estableix l'escenari, perquè us aneu acostumant a conceptes i sintaxis importants, com aplicar HTML al text, com crear hipervincles i com usar HTML per estructurar una pàgina web.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Multimedia_and_embedding">Multimèdia i incrustació</a></dt> + <dd>Aquest mòdul explora com utilitzar HTML per incloure multimèdia a les vostres pàgines web, incloent les diferents maneres en què es poden incloure les imatges i com incrustar vídeo, àudio i fins i tot pàgines web senceres.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Tables">Taules HTML</a></dt> + <dd>Representar dades tabulars en una pàgina web d'una manera comprensible i accessible pot ser un repte. Aquest mòdul inclou el marcat bàsic de la taula, juntament amb característiques més complexes, com ara la implementació de subtítols i resums.</dd> + <dt><a href="/en-US/docs/Learn/HTML/Forms">Formularis HTML</a></dt> + <dd>Els formularis són una part molt important de la Web: proporcionen gran part de la funcionalitat que necessiteu per interactuar amb els llocs web, p. ex. registrar i iniciar sessió, enviar comentaris, comprar productes i molt més. Aquest mòdul us permet començar a crear les parts del costat del client dels formularis.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto">Utilitzar HTML per resoldre problemes comuns</a></dt> + <dd>Proporciona enllaços a seccions de contingut que expliquen com utilitzar HTML per resoldre problemes molt comuns a l'hora de crear una pàgina web: tractar els títols, afegir imatges o vídeos, fer èmfasi en el contingut, crear un formulari bàsic, etc.</dd> +</dl> + +<h2 id="Temes_avançats">Temes avançats</h2> + +<dl> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/CORS_enabled_image">Imatge CORS habilitada</a></dt> + <dd>L'atribut {{htmlattrxref("crossorigin", "img")}} en combinació amb un encapçalament {{glossary("CORS")}} adequat, permet que les imatges definides per l'element {{HTMLElement("img")}} es carreguin des d'origens estrangers i s'utilitzin en un element {{HTMLElement("canvas")}} com si s'estiguessin carregant des de l'origen actual.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">Atributs de configuració de CORS</a></dt> + <dd class="landingPageList">Alguns elements HTML que proporcionen suport per <a href="/ca/docs/HTTP/Access_control_CORS">CORS</a>, com ara {{HTMLElement("img")}} o {{HTMLElement("video")}}, tenen un atribut <code>crossorigin</code> (propietat <code>crossOrigin</code>), que us permet configurar les sol·licituds CORS per les dades recuperades de l'element.</dd> + <dt class="landingPageList"><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Preloading_content">Precàrrega de contingut amb rel="preload"</a></dt> + <dd class="landingPageList">El valor <code>preload</code> de l'atribut {{htmlattrxref("rel", "link")}} de l'element {{htmlelement("link")}} permet escriure sol·licituds de cerca declaratives en el seu {{htmlelement("head")}} HTML , especificant els recursos que les vostres pàgines necessitaran, ràpidament després de la càrrega, per la qual cosa necessita començar la precàrrega abans del cicle de vida d'una càrrega de pàgina, abans que la maquinària de representació principal, del navegador, entri en acció . Això garanteix que estiguin disponibles abans i sigui menys probable que bloquegi el primer renderitzat de la pàgina, la qual cosa comporta millores en el rendiment. Aquest article proporciona una guia bàsica sobre com funciona el <code>preload</code>.</dd> +</dl> +</div> + +<div class="section"> +<h2 class="Documentation" id="Referències">Referències</h2> + +<dl> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Reference">Referència HTML</a></dt> + <dd class="landingPageList">HTML consisteix en <strong>elements</strong>, cadascun dels quals pot ser modificat per un cert nombre d'<strong>atributs</strong>. Els documents HTML es connecten entre si per <a href="/ca/docs/Web/HTML/Link_types">enllaços</a>.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Element">Referència de l'element HTML</a></dt> + <dd class="landingPageList">Navegareu per una llista de tots els {{glossary("Element", "elements")}} {{glossary("HTML")}}.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Attributes">Referència de l'atribut HTML</a></dt> + <dd class="landingPageList">Els elements en HTML tenen <strong>atributs</strong>. Són valors addicionals que configuren els elements o ajusten el seu comportament de diverses maneres.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Global_attributes">Atributs Globals</a></dt> + <dd class="landingPageList">Els atributs globals es poden especificar en tots els <a href="/ca/docs/Web/HTML/Element">elements HTML</a>, <em>fins i tot aquells no especificats en l'estàndard</em>. Això significa que qualsevol element no estàndard ha de permetre aquests atributs, encara que aquests elements facin que el document HTML5 no sigui compatible.</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Inline_elements">Elements en línia</a> i <a href="/en-US/docs/Web/HTML/Block-level_elements">elements a nivell de bloc</a></dt> + <dd class="landingPageList">Els elements HTML solen ser elements "en línia" o "a nivell de bloc". Un element inline ocupa només l'espai delimitat per les etiquetes que el defineixen. Un element a nivell de bloc ocupa tot l'espai del seu element pare (contenidor), creant així un "bloc".</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Link_types">Tipus d'enllaços</a></dt> + <dd class="landingPageList">En HTML, es poden utilitzar diversos tipus d'enllaços per establir i definir la relació entre dos documents. Els elements d'enllaç que els tipus es poden configurar, inclouen {{HTMLElement("a")}}, {{HTMLElement("area")}} i {{HTMLElement("link")}}</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Supported_media_formats">Formats de medis compatibles amb elements d'àudio u vídeo HTML</a></dt> + <dd class="landingPageList">Els elements {{HTMLElement("audio")}} i {{HTMLElement("video")}} permeten reproduir medis d'àudio i de vídeo. Aquests elements proporcionen una alternativa nativa del navegador a funcions similars que es troben en Adobe Flash i altres connectors (plug-ins).</dd> + <dt class="landingPageList"><a href="/en-US/docs/Web/HTML/Kinds_of_HTML_content">Tipus de contingut HTML</a> (Avançat)</dt> + <dd class="landingPageList">HTML es compon de diversos tipus de contingut, cadascun dels quals es permet utilitzar en determinats contextos i està prohibit en uns altres. De la mateixa manera, cadascun d'ells té un conjunt d'altres categories de contingut que poden contenir i elements que poden o no ser utilitzats en ells. Aquesta és una guia per a aquestes categories.</dd> +</dl> + +<h2 class="landingPageList" id="Temes_relacionats">Temes relacionats</h2> + +<dl> + <dt><a href="/en-US/docs/Web/HTML/Applying_color">Aplicació de colors a elements HTML usant CSS</a></dt> + <dd>Aquest article abasta la majoria de les maneres d'utilitzar CSS per afegir color a contingut HTML, enumerant quines parts dels documents HTML es poden acolorir i quines propietats CSS s'utilitzaran en fer-ho. Inclou exemples, enllaços a eines de construcció de paleta, i molt més.</dd> +</dl> +</div> +</div> +<span class="alllinks"><a href="/ca/docs/tag/HTML">Veure Tot...</a></span></section> diff --git a/files/ca/web/html/optimizing_your_pages_for_speculative_parsing/index.html b/files/ca/web/html/optimizing_your_pages_for_speculative_parsing/index.html new file mode 100644 index 0000000000..df48dec4e3 --- /dev/null +++ b/files/ca/web/html/optimizing_your_pages_for_speculative_parsing/index.html @@ -0,0 +1,29 @@ +--- +title: Optimizing your pages for speculative parsing +slug: Web/HTML/Optimizing_your_pages_for_speculative_parsing +translation_of: Glossary/speculative_parsing +--- +<p><span id="result_box" lang="ca"><span class="alt-edited">Tradicionalment en els navegadors, </span></span>el analitzador sintàctic<span lang="ca"><span class="alt-edited"> d'HTML s'executa en el fil principal i s'ha bloquejat després d'una etiqueta <code></script></code> fins que l'script s'ha recuperat de la xarxa i s'executat.</span></span> El analitzador sintàctic d'HTML en Firefox 4 i versions posteriors dóna suport a l'anàlisi especulativa fora del fil principal. A continuació s'analitza mentre que els scripts estan sent descarregats i s'executen. Com en Firefox 3.5 i 3.6, l'analitzador sintàctic d'HTML comença càrregues especulatives per als scripts, fulles d'estil i imatges que troba per davant en la seqüència. No obstant això, en Firefox 4 i posterior l'analitzador sintàctic d'HTML també executa l'algorisme de construcció de l'arbre HTML especulativament. <span id="result_box" lang="ca"><span>L'avantatge</span> <span>és que</span> <span>quan una</span> <span>especulació</span> <span>té</span> <span>èxit, no</span> <span>hi ha</span> <span>necessitat</span> <span>de reanàlisi</span> <span>de la</span> <span>part de l'arxiu</span> <span>d'entrada </span> <span>ja que </span></span><span lang="ca"><span>va ser</span> <span>analitzat</span> <span>a la recerca de</span> <span>scripts</span><span>, fulls</span> <span>d'estil</span> <span>i imatges</span></span>. L'inconvenient és que hi ha més feina perduda quan l'especulació falla.</p> + +<p>Aquest document pot ajudar evitar que aquest tipus de coses que fan que l'especulació falli i alenteixen la càrrega de la pàgina.</p> + +<h2 id="Fent_càrregues_especulatives_successives">Fent càrregues especulatives successives</h2> + +<p>Només hi ha una regla per fer càrregues especulatives de scripts vinculats, fulls d'estil i imatges successives:</p> + +<ul> + <li>Si s'utilitza un element <code><base></code> per anul·lar l'URI base de la pàgina, posar l'element de la part non-scripted del document. No ho afegiu a través de <code>document.write()</code> or <code>document.createElement()</code>.</li> +</ul> + +<h2 id="Evitant_perdre_la_sortida_del_constructor_d'arbre">Evitant perdre la sortida del constructor d'arbre</h2> + +<p>El constructor d'arbre especulatiu falla quan <code>document.write()</code> canvia l'estat del constructor d'arbre, de tal manera que l'estat especulatiu després de la etiqueta <code></script></code> ja no se sosté quan ha estat analitzat tot el contingut inserit per <code>document.write()</code>.<span id="result_box" lang="ca"><span> No obstant això</span><span>, només els</span> <span>usos</span> <span>inusuals</span> <span>de</span> <code><span>document.write</span><span>(</span><span>)</span></code> <span>causen</span> <span>problemes.</span> <span>Aquestes</span> <span>són</span> <span>les</span> <span>coses</span> <span>que cal evitar</span><span>:</span></span></p> + +<ul> + <li><span id="result_box" lang="ca"><span>No escriviu</span> <span>arbres</span> <span>desequilibrats</span></span>. <code><script>document.write("<div>");</script></code> és incorrecta. <code><script>document.write("<div></div>");</script> </code>està bé.</li> + <li><span id="result_box" lang="ca"><span>No escriviu</span> <span>un símbol</span> <span>sense acabar</span></span>. <code><script>document.write("<div></div");</script></code> is incorrecta.</li> + <li><span id="result_box" lang="ca"><span>No</span> <span>acabeu un</span> <span>escrit</span> <span>amb</span> <span>un retorn de</span> <span>carro</span></span>. <code><script>document.write("Hello World!\r");</script></code> és incorrecta <code><script>document.write("Hello World!\n");</script> </code>està bé.</li> + <li>Noteu que l'escriptura d'etiquetes equilibrades pot fer que altres etiquetes poguin inferir d'una manera que fa que l'escriptura sigui desequilibrada. Per exemple <code><script>document.write("<div></div>");</script></code> dins de l'element head s'interpreta com <code><script>document.write("</head><body><div></div>");</script></code> el qual està desequilibrat.</li> + <li><span class="short_text" id="result_box" lang="ca"><span class="alt-edited">No doneu format part d'una taula</span></span>. <code><table><script>document.write("<tr><td>Hello World!</td></tr>");</script></table></code> és incorrecta. However, <code><script>document.write("</code><code><table></code><code><tr><td>Hello World!</td></tr></code><code></table></code><code>");</script></code> està bé.</li> + <li>TODO: <span id="result_box" lang="ca"><span>document.write</span> <span>dins d'altres</span> <span>elements</span> <span>de format.</span></span>.</li> +</ul> diff --git a/files/ca/web/index.html b/files/ca/web/index.html new file mode 100644 index 0000000000..7f460bc991 --- /dev/null +++ b/files/ca/web/index.html @@ -0,0 +1,101 @@ +--- +title: Tecnologia web per a desenvolupadors +slug: Web +tags: + - History + - Landing + - Web + - Web Development +translation_of: Web +--- +<p class="summary">La naturalesa oberta de la World Wide Web presenta increïbles oportunitats per a les persones que volen crear llocs web o aplicacions en línia. Per aprofitar al màxim les capacitats de la web, haureu de saber com utilitzar-les. Exploreu els enllaços següents per obtenir més informació sobre diverses tecnologies web.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 class="Documentation" id="Tecnologies_web"><span class="short_text" id="result_box" lang="ca"><span>Tecnologies web</span></span></h2> + +<h3 id="Bàsics">Bàsics</h3> + +<dl> + <dt><a href="/en-US/docs/Web/HTML">HTML</a></dt> + <dd><strong><span class="short_text" id="result_box" lang="ca"><span>Llenguatge de marques d'hipertext</span></span></strong> (<strong>HyperText Markup Language - HTML)</strong> s'utilitza per descriure i definir el <em>contingut</em> d'una pàgina web.</dd> + <dt><a href="/en-US/docs/Web/CSS">CSS</a></dt> + <dd><strong><span class="short_text" id="result_box" lang="ca"><span>Fulles d'estil en cascada</span></span></strong> <strong>(Cascading Style Sheets - CSS)</strong> s'utilitzen per descriure l'<em>aparença o la presentació</em> del contingut en una pàgina web.</dd> + <dt><a href="/en-US/docs/Web/HTTP">HTTP</a></dt> + <dd><strong><span class="short_text" id="result_box" lang="ca"><span>Protocol de transferència d'hipertext</span></span></strong> <strong><dfn>(Hypertext Transfer Protocol - HTTP)</dfn></strong> s'utilitza per lliurar HTML i altres documents d'hipermedia a la web.</dd> +</dl> + +<h3 id="Scripting">Scripting</h3> + +<dl> + <dt><a href="/en-US/docs/Web/JavaScript">JavaScript</a></dt> + <dd><strong>JavaScript</strong> és el llenguatge de programació que s'executa en el vostre navegador. Podeu utilitzar-lo per afegir interactivitat i altres característiques dinàmiques al vostre lloc web o aplicació.</dd> + <dt><a href="/en-US/docs/Web/Reference/API">Web APIs</a></dt> + <dd><strong><span id="result_box" lang="ca"><span>Interfícies de programació d'aplicacions web</span></span></strong> <strong>(Web Application Programming Interfaces - Web APIs)</strong> <span id="result_box" lang="ca"><span>s'utilitzen per realitzar diverses tasques, com ara manipular el</span></span> <a href="/en-US/docs/DOM">DOM</a>, <span id="result_box" lang="ca"><span>reproduir àudio o vídeo o generar gràfics en 3D</span></span> . + <ul> + <li>La <a href="/en-US/docs/Web/API" title="/en-US/docs/Web/API">Referència de la interfície Web API</a> <span id="result_box" lang="ca"><span>enumera tots els tipus d'objectes que podeu utilitzar durant el desenvolupament de la web</span></span> .</li> + <li>La <a href="/en-US/docs/WebAPI">pàgina WebAPI</a> enumera totes les comunicacions, accés a maquinari i altres API que podeu utilitzar en aplicacions web.</li> + <li>La <a href="/en-US/docs/Web/Events">Referència d'esdeveniments</a> enumera tots els esdeveniments que podeu utilitzar per fer un seguiment i reaccionar a les coses interessants que s'han produït a la vostra pàgina web o aplicació.</li> + </ul> + </dd> +</dl> + +<h3 id="Gràfics">Gràfics</h3> + +<dl> + <dt><a href="/en-US/docs/HTML/Canvas">Canvas</a></dt> + <dd>L'element {{HTMLElement("canvas")}} proporciona les APIs per dibuixar gràfics 2D utilitzant JavaScript.</dd> + <dt><a href="/en-US/docs/SVG">SVG</a></dt> + <dd><strong>Scalable Vector Graphics (SVG)</strong> permeten utilitzar línies, corbes i altres formes geomètriques per representar gràfics. Amb vectors, podeu crear imatges que s'escalin netament a qualsevol grandària.</dd> + <dt><a href="/en-US/docs/Web/WebGL" title="/en-US/docs/Web/WebGL">WebGL</a></dt> + <dd><strong>WebGL</strong> és una API de JavaScript que permet dibuixar gràfics en 3D o 2D mitjançant l'element HTML5 {{HTMLElement("canvas")}}. Aquesta tecnologia us permet utilitzar l'estàndard OpenGL ES en contingut Web.</dd> +</dl> + +<h3 id="Àudio_vídeo_i_multimèdia">Àudio, vídeo i multimèdia</h3> + +<dl> + <dt><a href="/en-US/docs/Web/Media">Tecnologies de medis web</a></dt> + <dd>Una llista d'APIs relacionades amb els medis, amb enllaços a la documentació que necessitareu per a cadascuna.</dd> + <dt><a href="/en-US/docs/Web/Media/Overview">Visió general de la tecnologia de medis en la web</a></dt> + <dd>Una visió general de les tecnologies web oberta i de les APIs que proporcionen suport per a la reproducció, manipulació i gravació d'àudio i vídeo. Si no esteu segurs de quina API heu d'utilitzar, aquest és el lloc on començar.</dd> + <dt><a href="/en-US/docs/Web/API/Media_Streams_API">API de Captura de Medis i Transmissió</a></dt> + <dd>Una referència a l'API que fa possible transmetre, gravar i manipular medis tant a nivell local com a través d'una xarxa. Això inclou l'ús de càmeres i micròfons locals per capturar vídeo, àudio i imatges fixes.</dd> + <dt><a href="/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video">Ús d'àudio i vídeo en HTML5</a></dt> + <dd>Incrustar vídeo i/o àudio en una pàgina web i controlar la seva reproducció.</dd> + <dt><a href="/en-US/docs/WebRTC">WebRTC</a></dt> + <dd>El RTC en WebRTC dona suport a les Comunicacions en Temps Real, tecnologia que permet la transmissió d'àudio/vídeo i l'intercanvi de dades entre clients de navegadors (parells).</dd> +</dl> + +<h3 id="Altre">Altre</h3> + +<dl> + <dt><a href="/en-US/docs/Web/MathML">MathML</a></dt> + <dd><strong>Llenguatge de marcatge matemàtic (MathML)</strong> permet mostrar equacions matemàtiques complexes i la sintaxi.</dd> +</dl> +</div> + +<div class="section"> +<h2 class="Documentation" id="Àrea_d'aprenentatge">Àrea d'aprenentatge</h2> + +<dl> + <dt><a href="/en-US/docs/Learn">Aprenentatge de desenvolupament web</a></dt> + <dd><span id="result_box" lang="ca"><span>Aquest conjunt d'articles ofereix als principiants tot el que necessiten per començar a codificar llocs web senzills</span></span>.</dd> +</dl> + +<dl> +</dl> + +<h2 id="Altres_temes"><span class="short_text" id="result_box" lang="ca"><span>Altres temes</span></span></h2> + +<dl> + <dt><a href="/en-US/docs/Web/Apps">Desenvolupament d'aplicacions web</a></dt> + <dd>Aquest conjunt d'articles explica les tècniques utilitzades per desenvolupar aplicacions web per a entorns mòbils, d'escriptori i Firefox OS.</dd> + <dt><a href="/en-US/docs/Web/Accessibility">Accessibilitat</a></dt> + <dd>Els llocs web accessibles permeten que tantes persones com sigui possible utilitzin la web, incloent-hi aquells amb capacitats visuals, auditives o d'altre tipus són d'alguna manera limitades. Aquest conjunt d'articles proporciona informació sobre el desenvolupament web accessible.</dd> + <dt><a href="/en-US/docs/Web/Security">Seguretat</a></dt> + <dd>No deixeu que el vostre lloc web o aplicació filtri dades privades als nois dolents. Utilitzeu aquest conjunt d'articles per assegurar-vos que els vostres projectes siguin segurs.</dd> +</dl> +</div> +</div> + +<p><span class="alllinks"><a href="/en-US/docs/tag/Web">Veure Tot...</a></span></p> diff --git a/files/ca/web/javascript/a_re-introduction_to_javascript/index.html b/files/ca/web/javascript/a_re-introduction_to_javascript/index.html new file mode 100644 index 0000000000..171c31bf1b --- /dev/null +++ b/files/ca/web/javascript/a_re-introduction_to_javascript/index.html @@ -0,0 +1,930 @@ +--- +title: Una re-introducció a JavaScript (tutorial JS) +slug: Web/JavaScript/A_re-introduction_to_JavaScript +translation_of: Web/JavaScript/A_re-introduction_to_JavaScript +--- +<div>{{jsSidebar}}</div> + +<p id="Introducció">Per què una reintroducció? Perquè {{Glossary("JavaScript")}} és conegut per ser <a class="external" href="http://javascript.crockford.com/javascript.html">el llenguatge de programació més incomprès del món</a>. És ridiculitzat sovint categoritzant-lo de joguina, però darrera de la seva simplicitat enganyosa s'amaguen característiques molt potents. JavaScript s'utilitza per a un nombre increïble d'aplicacions d'alt perfil, fet que mostra que un coneixement profund d'aquesta tecnologia és una habilitat important per a qualsevol desenvolupador web o mòbil.</p> + +<p>És útil començar amb una visió general de la història del llenguatge. JavaScript va ser creat el 1995 per Brendan Eich, enginyer de Netscape, i la primera versió va sortir amb Netscape 2 a principis de 1996. (Originalment s'anava a dir LiveScript, però en una decisió pot encertada de marqueting se li va canviar pel de JavaScript en un intent de capitalitzar la popularitat del llenguatge Java de Sun Microsystem -. tot i que els dos llenguatges tenen molt poc en comú. Això ha sigut, des de llavors, una font de confusió).</p> + +<p>Alguns mesos més tard, Microsoft va llançar JScript, un llenguatge compatible amb Internet Explorer 3 semblant a JavaScript. Uns mesos més tard Netscape el va portar a <a class="external" href="http://www.ecma-international.org/">Ecma International</a>, una organització d'estandarització europea, i d'aquí en va sortir la primera edició de l'estandard {{Glossary("ECMAScript")}} d'aquell any. L'estandard va patir una important actualització a la <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">tercera edició de l'ECMAScript </a>el 1999, i s'ha mantingut estable des de llavors. La quarta edició es va abandonar, degut a diferència sobre la complexitat del llenguatge. Moltes parts de la quarta edició van servir de base per a la 5ena edició de l'ECMAScript , publicada el Desembre de 2009, i per la 6ena i més gran versió de l'estandard, que es publicarà el 2015.</p> + +<p>D'ara en endavant, per familiaritat, em referiré a l'ECMAScript com a "JavaScript".</p> + +<p>Al contrari que la majoria de llenguatges de programació, JavaScript no té el concepte de "input" ( entrada) o "output" sortida. Està pensat per a ser executat com un llenguatge d'"script" sobre un entorn extern que l'acull i li proporciona els mecanismes per a la comunicació amb el món exterior. L'entorn més comú és el navegador, però l'intèrpret de JavaScript es pot trobar en una extensa llista d'altres llocs, incloent Adobe Acrobat, Abobe Photoshop, imatge SVG , Yahoo's Widget engine, entorns de la banda del servidor com <a href="http://nodejs.org/" title="nodejs.org">Node.js</a>, bases de dades NoSQL com <a href="http://couchdb.apache.org/">Apache CouchDB</a>, que es de codi obert, ordinadors integrats<span style="background-color: #ffffff; color: #4d4e53; font-family: open sans,arial,sans-serif; font-size: 14px; line-height: 21px;">, entorns d'escriptori sencers com </span><a href="http://www.gnome.org/" style="margin: 0px; padding: 0px; border: 0px; color: rgb(0, 149, 221); text-decoration: none; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; line-height: 21px; background-color: rgb(255, 255, 255);">GNOME</a><span style="background-color: #ffffff; color: #4d4e53; font-family: open sans,arial,sans-serif; font-size: 14px; line-height: 21px;"> (una de les GUIs pel sistema operatiu GNU/Linux més populars), i la llista segueix</span>.</p> + +<h2 id="Visió_General">Visió General</h2> + +<p>JavaScript és un llenguatge orientat a objectes dinàmic amb tipus i operadors, amb contructor estàndard d'objectes i mètodes. La seva sintaxi ve de llenguatges com ara Java i C, de manera que moltes de les estructures d'aquests llenguatges s'apliquen també a JavaScript. Una de les principals diferències és que JavaScript no té classes; En el seu lloc, la funcionalitat de classe s'aconsegueix mitjançant prototips d'objectes. L'altra diferència principal és que les funcions són objectes, donant a les funcions la capacitat de tenir codi executable i ser passat a una altre funció com qualsevol altre objecte.</p> + +<p>Comencem per mirar el component bàsic de qualsevol idioma: els tipus. Els programes de JavaScript manipulen valors, i tots aquests valors pertanyen a un tipus. Els tipus de JavaScript són:</p> + +<ul> + <li>{{jsxref("Number")}}</li> + <li>{{jsxref("String")}}</li> + <li>{{jsxref("Boolean")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Object")}}</li> + <li>{{jsxref("Symbol")}} (nou a la 6ena edició)</li> +</ul> + +<p>... ah, i {{jsxref ("undefined")}} i {{jsxref ("nul")}}, que són ... una mica estranys. I les matrius {{jsxref ("arrays")}}, que són un tipus especial d'objecte. I {{jsxref ("Data")}} i {{jsxref ("RegExp")}}, que són objectes que tens de forma gratuïta. I per ser tècnicament precisos, les funcions són només un tipus especial d'objecte. Així que el diagrama tipus s'assembla més a això:</p> + +<ul> + <li>{{jsxref("Number")}}</li> + <li>{{jsxref("String")}}</li> + <li>{{jsxref("Boolean")}}</li> + <li>{{jsxref("Symbol")}} (nou a l'edició 6)</li> + <li>{{jsxref("Object")}} + <ul> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Date")}}</li> + <li>{{jsxref("RegExp")}}</li> + </ul> + </li> + <li>{{jsxref("null")}}</li> + <li>{{jsxref("undefined")}}</li> +</ul> + +<p>I també hi ha alguns tipus interns com aquest {{jsxref("Error")}} . Crec que ésmés senzill si ens quedem amb el primer diagrama.</p> + +<h2 id="Nombres">Nombres</h2> + +<p>Els nombres a JavaScript són "valors de 64-bit de doble precisió en format IEEE 754", d'acord amb l'especificació. Això té conseqüències interessants. No hi ha. No hi ha coses com "integer" (nombre enter) a JavaScript, així que et cal ser una mica curós amb la seva aritmètica si estàs acostumat a les operacions de C o Java. Compte amb coses com:</p> + +<pre class="brush: js">0.1 + 0.2 == 0.30000000000000004 +</pre> + +<p>A la pràctica, els valors enters són tractats com sencers de 32 bits (i s'emmagatzemen d'aquesta manera en algunes implementacions de navegador), fet que pot ser important per a operacions bit a bit.</p> + +<p>Els operadors aritmètics estàndard hi són implantats, inclou la suma, la resta, el mòdul (o el residu) i molts altres. També hi ha un objecte incorporat que em vaig oblidar d'esmentar anteriorment que s'anomena {{jsxref ("Math")}} per si vols realitzar funcions matemàtiques més avançades i valors de constants:.</p> + +<pre class="brush: js">Math.sin(3.5); +var circumfrence = Math.PI * (r + r); +</pre> + +<p>Pot convertir una cadena a un enter utilitzant la funció incorporada {{jsxref ("Global_Objects / parseInt", "parseInt ()")}}. Això pren com a base ( decimal, hexadecimal, ...) per a la conversió un segon argument opcional , que sempre s'ha de proporcionar</p> + +<pre class="brush: js">parseInt("123", 10); // 123 +parseInt("010", 10); // 10 +</pre> + +<p>Si no el proporciones, pots obtenir resultats sorprenents en els navegadors més antics (anteriors a 2013):</p> + +<pre class="brush: js">parseInt("010"); // 8 +</pre> + +<p>Això passa perquè la funció {{jsxref ("Global_Objects / parseInt", "parseInt ()")}} tracta per defecte la cadena com un nombre octal degut al 0 inicial.</p> + +<p>Si voleu convertir un nombre binari a un sencer, només cal canviar la base:</p> + +<pre class="brush: js">parseInt("11", 2); // 3 +</pre> + +<p>De la mateixa manera, pot analitzar els nombres de coma flotant utilitzant la funció incorporada {{jsxref ("Global_Objects / parseFloat", "parseFloat ()")}} que fa servir sempre la base 10 a diferència del seu cosí {{jsxref ("Global_Objects / parseInt", "parseInt () ")}}.</p> + +<p>També pot utilitzar l'operador unari + per convertir les cadenes amb nombre als seus valors :</p> + +<pre class="brush: js">+ "42"; // 42 +</pre> + +<p>Un valor especial anomenat {{jsxref ("NaN")}} (abreviatura de "Not a Number") es retorna si la cadena no és un nombre:</p> + +<pre class="brush: js">parseInt("hello", 10); // NaN +</pre> + +<p><code>NaN</code> és toxic: si es proporciona com una entrada a qualsevol operació matemàtica el resultat també serà sempre NaN:</p> + +<pre class="brush: js">NaN + 5; // NaN +</pre> + +<p>Podeu provar NaN utilitzant al funció incorporada {{jsxref ("Global_Objects / isNaN", "isNaN ()")}}:</p> + +<pre class="brush: js">isNaN(NaN); // true +</pre> + +<p>JavaScript també té els valors especials com l'infinit {{jsxref ("Infinity")}} i també -infinity:</p> + +<pre class="brush: js"> 1 / 0; // Infinity +-1 / 0; // -Infinity +</pre> + +<p>Podeu provar Infinity, -Infinity i el valor NaN utilitzant la funció incorporada {{jsxref ("Global_Objects / isFinite", "isFinite ()")}} :</p> + +<pre class="brush: js">isFinite(1/0); // false +isFinite(-Infinity); // false +isFinite(NaN); // false +</pre> + +<div class="note"><strong>Nota:</strong> Les funcions {{jsxref ("Global_Objects / parseInt", "parseInt ()")}} i {{jsxref ("Global_Objects / parseFloat", "parseFloat ()")}} analitzen una cadena fins que arriben a un caràcter que no és nombre vàlid pel format especificat, i torna el resultat de l'anàlisis fins a aquest moment. No obstant això, l'operador "+" senzillament converteix la cadena a NaN si hi ha algun caràcter no vàlid en ella. Només cal que intenti analitzar la cadena "10.2abc" amb cada mètode a la consola i entredrà millor les diferències.</div> + +<h2 id="Cadenes">Cadenes</h2> + +<p>Les cadenes a JavaScript són seqüències de caràcters. Més exactament, són seqüències de caràcters Unicode, amb cada caràcter representat per un nombre de 16 bits. Això hauria de ser una bona notícia per a qualsevol persona que ha hagut de lidiar amb la internacionalització.</p> + +<p>Si vol representar un sol caràcter, només ha d'utilitzar una cadena de longitud 1.</p> + +<p>Per trobar la longitud d'una cadena, pot accedir a la seva propietat ( atribut) length:</p> + +<pre class="brush: js">"hello".length; // 5 +</pre> + +<p>Aquí tenim la nostra primera topoda amb objectes JavaScript! He esmentat que pot fer servir cadenes com {{jsxref ("objecte", "objectes", "", 1)}} Tenen {{jsxref ("String", "mètodes", "#Methods", 1)}}, que li permeten manipular la informació de la cadena i l'accés a la cadena:</p> + +<pre class="brush: js">"hello".charAt(0); // "h" +"hello, world".replace("hello", "goodbye"); // "goodbye, world" +"hello".toUpperCase(); // "HELLO" +</pre> + +<h2 id="Altres_Tipus">Altres Tipus</h2> + +<p>JavaScript distingeix entre {{jsxref ("nul")}}, que és un valor que indica un no-valor deliberat (i només és accessible a través de la paraula clau null), i {{jsxref ("indefinit")}}, que és un valor de tipus 'indefinit' que indica un valor no inicialitzat - és a dir, un valor que ni tan sols s'ha assignat encara. Parlarem de les variables més tard, però a JavaScript, és possible declarar una variable sense assignar un valor a la mateixa. Si fa això, el tipus de la variable no està definida. indefinit és en realitat una constant.</p> + +<p>JavaScript té un tipus booleà, amb possibles valors vertaders i falsos (que són paraules clau). Qualsevol valor pot ser convertit a un valor booleà d'acord amb les següents regles:</p> + +<ol> + <li><code>false</code>, <code>0</code>, cadena buida (<code>""</code>), <code>NaN</code>, <code>null</code>, i <code>undefined</code> tots donant com a resultat <code>false.</code></li> + <li>Tots els altres valors es considern <code>true.</code></li> +</ol> + +<p>Pot dur a terme aquesta conversió utilitzant de manera explícita la funció Boolean ():</p> + +<pre class="brush: js">Boolean(""); // false +Boolean(234); // true +</pre> + +<p>De totes maneres, no sol ser necessari, Javascript fa aquesta conversió automàticament quan s'espera un booleà, com en una sentència if (veure més avall). Per aquesta raó, de vegades parlem senzillamentt de "valors vertaders" i "valors falsos", és a dir els valors que esdevenen vertaders i falsos, respectivament, quan es converteixen en booleans. Aquests valors poden es poden dir "Truthy" i "Falsy", respectivament.</p> + +<p>Operacions booleanes com && (AND lògic), || (o lògica), i! (Lògic no) també estan incorporats; Skip. Veure més avall.</p> + +<h2 id="Variables">Variables</h2> + +<p>Les noves variables a JavaScript es declaren fent servir la paraula clau var:</p> + +<pre class="brush: js">var a; +var name = "simon"; +</pre> + +<p>Si es declara una variable sense assignar un valor a la mateixa, el seu tipus no està definit.</p> + +<p>Una diferència important amb altres llenguatges com ara Java és que a JavaScript els blocs no tenen un "scope" (àmbit a on tenen un valor assignat) ( ; només les funcions tenen àmbit d'aplicació. Així que si una variable es defineix fent servir var en una sentència composta (per exemple, dins d'una estructura de control "if"), serà visible a tota la funció. No obstant això, a partir de ECMAScript Edition 6, es permeten les declaracions const que permetrar crear variables amb ambit d'assignació.</p> + +<h2 id="Operadors">Operadors</h2> + +<p>Els Operadors numèrics de JavaScript són +, -, *, / i% - que és l'operador del reste de la divisió. Els valors s'assignen utilitzant =, i també hi ha instruccions d'assignació compostos com += i -=. Aquests últims equivalen a x = x operador i.</p> + +<pre class="brush: js">x += 5 +x = x + 5 //equival a l'operador anterior +</pre> + +<p>Podeu utilitzar ++ i - per augmentar i decrèixer, respectivament. Poden ser usats com a operadors de prefix o sufix.</p> + +<p>L'operador + també serveix per a la concatenació de cadenes:</p> + +<pre class="brush: js">"hello" + " world"; // "hello world" +</pre> + +<p>Si s'agrega una cadena a un nombre (o un altre valor) tot es converteix a cadena su el primer valor és la cadena . Si no, primer s'operen el nombre i després es converteix a cadena:</p> + +<pre class="brush: js">"3" + 4 + 5; // "345" + 3 + 4 + "5"; // "75" +</pre> + +<p>Afegir una cadena buida a alguna cosa és una forma útil per a la seva conversió.</p> + +<p>Les comparacions a JavaScript es poden fer usant <, >, <= i >= . Aquests funcionen tant per cadenes com per nombres. L' "igual a" és una mica més complicatl. El doble igual fa la conversió al mateix tipus si són diferents i després compara els valors . Això, de vegades, suposa resultats interessants:</p> + +<pre class="brush: js">"dog" == "dog"; // true +1 == true; // true +</pre> + +<p>Per tenir em compte el tipus en la comparació , utilitza l'operador triple igual:</p> + +<pre class="brush: js">1 === true; // false +true === true; // true +</pre> + +<p>Hi ha tamble l'operador contrari <code>!=</code> i contrari estricte <code>!==</code> .</p> + +<p>JavaScript té també operacions bit a bit. Si voleu utilitzar-les, allà estan.</p> + +<h2 id="Estructures_de_control">Estructures de control</h2> + +<p>JavaScript té un conjunt similar d'estructures de control a altres idiomes de la família C. Les sentències condicionals es fan a partir d' "if", i "else" ; ès poden encadenar si et convé:</p> + +<pre class="brush: js">var name = "kittens"; +if (name == "puppies") { + name += "!"; +} else if (name == "kittens") { + name += "!!"; +} else { + name = "!" + name; +} +name == "kittens!!" +</pre> + +<p>JavaScript té bucles while i do-while. El primer d'ells és bo per bucles bàsics; el segon pels bucles que vol que s'executin com a mínim una vegada:</p> + +<pre class="brush: js">while (true) { + // an infinite loop! +} + +var input; +do { + input = get_input(); +} while (inputIsNotValid(input)) +</pre> + +<p>El bucle "for" és el mateix que a C i Java: se li permet proporcionar la informació de control del bucle en una sola línia.</p> + +<pre class="brush: js">for (var i = 0; i < 5; i++) { + // Will execute 5 times +} +</pre> + +<p>Els operadors && i || fan servir la lògica de curtcircuit, això significa que el segon operant depèn de la primer. Això és útil per exemple per comprovar que els objectes no siguin nuls abans d'accedir als seus atributs:</p> + +<pre class="brush: js">var name = o && o.getName(); +</pre> + +<p>O per donar valors per defecte:</p> + +<pre class="brush: js">var name = otherName || "default"; +</pre> + +<p>JavaScript té un operador ternari per expressions condicionals:</p> + +<pre class="brush: js">var allowed = (age > 18) ? "yes" : "no"; +</pre> + +<p>La declaració switch pot ser utilitzat per comparar amb múltiples branques basades en nombres o cadenes:</p> + +<pre class="brush: js">switch(action) { + case 'draw': + drawIt(); + break; + case 'eat': + eatIt(); + break; + default: + doNothing(); +} +</pre> + +<p>Si no afegeix una sentència break, l'execució "cauen al" següent nivell. Això rares vegades serà el que voldrà - de fet val la pena etiquetar específicament aquest "fallthrough" deliberat si és el cas amb un comentari per ajudar a la depuració:</p> + +<pre class="brush: js">switch(a) { + case 1: // fallthrough + case 2: + eatIt(); + break; + default: + doNothing(); +} +</pre> + +<p>La clàusula d'incompliment és opcional. Pot tenir expressions, tant en la part del "switch" com la dels casos si vol; les comparacions es realitzen entre els dos fent servir l'operador ===:</p> + +<pre class="brush: js">switch(1 + 3) { + case 2 + 2: + yay(); + break; + default: + neverhappens(); +} +</pre> + +<h2 id="Objectes">Objectes</h2> + +<p>Els objectes de JavaScript poden ser considerats com a simples col·leccions de parells nom-valor. Com a tals, són similars a:</p> + +<ul> + <li>Dicdionaris a Python</li> + <li>Hashes in Perl and Ruby</li> + <li>Taules Hash a C i C++</li> + <li>HashMaps a Java</li> + <li>Matrius associades a PHP</li> +</ul> + +<p>En realitat aquesta estructura de dades és fa ser tant que és una prova de la seva enorme versatilitat. Ja que tot (fins i tots els tipus bàsics) a JavaScript són objectes, qualsevol programa en JavaScript implica, naturalment, una gran quantitat d'operacions de recerca a taules hash. Éstà molt bé que siguin tan ràpids.</p> + +<p>La part del "nom" és una cadena JavaScript, mentre que la part del " valor" pot ser qualsevol valor de Javascript - incloent altres objectes. Això li permet construir estructures de dades de la complexitat que es necessiti.</p> + +<p>Hi ha dues formes bàsiques per crear un objecte buit:</p> + +<pre class="brush: js">var obj = new Object(); +</pre> + +<p>I:</p> + +<pre class="brush: js">var obj = {}; +</pre> + +<p>I....</p> + +<pre class="brush: js">function Person(name, age) { + this.name = name; + this.age = age; +} + +// Defineix un objecte +var You = new Person("You", 24); +// Estem creant una nova persona amb el nom "You" +// (que serà el primer paràmetre, i l'edat..) +</pre> + +<p>Aquestes formes són semànticament equivalents; la segona es diu sintaxi literal d'objecte, i és la més convenient. Aquesta sintaxi és també el nucli de format JSON i s'ha de preferir en tot moment.</p> + +<p>Un cop creat un objecte , és pot accedir a les seves propietats de nou d'una d'aquestes dues maneres:</p> + +<pre class="brush: js">obj.name = "Simon"; +var name = obj.name; +</pre> + +<p>I...</p> + +<pre class="brush: js">obj["name"] = "Simon"; +var name = obj["name"]; +</pre> + +<p>Aquestes dues, també són semànticament equivalents. El segon mètode té l'avantatge que el nom de la propietat s'ofereix com una cadena, el que significa que es pot calcular en temps d'execució, encara que l'ús d'aquest mètode evita que algunes optimitzacions de motor JavaScript i Minifier s'apliquin. També es pot utilitzar per definir i obtenir propietats amb noms que són paraules reservades o que tenen espais:</p> + +<pre class="brush: js">obj.for = "Simon"; // Syntax error, perque 'for' es una paraula reservada +obj["for"] = "Simon"; // funciona +</pre> + +<div class="note"> +<p><span style="color: #222222; font-family: verdana,arial,sans-serif; font-size: 12px; line-height: 18px;"><strong>Nota:</strong></span>A partir d'EcmaScript 5, les paraules reservades es poden usar com a noms de propietats d'objecte "en l'aficionat". Això significa que no necessiten ser posades "entre cometes" a l'hora de definir objectes literals. Veure ES5 Spec.</p> +</div> + +<p>La sintaxi d'objecte literal es pot fer servir per inicialitzar un objecte totalment:</p> + +<pre class="brush: js">var obj = { + name: "Carrot", + "for": "Max", + details: { + color: "orange", + size: 12 + } +} +</pre> + +<p>L'accès als atributs pot ser encadenat:</p> + +<pre class="brush: js">obj.details.color; // orange +obj["details"]["size"]; // 12 +</pre> + +<h2 id="Matrius">Matrius</h2> + +<p>Les matrius a Javascript són en realitat un tipus especial d'objecte. Treballen de manera molt semblant als objectes normals ( naturalment a les seves propietats només es pot accedir mitjançant la sintaxi de claudàtors []) però tenen una propietat màgica anomenada "length" (llargada) , que sempre és un nombre més que l'índex més alt de la matriu.</p> + +<p>Una forma de creació de matrius és la següent:</p> + +<pre class="brush: js">var a = new Array(); +a[0] = "dog"; +a[1] = "cat"; +a[2] = "hen"; +a.length; // 3 +</pre> + +<p>Una notació més convenient és utilitzar una matriu literal:</p> + +<pre class="brush: js">var a = ["dog", "cat", "hen"]; +a.length; // 3 +</pre> + +<p>Recordeu que array.length no és necessàriament el nombre d'elements de la matriu. Considera el següent:</p> + +<pre class="brush: js">var a = ["dog", "cat", "hen"]; +a[100] = "fox"; +a.length; // 101 +</pre> + +<p>Recordi - la longitud de la matriu és un nombre més que l'índex més alt.</p> + +<p>Si es consulta un índex de matriu que no existeix, s'obté indefinit:</p> + +<pre class="brush: js">typeof a[90]; // indefinit +</pre> + +<p>Si es té en compte l'anterior, es pot iterar sobre una matriu mitjançant el següent:</p> + +<pre class="brush: js">for (var i = 0; i < a.length; i++) { + // Fer alguna cosa amb a[i] +} +</pre> + +<p>Això és una mica ineficient si cada passada del bucle ha de calcular la "length". És pot millorar fent:</p> + +<pre class="brush: js">for (var i = 0, len = a.length; i < len; i++) { + // Do something with a[i] +} +</pre> + +<p>Una forma més maca, tot i que amb limitacions, seria:</p> + +<pre class="brush: js">for (var i = 0, item; item = a[i++];) { + // Do something with item +} +</pre> + +<p>Aquí estem creant dues variables. L'assignació a la part del mig del bucle també és comprova si es "true" - si això és així, el bucle continua. Després i es va incrementant, els elements de la matriu seran assignats a "item" en ordre seqüencial. El bucle es deté quan es troba que "item" és un element "Falsy"( per tant no definit).</p> + +<p>Aquest truc només s'ha d'utilitzar per a les matrius que sap que no contenen valors "Falsy" (arrays d'objectes o {{Glossary("DOM")}} nodes, per exemple). Si està iterant sobre dades numèriques que podria incloure una dada 0 o una cadena que podria incloure la cadena buida s'ha d'utilitzar l'i, amb "len".</p> + +<p>Pot iterar sobre una matriu usant un bucle for ... in. Recordeu que si algú afegeix noves propietats a Array.prototype, també es repetiran al llarg d'aquest bucle. Per tant "no" es recomana aquest mètode.</p> + +<p>Una altra forma d'iterar sobre una matriu que s'ha afegit amb ECMAScript 5 és foreach ():</p> + +<pre class="brush: js" style="font-size: 14px;">["dog", "cat", "hen"].forEach(function(currentValue, index, array) { + // Fer alguan cosa amb el valoractual o matriu[index] +}); +</pre> + +<p>Si vol afegir un element a una matriu simplement pot fer-ho d'aquesta manera:</p> + +<pre class="brush: js">a.push(item);</pre> + +<p>Les matrius vénen amb una sèrie de mètodes. Mira també la documentació completa pels mètodes de matriu.</p> + +<table> + <thead> + <tr> + <th scope="col">Method name</th> + <th scope="col">Description</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>a.toString()</code></td> + <td>Retorna una cadena amb el mètode toString () a on cada element esta separat per comes.</td> + </tr> + <tr> + <td><code>a.toLocaleString()</code></td> + <td>Retorna una cadena amb el toLocaleString () a on cada element està separat per comes.</td> + </tr> + <tr> + <td><code>a.concat(item1[, item2[, ...[, itemN]]])</code></td> + <td>Retorna una nova matriu amb els elements agregats a ella.</td> + </tr> + <tr> + <td><code>a.join(sep)</code></td> + <td>Converteix la matriu en una matriu amb valord de cadena separats entre ells pel paràmetre sep</td> + </tr> + <tr> + <td><code>a.pop()</code></td> + <td>Elimina i retorna l'últim element.</td> + </tr> + <tr> + <td><code>a.push(item1, ..., itemN)</code></td> + <td><code>Push</code> afegeix un o més elements al final.</td> + </tr> + <tr> + <td><code>a.reverse()</code></td> + <td>Inverteix la matriu.</td> + </tr> + <tr> + <td><code>a.shift()</code></td> + <td>Elimina i retorna el primer element.</td> + </tr> + <tr> + <td><code>a.slice(start, end)</code></td> + <td>Retorna una sub-matriu.</td> + </tr> + <tr> + <td><code>a.sort([cmpfn])</code></td> + <td>Pren una funció de comparació opcional.</td> + </tr> + <tr> + <td><code>a.splice(start, delcount[, item1[, ...[, itemN]]])</code></td> + <td>Li permet modificar una matriu mitjançant la supressió d'una secció i reemplaçar-la amb més elements.</td> + </tr> + <tr> + <td><code>a.unshift([item])</code></td> + <td>Afegeix items a l'inici de la matriu.</td> + </tr> + </tbody> +</table> + +<h2 id="Funcions">Funcions</h2> + +<p>Juntament amb els objectes, les funcions són el component central en la comprensió de JavaScript. La funció més bàsica no podria ser molt més simple:</p> + +<pre class="brush: js">function add(x, y) { + var total = x + y; + return total; +} +</pre> + +<p>Això demostra tot el que cal saber sobre les funcions bàsiques. Una funció de JavaScript pot tenir 0 o més paràmetres. El cos de la funció pot contenir tantes declaracions com es vulgui, i pot declarar les seves pròpies variables que són locals per a aquesta funció. La sentència return es pot utilitzar per tornar un valor en qualsevol moment i acabar la funció. Si no s'utilitza cap sentència return (o una declaració buida sense valor), JavaScript retorna undefined.</p> + +<p>Els paràmetres amb nom resulten ser més com directrius que res mes. Pot cridar ("call") una funció sense passar els paràmetres que espera, en aquest cas és passaran com indefinits.</p> + +<pre class="brush: js">add(); // NaN +//No pots fer una suma amb un valor indefinit +</pre> + +<p>També és pot passar més arguments dels que la funció espera:</p> + +<pre class="brush: js">add(2, 3, 4); // 5 +// ha sumat els dos primers; el 4 ha sigut ignorat +</pre> + +<p>Això pot semblar una mica ximple, però les funcions tenen accés a variables addicional dins del seu cos que s'anomenen arguments, que és com una matriu amb tots els valors passats a la funció. Tornem a escriure la funció add perque accepti tants valors com es vulgui:</p> + +<pre class="brush: js">function add() { + var sum = 0; + for (var i = 0, j = arguments.length; i < j; i++) { + sum += arguments[i]; + } + return sum; +} + +add(2, 3, 4, 5); // 14 +</pre> + +<p>Penso que això no és més eficaç que escriure <code>2 + 3 + 4 + 5</code>. Creem una funció més útil, calcular el promig:</p> + +<pre class="brush: js">function avg() { + var sum = 0; + for (var i = 0, j = arguments.length; i < j; i++) { + sum += arguments[i]; + } + return sum / arguments.length; +} + +avg(2, 3, 4, 5); // 3.5 +</pre> + +<p>Això és molt més útil, peró introdueix un nou problema. La funció avg () pren una llista d'argument separada per comes - però que passa si vol trobar la mitjana d'una matriu? Podria reescriure la funció de la següent manera:</p> + +<pre class="brush: js">function avgArray(arr) { + var sum = 0; + for (var i = 0, j = arr.length; i < j; i++) { + sum += arr[i]; + } + return sum / arr.length; +} + +avgArray([2, 3, 4, 5]); // 3.5 +</pre> + +<p>Però seria bo poder tornar a utilitzar la funció que ja hem creat. Per sort, JavaScript li permet cridar a una funció i cridar-la amb una sèrie arbitrària d'arguments, utilitzant el mètode {{jsxref ("Function.apply", "apply ()")}} de qualsevol objecte de funció.</p> + +<pre class="brush: js">avg.apply(null, [2, 3, 4, 5]); // 3.5 +</pre> + +<p>El segon argument per apply () és la matriu que fem servir com a argument; el primer es discutirà més endavant. Això posa en relleu el fet que les funcions són objectes també.</p> + +<p>JavaScript li deixa creas funcions anònimes.</p> + +<pre class="brush: js">var avg = function() { + var sum = 0; + for (var i = 0, j = arguments.length; i < j; i++) { + sum += arguments[i]; + } + return sum / arguments.length; +}; +</pre> + +<p>Aquesta és semànticament equivalent a la forma funció avg (). És molt potent, ja que li permet posar una definició de funció completa en qualsevol lloc, fins i tot on normalment si posa una expressió. Això permet tot tipus de trucs enginyosos. Aquí té una manera d '"amagar" algunes variables locals - àmbit de bloc com en C:</p> + +<pre class="brush: js">var a = 1; +var b = 2; + +(function() { + var b = 3; + a += b; +})(); + +a; // 4 +b; // 2 +</pre> + +<p>JavaScript li permet cridar a funcions de forma recursiva. Això és particularment útil per fer front a les estructures d'arbre, com la que s'obté en el navegador DOM.</p> + +<pre class="brush: js">function countChars(elm) { + if (elm.nodeType == 3) { // TEXT_NODE + return elm.nodeValue.length; + } + var count = 0; + for (var i = 0, child; child = elm.childNodes[i]; i++) { + count += countChars(child); + } + return count; +} +</pre> + +<p>Això posa en relleu un problema potencial amb funcions anònimes: com cridar-les de forma recursiva si no tenen un nom? JavaScript permet gravar en una expressió el nom de la funció . Podeu utilitzar noms IIFEs (Expressions de funció Immediatament invocats) com a continuació:</p> + +<pre class="brush: js">var charsInBody = (function counter(elm) { + if (elm.nodeType == 3) { // TEXT_NODE + return elm.nodeValue.length; + } + var count = 0; + for (var i = 0, child; child = elm.childNodes[i]; i++) { + count += counter(child); + } + return count; +})(document.body); +</pre> + +<p>El nom proporcionat a una expressió de funció com l'anterior només està disponible pel propi àmbit de la funció. Això permet tant que el motor pugui optimitzar més l'execució un codi més llegible. El nom també apareix en el depurador i en alguns seguiments de pila poden estalviar-li temps.</p> + +<p>Recordeu que les funcions de JavaScript són en si mateixes objectes i se les hi pot afegir o canviar les propietats igual que en els objectes que hem vist a la secció Objectes</p> + +<h2 id="Custom_objects">Custom objects</h2> + +<div class="note"><strong>Note:</strong> For a more detailed discussion of object-oriented programming in JavaScript, see <a href="/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript" title="https://developer.mozilla.org/en/Introduction_to_Object-Oriented_JavaScript">Introduction to Object Oriented JavaScript</a>.</div> + +<p>In classic Object Oriented Programming, objects are collections of data and methods that operate on that data. JavaScript is a prototype-based language which contains no class statement, such as is found in C++ or Java. (This is sometimes confusing for programmers accustomed to languages with a class statement.) Instead, JavaScript uses functions as classes. Let's consider a person object with first and last name fields. There are two ways in which the name might be displayed: as "first last" or as "last, first". Using the functions and objects that we've discussed previously, here's one way of doing it:</p> + +<pre class="example-bad brush: js">function makePerson(first, last) { + return { + first: first, + last: last + }; +} +function personFullName(person) { + return person.first + ' ' + person.last; +} +function personFullNameReversed(person) { + return person.last + ', ' + person.first; +} + +s = makePerson("Simon", "Willison"); +personFullName(s); // "Simon Willison" +personFullNameReversed(s); "Willison, Simon" +</pre> + +<p>This works, but it's pretty ugly. You end up with dozens of functions in your global namespace. What we really need is a way to attach a function to an object. Since functions are objects, this is easy:</p> + +<pre class="brush: js">function makePerson(first, last) { + return { + first: first, + last: last, + fullName: function() { + return this.first + ' ' + this.last; + }, + fullNameReversed: function() { + return this.last + ', ' + this.first; + } + }; +} + +s = makePerson("Simon", "Willison") +s.fullName(); // "Simon Willison" +s.fullNameReversed(); // "Willison, Simon" +</pre> + +<p>There's something here we haven't seen before: the <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/this" title="/en/JavaScript/Reference/Operators/this">this</a></code> keyword. Used inside a function, <code>this</code> refers to the current object. What that actually means is specified by the way in which you called that function. If you called it using <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Accessing_properties" title="/en/JavaScript/Reference/Operators/Member_Operators">dot notation or bracket notation</a> on an object, that object becomes <code>this</code>. If dot notation wasn't used for the call, <code>this</code> refers to the global object.</p> + +<p>Note that <code>this</code> is a frequent cause of mistakes. For example:</p> + +<pre class="brush: js">s = makePerson("Simon", "Willison"); +var fullName = s.fullName; +fullName(); // undefined undefined +</pre> + +<p>When we call <code>fullName()</code> alone, without using <code>s.fullName()</code>, <code>this</code> is bound to the global object. Since there are no global variables called <code>first</code> or <code>last</code> we get <code>undefined</code> for each one.</p> + +<p>We can take advantage of the <code>this</code> keyword to improve our <code>makePerson</code> function:</p> + +<pre class="brush: js">function Person(first, last) { + this.first = first; + this.last = last; + this.fullName = function() { + return this.first + ' ' + this.last; + }; + this.fullNameReversed = function() { + return this.last + ', ' + this.first; + }; +} +var s = new Person("Simon", "Willison"); +</pre> + +<p>We have introduced another keyword: <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/new" title="/en/JavaScript/Reference/Operators/new">new</a></code>. <code>new</code> is strongly related to <code>this</code>. What it does is it creates a brand new empty object, and then calls the function specified, with <code>this</code> set to that new object. Notice though that the function specified with <code>this</code> does not return a value but merely modifies the <code>this</code> object. It's <code><code> </code>new</code> that returns the <code>this</code> object to the calling site. Functions that are designed to be called by <code>new</code> are called constructor functions. Common practice is to capitalize these functions as a reminder to call them with <code>new</code>.</p> + +<p>The improved function still has the same pitfall with calling <code>fullName()</code> alone.</p> + +<p>Our person objects are getting better, but there are still some ugly edges to them. Every time we create a person object we are creating two brand new function objects within it — wouldn't it be better if this code was shared?</p> + +<pre class="brush: js">function personFullName() { + return this.first + ' ' + this.last; +} +function personFullNameReversed() { + return this.last + ', ' + this.first; +} +function Person(first, last) { + this.first = first; + this.last = last; + this.fullName = personFullName; + this.fullNameReversed = personFullNameReversed; +} +</pre> + +<p>That's better: we are creating the method functions only once, and assigning references to them inside the constructor. Can we do any better than that? The answer is yes:</p> + +<pre class="brush: js">function Person(first, last) { + this.first = first; + this.last = last; +} +Person.prototype.fullName = function() { + return this.first + ' ' + this.last; +}; +Person.prototype.fullNameReversed = function() { + return this.last + ', ' + this.first; +}; +</pre> + +<p><code>Person.prototype</code> is an object shared by all instances of <code>Person</code>. It forms part of a lookup chain (that has a special name, "prototype chain"): any time you attempt to access a property of <code>Person</code> that isn't set, JavaScript will check <code>Person.prototype</code> to see if that property exists there instead. As a result, anything assigned to <code>Person.prototype</code> becomes available to all instances of that constructor via the <code>this</code> object.</p> + +<p>This is an incredibly powerful tool. JavaScript lets you modify something's prototype at any time in your program, which means you can add extra methods to existing objects at runtime:</p> + +<pre class="brush: js">s = new Person("Simon", "Willison"); +s.firstNameCaps(); // TypeError on line 1: s.firstNameCaps is not a function + +Person.prototype.firstNameCaps = function() { + return this.first.toUpperCase() +}; +s.firstNameCaps(); // "SIMON" +</pre> + +<p>Interestingly, you can also add things to the prototype of built-in JavaScript objects. Let's add a method to <code>String</code> that returns that string in reverse:</p> + +<pre class="brush: js">var s = "Simon"; +s.reversed(); // TypeError on line 1: s.reversed is not a function + +String.prototype.reversed = function() { + var r = ""; + for (var i = this.length - 1; i >= 0; i--) { + r += this[i]; + } + return r; +}; + +s.reversed(); // nomiS +</pre> + +<p>Our new method even works on string literals!</p> + +<pre class="brush: js">"This can now be reversed".reversed(); // desrever eb won nac sihT +</pre> + +<p>As I mentioned before, the prototype forms part of a chain. The root of that chain is <code>Object.prototype</code>, whose methods include <code>toString()</code> — it is this method that is called when you try to represent an object as a string. This is useful for debugging our <code>Person</code> objects:</p> + +<pre class="brush: js">var s = new Person("Simon", "Willison"); +s; // [object Object] + +Person.prototype.toString = function() { + return '<Person: ' + this.fullName() + '>'; +} + +s.toString(); // "<Person: Simon Willison>" +</pre> + +<p>Remember how <code>avg.apply()</code> had a null first argument? We can revisit that now. The first argument to <code>apply()</code> is the object that should be treated as '<code>this</code>'. For example, here's a trivial implementation of <code>new</code>:</p> + +<pre class="brush: js">function trivialNew(constructor, ...args) { + var o = {}; // Create an object + constructor.apply(o, args); + return o; +} +</pre> + +<p>This isn't an exact replica of <code>new</code> as it doesn't set up the prototype chain (it would be difficult to illustrate). This is not something you use very often, but it's useful to know about. In this snippet, <code>...args</code> (including the ellipsis) is called the "<a href="/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest arguments</a>" – as the name implies, this contains the rest of the arguments.</p> + +<p>Calling</p> + +<pre class="brush: js">var bill = trivialNew(Person, "William", "Orange");</pre> + +<p>is therefore almost equivalent to</p> + +<pre class="brush: js">var bill = new Person("William", "Orange");</pre> + +<p><code>apply()</code> has a sister function named <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call" title="/en/JavaScript/Reference/Global_Objects/Function/call"><code>call</code></a>, which again lets you set <code>this</code> but takes an expanded argument list as opposed to an array.</p> + +<pre class="brush: js">function lastNameCaps() { + return this.last.toUpperCase(); +} +var s = new Person("Simon", "Willison"); +lastNameCaps.call(s); +// Is the same as: +s.lastNameCaps = lastNameCaps; +s.lastNameCaps(); +</pre> + +<h3 id="Inner_functions">Inner functions</h3> + +<p>JavaScript function declarations are allowed inside other functions. We've seen this once before, with an earlier <code>makePerson()</code> function. An important detail of nested functions in JavaScript is that they can access variables in their parent function's scope:</p> + +<pre class="brush: js">function betterExampleNeeded() { + var a = 1; + function oneMoreThanA() { + return a + 1; + } + return oneMoreThanA(); +} +</pre> + +<p>This provides a great deal of utility in writing more maintainable code. If a function relies on one or two other functions that are not useful to any other part of your code, you can nest those utility functions inside the function that will be called from elsewhere. This keeps the number of functions that are in the global scope down, which is always a good thing.</p> + +<p>This is also a great counter to the lure of global variables. When writing complex code it is often tempting to use global variables to share values between multiple functions — which leads to code that is hard to maintain. Nested functions can share variables in their parent, so you can use that mechanism to couple functions together when it makes sense without polluting your global namespace — 'local globals' if you like. This technique should be used with caution, but it's a useful ability to have.</p> + +<h2 id="Closures">Closures</h2> + +<p>This leads us to one of the most powerful abstractions that JavaScript has to offer — but also the most potentially confusing. What does this do?</p> + +<pre class="brush: js">function makeAdder(a) { + return function(b) { + return a + b; + }; +} +var x = makeAdder(5); +var y = makeAdder(20); +x(6); // ? +y(7); // ? +</pre> + +<p>The name of the <code>makeAdder</code> function should give it away: it creates new 'adder' functions, which when called with one argument add it to the argument that they were created with.</p> + +<p>What's happening here is pretty much the same as was happening with the inner functions earlier on: a function defined inside another function has access to the outer function's variables. The only difference here is that the outer function has returned, and hence common sense would seem to dictate that its local variables no longer exist. But they <em>do</em> still exist — otherwise the adder functions would be unable to work. What's more, there are two different "copies" of <code>makeAdder</code>'s local variables — one in which <code>a</code> is 5 and one in which <code>a</code> is 20. So the result of those function calls is as follows:</p> + +<pre class="brush: js">x(6); // returns 11 +y(7); // returns 27 +</pre> + +<p>Here's what's actually happening. Whenever JavaScript executes a function, a 'scope' object is created to hold the local variables created within that function. It is initialised with any variables passed in as function parameters. This is similar to the global object that all global variables and functions live in, but with a couple of important differences: firstly, a brand new scope object is created every time a function starts executing, and secondly, unlike the global object (which is accessible as <code>this</code> and in browsers is accessible as <code>window</code>) these scope objects cannot be directly accessed from your JavaScript code. There is no mechanism for iterating over the properties of the current scope object, for example.</p> + +<p>So when <code>makeAdder</code> is called, a scope object is created with one property: <code>a</code>, which is the argument passed to the <code>makeAdder</code> function. <code>makeAdder</code> then returns a newly created function. Normally JavaScript's garbage collector would clean up the scope object created for <code>makeAdder</code> at this point, but the returned function maintains a reference back to that scope object. As a result, the scope object will not be garbage collected until there are no more references to the function object that <code>makeAdder</code> returned.</p> + +<p>Scope objects form a chain called the scope chain, similar to the prototype chain used by JavaScript's object system.</p> + +<p>A closure is the combination of a function and the scope object in which it was created.</p> + +<p>Closures let you save state — as such, they can often be used in place of objects. Several excellent introductions to closures can be found <a href="http://stackoverflow.com/questions/111102/how-do-javascript-closures-work">here</a>.</p> + +<h3 id="Memory_leaks">Memory leaks</h3> + +<p>An unfortunate side effect of closures is that they make it trivially easy to leak memory in Internet Explorer. JavaScript is a garbage collected language — objects are allocated memory upon their creation and that memory is reclaimed by the browser when no references to an object remain. Objects provided by the host environment are handled by that environment.</p> + +<p>Browser hosts need to manage a large number of objects representing the HTML page being presented — the objects of the DOM. It is up to the browser to manage the allocation and recovery of these.</p> + +<p>Internet Explorer uses its own garbage collection scheme for this, separate from the mechanism used for JavaScript. It is the interaction between the two that can cause memory leaks.</p> + +<p>A memory leak in IE occurs any time a circular reference is formed between a JavaScript object and a native object. Consider the following:</p> + +<pre class="example-bad brush: js">function leakMemory() { + var el = document.getElementById('el'); + var o = { 'el': el }; + el.o = o; +} +</pre> + +<p>The circular reference formed above creates a memory leak; IE will not free the memory used by <code>el</code> and <code>o</code> until the browser is completely restarted.</p> + +<p>The above case is likely to go unnoticed; memory leaks only become a real concern in long running applications or applications that leak large amounts of memory due to large data structures or leak patterns within loops.</p> + +<p>Leaks are rarely this obvious — often the leaked data structure can have many layers of references, obscuring the circular reference.</p> + +<p>Closures make it easy to create a memory leak without meaning to. Consider this:</p> + +<pre class="example-bad brush: js">function addHandler() { + var el = document.getElementById('el'); + el.onclick = function() { + el.style.backgroundColor = 'red'; + }; +} +</pre> + +<p>The above code sets up the element to turn red when it is clicked. It also creates a memory leak. Why? Because the reference to <code>el</code> is inadvertently caught in the closure created for the anonymous inner function. This creates a circular reference between a JavaScript object (the function) and a native object (<code>el</code>).</p> + +<p>There are a number of workarounds for this problem. The simplest is not to use the <code>el</code> variable:</p> + +<pre class="example-good brush: js">function addHandler(){ + document.getElementById('el').onclick = function(){ + this.style.backgroundColor = 'red'; + }; +} +</pre> + +<p>Surprisingly, one trick for breaking circular references introduced by a closure is to add another closure:</p> + +<pre class="brush: js">function addHandler() { + var clickHandler = function() { + this.style.backgroundColor = 'red'; + }; + (function() { + var el = document.getElementById('el'); + el.onclick = clickHandler; + })(); +} +</pre> + +<p>The inner function is executed straight away, and hides its contents from the closure created with <code>clickHandler</code>.</p> + +<p>Another good trick for avoiding closures is breaking circular references during the <code>window.onunload</code> event. Many event libraries will do this for you. Note that doing so disables the <a href="/en-US/docs/Working_with_BFCache" title="En/Using_Firefox_1.5_caching">back-forward cache in Firefox</a>, so you should not register an <code>unload</code> listener in Firefox, unless you have other reasons to do so.</p> diff --git a/files/ca/web/javascript/data_structures/index.html b/files/ca/web/javascript/data_structures/index.html new file mode 100644 index 0000000000..5bb63891ed --- /dev/null +++ b/files/ca/web/javascript/data_structures/index.html @@ -0,0 +1,258 @@ +--- +title: JavaScript data types and data structures +slug: Web/JavaScript/Data_structures +translation_of: Web/JavaScript/Data_structures +--- +<div>{{jsSidebar("More")}}</div> + +<p>Tots els llenguatges de programació tenen estructures de dades definides com a part d'ells mateixos. Aquestes estrcutures, però, són sovint varien d'un llenguatge a un altre. Aquest article pretén llistar totes les estructures de dades que JavaScript té de forma interna, així com quines propietats tenen; aquestes estructures es poden utilitzar per a per a construir altres estrcutures. Es mostraran comparacionis amb altres llenguatges de programació quan sigui possible.</p> + +<h2 id="Tipatge_dinàmic">Tipatge dinàmic</h2> + +<p>JavaScript és un llenguatge <em>de tipatge flu</em><em>ix, </em><code>o </code><em>dinàmic</em>. Això vol dir que no cal declarar el tipus d'una variable abans d'utilitzar-la. El seu tipus es determinarà mentre el programa s'executi. Això també implica que la mateixa variable pot rebre valors que tinguin diferents tipus:</p> + +<pre class="brush: js notranslate">var foo = 42; // foo ara és un Number +var foo = "bar"; // foo ara és un String +var foo = true; // foo ara és un Boolean +</pre> + +<h2 id="Tipus_de_dades">Tipus de dades</h2> + +<p>L'últim standard ECMAScript defineix set tipus de dades:</p> + +<ul> + <li>Sis tipus de dades que són {{Glossary("Primitive", "primitius")}}: + <ul> + <li>{{Glossary("Boolean")}}</li> + <li>{{Glossary("Null")}}</li> + <li>{{Glossary("Undefined")}}</li> + <li>{{Glossary("Number")}}</li> + <li>{{Glossary("String")}}</li> + <li>{{Glossary("Symbol")}} (nou, introduït a l'ECMAScript 6)</li> + </ul> + </li> + <li>i {{Glossary("Object")}}</li> +</ul> + +<h2 id="Valors_primitius">Valors primitius</h2> + +<p>Tots els tipus, a excepció dels objectes, defineixen valors immutables (valors que no es poden canviar). Per exemple, al contrari que C, els Strings són immutables. Ens referim a valors d'aquests tipus com a "valors primitius".</p> + +<h3 id="Tipus_Booleà">Tipus Booleà</h3> + +<p>Els booleans representen una entitat lògica i poden tenir un dels dos valors següents: <code>true</code>, o bé <code>false</code>.</p> + +<h3 id="Tipus_Null">Tipus Null</h3> + +<p>El tipus Null té un únic valor: <code>null</code>. Vegeu {{jsxref("null")}} i {{Glossary("Null")}} per a més detalls.</p> + +<h3 id="Tipus_Undefined">Tipus Undefined</h3> + +<p>Una variable a la que no se l'ha assignat cap valor té el valor <code>undefined</code>. Vegeu {{jsxref("undefined")}} i {{Glossary("Undefined")}} per a més detalls.</p> + +<h3 id="Tipus_Number">Tipus Number</h3> + +<p>Segons el standard ECMAScript, només hi ha un tipus que representi nombres: el <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format">valor de doble precisió de 64 bits en format binari IEEE 754</a> (capaç de representar nombres entre -(2<sup>53</sup> -1) i 2<sup>53</sup> -1). <strong>No hi ha un tipus específic per a representar nombres sencers</strong>. A més de ser capaç de representar nombres en coma flotant, el tipus Number disposa de tres valors adicionals simbòlics: <code>+Infinity</code>, <code>-Infinity</code>, i <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN"><code>NaN</code></a> (No un Nombre, de l'anglés Not-A-Number).</p> + +<p>Per a comprovar valors més grans o més petits que <code>+/-Infinity</code>, es poden emprar les constants {{jsxref("Number.MAX_VALUE")}} i {{jsxref("Number.MIN_VALUE")}} i, a partir de l'ECMAScript 6, també es pot comprovar si un nombre en coma flotant de doble precisió està dins el rang mitjançant {{jsxref("Number.isSafeInteger()")}}, així com {{jsxref("Number.MAX_SAFE_INTEGER")}} i {{jsxref("Number.MIN_SAFE_INTEGER")}}. Fora d'aquest rang no és segur utilitzar nombres a JavaScript.</p> + +<p>El tipus Number disposa únicament d'un nombre sencer que té dues representacions: 0 s'interpreta com a -0 i +0. ("0" és un alias per a +0). A la pràctica, això no te quasi cap impacte. Per exemple, <code>+0 === -0</code> evalua a <code>true</code>. No obstant, aquesta diferència si existeix quan es divideix per zero:</p> + +<pre class="brush: js notranslate">> 42 / +0 +Infinity +> 42 / -0 +-Infinity +</pre> + +<p>Tot i que un nombre sovint només representa el seu valor, JavaScript disposa d'<a href="/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators" title="en/JavaScript/Reference/Operators/Bitwise_Operators">alguns operadors binaris</a>. Aquests operadors es poden emprar per a representar un conjunt de valors Booleans dins un sol nombre, utilitzen una <a class="external" href="http://en.wikipedia.org/wiki/Mask_%28computing%29">màscara de bits</a>. Això es considera una mala pràctica tot i que JavaScript no ofereix cap altra forma per a representar un conjunt de Booleans (com ara un array de Booleans o un objecte amb valors assignats a propietats amb nom). Utilitzar màscares de bits també tendeix a fer el codi més difícil de llegir, entendre i mantenir. Pot ser necessari l'ús d'aquestes tècniques en entorns força limitats, com ara quan es disposa de pocs recursos d'emmagatzematge local o en casos extrems quan cada bit enviat a la xarxa compta. Només hauria de considerar-se l'ús d'aquesta tècnica quan sigui l'últim recurs que es pot emprar per a optimitzar espai.</p> + +<h3 id="Tipus_String">Tipus String</h3> + +<p>El tipus {{jsxref("Global_Objects/String", "String")}} de JavaScript s'utilitza per a representar dades textuals. Es tracta d'un llistat d'"elements" el valor dels quals és un nombre sencer de 16 bits sense signe. Cada element dins el String ocupa una posició. El primer element té l'índex 0, el segon index 1, etcètera. La llargada d'un String és el nombre d'elements que conté.</p> + +<p>A diferència d'altres llenguatges, com ara C, Els strings a JavaScript són immutables. És a dir, quan un string s'ha creat, no és possible modificar-lo. En comptes d'això, si que és possible crear un nou string basat en un string ja existent mitjançant una operació sobre l'original. Per exemple:</p> + +<ul> + <li>Un substring de l'original via escollint lletres individuals o bé mitjançant {{jsxref("String.substr()")}}.</li> + <li>Una concatenació de dos strings mitjançant l'operador de concatenació (<code>+</code>) o bé {{jsxref("String.concat()")}}.</li> +</ul> + +<h4 id="Alerta_amb_abusar_dels_strings!">Alerta amb abusar dels strings!</h4> + +<p>Pot ser temptador utilitzar strings per a representar dades complexes. Fer-ho comporta beneficis a curt termini:</p> + +<ul> + <li>Resulta senzill construir strings complexos mitjançant la concatenació.</li> + <li>Els strings són fàcils de depurar (el que es veu imprés sempre és el que el string conté).</li> + <li>Els strings són el denominador comú de moltes APIs (<a href="/en-US/docs/Web/API/HTMLInputElement" title="HTMLInputElement">camps d'entrada</a>, valors <a href="/en-US/docs/Storage" title="Storage">emmagatzemats de forma local</a>, respostes {{ domxref("XMLHttpRequest") }} a l'utilitzar <code>responseText</code>, etc.) i pot resultar temptador utilitzar només strings.</li> +</ul> + +<p>Amb les convencions adequades, és possible representar estructures de dades dins un string. Això no vol dir que fer-ho sigui una bona idea. Per exemple, amb un separador, seria possible emular una llista (tot i que un array de JavaScript seria més adient). Malauradament, quan s'utilitzi el separador en un dels elements de la "llista", la llista esdevendrà errònia. Una solució seria escollir un caràcter d'escapament, etcètera. Tot això requereix de convencions i crea un problema de manteniment innecesari.</p> + +<p>Utilitzeu strings només per a dades textuals. Quan representin dades complexes, interpreteu els strings i utilitzeu l'abstracció adequada.</p> + +<h3 id="Tipus_Symbol">Tipus Symbol</h3> + +<p>El tipus Symbol és nou a JavaScript, introduït a l'ECMAScript Edició 6. Un Symbol és un valor primitiu <strong>únic</strong> i <strong>immutable</strong> i pot ser utilitzat com a clau d'una propietat d'un objecte (vegeu més abaix). En alguns llenguatges de programació, als símbols s'els anomena àtoms. També guarden similituts a les enumeracions (enum) de C. Per a més detalls vegeu {{Glossary("Symbol")}} i l'objecte embolcallador {{jsxref("Symbol")}} a JavaScript.</p> + +<h2 id="Objectes">Objectes</h2> + +<p>En l'àmbit de la informàtica, un objecte és un valor en memòria que possiblement és referenciat per un {{Glossary("Identifier", "identificador")}}.</p> + +<h3 id="Propietats">Propietats</h3> + +<p>A JavaScript es poden entendre els objectes com una col·lecció de propietats. Amb la <a href="/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Object_literals">sintaxi literal d'objectes</a>, es pot inicialitzar un conjunt de propietats limitat; més tard es poden afegir propietats o bé esborrar-ne. Els valors de les propietats poden ser de qualsevol tipus, incloent altres objectes, el que comporta poder construir estructures de dades complexes. Les propietats s'identifiquen mitjançant valors clau. Una clau és o bé un valor de tipus String o Symbol.</p> + +<p>Hi ha dos tipus de propietats d'objectes, les quals tenen diferents atributs: Les propietats de tipus dada i les propietats de tipus accés.</p> + +<h4 id="Propietats_de_tipus_dada">Propietats de tipus dada</h4> + +<p>Associa una clau a un valor i disposa dels següents atributs:</p> + +<table class="standard-table"> + <caption>Atributs de les propietats de tipus dada</caption> + <tbody> + <tr> + <th>Atribut</th> + <th>Tipus</th> + <th>Descripció</th> + <th>Valor per defecte</th> + </tr> + <tr> + <td>[[Value]]</td> + <td>Qualsevol tipus</td> + <td>El valor obtingut mitjançant un accés de tipus get a la propietat.</td> + <td>undefined</td> + </tr> + <tr> + <td>[[Writable]]</td> + <td>Boolean</td> + <td>Si val <code>false</code>, el [[Value]] de la propietat no es pot canviar.</td> + <td>false</td> + </tr> + <tr> + <td>[[Enumerable]]</td> + <td>Boolean</td> + <td>Si val <code>true</code>, la propietat apareixerà al recòrrer l'objecte pare amb un bucle <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a>.</td> + <td>false</td> + </tr> + <tr> + <td>[[Configurable]]</td> + <td>Boolean</td> + <td>Si val <code>false</code>, la propietat no pot ser esborrada i no es pot modificar cap atribut a excepció de [[Value]] i [[Writable]].</td> + <td>false</td> + </tr> + </tbody> +</table> + +<h4 id="Propietats_de_tipus_accés">Propietats de tipus accés</h4> + +<p>Associen una clau amb una o dues funccións d'accés (get i set) per a obtindre o bé emmagatzemar un valor, i tenen els atributs següents:</p> + +<table class="standard-table"> + <caption>Atributs de les propietats de tipus accés</caption> + <tbody> + <tr> + <th>Atribut</th> + <th>Tipus</th> + <th>Descripció</th> + <th>Valor per defecte</th> + </tr> + <tr> + <td>[[Get]]</td> + <td>Objecte de tipus Function o bé undefined</td> + <td>Es crida la funció amb un llistat d'arguments buit i retorna el valor de la propietat. S'executa quan s'accedeix al valor de la propietat. Vegeu també <a href="/en-US/docs/Web/JavaScript/Reference/Operators/get"><code>get</code></a>.</td> + <td>undefined</td> + </tr> + <tr> + <td>[[Set]]</td> + <td>Objecte de tipus Function o bé undefined</td> + <td>Es crida la funció amb un argument, que conté el valor a assignar a la propietat. S'executa quan es vol canviar el valor de la propietat. See also <a href="/en-US/docs/Web/JavaScript/Reference/Operators/set"><code>set</code></a>.</td> + <td>undefined</td> + </tr> + <tr> + <td>[[Enumerable]]</td> + <td>Boolean</td> + <td>Si val <code>true</code>, la propietat apareixerà al recòrrer l'objecte pare amb un bucle <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a>.</td> + <td>false</td> + </tr> + <tr> + <td>[[Configurable]]</td> + <td>Boolean</td> + <td>Si val <code>false</code>, no es pot esborrar la propietat i no es pot convertir a una propietat de tipus dada.</td> + <td>false</td> + </tr> + </tbody> +</table> + +<h3 id="Objectes_normals_i_functions">Objectes "normals" i functions</h3> + +<p>A JavaScript, un objecte és un mapa que associa claus amb valors. Les claus sempre són de tipus String mentre que els valors poden ser de qualsevol tipus. Això fa que els objectes es puguin utilitzar de forma intuitiva com a <a class="external" href="http://en.wikipedia.org/wiki/Hash_table">hashmaps</a>.</p> + +<p>Les funcions són objectes normals i correncts amb la característica adicional que poden ser cridats.</p> + +<h3 id="Dates">Dates</h3> + +<p>A l'hora de representar dates la millor opció és utilitzar l'objecte <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date"><code>Date</code></a> que JavaScript incorpora per defecte.</p> + +<h3 id="Col·leccions_indexades_Arrays_i_Arrays_amb_tipus">Col·leccions indexades: Arrays i Arrays amb tipus</h3> + +<p><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array" title="Array">Els Arrays</a> són objectes normals i corrents en els que hi ha una relació específica entre les propietats, que utilitzen nombres sencers com a claus, i la propietat 'length'. A més, els array hereten de <code>Array.prototype</code>, el qual els proporciona un conjunt de mètodes molt útils per a manipular arrays. Per exemple, <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf" title="en/JavaScript/Reference/Global_Objects/Array/indexOf">indexOf</a></code> (cerca un valor dins l'array) o bé <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array/push" title="en/JavaScript/Reference/Global_Objects/Array/push">push</a></code> (afegeix un element a l'array), etcètera. Això fa que els Arrays siguin el candidat ideal per a representar llistes i <em>sets</em>.</p> + +<p><a href="/en-US/docs/Web/JavaScript/Typed_arrays">Els Arrays amb tipus</a> s'han incorporat a JavaScript recentment amb el standard ECMAScript Edició 6 i ofereixen una forma de treballar sobre buffers de dades binàries com si es tractessin d'arrays. La taula següent mostra el tipus de dades equivalent a C:</p> + +<p>{{page("/ca/docs/Web/JavaScript/Reference/Global_Objects/TypedArray", "TypedArray_objects", "", 0, 3)}}</p> + +<h3 id="Col·leccions_amb_claus_Maps_Sets_WeakMaps_WeakSets">Col·leccions amb claus: Maps, Sets, WeakMaps, WeakSets</h3> + +<p>Aquestes estructures de dades utilitzen referències a objectes com a claus i estan disponibles a partir de l'ECMAScript Edició 6. {{jsxref("Set")}} i {{jsxref("WeakSet")}} representen un conjunt d'objectes, mentre que {{jsxref("Map")}} i {{jsxref("WeakMap")}} associen valors a objectes. La diferència entre Maps i WeakMaps és que als Maps els objectes utilitzats com a clau es poden enumerar mentre que als WeakMaps no. Això permet optimitzar l'alliberament de memòria si es fan anar WeakMaps.</p> + +<p>Els Maps i Sets es podrien implementar utilitzant solament ECMAScript 5 però, com que els objectes no es poden comparar (en el sentit de poder considerar un objecte menor que un altre, per exemple), el rendiment a l'hora de cercar seria linear per força. Les implementacions d'aquestes col·leccions (incloent WeakMaps) permeten un rendiment superior, sent aproximadament entre logarítmic i constant.</p> + +<p>Normalment, a l'hora de vincular dades a un node del DOM, s'assignen propietats directament a l'objecte o s'utilitzen atributs del tipus <code>data-*</code>. Aquesta aproximació té l'inconvenient d'exposar aquestes dades a tots els scripts pertanyents al mateix context. Els Maps i els WeakMaps són una solució que permet vincular dades a objectes de forma privada.</p> + +<h3 id="Dades_estructurades_JSON">Dades estructurades: JSON</h3> + +<p>JSON (JavaScript Object Notation) és un format lleuger per a l'intercanvi de dades, derivat de JavaScript però utilitzat per molts llenguatges de programació. JSON construeix estructures de dades universals. Vegeu {{Glossary("JSON")}} i {{jsxref("JSON")}} per a més detalls.</p> + +<h3 id="Altres_objectes_de_la_llibreria_standard">Altres objectes de la llibreria standard</h3> + +<p>JavaScript disposa d'una llibreria standard d'objectes. Feu un cop d'ull a la <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects">referència</a> per a descobrir més objectes.</p> + +<h2 id="Determinar_el_tipus_utilitzant_loperador_typeof">Determinar el tipus utilitzant l'operador <code>typeof</code></h2> + +<p>L'operador <code>typeof</code> pot ajudar-vos a esbrinar el tipus d'una variable. Llegiu la <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof">pàgina de referència</a> per a més detalls i casos especials.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-8', 'Types')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-ecmascript-data-types-and-values', 'ECMAScript Data Types and Values')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="link-https" href="https://github.com/nzakas/computer-science-in-javascript/">Col·lecció d'estructures de dades i algorismes comuns en JavaScript, de Nicholas Zakas.</a></li> + <li><a href="https://github.com/monmohan/DataStructures_In_Javascript" title="https://github.com/monmohan/DataStructures_In_Javascript">Search Tre(i)es implemented in JavaScript</a></li> +</ul> diff --git a/files/ca/web/javascript/enumerability_and_ownership_of_properties/index.html b/files/ca/web/javascript/enumerability_and_ownership_of_properties/index.html new file mode 100644 index 0000000000..34daee82e5 --- /dev/null +++ b/files/ca/web/javascript/enumerability_and_ownership_of_properties/index.html @@ -0,0 +1,243 @@ +--- +title: Enumerabilitat i pertanyença de les propietats +slug: Web/JavaScript/Enumerability_and_ownership_of_properties +translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties +--- +<div>{{JsSidebar("More")}}</div> + +<p>Les propietats enumerables són aquelles que es poden iterar en un <a href="/en-US/docs/JavaScript/Reference/Statements/for...in">bucle for..in</a>. La pertanyença de les propietats és determinada pel fet de si la propietat pertany directament a l'objecte en comptes de la seva cadena de prototipus. Les propietats d'un objecte també poden ser contades per a obtenir el nombre de propietats. Hi ha diverses formes de detectar, iterar/enumerar i obtindre les propietats d'un objecte. Es pot veure a la taula quines es poden emprar en cada cas. A continuació trobareu un bocí de codi d'exemple on es mostra com otenir les categories no trobades.</p> + +<table> + <caption>Enumerabilitat i pertanyença de propietats - mètodes de detecció, obtenció i iteració</caption> + <tbody> + <tr> + <th>Funcionalitat</th> + <th>Pertanyença a l'objecte</th> + <th>Pertanyença a l'objecte o la seva cadena de prototipus</th> + <th>Pertanyença només a la cadena de prototipus</th> + </tr> + <tr> + <td>Detecció</td> + <td> + <table> + <thead> + <tr> + <th scope="col">Enumerable</th> + <th scope="col">No enumerable</th> + <th scope="col">Enumerable i No enumerable</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable">propertyIsEnumerable</a></code></td> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">hasOwnProperty</a></code> i no <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable">propertyIsEnumerable</a></code></td> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">hasOwnProperty</a></code></td> + </tr> + </tbody> + </table> + </td> + <td>No disponible sense escriure més codi</td> + <td>No disponible sense escriure més codi</td> + </tr> + <tr> + <td>Obtenció</td> + <td> + <table> + <thead> + <tr> + <th scope="col">Enumerable</th> + <th scope="col">No enumerable</th> + <th scope="col">Enumerable i No enumerable</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys">Object.keys</a></code></td> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames">getOwnPropertyNames</a></code> filtrat per a incloure propietats si no se li passa<code> <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable">propertyIsEnumerable</a></code></td> + <td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames">getOwnPropertyNames</a></code></td> + </tr> + </tbody> + </table> + </td> + <td>No disponible sense escriure més codi</td> + <td>No disponible sense escriure més codi</td> + </tr> + <tr> + <td>Iteració</td> + <td> + <table> + <thead> + <tr> + <th scope="col">Enumerable</th> + <th scope="col">No enumerable</th> + <th scope="col">Enumerable i No enumerable</th> + </tr> + </thead> + <tbody> + <tr> + <td>Iterar sobre <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys">Object.keys</a></code></td> + <td>Iterar sobre <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames">getOwnPropertyNames</a> </code>filtrat per a incloure propietats si no se li passa<code> <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable">propertyIsEnumerable</a></code></td> + <td>Iterar sobre <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames">getOwnPropertyNames</a></code></td> + </tr> + </tbody> + </table> + </td> + <td> + <table> + <thead> + <tr> + <th scope="col">Enumerable</th> + <th scope="col">No enumerable</th> + <th scope="col">Enumerable i No enumerable</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><a href="/en-US/docs/JavaScript/Reference/Statements/for...in" title="/en-US/docs/JavaScript/Reference/Statements/for...in">for..in</a></code></td> + <td>No disponible sense escriure més codi</td> + <td>No disponible sense escriure més codi</td> + </tr> + </tbody> + </table> + </td> + <td>No disponible sense escriure més codi</td> + </tr> + </tbody> +</table> + +<h2 id="Obtindre_propietats_per_enumerabilitatpertanyença">Obtindre propietats per enumerabilitat/pertanyença</h2> + +<p>Cal recalcar que aquest no és l'algorisme més eficient per a tots els casos, però és útil per a una demostració ràpida.</p> + +<ul> + <li>La detecció es pot aconseguir mitjançant <code>SimplePropertyRetriever.theGetMethodYouWant(obj).indexOf(prop) > -1</code></li> + <li>La iteració es pot aconseguir mitjançant <code>SimplePropertyRetriever.theGetMethodYouWant(obj).forEach(function (value, prop) {});</code> (<code>o bé usant filter()</code>, <code>map()</code>, etc.)</li> +</ul> + +<pre class="brush: js">var SimplePropertyRetriever = { + getOwnEnumerables: function (obj) { + return this._getPropertyNames(obj, true, false, this._enumerable); + // O es podria utilitzar for..in filtrat amb hasOwnProperty o bé simplement això: return Object.keys(obj); + }, + getOwnNonenumerables: function (obj) { + return this._getPropertyNames(obj, true, false, this._notEnumerable); + }, + getOwnEnumerablesAndNonenumerables: function (obj) { + return this._getPropertyNames(obj, true, false, this._enumerableAndNotEnumerable); + // O bé simplement utilitzar: return Object.getOwnPropertyNames(obj); + }, + getPrototypeEnumerables: function (obj) { + return this._getPropertyNames(obj, false, true, this._enumerable); + }, + getPrototypeNonenumerables: function (obj) { + return this._getPropertyNames(obj, false, true, this._notEnumerable); + }, + getPrototypeEnumerablesAndNonenumerables: function (obj) { + return this._getPropertyNames(obj, false, true, this._enumerableAndNotEnumerable); + }, + getOwnAndPrototypeEnumerables: function (obj) { + return this._getPropertyNames(obj, true, true, this._enumerable); + // O bé es podria utilitzar un for..in sense filtrar + }, + getOwnAndPrototypeNonenumerables: function (obj) { + return this._getPropertyNames(obj, true, true, this._notEnumerable); + }, + getOwnAndPrototypeEnumerablesAndNonenumerables: function (obj) { + return this._getPropertyNames(obj, true, true, this._enumerableAndNotEnumerable); + }, + // Private static property checker callbacks + _enumerable : function (obj, prop) { + return obj.propertyIsEnumerable(prop); + }, + _notEnumerable : function (obj, prop) { + return !obj.propertyIsEnumerable(prop); + }, + _enumerableAndNotEnumerable : function (obj, prop) { + return true; + }, + // Inspirat per http://stackoverflow.com/a/8024294/271577 + _getPropertyNames : function getAllPropertyNames(obj, iterateSelfBool, iteratePrototypeBool, includePropCb) { + var props = []; + + do { + if (iterateSelfBool) { + Object.getOwnPropertyNames(obj).forEach(function (prop) { + if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) { + props.push(prop); + } + }); + } + if (!iteratePrototypeBool) { + break; + } + iterateSelfBool = true; + } while (obj = Object.getPrototypeOf(obj)); + + return props; + } +};</pre> + +<h2 id="Taula_de_detecció">Taula de detecció</h2> + +<table> + <thead> + <tr> + <th scope="row"> </th> + <th scope="col"><code>in</code></th> + <th scope="col"><code>for..in</code></th> + <th scope="col"><code>hasOwnProperty</code></th> + <th scope="col"><code>propertyIsEnumerable</code></th> + <th scope="col"><code>in Object.keys</code></th> + <th scope="col"><code>in Object.getOwnPropertyNames</code></th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">Enumerable</th> + <td>true</td> + <td>true</td> + <td>true</td> + <td>true</td> + <td>true</td> + <td>true</td> + </tr> + <tr> + <th scope="row">No enumerable</th> + <td>true</td> + <td>false</td> + <td>true</td> + <td>false</td> + <td>false</td> + <td>true</td> + </tr> + <tr> + <th scope="row">Enumerable heredat</th> + <td>true</td> + <td>true</td> + <td>false</td> + <td>false</td> + <td>false</td> + <td>false</td> + </tr> + <tr> + <th scope="row">No enumerable heredat</th> + <td>true</td> + <td>false</td> + <td>false</td> + <td>false</td> + <td>false</td> + <td>false</td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><code><a href="/en-US/docs/JavaScript/Reference/Operators/in" title="/en-US/docs/JavaScript/Reference/Operators/in">in</a></code></li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Statements/for...in" title="/en-US/docs/JavaScript/Reference/Statements/for...in">for..in</a></code></li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">hasOwnProperty</a></code></li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable">propertyIsEnumerable</a></code></li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames">getOwnPropertyNames</a></code></li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys">Object.keys</a></code></li> +</ul> diff --git a/files/ca/web/javascript/eventloop/index.html b/files/ca/web/javascript/eventloop/index.html new file mode 100644 index 0000000000..921e6ffded --- /dev/null +++ b/files/ca/web/javascript/eventloop/index.html @@ -0,0 +1,75 @@ +--- +title: Model de concurrència i bucle d'events +slug: Web/JavaScript/EventLoop +translation_of: Web/JavaScript/EventLoop +--- +<div>{{JsSidebar("Advanced")}}</div> + +<p>JavaScript disposa d'un model de concurrencia basat en un "bucle d'events". Aquest model és força diferent del model de concurrencia que ofereixen altres llenguatges com C o Java.</p> + +<h2 id="Conceptes_sobre_l'execució_de_codi">Conceptes sobre l'execució de codi</h2> + +<p>A les següents seccions s'explica el model teòric de concurrencia. Els motors de JavaScript moderns suporten concurrencia basant-se en aquest model tot i que hi implementen un gran nombre d'optimitzacions.</p> + +<h3 id="Representació_visual">Representació visual</h3> + +<p style="text-align: center;"><img alt="Stack, heap, queue" src="/files/4617/default.svg" style="width: 294px; height: 270px;"></p> + +<h3 id="Stack_(pila_d'execució)">Stack (pila d'execució)</h3> + +<p>Les crides a funcions formen una pila de <em>frames</em>.</p> + +<pre class="brush: js">function f(b){ + var a = 12; + return a+b+35; +} + +function g(x){ + var m = 4; + return f(m*x); +} + +g(21); +</pre> + +<p>Al cridar a <code>g</code> es crea un primer <em>frame</em>, que conté tots els arguments passats a la crida a més de les variables locals. Quan <code>g</code> crida <code>f</code> es crea un segon <em>frame</em>, que s'aplia a sobre del primer. Quan la funció <code>f</code> retorna el seu <em>frame</em> es treu de la pila (deixant només el <em>frame</em> de <code>g</code>). Quan <code>g</code> retorna la pila d'execució queda buida.</p> + +<h3 id="Heap_(regió_de_memòria)">Heap (regió de memòria)</h3> + +<p>Els objectes s'emmagatzemen a la <em>heap</em>, que és una regió de memòria sense cap estructura fixa a la que el motor hi té accès.</p> + +<h3 id="Queue_(cua_d'execució)">Queue (cua d'execució)</h3> + +<p>El procès d'execució de JavaScript conté una cua de missatges, que està formada pel llistat de missatges pendents de ser processats. Cada cop que es buida s'agafa un missatge de la cua i es processa. El processament del missatge consisteix a cridar la funció associada a ell (i en conseqüència s'afegeix un <em>frame</em> inicial a la pila d'execució). El processament conclou quan a la pila d'execució no hi queda cap <em>frame</em>.</p> + +<h2 id="Bucle_d'events">Bucle d'events</h2> + +<p>El <code>bucle d'events</code> rep el seu nom degut a la forma en la que normalment s'implementa, la qual sol ésser semblant al següent exemple:</p> + +<pre class="brush: js">while(cua.esperarMissatge()){ + cua.processarSegüentMissatge(); +}</pre> + +<p><code>cua.esperarMissatge</code> espera de forma síncrona que un missatge arribi si la pila és buida.</p> + +<h3 id="Execució_ininterrompuda">Execució ininterrompuda</h3> + +<p>Cada missatge es processa de forma complerta i ininterrompuda abans un altre missatge no és processat. Aquest fet proporciona certes propietats força útils a tenir en compte a l'hora de pensar com realitzar un programa, com pot ser el fet que mentre s'està executant una funció es garanteix que aquesta mai serà interrompuda de forma que no cal preocupar-se per que cap altre codi pugui modificar dades que puguin afectar el resultat. Aquest comportament és totalment diferent del de llenguatges com C, per exemple, on les funcions es processen en fils d'execució, que poden ser interromputs en qualsevol moment per donar pas a l'execució d'altres fils, els quals poden potencialment modificar dades que poden alterar el resultat del primer fil.</p> + +<p>Un dels inconvenients del model emprat per JavaScript és que si un missatge triga massa a executar-se completament l'aplicació web no pot processar altres interaccions de l'usuari (que es transformen en missatges i van a parar a la cua) com ara clics o desplaçaments. Els navegadors sovint alleugen el problema tot advertint l'usuari amb el diàleg "un script està trigant massa a executar-se". Una bona pràctica consisteix a intentar que els missatges trigin poc temps a executar-se i, si és possible, trencar-los en diferents missatges més petits.</p> + +<h2 id="Afegir_missatges">Afegir missatges</h2> + +<p>Als navegadors web els missatges s'afegeixen a la cua sempre que un event succeeix i aquest event té un <em>event listener</em> associat. Si no hi ha cap <em>listener</em> associat l'event es perd. Així per exemple si es fa un clic a un element que té associada una funció a l'event de clic afegirà un missatge a la cua. Tanmateix amb qualsevol altre tipus d'event.</p> + +<p>Cridar a <code><a href="/en-US/docs/Web/API/WindowTimers.setTimeout" title="/en-US/docs/window.setTimeout">setTimeout</a></code> afegirà un missatge a la cua després que el temps indicat al segon argument hagi passat. Si no hi ha cap altre missatge a la cua, aquest missage s'executarà de forma immediata. Si hi ha altres missatges, però, el missatge afegit per <code>setTimeout</code> esperarà a que s'hagin processat tots els altres. És per aquest motiu que el segon argument indica el temps mínim d'espera i no el temps exacte garantit fins que es processi el missatge.</p> + +<h3 id="Comunicació_entre_diferents_fils_d'execució">Comunicació entre diferents fils d'execució</h3> + +<p>Els <em>web worker</em> (així s'anomenen els fils d'execució que s'encarreguen de processar missatges) i els <em>iframe</em> de tipus <em>cross-origin</em> tenen la seva pròpia pila, <em>heap</em> i cua de missatges. Dos fils d'execució diferents només es poden comunicar enviant-se missatges via el mètode <a href="/ca/docs/DOM/window.postMessage">postMessage</a>. Aquest mètode afegirà un missatge a un altre fil d'execució sempre i quan aquest fil d'execució estigui escoltant events de tipus <code>message</code> (és a dir, sempre que al fil d'execució que vol rebre el missatge hi hagi associat un <em>listener</em> a l'event <code>message</code>).</p> + +<h2 id="Completament_asíncron">Completament asíncron</h2> + +<p>Una propietat molt interessant del model de bucle d'events és que JavaScript, a diferència d'altres llenguatges, no es bloqueja mai a l'espera de res. Les operacions d'Entrada/Sortida (habitualment bloquejants a la majoria de llenguatges) són processades per JavaScript mitjançant events i <em>callbacks</em>, així , per exemple, mentre l'aplicació està esperant que una <em>query</em> a l'<a href="/en-US/docs/Web/API/IndexedDB_API" title="/en-US/docs/IndexedDB">IndexedDB</a> retorni o que una petició <a href="/en-US/docs/Web/API/XMLHttpRequest" title="/en-US/docs/DOM/XMLHttpRequest">XHR</a> retorni JavaScript pot executar altres events, com interaccions amb l'usuari, etcètera, ja que els resultats seràn rebuts i processats mitjançant un missatge diferent, que serà afegit a la cua quan els resultats estiguin llestos.</p> + +<p>Hi ha excepcions (degudes principalment a raons històriques), com el <em>dialog</em> <code>alert</code> o bé crides síncrones de tipus XHR, però es considera una bona pràctica evitar el seu ús. Tingueu en compte que també existeixen <a href="http://stackoverflow.com/questions/2734025/is-javascript-guaranteed-to-be-single-threaded/2734311#2734311">excepcions a l'excepció</a>, però normalment són degudes a errors d'implementació (bugs).</p> diff --git a/files/ca/web/javascript/guide/details_of_the_object_model/index.html b/files/ca/web/javascript/guide/details_of_the_object_model/index.html new file mode 100644 index 0000000000..9c2442d26f --- /dev/null +++ b/files/ca/web/javascript/guide/details_of_the_object_model/index.html @@ -0,0 +1,746 @@ +--- +title: El model d'objectes en detall +slug: Web/JavaScript/Guide/Details_of_the_Object_Model +translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model +--- +<p>{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Iterators_and_Generators")}}</p> + +<p>JavaScript és un llenguatge orientat a objectes basat en prototipus en comptes d'estar basat en classes. Degut a aquesta diferència pot resultar menys evident la forma en que JavaScript permet crear jerarquies d'objectes i proporciona herència de propietats i els seus valors. Aquest capítol pretén aclarir aquest tema.</p> + +<p>Aquest capítol assumeix que teniu certa familiaritat amb JavaScript i sabeu crear objectes simples mitjançant funcions.</p> + +<h2 id="Llenguatges_basats_en_classes_vs_llenguatges_basats_en_prototipus">Llenguatges basats en classes vs llenguatges basats en prototipus</h2> + +<p>Els llenguatges orientats a objectes basats en classes, com ara Java i C++, es basen en el concepte de tenir dues entitats diferents: classes i instàncies.</p> + +<ul> + <li>Una <em>classe</em> defineix totes les propietats (considerem que a Java els mètodes i camps, així com els membres a C++, són propietats) que caracteritzen un determinat conjunt d'objectes. Una classe és quelcom abstracte, en contraposició amb un membre específic del grup d'objectes que defineix. Per exemple, la classe <code>Employee</code> podria representar el conjunt de tots els empleats.</li> + <li>Una <em>instància</em>, d'altra banda, és la instanciació d'una classe, és a dir, un dels seus membres. Per exemple, <code>Victoria</code> podría ser una instància de la classe <code>Employee</code>, representant un individu concret com a empleat. Una instància te exactament les propietats de la seva classe pare, ni més ni menys.</li> +</ul> + +<p>Un llenguatge basat en prototipus, com ara JavaScript, no fa aquesta distinció: simplement disposa d'objectes. Un llenguatge basat en prototipus, però, té el concepte de <em>objecte prototipus</em>, un objecte que s'utilitza com a motlle del qual obtindre les propietats inicial d'un nou objecte. Qualsevol objecte pot especificar les seves pròpies propietats, ja sigui quan aquest és creat o be en temps d'execució. A més, qualsevol objecte pot ser associat com el <em>prototipus</em> d'un altre objecte, tot permetent al segon objecte compartir les propietats del primer.</p> + +<h3 id="Definir_una_classe">Definir una classe</h3> + +<p>En llenguatge basats en classes hom defineix una classe de forma separada com una <em>definició de classe</em>. En aquesta definició es poden especificar mètodes especials, anomenats <em>constructors</em>, que serveixen per a crear instàncies de la classe a la que pertanyen. Un mètode constructor pot especificar valors inicials per a les propietats d'una instància, així com realitzar altres tasques en temps de creació de l'objecte. Per a crear instàncies d'una classe s'utilitza l'operador <code>new</code> en associació amb un mètode constructor de la classe.</p> + +<p>JavaScript empra un model similar tot i que no disposa de definicions de classes separades dels constructors. En comptes d'això, es defineix una funció constructora per a crear objectes amb un conjunt específic de propietats i valors. Qualsevol funció de JavaScript pot ser utilitzada com a constructor. S'utilitza l'operador <code>new</code> amb una funció constructora per a crear un nou objecte.</p> + +<h3 id="Subclasses_i_herència">Subclasses i herència</h3> + +<p>En els llenguatges basats en classes, es poden crear jerarquies de classes mitjançant la definició de les classes. En una definició de classe es pot especificar que la nova classe és una <em>subclasse</em> d'una classe que ja existeix. La subclasse hereta totes les propietats de la <em>superclasse</em> i pot afegir noves propietats adicionals o bé modificar les heretades. Per exemple, suposem que la classe <code>Employee</code> només inclou les propietats <code>name</code> i <code>department</code>, i la classe <code>Manager</code> és una subclasse de <code>Employee</code> que afegeix la propietat <code>reports</code>. En aquest cas una instància de la classe <code>Manager</code> tindria totes tres propietats: <code>name</code>, <code>department</code> i <code>reports</code>.</p> + +<p>JavaScript implementa l'herència permetent associar un objecte prototipus a qualsevol funció constructora. D'aquesta forma es pot crear exactament l'exemple <code>Employee</code> — <code>Manager</code>, tot i que fent servir una terminologia lleugerament diferent. Primerament cal definir la funció constructora de <code>Employee</code>, tot especificant les propietats <code>nom</code> i <code>departament</code>. Seguidament es defineix la funció constructora de <code>Manager</code>, tot cridant el constructor de <code>Employee</code> i especificant la propietat <code>informes</code>. Finalment s'assigna el nou objecte derivat de <code>Employee.prototype</code> com el <code>prototype</code> de la funció constructora de <code>Manager</code>. Llavors quan es crea un nou objecte de tipus <code>Manager</code> aquest hereta les propietats <code>name</code> i <code>department</code> de l'objecte <code>Employee</code>.</p> + +<h3 id="Afegir_i_esborrar_propietats">Afegir i esborrar propietats</h3> + +<p>En llenguatges basats en classes les classes són normalment creades en temps de compilació i mentre que les instàncies de la classe poden ser creades tant en temps de compilació com en temps d'execució. No és possible canviar el nombre o el tipus de les propietats d'una classe després d'haver definit la classe. En JavaScript, però, és possible afegir o eliminar propietats de qualsevol objecte en temps d'execució. Si s'afegeix una propietat a un objecte que està sent utilitzat com a prototipus d'un conjunt d'objectes, aquests objectes també rebran la nova propietat.</p> + +<h3 id="Resum_de_diferències">Resum de diferències</h3> + +<p>La taula següent proporciona un breu resum d'algunes d'aquestes diferències. La resta del capítol descriu els detalls d'utilitzar constructors i prototipus a JavaScript per a crear jerarquies d'objectes i ho compara amb com es faria amb Java.</p> + +<table class="fullwidth-table"> + <caption>Taula 8.1 Comparació de sistems d'objectes basats en classes (Java) i basats en prototipus (JavaScript)</caption> + <thead> + <tr> + <th scope="col">Basat en classes (Java)</th> + <th scope="col">Basat en prototipus (JavaScript)</th> + </tr> + </thead> + <tbody> + <tr> + <td>Les classes i les instàncies són entitats diferents.</td> + <td>Qualsevol objecte pot heretar d'un altre objecte.</td> + </tr> + <tr> + <td>Es defineix una classe mitjançant una definició de classe; Es crea una instància d'una classe mitjançant un dels seus mètodes constructors.</td> + <td>Es defineix i es crea un conunt d'objectes mitjançant funcions constructores.</td> + </tr> + <tr> + <td>Es crea un sol objecte amb l'operador <code>new</code>.</td> + <td>Es crea un sol objecte amb l'operador <code>new</code>.</td> + </tr> + <tr> + <td> + <p>Les jerarquies d'objectes es construeixen mitjançant definicions de classes per a especificar subclasses de les classes existents.</p> + </td> + <td> + <p>Les jerarquies d'objectes es construeixen tot assignant un objecte com el prototipus associat amb una funció constructora.</p> + </td> + </tr> + <tr> + <td>Hereta les propietats tot següient la cadena de classes.</td> + <td> + <p>Hereta les propietats tot seguint la cadena de prototipus.</p> + </td> + </tr> + <tr> + <td> + <p>La definició d'una classe especifica <em>totes</em> les propietats per totes les instàncies de la classe. No és possible afegir propietats dinàmicament en temps d'execució.</p> + </td> + <td> + <p>Una funció constructora o un prototipus especifiquen un <em>conjunt inicial</em> de propietats. És possible afegir o eliminar propietats de forma dinàmica per a objectes individuals o bé de tot el conjunt d'objectes.</p> + </td> + </tr> + </tbody> +</table> + +<p> </p> + +<h2 id="L'exemple_Employee">L'exemple Employee</h2> + +<p>La resta d'aquest capítol utilitza la jerarquia de <code>Employee</code> que es mostra en la següent figura.</p> + +<p><img alt="" class="internal" src="/@api/deki/files/4452/=figure8.1.png" style="height: 194px; width: 281px;"></p> + +<p><small><strong>Figura 8.1: Una jerarquia d'objectes simple</strong></small></p> + +<p>Aquest exemple utilitza els objectes següents:</p> + +<ul> + <li><code>Employee</code> té les propietats <code>name</code> (el valor de la qual és una cadena buida per defecte) i <code>dept</code> (el valor de la qual és "general" per defecte).</li> + <li><code>Manager</code> està basada en <code>Employee</code>. Afegeix la propietat <code>reports</code> (el valor de la qual és un array buit per defecte, i destinada a emmagatzemar un array d'objectes de tipus <code>Employee</code> com a valor).</li> + <li><code>WorkerBee</code> també està basada en <code>Employee</code>. afegeix la propietat<code> projects</code> (el valor de la qual és un array buit per defecte, i destinada a emmagatzemar un array de strings com a valor).</li> + <li><code>SalesPerson</code> està basada en <code>WorkerBee</code>. Afegeix la propietat <code>quota</code> (el valor de la qual és 100 per defecte). També sobreescriu la propietat <code>dept</code> amb el valor "sales", tot indicant que tots els objectes del tipus salespersons pertanyen al mateix department.</li> + <li><code>Engineer</code> està basat en <code>WorkerBee</code>. Afegeix la propietat <code>machine</code> (el valor de la qual és una string buida per defecte) i també sobreescriu la propietat <code>dept</code> amb el valor "engineering".</li> +</ul> + +<h2 id="Crear_una_jerarquia">Crear una jerarquia</h2> + +<p>Hi ha diverses formes de definir les funcions constructores adequades per a implementar una jerarquia de Employee. Quina escollir-ne una depen en gran mesura del que es vol fer en l'aplicació.</p> + +<p>Aquesta secció mostra com utilitzar definicions molt simples (i comparativament poc flexibles) per a demostrar com funciona l'herència. En aquestes definicions no es pot especificar cap valor de les propietats al crear un objecte. L'objecte creat recentment senzillament té els valors per defecte, que es poden canviar després.</p> + +<p>En una aplicació real probablement es definirien constructors que permetessin especificar valors per les propietats de l'objecte al crear-lo (vegeu <a href="#Constructors_més_flexibles">Constructors més flexibles</a> per a més informació). De moment aquestes definicions simples demostren com funciona l'herència.</p> + +<p>Les següents definicions en Java i JavaScript de <code>Employee</code> són similars. L'única diferència és que a Java s'ha d'especificar el tipus de cada propietat de forma explícita mentre que a JavaScript no (degut a que Java és un <a href="http://en.wikipedia.org/wiki/Strong_and_weak_typing">llenguatge de tipatge fort</a> mentre que JavaScript és un llenguatge de tipatge dèbil).</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">JavaScript</th> + <th scope="col">Java</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <pre class="brush: js"> +function Employee() { + this.name = ""; + this.dept = "general"; +} +</pre> + </td> + <td> + <pre class="brush: java"> +public class Employee { + public String name = ""; + public String dept = "general"; +} +</pre> + </td> + </tr> + </tbody> +</table> + +<p>Les definicions de <code>Manager</code> i <code>WorkerBee</code> mostren com especificar quin és l'objecte pare dins la cadena d'herència. A JavaScript s'afegeix una instància prototipus com a valor de la propietat <code>prototype</code> de la funció constructora. Això es pot fer en qualsevol moment després d'haver definit el constructor. A Java, en canvi, s'ha d'especificar la superclasse dins la definició de la classe, i aquesta, en conseqüència, no pot canviar-se fora de la definició de classe.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">JavaScript</th> + <th scope="col">Java</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <pre class="brush: js"> +function Manager() { + Employee.call(this); + this.reports = []; +} +Manager.prototype = Object.create(Employee.prototype); + +function WorkerBee() { + Employee.call(this); + this.projects = []; +} +WorkerBee.prototype = Object.create(Employee.prototype); +</pre> + </td> + <td> + <pre class="brush: java"> +public class Manager extends Employee { + public Employee[] reports; + public Manager () { + super(); + this.reports = new Employee[0]; + } +} + +public class WorkerBee extends Employee { + public String[] projects; + public WorkerBee () { + super(); + this.projects = new String[0]; + } +} +</pre> + </td> + </tr> + </tbody> +</table> + +<p>Les definicions de <code>Engineer</code> i <code>SalesPerson</code> creen objectes que descendeixen de <code>WorkerBee</code> i, per extensió, de <code>Employee</code>. Un objecte d'algun d'aquests tipus té les propietats de tots els objectes de damunt seu a la cadena d'herència. A més les definicions sobreescriuen els valors heretats de la propietat <code>dept</code> amb els nous valors especificats per a aquests objectes.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">JavaScript</th> + <th scope="col">Java</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <pre class="brush: js"> +function SalesPerson() { + WorkerBee.call(this); + this.dept = "sales"; + this.quota = 100; +} +SalesPerson.prototype = Object.create(WorkerBee.prototype); + +function Engineer() { + WorkerBee.call(this); + this.dept = "engineering"; + this.machine = ""; +} +Engineer.prototype = Object.create(WorkerBee.prototype); +</pre> + </td> + <td> + <pre class="brush: java"> +public class SalesPerson extends WorkerBee { + public double quota; + public SalesPerson () { + super(); + this.dept = "sales"; + this.quota = 100.0; + } +} + +public class Engineer extends WorkerBee { + public String machine; + public Engineer () { + super(); + this.dept = "engineering"; + this.machine = ""; + } +} +</pre> + </td> + </tr> + </tbody> +</table> + +<p>A l'utilitzar aquestes definicions les instàncies creades per aquests objectes tenen els valors per defecte apropiats per a les seves propietats. La figura 8.3 mostra com utilitzar aquestes definicions de JavaScript per a crear objectes nous i mostra els valors de les propietats per als nous objectes.</p> + +<div class="note"> +<p>El terme <em>instància</em> té un significat tècnic específic per a llenguatges basats en classes. En aquests llenguatges una instància és una instanciació individual d'una classe i és fundamentalment diferent de la classe. A JavaScript, "instància" no té aquest significat tècnic perquè aquest no diferencia entre classes i instàncies, tot i que parlant informalment de JavaScript es pot utilitzar el terme "instància" per a indicar un objecte creat utilitzant una funció constructora particular. Així, en aquest exemple, hom pot dir informalment que <code>jane</code> és una instància d'<code>Engineer</code>. De la mateixa manera, tot i que els termes <em>fill</em>, <em>predecessor</em> i <em>descendent</em> no tenen cap significat formal a JavaScript, aquests poden emprar-se de forma informal per a fer referència a objectes més amunt o bé més avall de la cadena de prototipus.</p> +</div> + +<p> </p> + +<p><img alt="figure8.3.png" class="default internal" id="figure8.3" src="/@api/deki/files/4403/=figure8.3.png"><br> + <a id="8.3" name="8.3"><small><strong>Figura 8.3: Creació d'objectes amb definicions simples</strong></small></a></p> + +<h2 id="Propietats_d'un_objecte">Propietats d'un objecte</h2> + +<p>Aquesta secció explica com els objectes hereten propietats d'altres objecte mitjançant la cadena de prototipus i què succeeix quan s'afegeix una propietat en temps d'execució.</p> + +<h3 id="Heretar_propietats">Heretar propietats</h3> + +<p>Suposem que creem l'objecte <code>mark</code> a partir de <code>WorkerBee</code> (tal i com es mostra a la <a href="#8.3">Figura 8.3</a>) amb la sentència següent:</p> + +<pre class="brush: js">var mark = new WorkerBee; +</pre> + +<p>Quan JavaScript es troba amb l'operador <code>new</code>, aquest crea un nou objecte genèric i passa aquest nou objecte com a valor de la paraula clau <code>this</code> a la funció constructora de <code>WorkerBee</code>. La funció constructora assigna el valor de la propietat project de forma explícita, i assigna implícitament el valor <code>WorkerBee.prototype</code> a la propietat interna <code>__proto__</code> (el nom d'aquesta propietat conté dos guions baixos tant al principi com al final). La propietat <code>__proto__</code> determina la cadena de prototipus que s'emprarà per a retornar valors de propietats. Un cop assignades aquestes propietats, JavaScript retorna el nou objecte i la sentència d'assignació associa l'objecte a la variable <code>mark</code>.</p> + +<p>Aquest procés no assigna valors de forma explícita a l'objecte <code>mark</code> (valors <em>locals</em>) per a les propietats que mark hereta a través de la cadena de prototipus. Quan s'intenta obtindre el valor d'una propietat JavaScript primer mira si el valor existeix en aquest objecte. Si és així, aquest és el valor retornat. Si el valor no existeix de forma <em>local</em>, JavaScript recorre la cadena prototipus (mitjançant la propietat <code>__proto__</code>). Si un objecte de la cadena prototipus té un valor per assignat a la propietat, aquest és el valor retornat. Si aquesta propietat no es troba a cap objecte de la cadena prototipus JavaScript determina que l'objete no té aquesta propietat. D'aquesta forma, l'objete <code>mark</code> té les següents propietats i valors:</p> + +<pre class="brush: js">mark.name = ""; +mark.dept = "general"; +mark.projects = []; +</pre> + +<p>L'objecte <code>mark</code> hereta els valors per a les propietats <code>name</code> i <code>dept</code> de l'objecte prototipus a <code>mark.__proto__</code>. La propietat <code>projects</code> rep un valor local designat pel constructor <code>WorkerBee</code>. Així és com funciona l'herència de propietats i els seus valors a JavaScript. Es poden trobar alguns detalls d'aquest procès a <a href="#Un_segon_cop_d'ull_a_l'herència_de_propietats">Un segon cop d'ull a l'herència de propietats</a>.</p> + +<p>Com que aquests constructors no permeten valors per a l'instància aquesta informació és genèrica. Els valors de les propietats són compartits per defecte, compartits per tots els nous objectes creats a partir de <code>WorkerBee</code>. Per suposat, es poden canviar els valors inicials d'aquestes propietats. A continuació es mostra com canviar informació específica:</p> + +<pre class="brush: js">mark.name = "Doe, Mark"; +mark.dept = "admin"; +mark.projects = ["navigator"];</pre> + +<h3 id="Afegir_propietats">Afegir propietats</h3> + +<p>A JavaScript, es poden afegir propietats a qualsevol objecte en temps d'execució. No hi ha cap limitació que ens forci a utilitzar només les propietats que ofereix la funció constructora. Per a afegir una propietat específicament a només un objecte, s'assigna un valor a l'objecte de la manera següent:</p> + +<pre class="brush: js">mark.bonus = 3000; +</pre> + +<p>Ara l'objecte <code>mark</code> té una propietat anomenada <code>bonus</code>, però cap altre objecte de tipus WorkerBee tindrà aquesta propietat.</p> + +<p>Si s'afegeix una nova propietat a un objecte que és emprat com a prototipus per una funció constructora, la propietat s'afegeix a tots els objectes que hereten propietats del prototipus. Per exemple, podem afegir la propietat <code>specialty</code> a tots els empleats amb la sentència següent:</p> + +<pre class="brush: js">Employee.prototype.specialty = "none"; +</pre> + +<p>Un cop la sentència s'ha executat l'objecte <code>mark</code> també disposa de la propietat <code>specialty</code>, amb el valor <code>"none"</code>. La figura següent mostra l'efecte d'afegir aquesta propietat al prototipus <code>Employee</code> i tot seguit sobreescriure-la per al prototipus <code>Engineer</code>.</p> + +<p><img alt="" class="internal" src="/@api/deki/files/4422/=figure8.4.png" style="height: 519px; width: 833px;"><br> + <small><strong>Figura 8.4: Afegir propietats</strong></small></p> + +<h2 id="Constructors_més_flexibles">Constructors més flexibles</h2> + +<p>Les funcions constructores emprades fins ara no permeten especificar els valors de les propietats al crear una instància. Tal i com succeeix amb Java, es poden passar arguments als constructors per a inicialitzar els valors de les propietats de les instàncies a crear. La figura següent mostra una forma d'aconseguir-ho.</p> + +<p><img alt="" class="internal" id="figure8.5" src="/@api/deki/files/4423/=figure8.5.png" style="height: 481px; width: 1012px;"><br> + <a id="8.5" name="8.5"><small><strong>Figura 8.5: Determinar propietats en un constructor, primera aproximació</strong></small></a></p> + +<p>La taula següent mostra les definicions tant en Java com en JavaScript d'aquests objectes.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">JavaScript</th> + <th scope="col">Java</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <pre class="brush: js"> +function Employee (name, dept) { + this.name = name || ""; + this.dept = dept || "general"; +} +</pre> + </td> + <td> + <pre class="brush: java"> +public class Employee { + public String name; + public String dept; + public Employee () { + this("", "general"); + } + public Employee (String name) { + this(name, "general"); + } + public Employee (String name, String dept) { + this.name = name; + this.dept = dept; + } +} +</pre> + </td> + </tr> + <tr> + <td> + <pre class="brush: js"> +function WorkerBee (projs) { + + this.projects = projs || []; +} +WorkerBee.prototype = new Employee; +</pre> + </td> + <td> + <pre class="brush: java"> +public class WorkerBee extends Employee { + public String[] projects; + public WorkerBee () { + this(new String[0]); + } + public WorkerBee (String[] projs) { + projects = projs; + } +} + +</pre> + </td> + </tr> + <tr> + <td> + <pre class="brush: js"> + +function Engineer (mach) { + this.dept = "engineering"; + this.machine = mach || ""; +} +Engineer.prototype = new WorkerBee; +</pre> + </td> + <td> + <pre class="brush: java"> +public class Engineer extends WorkerBee { + public String machine; + public Engineer () { + dept = "engineering"; + machine = ""; + } + public Engineer (String mach) { + dept = "engineering"; + machine = mach; + } +} +</pre> + </td> + </tr> + </tbody> +</table> + +<p>Aquestes definicions de JavaScript utilitzen un modisme especial per a assignar els valors per defecte:</p> + +<pre class="brush: js">this.name = name || ""; +</pre> + +<p>L'operador lògic OR de JavaScript (<code>||</code>) avalua el primer argument. Si aquest argument esdevé cert, l'operador el retorna. En cas constrari l'operador retorna el valor del segon argument. Així, aquesta línia de codi comprova que la propietat name tingui un valor útil. Si és així, assigna aquest valor a <code>this.name</code>. En cas contrari, assigna una string buida a <code>this.name</code>. Aquest capítol utilitza aquest modisme per a abreujar tot i que pot resultar desconcertant a primera vista.</p> + +<div class="note"> +<p>Això pot no tindre el comportament esperat si la funció constructora es crida amb arguments que s'avaluen a fals (com <code>0</code> (zero) o la cadena buida (<code>""</code>). En aquest cas el valor per defecte serà l'escollit.</p> + +<p>Amb aquestes definicions, al crear una instància d'un objecte, podem especificar valors per a les propietats locals definides. Tal i com es mostra a la <a href="#8.5">Figura 8.5</a>, es pot utilitzar la sentència següent per a crear un now <code>Engineer</code>:</p> +</div> + +<pre class="brush: js">var jane = new Engineer("belau"); +</pre> + +<p>Les propietats de <code>Jane</code> ara són:</p> + +<pre class="brush: js">jane.name == ""; +jane.dept == "engineering"; +jane.projects == []; +jane.machine == "belau" +</pre> + +<p>Fixeu-vos que amb aquestes definicions no és possible especificar un valor inicial per a propietats heretades, com ara <code>name</code>. Si es vol especificar un valor inicial per a propietats heretades a JavaScript és necesari afegir més codi a la funció constructora.</p> + +<p>Fins ara les funcions constructores han creat objectes genèrics i han pogut assignar valors a les propietats locals del nou objecte. El constructor mateix també pot afegir més propietats mitjançant la crida a la funció constructora d'un objecte més adalt en la cadena de propotitpus. La figura següent mostra aquestes noves definicions.</p> + +<p><img alt="" class="internal" src="/@api/deki/files/4430/=figure8.6.png" style="height: 534px; width: 1063px;"><br> + <small><strong>Figura 8.6 Especificar propietats al consctructor, segona aproximació</strong></small></p> + +<p>Fem un cop d'ull a una d'aquestes definicions en detall. Aquesta és la nova definició del constructor de <code>Engineer</code>:</p> + +<pre class="brush: js">function Engineer (name, projs, mach) { + this.base = WorkerBee; + this.base(name, "engineering", projs); + this.machine = mach || ""; +} +</pre> + +<p>Suposem que creem un nou objecte de tipus <code>Engineer</code> de la forma següent:</p> + +<pre class="brush: js">var jane = new Engineer("Doe, Jane", ["navigator", "javascript"], "belau"); +</pre> + +<p>JavaScript realitza els següents passos:</p> + +<ol> + <li>L'operador new crea un objecte genèric i assigna <code>Engineer.prototype</code> a la propietat <code>__proto__</code> d'aquest nou objecte.</li> + <li>L'operador new passa el nou objecte al constructor de <code>Engineer</code> com a valor de la paraula clau <code>this</code>.</li> + <li>El constructor crea una nova propietat anomenada <code>base</code> per a aquest objecte i assigna el valor del constructor de <code>WorkerBee</code> a aquesta propietat. Això fa que el constructor <code>WorkerBee</code> pugui ser emprat com un mètode de l'objecte <code>Engineer</code>. El nom de la propietat base no és especial. Es pot emprar qualsevol nom de propietat que sigui vàlid; <code>base</code> ha estat escollit perquè simplement és adient per al seu propòsit.</li> + <li>El constructor crida el mètode <code>base</code>, tot passant-li com a arguments dos dels arguments passats al constructor (<code>"Doe, Jane"</code> and <code>["navigator", "javascript"]</code>) i també la string <code>"engineering"</code>. Al passar <code>"engineering"</code> explícitament al constructor tots els objectes de tipus <code>Engineer</code> tindran el mateix valor per a la propietat hertada <code>dept</code>, i aquest valor sobreescriurà el valor heretat de <code>Employee</code>.</li> + <li> + <p>Com que base és un mètode de <code>Engineer</code>, durant la crida a base JavaScript assigna a la paraula clau this l'objecte creat al pas 1. D'aquesta forma, la funció <code>WorkerBee</code> passa els arguments <code>"Doe, Jane"</code> i <code>"engineering"</code> a la funció constructora <code>Employee</code>. Un cop la funció constructora <code>Employee</code> ha retornat, la funció <code>WorkerBee</code> utilitza l'argument restant per a assignar un valor a la propietat <code>projects</code>.</p> + </li> + <li>Un cop el mètode base ha retornat, el constructor <code>Engineer</code> initialitza la propietat <code>machine</code> de l'objecte al valor <code>"belau"</code>.</li> + <li>Un cop el constructor ha retornat, JavaScript assigna el nou objecte a la variable <code>jane</code>.</li> +</ol> + +<p>Es pot pensar que, debug a que s'ha cridat al constructor <code>WorkerBee</code> des de dins el constructor <code>Engineer</code>, s'ha inicialitzat la herència de forma adequada per als objectes <code>Engineer</code>. No és el cas. Cridar el constructor <code>WorkerBee</code> ens asegura que l'objecte <code>Engineer</code> comença amb les propietats especificades per a totes les funcions constructores que es criden. Però, si més tard afegim propietats als prototipus <code>Employee</code> o <code>WorkerBee</code>, aquestes propietats no són heretades per l'objecte <code>Engineer</code>. Per exemple, suposem que tenim les sentències següents:</p> + +<pre class="brush: js">function Engineer (name, projs, mach) { + this.base = WorkerBee; + this.base(name, "engineering", projs); + this.machine = mach || ""; +} +var jane = new Engineer("Doe, Jane", ["navigator", "javascript"], "belau"); +Employee.prototype.specialty = "none"; +</pre> + +<p>L'objecte <code>jane</code> no hereta la propietat <code>specialty</code>. Es fa necesari inicialitzar el prototipus per a assegurar que hi haurà herència de forma dinàmica. Suposem que tenim les sentències següents:</p> + +<pre class="brush: js">function Engineer (name, projs, mach) { + this.base = WorkerBee; + this.base(name, "engineering", projs); + this.machine = mach || ""; +} +Engineer.prototype = new WorkerBee; +var jane = new Engineer("Doe, Jane", ["navigator", "javascript"], "belau"); +Employee.prototype.specialty = "none"; +</pre> + +<p>Ara el valor de la propietat specialty de l'objecte <code>jane</code> és "none".</p> + +<p>Una altra forma d'heretar és mitjançant els mètodes <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function/call" title="en-US/docs/JavaScript/Reference/Global Objects/Function/call"><code>call()</code></a> / <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply" title="en-US/docs/JavaScript/Reference/Global Objects/Function/apply"><code>apply()</code></a>. Les funcions següents són equivalents:</p> + +<table> + <tbody> + <tr> + <td> + <pre class="brush: js"> +function Engineer (name, projs, mach) { + this.base = WorkerBee; + this.base(name, "engineering", projs); + this.machine = mach || ""; +} +</pre> + </td> + <td> + <pre class="brush: js"> +function Engineer (name, projs, mach) { + WorkerBee.call(this, name, "engineering", projs); + this.machine = mach || ""; +} +</pre> + </td> + </tr> + </tbody> +</table> + +<p>Utilitzar el mètode de JavaScript <code>call()</code> esdevé en una implementació més neta perquè ja no es requereix la propietat <code>base</code>.</p> + +<h2 id="Un_segon_cop_d'ull_a_la_herència_de_propietats">Un segon cop d'ull a la herència de propietats</h2> + +<p>Les seccions anteriors han descrit com utilitzar els constructors de JavaScript i els prototipus per crear jerarquies i proporcionar herència. Aquesta secció explica alguns detalls que poden no haver estat obvis en les seccions anteriors.</p> + +<h3 id="Valors_locals_versus_valors_heretats">Valors locals versus valors heretats</h3> + +<p>A l'accedir a la propietat d'un objecte, JavaScritp segueix els passos següents, tal i com s'ha descrit abans en aquest mateix capítol:</p> + +<ol> + <li>Es comprova si el valor existeix de forma local. En cas afirmatiu es retorna aquest valor.</li> + <li>Si ho hi ha valor local, es cerca a la cadena de prototipus (mitjançant la propietat<code> __proto__</code>).</li> + <li>Si un objecte de la cadena de prototipus té un valor per la propietat especificada, es retorna aquest valor.</li> + <li>Si no es troba aquesta propietat, s'infereix que l'objecte no té aquesta propietat.</li> +</ol> + +<p>El resultat d'aquests passos depèn de com s'hagin definit les coses. L'exemple original disposaba de les següents definicions:</p> + +<pre class="brush: js">function Employee () { + this.name = ""; + this.dept = "general"; +} + +function WorkerBee () { + this.projects = []; +} +WorkerBee.prototype = new Employee; +</pre> + +<p>Amb aquestes definicions, suposem que creem amy com una instància de WorkerBee amb la sentència següent:</p> + +<pre class="brush: js">var amy = new WorkerBee; +</pre> + +<p>L'objecte <code>amy</code> té una propietat local, <code>projects</code>. Els valors per a les propietats <code>name</code> i <code>dept</code> no són locals per a <code>amy</code> i en conseqüència s'obtenen a partir de la propietat <code>__proto__</code> de <code>amy</code>. Així, <code>amy</code> té els següents valors a les seves propietats:</p> + +<pre class="brush: js">amy.name == ""; +amy.dept == "general"; +amy.projects == []; +</pre> + +<p>Ara suposem que canviem el valor de la propietat <code>name</code> en el prototipus associat a <code>Employee</code>:</p> + +<pre class="brush: js">Employee.prototype.name = "Unknown" +</pre> + +<p>A primer cop d'ull podeu pensar que el nou valor es propagarà afectant a totes les instàncies de <code>Employee</code>. Tanmateix això no succeeix.</p> + +<p>Quan es crea <em>qualsevol</em> instància de l'objecte <code>Employee</code>, aquesta instància un valor local per a la propietat <code>name</code> (la cadena buida). Això vol dir que quan s'assigna el prototipus <code>WorkerBee</code> al crear un nou objecte <code>Employee</code>, <code>WorkerBee.propotype</code> té un valor local per a la propietat <code>name</code>. Així, quan JavaScript cerca la propietat <code>name</code> per a l'objecte <code>amy</code> (una instància de <code>WorkerBee</code>), JavaScript trova la variable local per a aquesta propietat a <code>WorkerBee.prototype</code>. Degut a això no cerca la propietat més enllà dins la cadena de prototipus, cap a <code>Employee.prototype</code>.</p> + +<p>Si es vol canviar el valor de la propietat d'un objecte en temps d'execució i que el nou valor sigui heretat per tots els descendents d'un objecte, no es pot definir la propietat dins la funció constructora de l'objecte. En comptes d'això, s'afegeix al constructor del protipus associat. Per exemple, suposem que canviem el codi anterir pel següent:</p> + +<pre class="brush: js">function Employee () { + this.dept = "general"; +} +Employee.prototype.name = ""; + +function WorkerBee () { + this.projects = []; +} +WorkerBee.prototype = new Employee; + +var amy = new WorkerBee; + +Employee.prototype.name = "Unknown"; +</pre> + +<p>En aquest cas, la propietat <code>name</code> de <code>amy</code> esdevé "Unknown".</p> + +<p>Tal i com mostren els exemples, si es vol tenir un valor predefinit per a les propietats d'un objecte i es vol poder canviar aquest valor predefinit en temps d'execució, les propietats s'han d'assignar al constructor del prototipus i no a la funció constructora de l'objecte mateix.</p> + +<h3 id="Determining_instance_relationships">Determining instance relationships</h3> + +<p>Property lookup in JavaScript looks within an object's own properties and, if the property name is not found, it looks within the special object property <code>__proto__</code>. This continues recursively; the process is called "lookup in the prototype chain".</p> + +<p>The special property <code>__proto__</code> is set when an object is constructed; it is set to the value of the constructor's <code>prototype</code> property. So the expression <code>new Foo()</code> creates an object with <code>__proto__ == <code class="moz-txt-verticalline">Foo.prototype</code></code>. Consequently, changes to the properties of <code class="moz-txt-verticalline">Foo.prototype</code> alters the property lookup for all objects that were created by <code>new Foo()</code>.</p> + +<p>Every object has a <code>__proto__</code> object property (except <code>Object</code>); every function has a <code>prototype</code> object property. So objects can be related by 'prototype inheritance' to other objects. You can test for inheritance by comparing an object's <code>__proto__</code> to a function's <code>prototype</code> object. JavaScript provides a shortcut: the <code>instanceof</code> operator tests an object against a function and returns true if the object inherits from the function prototype. For example,</p> + +<pre class="brush: js">var f = new Foo(); +var isTrue = (f instanceof Foo);</pre> + +<p>For a more detailed example, suppose you have the same set of definitions shown in <a href="#Inheriting_properties">Inheriting properties</a>. Create an <code>Engineer</code> object as follows:</p> + +<pre class="brush: js">var chris = new Engineer("Pigman, Chris", ["jsd"], "fiji"); +</pre> + +<p>With this object, the following statements are all true:</p> + +<pre class="brush: js">chris.__proto__ == Engineer.prototype; +chris.__proto__.__proto__ == WorkerBee.prototype; +chris.__proto__.__proto__.__proto__ == Employee.prototype; +chris.__proto__.__proto__.__proto__.__proto__ == Object.prototype; +chris.__proto__.__proto__.__proto__.__proto__.__proto__ == null; +</pre> + +<p>Given this, you could write an <code>instanceOf</code> function as follows:</p> + +<pre class="brush: js">function instanceOf(object, constructor) { + object = object.__proto__; + while (object != null) { + if (object == constructor.prototype) + return true; + if (typeof object == 'xml') { + return constructor.prototype == XML.prototype; + } + object = object.__proto__; + } + return false; +} +</pre> + +<div class="note"><strong>Note:</strong> The implementation above checks the type of the object against "xml" in order to work around a quirk of how XML objects are represented in recent versions of JavaScript. See {{ bug(634150) }} if you want the nitty-gritty details.</div> + +<p class="note">Using the <code>instanceOf</code> function defined above, these expressions are true:</p> + +<pre class="brush: js">instanceOf (chris, Engineer) +instanceOf (chris, WorkerBee) +instanceOf (chris, Employee) +instanceOf (chris, Object) +</pre> + +<p>But the following expression is false:</p> + +<pre class="brush: js">instanceOf (chris, SalesPerson) +</pre> + +<h3 id="Informació_global_als_constructors">Informació global als constructors</h3> + +<p>A l'hora de crear constructors cal anar amb compte si es manega informació global dins el constructor. Per exemple, suposem que volem crear un identificador (ID) únic que serà assignat automàticament per a cada nou <code>Employee</code>. Podríem utilitzar la definició següent per a <code>Employee</code>:</p> + +<pre class="brush: js">var idCounter = 1; + +function Employee (name, dept) { + this.name = name || ""; + this.dept = dept || "general"; + this.id = idCounter++; +} +</pre> + +<p>Amb aquesta definició quan es crea un nou <code>Employee</code>, el constructor assigna la següent ID seqüencialment i llavors incrementa el valor del contador global de ID. Així, suposant el codi següent, tenim que <code>victoria.id</code> val 1 i <code>harry.id</code> val 2:</p> + +<pre class="brush: js">var victoria = new Employee("Pigbert, Victoria", "pubs") +var harry = new Employee("Tschopik, Harry", "sales") +</pre> + +<p> </p> + +<p>At first glance that seems fine. However, <code>idCounter</code> gets incremented every time an <code>Employee</code> object is created, for whatever purpose. If you create the entire <code>Employee</code> hierarchy shown in this chapter, the <code>Employee</code> constructor is called every time you set up a prototype. Suppose you have the following code:</p> + +<pre class="brush: js">var idCounter = 1; + +function Employee (name, dept) { + this.name = name || ""; + this.dept = dept || "general"; + this.id = idCounter++; +} + +function Manager (name, dept, reports) {...} +Manager.prototype = new Employee; + +function WorkerBee (name, dept, projs) {...} +WorkerBee.prototype = new Employee; + +function Engineer (name, projs, mach) {...} +Engineer.prototype = new WorkerBee; + +function SalesPerson (name, projs, quota) {...} +SalesPerson.prototype = new WorkerBee; + +var mac = new Engineer("Wood, Mac"); +</pre> + +<p>Ara suposem que les definicions omeses aquí tenen la propietat <code>base</code> i criden el constructor que tenen damunt de la cadena de prototipus. En aquest cas, quan es crea l'objecte <code>mac</code>, <code>mac.id</code> rep el valor de 5.</p> + +<p>Depenent de l'aplicació, el fet que el contador s'incrementi aquests cops adicionals pot tenir o no conseqüències. Si el valor exacte d'aquest contador és important una possible solució pot ser el constructor següent:</p> + +<pre class="brush: js">function Employee (name, dept) { + this.name = name || ""; + this.dept = dept || "general"; + if (name) + this.id = idCounter++; +} +</pre> + +<p>Al crear una instància de <code>Employee</code> per a ser emprada com a prototipus, no es passen paràmetres al constructor. Aquesta definició del constructor no assigna un valor a la id i no actualitza el contador quan el constructor no rep paràmetres. Així, per a que un <code>Employee</code> rebi una id, requerim que rebi un nom. Executar l'exemple anterior amb el nou constructor esdevindrà en que <code>mac.id</code> rebi el valor 1.</p> + +<h3 id="No_hi_ha_herència_múltiple">No hi ha herència múltiple</h3> + +<p>Alguns llenguatges orientats a objectes permeten l'herència múltiple, és a dir, que un objecte pugui heretar propietats i valors de pares que no tenen res a veure entre ells. JavaScript no suporta l'herència múltiple.</p> + +<p>L'herència de valors de propietats succeeix en temps d'execució i és proporcionada per fet que JavaScript cerqui un valor dins la cadena de prototipus de l'objecte. Com que un objecte disposa d'un sol prototipus associat a ell JavaScript no pot heretar dinàmicament de més d'una cadena de prototipus.</p> + +<p>A JavaScript, però, es pot fer que una funció constructora cridi a més d'una funció constructora dins d'ella. Això crea la ilusió d'herència múltiple. Per exemple, suposem les sentències següents:</p> + +<pre class="brush: js">function Hobbyist (hobby) { + this.hobby = hobby || "scuba"; +} + +function Engineer (name, projs, mach, hobby) { + this.base1 = WorkerBee; + this.base1(name, "engineering", projs); + this.base2 = Hobbyist; + this.base2(hobby); + this.machine = mach || ""; +} +Engineer.prototype = new WorkerBee; + +var dennis = new Engineer("Doe, Dennis", ["collabra"], "hugo") +</pre> + +<p>Ara suposem que la definició de WorkerBee és l'emprada abans en aquest capítol. En aquest case l'objecte <code>dennis</code> rep les propietats següents:</p> + +<pre class="brush: js">dennis.name == "Doe, Dennis" +dennis.dept == "engineering" +dennis.projects == ["collabra"] +dennis.machine == "hugo" +dennis.hobby == "scuba" +</pre> + +<p>Així tenim que dennis rep la propietat <code>hobby</code> del constructor <code>Hobbyist</code>. Tot i així, suposem llavors que afegim una propietat al constructor del prototipus <code>Hobbyist</code>:</p> + +<pre class="brush: js">Hobbyist.prototype.equipment = ["mask", "fins", "regulator", "bcd"] +</pre> + +<p>L'objecte <code>dennis</code> no hereta aquesta nova propietat.</p> + +<div>{{PreviousNext("Web/JavaScript/Guide/Working_with_Objects", "Web/JavaScript/Guide/Iterators_and_Generators")}}</div> diff --git a/files/ca/web/javascript/guide/expressions_i_operadors/index.html b/files/ca/web/javascript/guide/expressions_i_operadors/index.html new file mode 100644 index 0000000000..9985daa497 --- /dev/null +++ b/files/ca/web/javascript/guide/expressions_i_operadors/index.html @@ -0,0 +1,846 @@ +--- +title: Expressions i operadors +slug: Web/JavaScript/Guide/Expressions_i_Operadors +translation_of: Web/JavaScript/Guide/Expressions_and_Operators +--- +<div>{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Functions", "Web/JavaScript/Guide/Numbers_and_dates")}}</div> + +<p>Aquest capítol explica les expressions i els operadors de JavaScript, incloent l'assignació, comparació, airtmètic, operadors de bits, lògics, cadenes, i operadors especials.</p> + +<h2 id="Expressions">Expressions</h2> + +<p>Una <em>expressió</em> és qualsevol unitat de codi vàlida que esdevé un valor.</p> + +<p>Conceptualment hi ha dos tipus d'expressions: les que assignen un valor a una variable i les que simplement tenen un valor.</p> + +<p>L'expressió <code>x = 7</code> és un exemple del primer tipus. Aquesta expressió fa servir l'operador<em> </em> = per a assignar el valor set a la variable <code>x</code>. L'expressió per si mateixa s'avalua com a 7.</p> + +<p>El codi 3 + 4 és un exemple d'expressió del segon tipus. Aquesta expressió utilitza l'operador + per a sumar tres i quatre sense assignar el resultat, set, a una variable.<br> + <br> + JavaScript té les següents categories d'expressions:</p> + +<ul> + <li>Aritmètiques: s'avaluen a un nombre, per exemple 3.14159. (Generalment utilitzen {{ web.link("#Arithmetic_operators", "operadors aritmètics") }}.)</li> + <li>String: s'avaluen a una cadena de caràcters, per exemple, "Pau" o "234". (Generalment utilitzen {{ web.link("#String_operators", "operadors d'strings") }}.)</li> + <li>Lògiques: s'avaluen a cert o fals. (sovint inclouen {{ web.link("#Logical_operators", "operadors lògics") }}.)</li> + <li>Objecte: s'avaluen a un objecte. (Vegeu els {{ web.link("#Special_operators", "operadors especials") }} més informació.)</li> +</ul> + +<h2 id="Operadors">Operadors</h2> + +<p>JavaScript disposa dels següents tipus d'operadors. Aquesta secció descriu els operadors i conté informació sobre la seva precedència.</p> + +<ul> + <li>{{ web.link("#Assignment_operators", "Operadors d'assignació") }}</li> + <li>{{ web.link("#Comparison_operators", "Operadors de comparació") }}</li> + <li>{{ web.link("#Arithmetic_operators", "Operadors aritmètics") }}</li> + <li>{{ web.link("#Bitwise_operators", "Operadors de bits") }}</li> + <li>{{ web.link("#Logical_operators", "Operadors lògics") }}</li> + <li>{{ web.link("#String_operators", "Operadors de strings") }}</li> + <li>{{ web.link("#Special_operators", "Operadors especials") }}</li> +</ul> + +<p>JavaScript té operadors <em>binaris</em> i <em>unaris</em>, també disposa d'un operador especial ternari, l'operador condicional. Un operador binari requereix dos operands, un abans l'operador i l'altre després de l'operador:</p> + +<pre><em>operand1</em> <em>operador</em> <em>operand2</em> +</pre> + +<p>Per exemple, <code>3+4</code> o <code>x*y</code>.</p> + +<p>Un operador unari A requereix d'un sol operand, ja sigui abans o després de l'operador:</p> + +<pre><em>operador</em> <em>operand</em> +</pre> + +<p>o be</p> + +<pre><em>operand</em> <em>operador</em> +</pre> + +<p>Per exemple, <code>x++</code> o <code>++x</code>.</p> + +<h3 id="Operadors_d'assignació">Operadors d'assignació</h3> + +<p>Un operador d'assignació assigna un valor a l'operand de la seva esquerra basat en l'operand de la seva dreta. L'operador d'assignació simple és l'igual (<code>=</code>), que assigna el valor de l'operand de la dreta a l'operand de l'esquerra. És a dir, <code>x = y</code> assigna el valor de <code>y</code> a <code>x</code>.</p> + +<p>També hi ha operadors d'assignació compostos, que són abreviacions per als operadors llistats a la taula següent:</p> + +<table class="standard-table"> + <caption>Taula 3.1 Operadors d'assignació</caption> + <thead> + <tr> + <th scope="col">Operadors d'assignació compostos</th> + <th scope="col">Significat</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>x += y</code></td> + <td><code>x = x + y</code></td> + </tr> + <tr> + <td><code>x -= y</code></td> + <td><code>x = x - y</code></td> + </tr> + <tr> + <td><code>x *= y</code></td> + <td><code>x = x * y</code></td> + </tr> + <tr> + <td><code>x /= y</code></td> + <td><code>x = x / y</code></td> + </tr> + <tr> + <td><code>x %= y</code></td> + <td><code>x = x % y</code></td> + </tr> + <tr> + <td><code>x <<= y</code></td> + <td><code>x = x << y</code></td> + </tr> + <tr> + <td><code>x >>= y</code></td> + <td><code>x = x >> y</code></td> + </tr> + <tr> + <td><code>x >>>= y</code></td> + <td><code>x = x >>> y</code></td> + </tr> + <tr> + <td><code>x &= y</code></td> + <td><code>x = x & y</code></td> + </tr> + <tr> + <td><code>x ^= y</code></td> + <td><code>x = x ^ y</code></td> + </tr> + <tr> + <td><code>x |= y</code></td> + <td><code>x = x | y</code></td> + </tr> + </tbody> +</table> + +<h3 id="Operadors_de_comparació">Operadors de comparació</h3> + +<p><span class="comment">This seems to me kind of poorly explained, mostly the difference betwen "==" and "==="...</span>Els operadors de comparació comparen els operands i retornen un valor lògic basat en si la comparació és certa o no. Els operands poden ser numèrics, string, lògics, o bé valors d'objectes. Els Strings es comparen basant-se en l'ordre lexicogràfic standard, utilitzant valors Unicode. Quan els dos operands no són del mateix tipus, en la majoria dels casos JavaScript intenta convertir-los a un tipus apropiat per a realitzar la comparació.<br> + Aquest comportament generalment resulta en una comparació amb els operands transformats a nombres. La única excepció quant a la conversió de tipus és quan s'utilitzen els operands <code>===</code> i <code>!==</code>, els quals realitzen comparacións estrictes de igualtat i no-igualtat, respectivament. Aquests operadors no intenten convertir els operands a tipus compatibles abans de aplicar l'igualtat. La taula següent descriu els operadors de comparació en base a aquest exemple:</p> + +<pre class="brush: js">var var1 = 3, var2 = 4; +</pre> + +<table class="standard-table"> + <caption>Taula 3.2 Operadors de comparació</caption> + <thead> + <tr> + <th scope="col">Operador</th> + <th scope="col">Descripció</th> + <th scope="col">Exemples que s'avaluen a cert</th> + </tr> + </thead> + <tbody> + <tr> + <td>Igualtat (<code>==</code>)</td> + <td>Retorna true si els operands són iguals.</td> + <td><code>3 == var1</code> + <p><code>"3" == var1</code></p> + <code>3 == '3'</code></td> + </tr> + <tr> + <td>No-igualtat (<code>!=</code>)</td> + <td>Retorna true si els operands són diferents.</td> + <td><code>var1 != 4<br> + var2 != "3"</code></td> + </tr> + <tr> + <td>Igualtat estricta (<code>===</code>)</td> + <td>Retorna true si els operands són iguals i del mateix tipus. Vegeu també <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is"><code>Object.is</code></a> i <a href="/en-US/docs/Web/JavaScript/Guide/Sameness" title="/en-US/docs/Web/JavaScript/Guide/Sameness">igualtat a JS</a>.</td> + <td><code>3 === var1</code></td> + </tr> + <tr> + <td>No-igualtat estricta (<code>!==</code>)</td> + <td>Retorna true si els operands no són iguals i/o del mateix tipus.</td> + <td><code>var1 !== "3"<br> + 3 !== '3'</code></td> + </tr> + <tr> + <td>Major que (<code>></code>)</td> + <td>Retorna true si l'operand de l'esquerra és més gran que l'operand e la dreta.</td> + <td><code>var2 > var1<br> + "12" > 2</code></td> + </tr> + <tr> + <td>Major o igual que (<code>>=</code>)</td> + <td>Retorna true si l'operand de l'esquera és major o igual que l'operand de la dreta.</td> + <td><code>var2 >= var1<br> + var1 >= 3</code></td> + </tr> + <tr> + <td>Menor que (<code><</code>)</td> + <td>Retorna true si l'operand de l'esquerra és més petit que l'operand de la dreta.</td> + <td><code>var1 < var2<br> + "2" < "12"</code></td> + </tr> + <tr> + <td>Menor o igual que (<code><=</code>)</td> + <td>Retorna true si l'operand de l'esquerra és menor o igual que l'operand de la dreta.</td> + <td><code>var1 <= var2<br> + var2 <= 5</code></td> + </tr> + </tbody> +</table> + +<h3 id="Operadors_aritmètics">Operadors aritmètics</h3> + +<p>Els operadors aritmètics prenen valors numèrics (ja siguin literals o variables) com a operands i retornen un sol valors numèric. Els operadors aritmètics standard són la suma (+), la resta (-), la multiplicació (*) i la divisió (/). Aquests operadors funcionen de la mateixa manera que a la majoria d'altres llenguatges de programació quan s'utilitzen amb nombres de coma flotant (particularment, cal destacar que la divisió entre zero produeix <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity"><code>Infinity</code></a>). Per exemple:</p> + +<pre class="brush: js">console.log(1 / 2); /* imprimeix 0.5 */ +console.log(1 / 2 == 1.0 / 2.0); /* això també és cert */ +</pre> + +<p>Adicionalment, JavaScript proporciona els operadors aritmètics llistats a la taula següent:</p> + +<table class="fullwidth-table"> + <caption>Taula 3.3 Operadors aritmètics</caption> + <thead> + <tr> + <th scope="col">Operador</th> + <th scope="col">Descripció</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>%</code><br> + (Mòdul)</td> + <td>Operador binari. Retorna el residu de dividir els dos operands.</td> + <td>12 % 5 retorna 2.</td> + </tr> + <tr> + <td><code>++</code><br> + (Increment)</td> + <td> + <p>Operador unari. Afegeix un al seu operand. Si s'utilitza com a prefix (<code>++x</code>), retorna el valor del seu operand després d'afexir-li un; si s'utilitza com a sufix (<code>x++</code>), retorna el valor del seu operand abans d'afegir-li un.</p> + </td> + <td>Si <code>x</code> és 3, llavors <code>++x</code> assigna 4 a <code>x</code> i retorna 4, mentre que <code>x++</code> retorna 3 i, només llavors, assigna 4 a <code>x</code>.</td> + </tr> + <tr> + <td><code>--</code><br> + (Decrement)</td> + <td>Operador uniari. Resta un al seu operand. Retorna el valor anàleg a l'operador increment.</td> + <td>Si <code>x</code> és 3, llavors <code>--x</code> assigna 2 a <code>x</code> i retorna 2, mentre que <code>x--</code> retorna 3 i, només llavors, assigna 2 a<code> x</code>.</td> + </tr> + <tr> + <td><code>-</code><br> + (Negació unària)</td> + <td>Operador unari. Retorna el resultat de negar el seu operand.</td> + <td>Si <code>x</code> val 3, llavors <code>-x</code> retorna -3.</td> + </tr> + </tbody> +</table> + +<h3 id="Operadors_de_bits">Operadors de bits</h3> + +<p>Els operadors de bits tracten els seus operands com a conunts de 32 bits (zeros i uns), en comptes de com a nombres decimals, hexadecimals o octals. Per exemple, el nombre decimal 9 és representat de forma binària per 1001. Els operadors de bits realitzen operacions sobre aquestes representacions binàries, però sempre retornen valors numèrics de JavaScript.</p> + +<p>La taula següent resumeix els operadors de bits disponibles a JavaScript.</p> + +<table class="standard-table"> + <caption>Taula 3.4 Operadors de bits</caption> + <thead> + <tr> + <th scope="col">Operador</th> + <th scope="col">Ús</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td>AND binari</td> + <td><code>a & b</code></td> + <td>Retorna 1 a cada posició de bit on la posició corresponent a ambdós operadors conten uns.</td> + </tr> + <tr> + <td>OR binari</td> + <td><code>a | b</code></td> + <td> + <p>Retorna 1 a cada posició de bit on al menys un dels operands té un 1 a la posició corresponent.</p> + </td> + </tr> + <tr> + <td>XOR binari</td> + <td><code>a ^ b</code></td> + <td> + <p>Retorna un 1 a cada posició de bit on només un dels operands té un 1 a la posicio corresponent, però no ambdós.</p> + </td> + </tr> + <tr> + <td>NOT binari</td> + <td><code>~ a</code></td> + <td>Inverteix els bits del seu operand.</td> + </tr> + <tr> + <td>Desplaçament a l'esquerra</td> + <td><code>a << b</code></td> + <td>Desplaça la representació binària de <code>a</code> <code>b</code> bits a l'esquerra, afegint zeros a la dreta.</td> + </tr> + <tr> + <td>Desplaçament a la dreta amb propagació de signe</td> + <td><code>a >> b</code></td> + <td>Desplaça la representació binària de <code>a</code> <code>b</code> bits a la dreta, descartant els bits que no hi caben.</td> + </tr> + <tr> + <td>Desplaçament a la dreta amb inserció de zeros</td> + <td><code>a >>> b</code></td> + <td>Desplaça la representació binària de <code>a</code> <code>b</code> bits a la dreta, descartant els bits que no hi caben i inserint zeros a l'esquerra.</td> + </tr> + </tbody> +</table> + +<h4 id="Bitwise_Logical_Operators" name="Bitwise_Logical_Operators">Operadors lògics de bits</h4> + +<p>Conceptualment, els operadors lògics de bits funcionen de la següent manera:</p> + +<ul> + <li>Es converteixen els operands a nombres sencers de 32 bits expressats per una sèrie de bits (zeros i uns).</li> + <li>S'emparella cada bit del primer operand amb el bit corresponent del segond operand: el primer bit amb el primer bit, el segon amb el segon, etcètera.</li> + <li>S'aplica l'operador per a cada parella de bits, i el resultat es construeix de forma binària.</li> +</ul> + +<p>Per exemple, la representació binària de 9 és 1001, mentre que la representació binària de quinze és 1111. Així, quan els operadors de bits s'apliquen a aquests valors el resultat és el següent:</p> + +<table class="standard-table"> + <caption>Taula 3.5 Exemples d'operadors de bits</caption> + <thead> + <tr> + <th scope="col">Expressió</th> + <th scope="col">Resultat</th> + <th scope="col">Descripció binària</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>15 & 9</code></td> + <td><code>9</code></td> + <td><code>1111 & 1001 = 1001</code></td> + </tr> + <tr> + <td><code>15 | 9</code></td> + <td><code>15</code></td> + <td><code>1111 | 1001 = 1111</code></td> + </tr> + <tr> + <td><code>15 ^ 9</code></td> + <td><code>6</code></td> + <td><code>1111 ^ 1001 = 0110</code></td> + </tr> + <tr> + <td><code>~15</code></td> + <td><code>-16</code></td> + <td><code>~</code><code>00000000...</code><code>00001111 = </code><code>1111</code><code>1111</code><code>...</code><code>11110000</code></td> + </tr> + <tr> + <td><code>~9</code></td> + <td><code>-10</code></td> + <td><code>~</code><code>00000000</code><code>...</code><code>0000</code><code>1001 = </code><code>1111</code><code>1111</code><code>...</code><code>1111</code><code>0110</code></td> + </tr> + </tbody> +</table> + +<p>Fixeu-vos que a l'utilitzar l'operador de bits <code>NOT</code> tots 32 bits són invertit, i que els valors amb el bit més significatiu (el de l'esquerra) amb valor 1 representen nombres negatius (representació en complement a dos).</p> + +<h4 id="Bitwise_Shift_Operators" name="Bitwise_Shift_Operators">Operadors de desplaçament de bits</h4> + +<p>Els operadors de desplaçament de bits requereixen de dos operands: el primer és un conjunt de bits a desplaçar. El segon operand és el nombre de posicions que es desplaçaran els bits del primer operand. La direcció des desplaçament és controlada per l'operador utilitzat.</p> + +<p>Els operadors de desplaçament de bits converteixen els seus operands a nombres de 32 bits i el valor retornat és del mateix tipus que l'operand de l'esquerra. Trobareu un llistat amb els operadors de desplaçament de bits a la taula següent.</p> + +<table class="fullwidth-table"> + <caption>Taula 3.6 Operadors de desplaçament de bits</caption> + <thead> + <tr> + <th scope="col">Operador</th> + <th scope="col">Descripció</th> + <th scope="col">Exemple</th> + </tr> + </thead> + <tbody> + <tr> + <td><code><<</code><br> + (Desplaçament a l'esquerra)</td> + <td> + <p>Aquest operador desplaça a l'esquerra el primer operand el nombre de bits especificat. Els bits que no hi caben es descarten. Les noves posicions de la dreta s'omplen amb zeros.</p> + </td> + <td><code>9<<2</code> retorna 36, perquè 1001 desplaçat 2 bits a l'esquerra esdevé 100100, que és la representació binaria de 36.</td> + </tr> + <tr> + <td><code>>></code><br> + (Desplaçament a la dreta amb propagació de signe)</td> + <td> + <p>Aquest operador desplaça el primer operand el nombre de bits especificats cap a la dreta. Els nous bits de l'esquerra són copies del bit originalment més significatiu.</p> + </td> + <td><code>9>>2</code> retorna 2, perquè 1001 desplaçat 2 bits a la dreta esdevé 10, que és la representació binària de 2. De la mateixa manera, <code>-9>>2</code> retorna -3, perquè el signe l'operand preseva el signe.</td> + </tr> + <tr> + <td><code>>>></code><br> + (Desplaçament a la dreta omplint amb zeros)</td> + <td> + <p>Aquest operador desplaça l'operand el nombre de bits especificat a la dreta. Els bits sobrant són descartats. Els nous bits de l'esquerra s'omplen amb zeros.</p> + </td> + <td><code>19>>>2</code> retorna 4, perquè 10011 desplaçat 2 bits a la dreta esdevé 100, que és la representació binària de 4. Per a nombres no negatius aquest operador retorna el mateix resultat que l'operador de desplaçament a la dreta amb propagació de signe.</td> + </tr> + </tbody> +</table> + +<h3 id="Operadors_lògics">Operadors lògics</h3> + +<p>Els operadors lògics utilitzen típicament amb valors booleans (lògics); quan ho són, retornen un valor de tipus Boolean. Els operadors && i || , però, en realitat retornen el valor d'un dels operands, de tal manera que si aquests operadors s'utilitzen amb valors no booleans poden retornar un valor no booleà. A la següent taula es descriuen els operadors lògics.</p> + +<table class="fullwidth-table"> + <caption>Taula 3.6 Operadors lògics</caption> + <thead> + <tr> + <th scope="col">Operador</th> + <th scope="col">Ús</th> + <th scope="col">Descripció</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>&&</code></td> + <td><code>expr1 && expr2</code></td> + <td>(AND lògic) Retorna <code>expr1</code> si pot ser convertida a fals; en qualsevol altre cas retorna <code>expr2</code>. Així, quan es proporcionen operands booleans, <code>&&</code> retorna true si ambdós operands són true: en qualsevol altre cas retorna fals.</td> + </tr> + <tr> + <td><code>||</code></td> + <td><code>expr1 || expr2</code></td> + <td>(OR lògic) Retorna <code>expr1</code> si pot ser convertida a true; en qualsevol altre cas retorna <code>expr2</code>. És a dir, quan s'utilitza amb operands booleans, <code>||</code> retorna true si qualsevol dels dos operands és true; si ambdós operands són false, retorna false.</td> + </tr> + <tr> + <td><code>!</code></td> + <td><code>!expr</code></td> + <td>(NOT lògic) Retorna false si el seu únic operand es pot convertir a true; en qualsevol altre cas retorna true.</td> + </tr> + </tbody> +</table> + +<p>Alguns exemples d'expressions que es poden convertir a false són aquelles que s'avaluen a <code>null</code>, <code>0</code>, <code>NaN</code>, l'string buit (<code>""</code>), o <code>undefined</code>.</p> + +<p>El codi següent mostra exemples de l'operador && (AND lògic).</p> + +<pre class="brush: js">var a1 = true && true; // t && t retorna true +var a2 = true && false; // t && f retorna false +var a3 = false && true; // f && t retorna false +var a4 = false && (3 == 4); // f && f retorna false +var a5 = "Cat" && "Dog"; // t && t retorna Dog +var a6 = false && "Cat"; // f && t retorna false +var a7 = "Cat" && false; // t && f retorna false +</pre> + +<p>El codi següent mostra exemples de l'operador || (OR lògic).</p> + +<pre class="brush: js">var o1 = true || true; // t || t retorna true +var o2 = false || true; // f || t retorna true +var o3 = true || false; // t || f retorna true +var o4 = false || (3 == 4); // f || f retorna false +var o5 = "Cat" || "Dog"; // t || t retorna Cat +var o6 = false || "Cat"; // f || t retorna Cat +var o7 = "Cat" || false; // t || f retorna Cat +</pre> + +<p>El codi següent mostra exemples de l'operador ! (NOT lògic).</p> + +<pre class="brush: js">var n1 = !true; // !t retorna false +var n2 = !false; // !f retorna true +var n3 = !"Cat"; // !t retorna false +</pre> + +<h4 id="Short-Circuit_Evaluation" name="Short-Circuit_Evaluation">Avaluació en curtcircuit</h4> + +<p>Mentre les expressions lògiques es van avaluant una a una d'esquerra a dreta, a l'avaluar cadascuna també s'avalua si curtcirquiatar l'expressió mitjançant les regles següents:</p> + +<ul> + <li><code>false</code> && <em>quelcom</em> es curtcircuita avaluant-se a false.</li> + <li><code>true</code> || quelcom es curtcircuita avaluant-se a true.</li> +</ul> + +<p>Les regles de la lògica garanteixen que aquestes avaluacions sempre són correctes. Cal remarca que la part <em>quelcom</em> no arriva a avaluar-se mai, així que cap efecte secundari provocat per la seva avaluació tindrà efecte.</p> + +<h3 id="Operadors_de_Strings">Operadors de Strings</h3> + +<p>A més dels operadors de comparació, que poden utilitzar-se amb valors de tipus string, l'operador de concatenació (+) concatena dos valors string, retornant un altre string format per la unió dels dos strings operands. Per exemple, <code>"la meva " + "string"</code> retorna la string <code>"la meva string"</code>.</p> + +<p>L'abreviació de operador d'assignació += també pot ser emprat per a concatenar strings. Per exemple, si la variable <code>mystring</code> te el valor "alfa", llavors l'expressió <code>mystring += "bet"</code> s'avalua a "alfabet" i assigna aquest valor a <code>mystring</code>.</p> + +<h3 id="Operadors_especial">Operadors especial</h3> + +<p>JavaScript ofereix els següents operadors especials:</p> + +<ul> + <li>{{ web.link("#Conditional_operator", "Operador condicional") }}</li> + <li>{{ web.link("#Comma_operator", "Operador coma") }}</li> + <li><code>{{ web.link("#delete", "delete") }}</code></li> + <li><code>{{ web.link("#in", "in") }}</code></li> + <li><code>{{ web.link("#instanceof", "instanceof") }}</code></li> + <li><code>{{ web.link("#new", "new") }}</code></li> + <li><code>{{ web.link("#this", "this") }}</code></li> + <li><code>{{ web.link("#typeof", "typeof") }}</code></li> + <li><code>{{ web.link("#void", "void") }}</code></li> +</ul> + +<h4 id="conditional_operator" name="conditional_operator">Operador condicional</h4> + +<p>L'operador condicional és l'únic operador de JavaScript que accepta tres operands. L'operador retorna un de dos valors basant-se en una condició. La sintaxi és la següent:</p> + +<pre><em>condició</em> ? <em>val1</em> : <em>val2</em> +</pre> + +<p>Si <code>condició</code> és certa, l'operador retorna el valor <code>val1</code>. En qualsevol altre cas retorna el valor <code>val2</code>. Es pot emprar l'operador condicional a qualsevol lloc on es pugui utilitzar un operador standard.</p> + +<p>Per exemple,</p> + +<pre class="brush: js">var estat = (edat >= 18) ? "adult" : "menor"; +</pre> + +<p>Aquesta sentència assigna el valor "adult" a la variable <code>estat</code> si edat és 18 o més. En qualsevol altre cas assigna el valor "menor" a <code>estat</code>.</p> + +<h4 id="comma_operator" name="comma_operator">Operador coma</h4> + +<p>L'operador coma (<code>,</code>) simplement avalua els seus dos operands i retorna el valor del segon operand. Aquest operdor s'utilitza principalment dins el bucle <code>for</code> per a permetre que múltiples variables s'actualitzin per a cada volta del bucle.</p> + +<p>Per exemple, si <code>a</code> és un array de dues dimensions amb 10 elements per dimensió, el codi següent utilitza l'operador coma per a incrementar dues variables a l'hora. El codi mostra els valors dels elements de la diagonal de l'array:</p> + +<pre class="brush: js">for (var i = 0, j = 9; i <= j; i++, j--) + document.writeln("a[" + i + "][" + j + "]= " + a[i][j]); +</pre> + +<h4 id="delete" name="delete"><code>delete</code></h4> + +<p>L'operador <code>delete</code> esborra un objecte, una propietat d'un objecte o l'element a la posició especificada d'un array. La sintaxi és:</p> + +<pre class="brush: js">delete nomObjecte; +delete nomObjecte.property; +delete nomObjecte[index]; +delete propietat; // Només és legal dins una sentència with +</pre> + +<p>on <code>nomObjecte</code> és el nom d'un objecte, <code>propietat</code> és una propietat existent i <code>index</code> és un nombre sencer que representa la posició d'un element dins un array.</p> + +<p>La quarta forma només és legal dins una sentència <code>with</code>, per a esborrar la propietat d'un objecte.</p> + +<p>Es pot emprar l'operador <code>delete</code> per a esborrar variables declarades implícitament però no serveix per a variables declarades amb la sentència <code>var</code>.</p> + +<p>Si l'operador delete aconsegueix el seu objectiu, assigna el valor <code>undefined</code> a la propietat o element esmentat. L'operador <code>delete</code> retorna true si l'operació és posible; retorna false si l'operació no és posible.</p> + +<pre class="brush: js">x = 42; +var y = 43; +myobj = new Number(); +myobj.h = 4; // crea la propietat h +delete x; // retorna true (pot esborrar si la variable ha estat declarada implicitament) +delete y; // retorna false (no pot esborrar si la variable ha estat declarada amb var) +delete Math.PI; // retorna false (no pot esborrar propietats predefinides) +delete myobj.h; // retorna true (pot esborrar propietats definides per l'usuari) +delete myobj; // retorna true (pot esborrar si l'objecte ha estat declarat implícitament) +</pre> + +<h5 id="Esborrar_elements_d'un_array">Esborrar elements d'un array</h5> + +<p>A l'esborrar l'element d'un array, la longitud de l'array no es veu afectada. Per exemple, si s'esborrar <code>a[3]</code>, <code>a[4]</code> roman a <code>a[4]</code> mentre que <code>a[3]</code> passa a valer <code>undefined</code>.</p> + +<p>Quan l'operador delete esborra un element d'un array, aquest element ja no és a l'array. Al següent exemple, s'esborra <code>trees[3]</code> amb delete. Tot i així, <code>trees[3]</code> encara és accessible i retorna <code>undefined</code>.</p> + +<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); +delete trees[3]; +if (3 in trees) { + // aquest codi no s'arriba a executar mai +} +</pre> + +<p>Si es vol que un element d'un array existeixi però tingui un valor indefinit, es pot emprar la paraula clau undefined en comptes de l'operador <code>delete</code>. Al següent exemple, <code>trees[3]</code> rep el valor <code>undefined</code>, però l'elelement de l'array encara existeix:</p> + +<pre class="brush: js">var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); +trees[3] = undefined; +if (3 in trees) { + // aquest codi s'executa +} +</pre> + +<h4 id="in" name="in"><code>in</code></h4> + +<p>L'operador <code>in</code> retorna true si la propietat especificada existeix en l'objecte especificat. La sintaxi és:</p> + +<pre class="brush: js">nomPropOnombre in nomObjecte +</pre> + +<p>on <code>nomPropOnombre</code> és una string que representa el nom d'una propietat o bé una expressió numèrica que representa la posició d'un element dins un array, i <code>nomObjecte</code> és el nom d'un objecte.</p> + +<p>Els següents exemples mostren alguns usos de l'operador <code>in</code>.</p> + +<pre class="brush: js">// Arrays +var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); +0 in trees; // retorna true +3 in trees; // retorna true +6 in trees; // retorna false +"bay" in trees; // retorna false (s'ha de proporcionar l'índex, + // no el valor a aquell índex) +"length" in trees; // retorna true (length és una propietat de Array) + +// Objects predefinits +"PI" in Math; // retorna true +var myString = new String("coral"); +"length" in myString; // retorna true + +// Objectes creats per l'usuari +var mycar = {make: "Honda", model: "Accord", year: 1998}; +"make" in mycar; // retorna true +"model" in mycar; // retorna true +</pre> + +<h4 id="instanceof" name="instanceof"><code>instanceof</code></h4> + +<p>L'operador <code>instanceof</code> retorna cert si l'objecte especificat és del tipus especificat. La sintaxi és:</p> + +<pre class="brush: js">nomObjecte instanceof tipusObjecte +</pre> + +<p>on <code>nomObjecte</code> és el nom de l'objecte a comprarar amb <code>tipusObjecte</code>, i tipusObjecte és un tipus d'objecte, com ara <code>Date</code> o <code>Array</code>.</p> + +<p>Utilitzeu <code>instanceof</code> quan necessiteu confirmar el tipus d'un objecte en temps d'execució. Per exemple, a l'hora de capturar execepcions és posible executar diferent codi segons el tipus d'excepció llençada.</p> + +<p>Per exemple, el següent codi utilitza instanceof per a determinar si <code>dia</code> és un objecte de tipus <code>Date</code>. Com que dia és un objecte de tipus <code>Date</code> les sentències dins la sentència <code>if</code> s'executaran.</p> + +<pre class="brush: js">var dia = new Date(1995, 12, 17); +if (dia instanceof Date) { + // bloc de codi que s'executarà +} +</pre> + +<h4 id="new" name="new"><code>new</code></h4> + +<p>L'operador <code>new</code> s'utilitza per a crear una instància d'un tipus d'objete definit per l'usuari o bé un dels tipus d'objectes predefinits <code>Array</code>, <code>Boolean</code>, <code>Date</code>, <code>Function</code>, <code>Image</code>, <code>Number</code>, <code>Object</code>, <code>Option</code>, <code>RegExp</code>, o <code>String</code>. Al servidor també es pot emprar amb <code>DbPool</code>, <code>Lock</code>, <code>File</code>, i <code>SendMail</code>. La sintaxi de <code>new</code> és la següent:</p> + +<pre class="brush: js">var nomObjecte = new tipusObjecte([param1, param2, ..., paramN]); +</pre> + +<p>També és posible crear objectes mitjançant inicialitzadors d'objectes, tal i com s'explica a {{ web.link("Working_with_objects#Using_object_initializers", "utilitzar inicialitzadors d'objectes") }}.</p> + +<p>Vegeu la pàgina de l'<a href="/en-US/docs/Web/JavaScript/Reference/Operators/new">operador <code>new</code></a> a la Referència del nucli de JavaScript per a més informació.</p> + +<h4 id="this" name="this"><code>this</code></h4> + +<p>La paraula clau <code>this</code> s'utilitza per a referir-se a l'objecte actual. En general this fa referència a l'objecte que ha realitzat la crida dins un mètode. La sintaxi de <code>this</code> és la següent:</p> + +<pre class="brush: js">this["nomPropietat"] +</pre> + +<pre class="brush: js">this.nomPropietat +</pre> + +<p><strong>Exemple 1.</strong><br> + Suposem que una funció anomenada <code>validate</code> valida la propietat <code>value</code> d'un objecte, donat l'objecte i el rang de valors:</p> + +<pre class="brush: js">function validate(obj, lowval, hival){ + if ((obj.value < lowval) || (obj.value > hival)) + alert("Valor no vàlid!"); +} +</pre> + +<p>Podríem cridar <code>validate</code> a cada manegador d'events <code>onChange</code> dels elements d'un formulari, utilitzant <code>this</code> per a passar l'element del formulari, tal i com es mostra al següent exemple:</p> + +<pre class="brush: html"><B>Introduïu un nombre entre 18 i 99:</B> +<INPUT TYPE="text" NAME="edat" SIZE=3 + onChange="validate(this, 18, 99);"> +</pre> + +<p><strong>Exemple 2.</strong><br> + Al combinar-lo amb la propietat del <code>form</code>, <code>this</code> fa referència al pare de l'objecte del formulari. Al següent exemple el form <code>myForm</code> conté un bojecte <code>Text</code> i un botó. Quan l'usuari fa clic al botó, el valor de l'objecte <code>Text</code> és assignat al nom del formulari. El manegador de l'event <code>onClick</code> del botó utilitza <code>this.form</code> per a fererir-se al fomulari pare, <code>myForm</code>.</p> + +<pre class="brush: html"><FORM NAME="myForm"> +Nom del formulari:<INPUT TYPE="text" NAME="text1" VALUE="Beluga"/> +<INPUT NAME="button1" TYPE="button" VALUE="Mostrar el nom del formulari" + onClick="this.form.text1.value = this.form.name;"/> +</FORM> +</pre> + +<h4 id="typeof" name="typeof"><code>typeof</code></h4> + +<p>L'operador <code>typeof</code> es pot utilitzar de qualsevol de les formes següents:</p> + +<ol> + <li> + <pre class="brush: js">typeof operand +</pre> + </li> + <li> + <pre class="brush: js">typeof (operand) +</pre> + </li> +</ol> + +<p>L'operador <code>typeof</code> retorna una string indicant el tipus de l'operand, que no és avaluat. operand és una string, variable, paraula clau u objecte del qual es retornarà el tipus. Els parèntesi són opcionals.</p> + +<p>Suposem que es defineixen les següents variables:</p> + +<pre class="brush: js">var myFun = new Function("5 + 2"); +var forma = "rodona"; +var tamany = 1; +var avui = new Date(); +</pre> + +<p>L'operador <code>typeof</code> retornarà els següents resultats per a aquestes variables:</p> + +<pre class="brush: js">typeof myFun; // retorna "function" +typeof forma; // retorna "string" +typeof tamany; // retorna "number" +typeof avui; // retorna "object" +typeof noExisteix; // retorna "undefined" +</pre> + +<p>Per a les paraules clau <code>true</code> i <code>null</code>, l'operador <code>typeof</code> retorna els següents resultats:</p> + +<pre class="brush: js">typeof true; // retorna "boolean" +typeof null; // retorna "object" +</pre> + +<p>Per a un nombre o string, l'operador <code>typeof</code> retorna els següents resultats:</p> + +<pre class="brush: js">typeof 62; // retorna "number" +typeof 'Hola món'; // retorna "string" +</pre> + +<p>Per a valors de propietats, l'operador <code>typeof</code> retorna el tipus del valor que conté la propietat:</p> + +<pre class="brush: js">typeof document.lastModified; // retorna "string" +typeof window.length; // retorna "number" +typeof Math.LN2; // retorna "number" +</pre> + +<p>Per a mètodes i funcions, l'operador <code>typeof</code> retorna els següents resultats:</p> + +<pre class="brush: js">typeof blur; // retorna "function" +typeof eval; // retorna "function" +typeof parseInt; // retorna "function" +typeof shape.split; // retorna "function" +</pre> + +<p>Per a objectes predefinits, l'operador <code>typeof</code> retorna els resultats següents:</p> + +<pre class="brush: js">typeof Date; // retorna "function" +typeof Function; // retorna "function" +typeof Math; // retorna "object" +typeof Option; // retorna "function" +typeof String; // retorna "function" +</pre> + +<h4 id="void" name="void"><code>void</code></h4> + +<p>L'operador <code>void</code> es pot emprar de qualsevol de les maneres següents:</p> + +<ol> + <li> + <pre class="brush: js">void (expression) +</pre> + </li> + <li> + <pre class="brush: js">void expression +</pre> + </li> +</ol> + +<p>L'operador <code>void</code> avalua una expressió però no retorna cap valor. <code>expression</code> és l'expressió JavaScript a avaluar. Els parèntesi que embocallen l'expressió són opcionals, però es considera una bona pràctica utilitzar-los.</p> + +<p>És possible utilitzar l'operador <code>void</code> per a especificar una expressió com a hipervincle. L'expressió serà avaluada però el seu contingut no reemplaçarà el contingut del document actual.</p> + +<p>El codi següent crea un hipervincle que no fa res quan l'usuari faci clic a l'hipervincle. Quan l'usuari fa clic al l'hipervincle, <code>void(0)</code> serà avaluada com a <code>undefined</code>, la qual cosa no té cap efecte en JavaScript.</p> + +<pre class="brush: html"><A HREF="javascript:void(0)">Cliqueu aquí per a no fer res</A> +</pre> + +<p>El codi següent crea un hipervincle que envia un formulari quan l'usuari fa clic sobre ell.</p> + +<pre class="brush: html"><A HREF="javascript:void(document.form.submit())"> +Feu clic aquí per a enviar el formulari</A></pre> + +<h3 id="Precedència_d'operadors">Precedència d'operadors</h3> + +<p>La <em>precedència</em> d'operadors determina l'ordre en el qual aquests s'apliquen quan s'avalua una expressió. Es pot canviar aquest comportament mitjançant parèntesi.</p> + +<p>La taula següent descriu la precedència dels operadors, del més prioritari al que ho és menys.</p> + +<table class="standard-table"> + <caption>Taula 3.7 Precedència d'operadors</caption> + <thead> + <tr> + <th scope="col">Tipus d'operador</th> + <th scope="col">Operadors individuals</th> + </tr> + </thead> + <tbody> + <tr> + <td>membre</td> + <td><code>. []</code></td> + </tr> + <tr> + <td>crida / creació d'una instància</td> + <td><code>() new</code></td> + </tr> + <tr> + <td>negació/increment</td> + <td><code>! ~ - + ++ -- typeof void delete</code></td> + </tr> + <tr> + <td>multiplicació/divisió</td> + <td><code>* / %</code></td> + </tr> + <tr> + <td>suma/resta</td> + <td><code>+ -</code></td> + </tr> + <tr> + <td>desplaçament de bits</td> + <td><code><< >> >>></code></td> + </tr> + <tr> + <td>relacionals</td> + <td><code>< <= > >= in instanceof</code></td> + </tr> + <tr> + <td>igualtat</td> + <td><code>== != === !==</code></td> + </tr> + <tr> + <td>AND binari</td> + <td><code>&</code></td> + </tr> + <tr> + <td>XOR binari</td> + <td><code>^</code></td> + </tr> + <tr> + <td>OR binari</td> + <td><code>|</code></td> + </tr> + <tr> + <td>AND lògic</td> + <td><code>&&</code></td> + </tr> + <tr> + <td>OR lògic</td> + <td><code>||</code></td> + </tr> + <tr> + <td>condicional</td> + <td><code>?:</code></td> + </tr> + <tr> + <td>assignació</td> + <td><code>= += -= *= /= %= <<= >>= >>>= &= ^= |=</code></td> + </tr> + <tr> + <td>coma</td> + <td><code>,</code></td> + </tr> + </tbody> +</table> + +<p>Trobareu una versió més detallada d'aqueta taula, completa amb enllaços a a detalls adicionals per a cada operador a la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table">Referència de JavaScript</a>.</p> diff --git a/files/ca/web/javascript/guide/functions/index.html b/files/ca/web/javascript/guide/functions/index.html new file mode 100644 index 0000000000..503937d85a --- /dev/null +++ b/files/ca/web/javascript/guide/functions/index.html @@ -0,0 +1,697 @@ +--- +title: Funcions +slug: Web/JavaScript/Guide/Functions +translation_of: Web/JavaScript/Guide/Functions +--- +<div>{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}</div> + +<p>Les funcions són uns dels blocs de construcció elementals en JavaScript. Una funció és un procediment de JavaScript—un conjunt de sentències que performa una tasca o calcula un valor. Per tal de fer servir una funció, primer s'ha de defnir en alguna part de l'ámbit en que es vol cridar.</p> + +<h2 id="Definir_funcions">Definir funcions</h2> + +<p>Una<strong> definició de funció</strong> (també anomenada<strong> declaració de funció</strong>) consta de la paraula clau <a href="/en-US/docs/JavaScript/Reference/Statements/function" title="function"><code>function</code></a>, seguit per:</p> + +<ul> + <li>El nom de la funció.</li> + <li>Una llista de paràmetres de la funció, continguts entre parèntesis i separats per comes.</li> + <li>Les sentències de JavaScript que defineixen la funció, contingudes entre claus, <code>{ }</code>.</li> +</ul> + +<p>Per exemple, el codi següent defineix una funció simple anomenada <code>square</code>:</p> + +<div style="margin-right: 270px;"> +<pre class="brush: js">function square(number) { + return number * number; +} +</pre> +</div> + +<p>La funció <code>square</code> té un paràmetre, anomenat <code>number</code>. Aquesta funció consisteix d'una sentència que retorna l'argument de la funció ( <code>number</code>) multiplicat per ell mateix. La sentència <a href="/en-US/docs/JavaScript/Reference/Statements/return" title="return"><code>return</code></a> especifica el valor retornat per la funció.</p> + +<pre class="brush: js">return number * number; +</pre> + +<p>Els paràmetres primitius (com ara un nombre) són passat a les funcions <strong> per valor</strong>; el valor és passat a la funció, però si la funció canvia el valor del paràmetre, aquest canvia sense reflectir-se globalment o en la funció de crida.</p> + +<p>Si es pasa un objecte (p.ex. un <a href="/en-US/docs/JavaScript/Glossary" title="en-US/docs/JavaScript/Glossary">valor no primitiu</a>, com ara un <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array" title="Array"><code>Array</code></a> o un objecte definit per l'usuari) com a paràmetre i la funció canvia les propietats de l'objecte, aquest canvi és visible fora de la funció, com es mostra en l'exemple següent:</p> + +<pre class="brush: js">function myFunc(theObject) { + theObject.make = "Toyota"; +} + +var mycar = {make: "Honda", model: "Accord", year: 1998}, + x, + y; + +x = mycar.make; // x gets the value "Honda" + +myFunc(mycar); +y = mycar.make; // y gets the value "Toyota" + // (the make property was changed by the function) +</pre> + +<div class="note"> +<p>Nota: Assignar un nou objecte als paràmetres <strong>no</strong> té cap efecte fora de la funció, ja que aquest canvia el valor del paràmetre i no del valor d'una de les propietats de l'objecte:</p> +</div> + +<pre class="brush: js">function myFunc(theObject) { + theObject = {make: "Ford", model: "Focus", year: 2006}; +} + +var mycar = {make: "Honda", model: "Accord", year: 1998}, + x, + y; + +x = mycar.make; // x gets the value "Honda" + +myFunc(mycar); +y = mycar.make; // y still gets the value "Honda" </pre> + +<p>Mentre que la declaració de la funció d'adalt és sintàcticament una sentència, les funcions també poden ser creades per l'<strong> expressió d'una funció</strong>. Aquesta funció pot ser <strong>anònima</strong>; no té cap nom. Per exemple, la funció <code style="font-size: 14px;">square</code> podria ésser definida com:</p> + +<pre class="brush: js" style="font-size: 14px;">var square = function(number) {return number * number}; +var x = square(4) //x gets the value 16</pre> + +<p>Tanmateix, un nom es pot proporcionar amb una expressió d'una funció i es pot utilitzar dins la funció per referir-se a si mateix, o en un depurador per identificar la funció en la traça de la pila.</p> + +<pre class="brush: js" style="font-size: 14px;">var factorial = function fac(n) {return n<2 ? 1 : n*fac(n-1)}; + +console.log(factorial(3)); +</pre> + +<p>Les expressions d'una funció són convenients quan es passa una funció com a argument d'una altra funció. El següent exemple mostra la definició d'una funció de mapa, i la posterior crida amb una funció anònima com a primer paràmetre.</p> + +<pre class="brush: js" style="font-size: 14px;">function map(f,a) { + var result = [], // Create a new Array + i; + for (i = 0; i != a.length; i++) + result[i] = f(a[i]); + return result; +} +</pre> + +<p>El codi següent:</p> + +<pre class="brush: js" style="font-size: 14px;">map(function(x) {return x * x * x}, [0, 1, 2, 5, 10]); +</pre> + +<p>retorna [0, 1, 8, 125, 1000].</p> + +<p>En JavaScript, una funció pot ser definida basant-se en una condició. Per exemple, la següent definició de la funció defineix <code>myFunc</code> només si <code>num</code> és igual 0:</p> + +<pre class="brush: js">var myFunc; +if (num == 0){ + myFunc = function(theObject) { + theObject.make = "Toyota" + } +}</pre> + +<p><span style="line-height: 1.572;">A més de definir les funcions com ho fem aquí, podeu utilitzar el </span><a href="/en-US/docs/JavaScript/Guide/Predefined_Core_Objects#Function_Object" style="line-height: 1.572;" title="en-US/docs/JavaScript/Guide/Predefined Core Objects#Function Object">constructor de funció</a><span style="line-height: 1.572;"> per crear funcions d'una cadena en temps d'execució, igual que </span><a href="/en-US/docs/JavaScript/Guide/Functions#eval_Function" style="line-height: 1.572;" title="en-US/docs/JavaScript/Guide/Functions#eval_Function"><code>eval()</code></a><span style="line-height: 1.572;">.</span></p> + +<p>Un <strong>mètode</strong> és una funció que es propietat d'un objecte. Podeu llegir més sobre mètodes i funcions a <a href="/en-US/docs/JavaScript/Guide/Working_with_Objects" title="en-US/docs/JavaScript/Guide/Working with Objects">Treballar amb objectes</a>.</p> + +<h2 id="Crida_de_funcions">Crida de funcions</h2> + +<p>Definir una funció no l'executa. Definir una funció simplement anomena la funció i especifica que fer quan es crida la funció. <strong>Cridar</strong> la funció en realitat realitza les accions especificades amb els paràmetres indicats. Per exemple, si es defineix la funció <code>square</code>, aquesta es cridaria de la següent manera:</p> + +<pre class="brush: js">square(5); +</pre> + +<p>La sentència anterior crida la funció amb un argument de 5. La funció executa executes les seves sentències i retorna el valor 25.</p> + +<p>Les funcions han de ser en un àmbit quan son cridades, però la declaració de la funció pot estar abans de la crida, com és en aquest exemple:</p> + +<pre>console.log(square(5)); +/* ... */ +function square(n){return n*n} +</pre> + +<p>L'àmbit de la funció es troba en la funció en la qual s'ha declarat, o en el programa complet si s'ha declarat is the function in which it is declared, or the entire program if it is declared a nivell global.</p> + +<div class="note"> +<p>Nota: Això només funciona quan definim la funció fent servir la sintaxis d'adalt (p.ex. <code>function funcName(){}</code>). El codi d'abaix no funcionaria.</p> +</div> + +<pre class="brush: js">console.log(square(5)); +square = function (n) { + return n * n; +} +</pre> + +<p>Els arguments d'una funció no estan limitats a cadenes o nombres. Es pot passar objectes sencers a una funció. La funció <code>show_props</code> (definida a <a href="/en-US/docs/JavaScript/Guide/Working_with_Objects#Objects_and_Properties" title="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects#Objects_and_Properties">Treballant amb Objectes</a>) és un exemple d'una funció que pren un objecte com a argument.</p> + +<p>Una funció pot cridar-se a si mateixa. Per exemple, aquí baix trobem una funció que is a function that calcula factorials recursivament:</p> + +<pre class="brush: js">function factorial(n){ + if ((n == 0) || (n == 1)) + return 1; + else + return (n * factorial(n - 1)); +} +</pre> + +<p>D'aquesta manera es podria calcular els factorials de l'ú al cinc de la forma següent:</p> + +<pre class="brush: js">var a, b, c, d, e; +a = factorial(1); // a gets the value 1 +b = factorial(2); // b gets the value 2 +c = factorial(3); // c gets the value 6 +d = factorial(4); // d gets the value 24 +e = factorial(5); // e gets the value 120 +</pre> + +<p>Hi ha altres maneres de cridar funcions. Sovint hi ha casos en que s'ha de cridar la funció dinàmicament, o casos en que el nombre d'arguments d'una funció pot variar o en els que el context de la crida a la funció de s'ha d'establir a un objecte específic determinat en temps d'execució. Resulta que les funcions són per elles mateixes, objectes, i aquests objectes, al seu torn, tenen mètodes (vegeu l'<a href="/en-US/docs/JavaScript/Guide/Obsolete_Pages/Predefined_Core_Objects/Function_Object" title="Function Object">objecte funció</a>). Un d'aquests, el mètode <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function/apply" title="apply"><code>apply()</code></a>, pot ser usat per aconseguir aquest objectiu.</p> + +<h2 class="deki-transform" id="Àmbit_d'una_funció">Àmbit d'una funció</h2> + +<p>Les variables definides dins d'una funció no són accessibles des de llocs de fora de la funció, ja que la variable es defineix només en l'àmbit de la funció. No obstant això, una funció pot accedir a totes les variables i funcions definides dins de l'àmbit en el qual es defineix. En altres paraules, una funció definida en l'àmbit global pot tenir accés a totes les variables definides en l'àmbit global. Una funció definida dins d'una altra funció pot accedir a totes les variables definides en la funció pare i qualsevol altra variable a la qual la funció pare té accés.</p> + +<pre class="brush: js">// The following variables are defined in the global scope +var num1 = 20, + num2 = 3, + name = "Chamahk"; + +// This function is defined in the global scope +function multiply() { + return num1 * num2; +} + +multiply(); // Returns 60 + +// A nested function example +function getScore () { + var num1 = 2, + num2 = 3; + + function add() { + return name + " scored " + (num1 + num2); + } + + return add(); +} + +getScore(); // Returns "Chamahk scored 5" +</pre> + +<h2 id="Scope_and_the_function_stack" name="Scope_and_the_function_stack">Àmbit d'aplicació i la pila de la funció</h2> + +<h3 id="Recursion" name="Recursion">Recursivitat</h3> + +<p>Una funció pot referir-se i cridar-se a ella mateixa. Hi ha tres formes per a que una funció es refereixi a ella mateixa:</p> + +<ol> + <li>El nom de la funció</li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments/callee">arguments.callee</a></code></li> + <li>Una variable continguda en l'àmbit que refereixi a la funció</li> +</ol> + +<p>Per exemple, la definició de funció següent:</p> + +<pre class="brush: js">var foo = function bar() { + // statements go here +}; +</pre> + +<p>Dins del cos de la funció, els següent són tots equivalents:</p> + +<ol> + <li><code>bar()</code></li> + <li><code>arguments.callee()</code></li> + <li><code>foo()</code></li> +</ol> + +<p>Una funció que es pot cridar a ella mateixa és una<em> funció recursiva</em>. En certa manera, la recursió és anàleg a un bucle. En ambdós casos el codi s'executa múltiples vegades, i els dos requereixen d'una condició (per evitar el bucle infinit, o més aviat, la infinita recursió en aquest cas). Per exemple, en el següent bucle:</p> + +<pre class="brush: js">var x = 0; +while (x < 10) { // "x < 10" is the loop condition + // do stuff + x++; +} +</pre> + +<p>Es pot converitr en una funció recursiva i una crida a una funció:</p> + +<pre class="brush: js">function loop(x) { + if (x >= 10) // "x >= 10" is the exit condition (equivalent to "!(x < 10)") + return; + // do stuff + loop(x + 1); // the recursive call +} +loop(0); +</pre> + +<p>Tanmateix, alguns algorismes no poden ser bucles iteratius simples. Per exemple, obtenir tots els nodes de l'estructura d'arbre (e.x. el <a href="/en-US/docs/DOM">DOM</a>) és fa més fàcilment usant la recursió:</p> + +<pre class="brush: js">function walkTree(node) { + if (node == null) // + return; + // do something with node + for (var i = 0; i < node.childNodes.length; i++) { + walkTree(node.childNodes[i]); + } +} +</pre> + +<p>Comparat amb la funció <code>loop</code>, cada crida recursiva que es crida a si mateixa fa varies crides recursives aquí.</p> + +<p>És possible convertir qualsevol algorisme recursiu a un no recursiu, però sovint la llògica és molt més complexa i fer-ho requereix l'ús d'una pila. De fet, la recursió per si mateixa fa servir una pila: la funció stack.</p> + +<p>El comportament de l'stack es pot veure en el següent exemple:</p> + +<pre class="brush: js">function foo(i) { + if (i < 0) + return; + document.writeln('begin:' + i); + foo(i - 1); + document.writeln('end:' + i); +} +foo(3); +</pre> + +<p>El qual mostra:</p> + +<pre>begin:3 +begin:2 +begin:1 +begin:0 +end:0 +end:1 +end:2 +end:3 +</pre> + +<h3 id="Nested_functions_and_closures" name="Nested_functions_and_closures">Funcions aniuades i <em>closures</em></h3> + +<p>Es pot aniuar una funció dins d'una altra funció. El contingut de la funció aniuada (la de dins) és privada a la funció que la conté (la de fora). També forma un <em>closure</em>.</p> + +<dl> + <dd>Un <em>closure</em> és una expressió (normalment una funció) que pot tenir variables lliures juntes amb un àmbit que lliga aquestes variables (que "<em>closes</em>" l'expresió).</dd> +</dl> + +<p>Ja que una funció aniuada és un <em>closure</em>, això significa que una funció aniuada pot "heredar" els arguments i variables de la funció que la conté. En altres paraules, la funció de dins conté l'àmbit de la funció de fora.</p> + +<p>Resumint:</p> + +<ul> + <li>Es pot accedir a la funció de dins només des de sentències que es troben dins la funció de fora.</li> +</ul> + +<ul> + <li>La funció de dins forma un <em>closure</em>: la funció de dins pot usar els arguments i les variables de la funció de fora, mentre que la funció de fora no pot usar els arguments i les variables de la funció de dins.</li> +</ul> + +<p>El següent exemple mostra funcions aniuades:</p> + +<pre class="brush: js">function addSquares(a,b) { + function square(x) { + return x * x; + } + return square(a) + square(b); +} +a = addSquares(2,3); // returns 13 +b = addSquares(3,4); // returns 25 +c = addSquares(4,5); // returns 41 +</pre> + +<p>Atès que la funció interior forma un <em>closure</em>, es pot cridar la funció exterior i especificar els arguments per ambdues funcions, l'exterior i l'interior:</p> + +<pre class="brush: js">function outside(x) { + function inside(y) { + return x + y; + } + return inside; +} +fn_inside = outside(3); // Think of it like: give me a function that adds 3 to whatever you give it +result = fn_inside(5); // returns 8 + +result1 = outside(3)(5); // returns 8 +</pre> + +<h3 id="Efficiency_considerations" name="Efficiency_considerations">Preservació de les variables</h3> + +<p>Vegeu com és preserva <code>x</code> quan es retorna <code>inside</code>. Un <em>closure</em> ha de preservar els arguments i variables en tots els àmbits de les seves referències. Donat que cada crida proveeix potencialment diferents arguments, es crea una nova <em>closure </em>per cada crida que es fa a l'exterior. La memòria pot ser alliberada només quan no es pot accedir més al retorn d'<span style="font-family: Consolas,Monaco,'Andale Mono',monospace;">inside.</span></p> + +<p>Això no és diferent d'emmagatzemar referències en altres objectes, però sovint és menys obvi perque no podem establir les referències directament ni inspeccionar-les. </p> + +<h3 id="Multiply-nested_functions" name="Multiply-nested_functions">Funcions aniuades múltiples</h3> + +<p>Les funcions també poden ser aniuades múltiples, p.ex. Una funció (A) conté una funció (B) que conté una funció (C). Ambudes funcions B i C formen aquí <em>closures,</em> de forma que B pot accedir a A i C pot accedir a B. A més a més, ja que C pot accedir a B, el qual pot accedir a A, C també pot accedir a A. D'aquesta forma, els <em>closures</em> poden contenir múltiples àmbits; contenen recursivament l'àmbit de les funcionsthey recursively contain the scope of the functions containing it. Això s'anomena <em>scope chaining</em>. (El perquè s'anomena "<em>chaining</em>" s'explicarà més tard.)</p> + +<p>Considereu l'exemple següent:</p> + +<pre class="brush: js">function A(x) { + function B(y) { + function C(z) { + alert(x + y + z); + } + C(3); + } + B(2); +} +A(1); // alerts 6 (1 + 2 + 3) +</pre> + +<p>En aquest exemple, <code>C</code> accedeix a <code>y</code> de <code>B</code> i <code>x</code> d'<code>A</code>. Això és possible perquè:</p> + +<ol> + <li><code>B</code> forma un <em>closure</em> incloïent <code>A</code>, és a dir, <code>B</code> pot accedir als arguments i les variables d'<code>A</code>.</li> + <li><code>C</code> forma un <em>closure</em> que inclou <code>B</code>.</li> + <li>Com que el <em>clousure</em> de <code>B</code> inclou <code>A</code>, el <em>closure</em> de <code>C</code> inclou <code>A</code>, <code>C</code> pot accedir tant als arguments i les variables de <code>B</code> com als d'<code>A</code>. En altres paraules, <code>C</code> encadena l'accés als àmbits de <code>B</code> i <code>A</code> en aquest ordre.</li> +</ol> + +<p>El revers, però, no és cert. <code>A</code> no pot accedir a <code>C</code>, perquè <code>A</code> no pot accedir a cap argument o variable de <code>B</code>, de la qual <code>C</code> n'és una variable. D'aquesta forma, <code>C</code> roman privat només a <code>B</code>.</p> + +<h3 id="Name_conflicts" name="Name_conflicts">Conflictes de noms</h3> + +<p>Quan dos arguments o variables de l'àmbit del closure tenen el mateix nom, hi ha un <em>conflicte de nom</em>. Els àmbits més interns tenen prioritat, de forma que l'àmbit més intern té la màxima prioritat, mentre que l'àmbit més exterior no en tét. Això és l cadena d'àmbit. El primer de la cadena és l'àmbit més intern, i l'últim és l'àmbit més extern. Vegeu l'exemple següent:</p> + +<pre class="brush: js">function outside() { + var x = 10; + function inside(x) { + return x; + } + return inside; +} +result = outside()(20); // returns 20 instead of 10 +</pre> + +<p>El conflicte de nom ocorre en la sentència <code>return x</code> i es troba entreand is between <code>inside</code>'s parameter <code>x</code> and <code>outside</code>'s variable <code>x</code>. The scope chain here is {<code>inside</code>, <code>outside</code>, global object}. Therefore <code>inside</code>'s <code>x</code> takes precedences over <code>outside</code>'s <code>x</code>, and 20 (<code>inside</code>'s <code>x</code>) is returned instead of 10 (<code>outside</code>'s <code>x</code>).</p> + +<h2 id="Closures">Closures</h2> + +<p>Els<em> closures</em> son unes de les característiques més poderoses de JavaScript. JavaScript permet l'aniuament de funcions i concedeix a la funció interior accès total a totes les variables i funcions definides dins de la funció exterior (i totes les altres variables i funcions que la funció exterior té accés). Tanmateix, la funció exterior no té accés a les variables i funcions definides dins la funció interior. Això proveeix seguretat a les variables de la funció interior. A més, ja que la funció interior té accés a l'àmbit de la funcio exterior, les variables i funcions definides en la funció de fora viuran més que la mateixa funció de fora, si la funció interior se les arregla per sobreviure a partir de la vida de la funció exterior. Un <em>closure</em> es crea quan la funció interior és d'alguna manera accessible per qualsevol àmbit fora de la funció exterior.</p> + +<pre class="brush: js">var pet = function(name) { // The outer function defines a variable called "name" + var getName = function() { + return name; // The inner function has access to the "name" variable of the outer function + } + + return getName; // Return the inner function, thereby exposing it to outer scopes + }, + myPet = pet("Vivie"); + +myPet(); // Returns "Vivie" +</pre> + +<p>Pot ser molt més complex que el codi d'adalt. Un objecte que conté mètodes per manipular les variables interior d'una funció exterior poder ser retornades.</p> + +<pre class="brush: js">var createPet = function(name) { + var sex; + + return { + setName: function(newName) { + name = newName; + }, + + getName: function() { + return name; + }, + + getSex: function() { + return sex; + }, + + setSex: function(newSex) { + if(typeof newSex == "string" && (newSex.toLowerCase() == "male" || newSex.toLowerCase() == "female")) { + sex = newSex; + } + } + } +} + +var pet = createPet("Vivie"); +pet.getName(); // Vivie + +pet.setName("Oliver"); +pet.setSex("male"); +pet.getSex(); // male +pet.getName(); // Oliver +</pre> + +<p>En els codis d'adalt, la variable <code>name</code> de la funció exterior és accesible des de les funcions interiors, i no hi ha cap altra forma d'accedir a les variables interiors apart the fer-ho a través de les funcions interiors. Les variables interiors de la funció interior es comporten com a magatzems segurs per a les funcions interiors. Aquestes emmagatzemen de forma "persistent", però segures, les dades amb que les funcions interiors han de treballar. Les funcions no tenen ni tant sols ser assignades a una variable, tampoc han de tenir un nom.</p> + +<pre class="brush: js">var getCode = (function(){ + var secureCode = "0]Eal(eh&2"; // A code we do not want outsiders to be able to modify... + + return function () { + return secureCode; + }; +})(); + +getCode(); // Returns the secureCode +</pre> + +<p>Hi ha, tanmateix, un nombre de trampes o obstacles que vigilar quan es fa servir <em>closures</em>. Si una <em>closure</em><u><em> </em></u>defineix una variable amb el mateix nom que el nom de la variable que es troba en l'àmbit exterior, no hi ha cap manera de referir-se una altra vegada a la variable de l'àmbit exterior.</p> + +<pre class="brush: js">var createPet = function(name) { // Outer function defines a variable called "name" + return { + setName: function(name) { // Enclosed function also defines a variable called "name" + name = name; // ??? How do we access the "name" defined by the outer function ??? + } + } +} +</pre> + +<p>La variable màgica <code>this</code> és força delicada en<em> closures</em>. S'ha de saber fer servir acuradament, ja que al que <code>this</code> es refereix depen completament del lloc on la funció es cridada, i no d'on és definida.</p> + +<h2 id="Ús_de_l'objecte_arguments">Ús de l'objecte arguments</h2> + +<p>Els arguments d'una funció és mantenen en un objecte semblant a un array. Dins una funció, és pot accedir als arguments passats a la funció de la següent forma:</p> + +<pre class="brush: js">arguments[i] +</pre> + +<p>On <code>i</code> és el nombre ordinal de l'argument, que comença amb zero. Així, el primer argument passat a una funció seria <code>arguments[0]</code>. El nombre total d'arguments és indicat per <code>arguments.length</code>.</p> + +<p>Fent servir l'objecte <code>arguments</code>, es pot cridar una funció amb més arguments dels que formament està declarat a acceptar. Això sovint és útil si no es sap amb anticipació quants arguments seràn passats a la funció. Es pot fer servir <code>arguments.length</code> per determinar el nombre d'arguments que se li passen a la funció, i després accedir a cada arguments fent ús de l'objecte <code>arguments</code>.</p> + +<p>Per exemple, sospeseu una funció que concatena diverses cadenes. L'únic argument formal per la funció és una cadena que especifica els caràcters que separen els ítems per concatenar. La funció és defineix com:</p> + +<pre class="brush: js">function myConcat(separator) { + var result = "", // initialize list + i; + // iterate through arguments + for (i = 1; i < arguments.length; i++) { + result += arguments[i] + separator; + } + return result; +} +</pre> + +<p>Es pot passar qualsevol nombre d'arguments a aquesta funció, i concatena cada argument dins d'una "llista" de cadenes:</p> + +<pre class="brush: js">// returns "red, orange, blue, " +myConcat(", ", "red", "orange", "blue"); + +// returns "elephant; giraffe; lion; cheetah; " +myConcat("; ", "elephant", "giraffe", "lion", "cheetah"); + +// returns "sage. basil. oregano. pepper. parsley. " +myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley"); +</pre> + +<div class="note"> +<p>Nota: la variable <code>arguments</code> és semblant a un array, però no és un array. S'assembla a un array en que té un índex numerat i la propietat <code>length</code>. Tanmateix, no poseeix tots els mètodes de manipulació d'un array.</p> +</div> + +<p>Vegeu l'<a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function" title="en-US/docs/JavaScript/Reference/Global Objects/Function">objecte</a> <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function" title="en-US/docs/JavaScript/Reference/Global Objects/Function"><code>Function</code></a> en la referència de JavaScript per més informació.</p> + +<h2 id="Functions_as_event_handlers" name="Functions_as_event_handlers">Funcions com a controladors d'events</h2> + +<p>En JavaScript, els controladors d'events <a href="/en-US/docs/DOM">DOM</a> són funcions (a diferència dels objectes que contenen un mètode <code>handleEvent</code> en altres enllaços de llenguatge DOM). Les funcions passen un objecte d'<a href="/en-US/docs/DOM/event">event</a> com el primer i únic paràmetre. Com qualsevol altre paràmetre, si l'objecte event no s'ha de fer servir, es pot ometre de la llista de paràmetres formals.</p> + +<p>Alguns probables objectius d'un document <a href="/en-US/docs/Web/HTML">HTML</a> inclouen: <code>window</code> (l'objecte<code> Window</code>, incloent frames), <code>document</code> (l'objecte <code>HTMLDocument</code>), i elements (<code>Element</code> objects). En el <a href="http://www.w3.org/TR/DOM-Level-2-HTML/">HTML DOM</a>, els objectius d'events tenen propietats de controladors d'events. Aquestes propietats seràn nomes d'events amb minúscules amb el prefix "on", p.ex. <code>onfocus</code>. Una altra forma de fer, més robusta, d'afegir detectors d'events és ser proveït pel <a href="http://www.w3.org/TR/DOM-Level-2-Events/">nivell 2 d'events DOM</a>.</p> + +<p>Nota: Events formen part del DOM, no de JavaScript. (JavaScript només proveeix un enllaç al DOM.)</p> + +<p>El següent exemple assigna una funció al controlador d'events "focus" d'una finestra.</p> + +<pre class="brush: js">window.onfocus = function() { + document.body.style.backgroundColor = 'white'; +}; +</pre> + +<p>Si una funció és assignada a una variable, es pot assignar la variable a un controlador d'event. El codi següent assigna una funció a la variable <code>setBGColor</code>.</p> + +<pre class="brush: js">var setBGColor = new Function("document.body.style.backgroundColor = 'white';"); +</pre> + +<p>Es pot fer servir aquesta variable per assignar una funció a un controlador d'event de diverses formes. Aquí mostrem dues formes de fer-ho:</p> + +<ol> + <li>scripting amb propietats d'event DOM HTML + <pre class="brush: js">document.form1.colorButton.onclick = setBGColor; +</pre> + </li> + <li>Atribut event HTML + <pre class="brush: html"><input name="colorButton" type="button" + value="Change background color" + onclick="setBGColor();"/> +</pre> + + <p>Un controlador d'events establert d'aquesta manera, és de fet, una funció, named after the attribute, wrapped around the specified code. Això explica perquè els parèntesis en "<code>setBGColor()</code>" són necessaris aquí (en lloc de només "<code>setBGColor</code>"). És equivalent a:</p> + + <pre class="brush: js">document.form1.colorButton.onclick = function onclick(event) { + setBGColor(); +}; +</pre> + + <p>Vegeu com l'objecte event object es passa a aquesta funció com a paràmetre <code>event</code>. Això permet al codi específic utilitzar l'objecte Event:</p> + + <pre class="brush: html"><input ... + onclick="alert(event.target.tagName);"/> +</pre> + </li> +</ol> + +<p>Com qualsevol altra propietat que fa referència a una funció, el controlador d'event pot comportat-se com un mètode, i <code>this</code> faria referència a l'element que conté el controlador d'event. En l'exemple següent, la funció que fa referència <code>onfocus</code> es crida amb <code>this</code> que equival a <code>window</code>.</p> + +<pre class="brush: js">window.onfocus(); +</pre> + +<p>Un error comú de principiants de Javascript és snnexar parèntesis i/o paràmetres al final de la variable p.ex. cridar un controlador d'event quan es fa l'assignació. Afeguir aquests parèntesis assignarà el valor<em> returned from calling the event handler</em>, que sovint és <code>undefined</code> (si la funció no retorna res), rather than the event handler itself:</p> + +<pre class="brush: js">document.form1.button1.onclick = setBGColor(); +</pre> + +<p>Per passar paràmetres a un controlador d'event, el controlador ha d'estar embolcallat dins d'una altra funció com la següent:</p> + +<pre class="brush: js">document.form1.button1.onclick = function() { + setBGColor('some value'); +}; +</pre> + +<h2 id="Funcions_predefinides">Funcions predefinides</h2> + +<p>JavaScript té diverses funcions predefinides que poden emprar-se des de qualsevol àmbit:</p> + +<ul> + <li>{{ web.link("#eval_function", "eval") }}</li> + <li>{{ web.link("#isFinite_function", "isFinite") }}</li> + <li>{{ web.link("#isNaN_function", "isNaN") }}</li> + <li>{{ web.link("#parseInt_and_parseFloat_functions", "parseInt and parseFloat") }}</li> + <li>{{ web.link("#Number_and_String_functions", "Number and String") }}</li> + <li>{{ web.link("#escape_and_unescape_functions", "encodeURI, decodeURI, encodeURIComponent, and decodeURIComponent") }} (all available with Javascript 1.5 and later).</li> +</ul> + +<p>Les seccions següents introdueixen aquestes funcions. Vegeu el <a href="/en-US/docs/JavaScript/Reference" title="en-US/docs/JavaScript/Reference">JavaScript Reference</a> per informació detallada de totes aquestes funcions.</p> + +<h3 id="Funció_eval">Funció eval</h3> + +<p>La funció <code>eval</code>avalua una cadena del codi de JavaScript sense fer referència a cap objecte en particular. La sintaxi de <code>eval</code> és:</p> + +<pre class="brush: js">eval(expr); +</pre> + +<p>on <code>expr</code> és una cadena per ser avaluada.</p> + +<p>Si la cadena representa una expressió, <code>eval</code> evalua l'expressió. Si l'argument representa una sentència o més de JavaScript, eval performa aquestes sentències. L'àmbit del codi d'<code>eval</code> és idèntic a l'àmbit del codi de crida. No s'ha de cridar <code>eval</code> per avaluar una expressió aritmèica; JavaScript aritmètiques automàticament.</p> + +<h3 id="Funció_isFinite">Funció isFinite</h3> + +<p>La funció <code>isFinite</code> avalua un argument per determinar si és un nombre finit. La sintaxi d' <code>isFinite</code> és:</p> + +<pre class="brush: js">isFinite(number); +</pre> + +<p>on <code>number</code> és el nombre que s'ha d'avaluar.</p> + +<p>Si l'argument és <code>NaN </code>(no un nombre), infinit positiu o infinit negatiu, aquest mètode retorna <code>false</code>, sinó retornarà <code>true</code>.</p> + +<p>El codi següent comprova si ClientInput per determinar si és un nombre finit.</p> + +<pre class="brush: js">if(isFinite(ClientInput)){ + /* take specific steps */ +} +</pre> + +<h3 id="Funció_isNaN">Funció isNaN</h3> + +<p>La funció <code>isNaN</code> avalua un argument que determina si és "NaN." La sintaxi d'<code>isNaN</code> és:</p> + +<pre class="brush: js">isNaN(testValue); +</pre> + +<p>On <code>testValue</code> és el valor que es vol avaluar.</p> + +<p>Les funcions <code>parseFloat</code> i <code>parseInt</code> retornen "NaN" quan avaluen un valor que no és un nombre. <code>isNaN</code> retorna true si passa "NaN," i false sinó ho fa.</p> + +<p>El codi següent avalua <code>floatValue</code> que determina si és un nombre i després crida un procediment de la manera adequada:</p> + +<pre class="brush: js">var floatValue = parseFloat(toFloat); + +if (isNaN(floatValue)) { + notFloat(); +} else { + isFloat(); +} +</pre> + +<h3 id="Funcions_parseInt_i_parseFloat">Funcions parseInt i parseFloat</h3> + +<p>Les dos funcions "parse", <code>parseInt</code> i <code>parseFloat</code>, retornen un valor numèric quan es dóna com a argument una cadena.</p> + +<p>La sintaxi de <code>parseFloat</code> és:</p> + +<pre class="brush: js">parseFloat(str); +</pre> + +<p>On <code>parseFloat</code> parses el seu argument,la cadena <code>str</code>, and attempts to return a floating-point number. If it encounters a character other than a sign (+ or -), a numeral (0-9), a decimal point, or an exponent, then it returns the value up to that point and ignores that character and all succeeding characters. If the first character cannot be converted to a number, it returns "NaN" (not a number).</p> + +<p>La sintaxi de <code>parseInt</code> és:</p> + +<pre class="brush: js">parseInt(str [, radix]); +</pre> + +<p><code>parseInt</code> interpreta el seu primer argument, la cadena de caràcters <code>str</code>, i intenta retornar un nombre sencer de la base especificada pel paràmetre opcional <code>radix</code>. Per exemple, si <code>radix</code> és 10 això indica que es demana una conversió al sistema decimal (base 10), si és 8 octal, si és 16 hexadecimal, etcètera. Per a bases majors que 10 es fan anar lletres de l'alfabet per a indicar els numerals majors que 9. Per exemple, per a nombres hexadecimals (base 16), s'empren les lletres de la A fins la F.</p> + +<p>Si <code>parseInt</code> troba un caràcter que no és un numeral de la base especificada, aquest és ignorat així com la resta de caràcters que el segueixen i retorna el valor sencer interpretat fins aquest punt. Si el primer caràcter no es pot convertir a un nombre de la base especificada es retorna "NaN". La funció <code>parseInt</code> trunca la cadena de caràcters a valors sencers.</p> + +<h3 id="Funcions_Number_i_String">Funcions Number i String</h3> + +<p>Les funcions <code>Number</code> i <code>String</code> permeten convertir un objecte a un nombre o a una cadena. La sintaxi d'aquestes funcions és:</p> + +<pre class="brush: js">var objRef; +objRef = Number(objRef); +objRef = String(objRef); +</pre> + +<p>On <code>objRef</code> és una referència a l'objecte. Number fa servir el valorOf() method of the object; String uses the toString() method of the object.</p> + +<p>L'exemple següent converteix l'objecte <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Date" title="en-US/docs/JavaScript/Reference/Global Objects/Date">Date</a></code> a una cadena de caràcters fàcilment interpretrable per humans.</p> + +<pre class="brush: js">var D = new Date(430054663215), + x; +x = String(D); // x equals "Thu Aug 18 04:37:43 GMT-0700 (Pacific Daylight Time) 1983" +</pre> + +<p>L'exemple següent converteix l'objecte <code><a class="internal" href="/en-US/docs/JavaScript/Reference/Global_Objects/String" title="en-US/docs/JavaScript/Reference/Global Objects/String">String</a></code> a l'objecte <code><a class="internal" href="/en-US/docs/JavaScript/Reference/Global_Objects/Number" title="en-US/docs/JavaScript/Reference/Global Objects/Number">Number</a></code>.</p> + +<pre class="brush: js">var str = "12", + num; +num = Number(str); +</pre> + +<p>Es pot comprovar utilitzant el mètode del DOM <code>write()</code> i l'operador de JavaScript <code>typeof</code>.</p> + +<pre class="brush: js">var str = "12", + num; +document.write(typeof str); +document.write("<br/>"); +num = Number(str); +document.write(typeof num); +</pre> + +<h3 id="Funcions_escape_i_unescape_(Obsoletes_a_partir_de_JavaScript_1.5)">Funcions escape i unescape (Obsoletes a partir de JavaScript 1.5)</h3> + +<p>Les funcions <code>escape</code> i <code>unescape</code> no funcionen correctamenr per a caràcter que no siguin ASCII i han quedat obsoletes. En la versió de JavaScript 1.5 i posteriors, es fa servir <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI" title="en-US/docs/JavaScript/Reference/Global_Functions/encodeURI">encodeURI</a></code>, <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/decodeURI" title="en-US/docs/JavaScript/Reference/Global_Functions/decodeURI">decodeURI</a></code>, <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent" title="en-US/docs/JavaScript/Reference/Global_Functions/encodeURIComponent">encodeURIComponent</a></code>, i <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/decodeURIComponent" title="en-US/docs/JavaScript/Reference/Global_Functions/decodeURIComponent">decodeURIComponent</a></code>.</p> + +<p>Les funcions <code>escape</code> i <code>unescape</code> permeten codificar i descodificar cadenes. La funció <code>escape</code> retorna function returns the hexadecimal encoding of an argument in the ISO Latin character set. The <code>unescape</code> function returns the ASCII string for the specified hexadecimal encoding value.</p> + +<p>La sintaxi d'aquestes funcions és:</p> + +<pre class="brush: js">escape(string); +unescape(string); +</pre> + +<p>Aquestes funcions s'usen principalment amb JavaScript que s'executa al servidor per codificar i descodificar parells de clau/valor en URLs.</p> diff --git a/files/ca/web/javascript/guide/index.html b/files/ca/web/javascript/guide/index.html new file mode 100644 index 0000000000..5bd35b4659 --- /dev/null +++ b/files/ca/web/javascript/guide/index.html @@ -0,0 +1,127 @@ +--- +title: Guia de JavaScript +slug: Web/JavaScript/Guide +tags: + - Guide + - JavaScript + - NeedsTranslation + - TopicStub +translation_of: Web/JavaScript/Guide +--- +<div>{{jsSidebar("JavaScript Guide")}}</div> + +<p class="summary">La Guia de JavaScript mostra com utilitzar <a href="/ca/docs/Web/JavaScript">JavaScript</a> a l'hora que proporciona una visió general del llenguatge. Per a començar amb JavaScript o a programar en general podeu consultar els article de l'<a href="/ca/Learn">zona d'aprenentatge</a>. Per a informació exhaustiva sobre qualsevol característica del llenguatge podeu consultar la<a href="/ca/docs/Web/JavaScript/Referencia"> referència de JavaScript</a>.</p> + +<h2 id="Capítols">Capítols</h2> + +<p>Aquesta guia es divideix en diversos capítols:</p> + +<ul class="card-grid"> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Introducció">Introducció</a></span> + + <p><a href="/ca/docs/Web/JavaScript/Guide/Introducció#Where_to_find_JavaScript_information">Quant a aquesta guia</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Introducció#What_is_JavaScript.3F">Quant a JavaScript</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Introducció#JavaScript_and_Java">JavaScript i Java</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Introducció#JavaScript_and_the_ECMAScript_Specification">ECMAScript</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Introducció#Getting_started_with_JavaScript">Eines</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Introducció#Hello_world">Hola Món</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types">Gramàtica i tipus</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Basics">Sintaxi bàsica i comentaris</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Declarations">Declaracions</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope">Àmbit de variables</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_hoisting">Hoisting de variables</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Data_structures_and_types">Estructures de dades i tipus</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Grammar_and_types#Literals">Literals</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling">Control de fluxe i manegament d'errors</a></span> + <p><code><a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#if...else_statement">if...else</a></code><br> + <code><a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#switch_statement">switch</a></code><br> + <a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#Exception_handling_statements"><code>try</code>/<code>catch</code>/<code>throw</code></a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#Utilizing_Error_objects">Objecte Error</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#Promises">Objecte Promise</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration">Bucles i iteració</a></span> + <p><code><a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#for_statement">for</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#while_statement">while</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#do...while_statement">do...while</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#break_statement">break</a>/<a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#continue_statement">continue</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#for...in_statement">for..in</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for..of</a></code></p> + </li> +</ul> + +<ul class="card-grid"> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Functions">Funcions</a></span> + + <p><a href="/ca/docs/Web/JavaScript/Guide/Functions#Defining_functions">Definir funcions</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Functions#Calling_functions">Cridar funcions</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Functions#Function_scope">Àmbit de funcions</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Functions#Closures">Closures</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Functions#Using_the_arguments_object">Arguments</a> i <a href="/ca/docs/Web/JavaScript/Guide/Functions#Function_parameters">paràmeters</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Functions#Arrow_functions">Functions fletxa</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors">Expressions i Operadors</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Assignment_operators">Assignaments</a> i <a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Comparison_operators">Comparacions</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Arithmetic_operators">Operadors aritmètics</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Bitwise_operators">Operadors de bits</a> i <a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Logical_operators">operadors lògics</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Expressions_i_Operadors#Conditional_(ternary)_operator">Operador condicional (ternari)</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Numbers_and_dates">Nombres i dates</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Numbers_and_dates#Numbers">Literals de nombres</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Numbers_and_dates#Number_object">Objecte <code>Number</code></a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Numbers_and_dates#Math_object">Objecte <code>Math</code></a><br> + <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Guide/Numbers_and_dates#Date_object">Objecte <code>Date</code></a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Text_formatting">Formateig de text</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Text_formatting#String_literals">Literals String</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Text_formatting#String_objects"><code>String</code> object</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Text_formatting#Multi-line_template_strings">Strings plantilla</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Text_formatting#Internationalization">Internacionalització</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Regular_Expressions">Expressions regulars</a></p> + </li> +</ul> + +<ul class="card-grid"> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Indexed_collections">Col·leccions indexades</a></span> + + <p><a href="/ca/docs/Web/JavaScript/Guide/Indexed_collections#Array_object">Arrays</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Indexed_collections#Array_comprehensions">Comprensions per a Arrays</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Indexed_collections#Typed_Arrays">Arrays amb tipus</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Keyed_collections">Col·leccions clau-valor</a></span> + <p><code><a href="/ca/docs/Web/JavaScript/Guide/Keyed_collections#Map_object">Map</a></code><br> + <code><a href="/ca/docs/Web/JavaScript/Guide/Keyed_collections#WeakMap_object">WeakMap</a></code><br> + <code><a href="/ca/docs/Web/JavaScript/Guide/Keyed_collections#Set_object">Set</a></code><br> + <code><a href="/ca/docs/Web/JavaScript/Guide/Keyed_collections#WeakSet_object">WeakSet</a></code></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Treballar_amb_Objectes">Treballar amb Objectes</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Treballar_amb_Objectes#Objects_and_properties">Objectes i propietats</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Treballar_amb_Objectes#Creating_new_objects">Crear objectes</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Treballar_amb_Objectes#Defining_methods">Definir mètodes</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Treballar_amb_Objectes#Defining_getters_and_setters">Getters i setters</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Details_of_the_Object_Model">Detalls del model d'objectes</a></span> + <p><a href="/ca/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-based_vs._prototype-based_languages">Programació Orientada a Objectes basada en Prototipus</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Creating_the_hierarchy">Crear jerarquies d'objectes</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Property_inheritance_revisited">Herència</a></p> + </li> +</ul> + +<ul class="card-grid"> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Iterators_and_Generators">Iteradors i generadors</a></span> + + <p><a href="/ca/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterators">Iteradors</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Iterators_and_Generators#Iterables">Iterables</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators">Generdors</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generator_comprehensions">Comprensions per a Generadors</a></p> + </li> + <li><span><a href="/ca/docs/Web/JavaScript/Guide/Meta_programming">Meta programació</a></span> + <p><code><a href="/ca/docs/Web/JavaScript/Guide/Meta_programming#Proxies">Proxy</a></code><br> + <a href="/ca/docs/Web/JavaScript/Guide/Meta_programming#Handlers_and_traps">Manegadors i trampes</a><br> + <a href="/ca/docs/Web/JavaScript/Guide/Meta_programming#Revocable_Proxy">Proxy Revocable</a><br> + <code><a href="/ca/docs/Web/JavaScript/Guide/Meta_programming#Reflection">Reflect</a></code></p> + </li> +</ul> + +<p>{{Next("Web/JavaScript/Guide/Introduction")}}</p> diff --git a/files/ca/web/javascript/guide/introducció/index.html b/files/ca/web/javascript/guide/introducció/index.html new file mode 100644 index 0000000000..1b598dad9b --- /dev/null +++ b/files/ca/web/javascript/guide/introducció/index.html @@ -0,0 +1,140 @@ +--- +title: Introducció +slug: Web/JavaScript/Guide/Introducció +translation_of: Web/JavaScript/Guide/Introduction +--- +<div>{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide", "Web/JavaScript/Guide/Grammar_and_types")}}</div> + +<div class="summary"> +<p>Aquest capítol presenta JavaScript i comenta alguns dels seus conceptes fonamentals.</p> +</div> + +<h2 id="Coneixements_previs">Coneixements previs</h2> + +<p>Aquesta guia asumeix que el lector te els següents coneixements previs:</p> + +<ul> + <li>Una idea general de Internet i la World Wide Web ({{Glossary("WWW")}}).</li> + <li>Bon coneixement de l'HyperText Markup Language ({{Glossary("HTML")}}).</li> + <li>Alguns coneixements de programació. Si sou nous quant a la programació proveu qualsevol dels tutorials que trobareu a la pàgina principal sobre <a href="/en-US/docs/Web/JavaScript" title="/en-US/docs/">JavaScript</a>.</li> +</ul> + +<h2 id="On_trobar_informació_sobre_JavaScript">On trobar informació sobre JavaScript</h2> + +<p>La documentació de JavaScript al MDN inclou els següents apartats:</p> + +<ul> + <li><a href="/en-US/Learn">Aprenent la Web</a> proporciona informació per a nouvinguts i introdueix conceptes bàsics de programació i Internet.</li> + <li><a href="/en-US/docs/Web/JavaScript/Guide" title="en/Core_JavaScript_1.5_Guide">La guia de JavaScript</a> (aquesta guia) proporciona un resum del llenguatge JavaScript així com els seus objectes.</li> + <li><a href="/en-US/docs/Web/JavaScript/Reference" title="en/JavaScript/Reference">La referència de JavaScript</a> proporciona material de referència detallat per a JavaScript.</li> +</ul> + +<p>Si vostè és nou al món de JavaScript es recomana començar amb els articles que es poden trobar a l'<a href="/en-US/Learn">àrea d'aprenentatge</a> i la <a href="/en-US/docs/Web/JavaScript/Guide" title="en/Core_JavaScript_1.5_Guide">Guia de JavaScript</a>. Un cop assolits els conceptes fonamentals podeu obtindre més detalls sobre objectes individuals i sentències mitjançant la <a href="/en-US/docs/Web/JavaScript/Reference" title="en/JavaScript/Reference">Referència de JavaScript</a>.</p> + +<h2 id="Què_és_JavaScript">Què és JavaScript?</h2> + +<p>JavaScript és un llenguatge d'script multiplataforma i orientat a objectes. És un llenguatge petit i lleuger. Dins l'entorn d'un amfitrió, es pot connectar JavaScript als objectes del l'entorn per a tenir un control programàtic sobre aquests.</p> + +<p>JavaScript conté una llibreria estàndard d'objectes, com <code>Array</code>, <code>Date</code> i <code>Math</code>, o un conjunt bàsic d'elements del llenguatge, com ara operadors, estructures de control o sentències. El nucli de JavaScript es pot estendre per a diferents propòsits mitjançant objectes adicionals; per exemple:</p> + +<ul> + <li><em>JavaScript al cantó del client</em> estén el llenguatge bàsic tot proveint objectes per a controlar un navegador i el seu Document Object Model (DOM). Per exemple, les extensions del cantó del client permeten a una aplicació posar elements en un formulari HTML i respondre a esdeveniments (events) d'usuari com ara clics del ratolí, entrada de formularis o navegació per la pàgina.</li> + <li><em>JavaScript al cantó del servidor</em> estén el llenguatge bàsic tot proveint objectes rellevants a córrer JavaScript en un servidor. Per exemple, les extensions del cantó del servidor permeten a una aplicació comunicar-se amb una base de dades, proveir continuitat d'informació d'una instància a una altra de l'aplicació, o bé realitzar manipulacions de fitxers al servidor.</li> +</ul> + +<h2 id="JavaScript_and_Java" name="JavaScript_and_Java">JavaScript i Java</h2> + +<p>JavaScript i Java són similars des d'alguns punts de vista però són fonamentalment diferents des d'uns altres. El llenguatge JavaScript s'assembla al Java però no té el tipatge estàtic ni les comprovacions de tipatge fort de Java. JavaScript segueix la majoria de les expressions de sintaxi de Java, convencions de nomenclatura i construccions de control de flux bàsiques, la qual és la raó per la qual el seu nom va ser canviat de LiveScript a JavaScript.</p> + +<p>En contrast amb el sistema de classes de Java en temps de compilació fabricat per declaracions, JavaScript suporta un sistema en temps d'execució basat en un petit nombre de tipus de dades que representen valors numèrics, booleans i cadenes de caràcters. JavaScript té model d'objecte basat en prototipus en comptes del model més comú, basat en classes. El model basat en prototipus ofereix herència dinàmica, és a dir, el que és heretat pot variar entre diferents objectes individuals. JavaScript també suporta funcions sense cap mena de requeriment declaratiu especial. Les funcions poden ser propietats d'objectes, sent executades com a mètodes de tipatge lliure.</p> + +<p>JavaScript és un llenguatge de forma molt lliure en comparació amb Java. No és necessari declarar totes les variables, classes i mètodes. No és necessari preocupar-se per quins mètodes són públics, privats o protegits, i no és necessari implementar interfícies. Variables, paràmetres i tipus de retorn de funcions so són de tipatge explícit.</p> + +<p>Java és un llenguatge de programació basat en classes dissenyat per a executar-se ràpidament i ser segur quant a tipatge. Ser segur quant al tipatge vol dir que, per exemple, no es pot assignar un nombre sencer de Java a una referència d'objecte, o accedir memòria privada tot corrompent bytecode de Java. El model basat en classes de Java implica que els programes consisteixen exclusivament de classes i els seus mètodes. L'herència de classes a Java i el tipatge fort generalment requereixen jerarquies d'objectes fortament acoblades. Aquests requisits fan que programar en Java sigui més complex que programar en JavaScript.</p> + +<p>En contrast, JavaScript descendeix en esperit d'una línia de llenguatges més petits, amb tipatge dinàmic com ara HyperTalk i dBASE. Aquests llenguatges d'scripting ofereixen eines de programació a una audiència molt més àmplia a causa de la seva sintaxi més simple, funcionalitats especialitzades integrades i uns requeriments mínims per a la creació d'objectes.</p> + +<table class="standard-table"> + <caption>JavaScript en comparació a Java</caption> + <thead> + <tr> + <th scope="col">JavaScript</th> + <th scope="col">Java</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p>Basat en objectes. No hi ha distinció entre tipus d'objectes. L'herència funciona a través del mecanisme de prototipus i les propietats i mètodes es poden afegir a qualsevol objecte de forma dinàmica.</p> + </td> + <td> + <p>Basat en classes. Els objectes es divideixen entre classes i instàncies, amb l'herència aplicada mitjançant la jerarquia de classes. No es poden afegir propietats ni mètodes dinàmicament ni a classes ni a instàncies.</p> + </td> + </tr> + <tr> + <td>El tipus de dades de les variables no es declaren (tipatge dinàmic).</td> + <td>El tipus de dades de les variables s'ha de declarar (tipatge estàtic).</td> + </tr> + <tr> + <td>No pot escriure a disc de forma automàtica.</td> + <td>No pot escriure a disc de forma automàtica.</td> + </tr> + </tbody> +</table> + +<p>Per a més informació sobre les diferències entre JavaScript i Java vegeu el capítol <a href="/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model" title="JavaScript/Guide/Details of the Object Model">Detalls del model d'objecte</a>.</p> + +<h2 id="JavaScript_and_the_ECMAScript_Specification" name="JavaScript_and_the_ECMAScript_Specification">JavaScript i l'especificació ECMAScript</h2> + +<p>L'estandardització de JavaScript es realitza a <a class="external" href="http://www.ecma-international.org/">Ecma International</a> — l'associació Europea per a l'estandardització de sistemes d'informació i comunicació (ECMA era anteriorment un acrònim d'European Computer Manufacturers Association) per a proporcionar un llenguatge de programació estàndard i internacional basat en JavaScript. Aquesta versió estandarditzada de JavaScript, anomenada ECMAScript, es comporta de la mateixa manera a totes les aplicacions que suporten l'estàndard. Les empreses poden utilitzar el llenguatge estàndard obert per a desenvolupar la seva pròpia implementació de JavaScript. L'estàndard ECMAScript està documentat en l'especificació ECMA-262. Vegeu <a href="/en-US/docs/Web/JavaScript/New_in_JavaScript">Nou a JavaScript</a> per a aprendre sobre les diferents versions de JavaScript així com les diferents edicions de l'especificació d'ECMAScript.</p> + +<p>A més, l'estàndard ECMA-262 també està aprovat per l'<a class="external" href="http://www.iso.ch/">ISO</a> (International Organization of Standarization) com a ISO-16262. Podeu trobar l'especificació al <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">lloc web d'Ecma International</a>. L'especificació de l'ECMAScript no descriu el Model d'Objecte Document (DOM), el qual està estandaritzat pel <a class="external" href="http://www.w3.org/">World Wide Web Consortium (W3C)</a>. El DOM defineix la forma en què els objectes d'un document HTML s'exposen a l'script. Per a fer-se una millor idea de les diferents tecnologies usades en programar en JavaScript, consulteu l'article: <a href="/en-US/docs/Web/JavaScript/JavaScript_technologies_overview">resum de tecnologies de JavaScript</a>.</p> + +<h3 id="JavaScript_Documentation_versus_the_ECMAScript_Specification" name="JavaScript_Documentation_versus_the_ECMAScript_Specification">La documentació de JavaScript versus l'especificació de l'ECMAScript</h3> + +<p>L'especificació de l'ECMAScript és un conjunt de requeriments per a implementar ECMAScript; és útil si es vol implementar característiques del llenguatge que compleixin amb els estàndards a la vostra pròpia implementació d'ECMAScript o a un motor JavaScript (com per exemple el SpiderMonkey a Firefox, o el v8 a Chrome).</p> + +<p>El document d'ECMAScript no pretén ajudar als programadors de scripts; utilitzeu la documentació de JavaScript per a obtenir informació sobre com escriure scripts.</p> + +<p>L'especificació d'ECMAScript utilitza terminologia i sintaxi que poden no ser familiars per a programador de JavaScript. Tot i que la descripció del llenguatge pot variar a ECMAScript, el llenguatge en si roman sense canvis. JavaScript suporta totes les funcionalitats definides a l'especificació d'ECMAScript.</p> + +<p>La documentació de JavaScript descriu aspectes del llenguatge que són apropiats per al programador de JavaScript.</p> + +<h2 id="Iniciant-se_en_JavaScript">Iniciant-se en JavaScript</h2> + +<p>Iniciar-se en JavaScript és senzill: tot el que fa falta és un navegador Web modern. Aquesta guia inclou algunes de les característiques de JavaScript que només estan disponibles a les últimes versions de Firefox, per això es recomana utilitzar la versió de Firefox més recent.</p> + +<p>Hi ha dues eines que formen part de Firefox que són útils per a experimentar amb JavaScript: la Consola del Web i Scratchpad.</p> + +<h3 id="La_Consola_del_Web">La Consola del Web</h3> + +<p>La <a href="/en-US/docs/Tools/Web_Console">Consola del Web</a> mostra informació sobre la pàgina Web carregada actualment i també inclou una <a href="/en-US/docs/Tools/Web_Console#The_command_line_interpreter">línia d'ordres</a> que podeu utilitzar per a executar expressions JavaScript a la pàgina actual.</p> + +<p>Per a obrir la Consola del Web, seleccioneu "Web Console" des del menú "Web Developer", que trobareu sota el menú "Tools" a Firefox. Apareixerà a la part de sota de la finestra del navegador. A la part de sota de la consola hi ha la línia d'ordres que podeu utilitzar per a introduir JavaScript, i la sortida apareix al panell de sobre:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7363/web-console-commandline.png" style="display: block; margin-left: auto; margin-right: auto;"></p> + +<h3 id="Scratchpad">Scratchpad</h3> + +<p>La Consola del Web és excel·lent per a executar línies individuals de JavaScript, però tot i que pot executar múltiples línies no és gaire còmoda per a això, i no permet desar mostres de codi. És per això que per a exemples més complexos <a href="/en-US/docs/Tools/Scratchpad">Scratchpad</a> és una eina més adient.</p> + +<p>Per a obrir Scratchpad, seleccioneu "Scratchpad" al menú "Web Developer", que trobareu dins el menú "Tools" al Firefox. S'obre en una finestra separada i consisteix d'un editor que podeu utilitzar per a escriure i executar JavaScript al navegador. També podeu desar scripts al disc i carregar scripts des del disc.</p> + +<p>Si seleccioneu l'opció "Inspect", el codi a l'editor és executat al navegador i els resultats són inserits tot seguit a l'editor en forma de comentari:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/7365/scratchpad.png" style="display: block; margin-left: auto; margin-right: auto;"></p> + +<h3 id="Hola_món">Hola món</h3> + +<p>Per a iniciar-vos a escriure JavaScript, obriu la Consola del Web o bé l'Scratchpad i escriviu el vostre primer codi "Hola món" en JavaScript.</p> + +<pre class="brush: js notranslate">function saluda(user) { + return "Hola " + user; +} + +saluda("Alice"); // "Hola Alice" +</pre> + +<p>A les següents pàgines, aquesta guia us introduirà la sintaxi de JavaScript així com les seves característiques, de manera que sereu capaços d'escriure aplicacions més complexes.</p> + +<p>{{PreviousNext("Web/JavaScript/Guide", "Web/JavaScript/Guide/Grammar_and_types")}}</p> diff --git a/files/ca/web/javascript/index.html b/files/ca/web/javascript/index.html new file mode 100644 index 0000000000..2aef119061 --- /dev/null +++ b/files/ca/web/javascript/index.html @@ -0,0 +1,105 @@ +--- +title: JavaScript +slug: Web/JavaScript +tags: + - JavaScript + - NeedsTranslation + - References + - TopicStub +translation_of: Web/JavaScript +--- +<div>{{JsSidebar()}}</div> + +<div class="summary"> +<p><strong>JavaScript</strong><sup>®</sup> (tot sovint abreujat com a <strong>JS</strong>) és un llenguatge orientat a objectes, lleuger i interpretat, amb <a href="https://en.wikipedia.org/wiki/First-class_functions" title="https://en.wikipedia.org/wiki/First-class_functions">funcions de primera classe</a>, més conegut per ser el llenguatge d'scripting per a pàgines Web, però també <a class="external" href="http://en.wikipedia.org/wiki/JavaScript#Uses_outside_web_pages">utilitzat en molts àmbits fora d'un navegador web</a> com ara <a class="external" href="http://nodejs.org/">node.js</a> o <a href="http://couchdb.apache.org">Apache CouchDB</a>. Es tracta d'un llenguatge d'scripting multi-paradigma, <a class="mw-redirect" href="https://en.wikipedia.org/wiki/Prototype-based" title="Prototype-based">basat en prototipus</a>, que és dinamic i suporta estils de programació funcional, imperativa i orientada a objectes. Llegiu més <a href="/ca/docs/Web/JavaScript/About_JavaScript">sobre JavaScript</a>.</p> +</div> + +<p>El standard JavaScript és <a href="/ca/docs/JavaScript/Language_Resources">ECMAScript</a>. A l'any 2012, tots els navegadors moderns suporten plenament l'ECMAScript 5.1. Navegadors més vells suporten com a mínim l'ECMAScript 3. Una sisena gran revisió del standard està en procés i s'espera que estigui enllestida al voltant de mitjans de 2015.</p> + +<p>Aquesta secció del lloc Web està dedicada al llenguatge JavaScript en si mateix, les parts que no són específiques per a pàgines Web o d'altres entorns que l'acullen. Per a més informació sobre les APIs específiques per a pàgines Web, vegeu <a href="/ca/docs/Web/API">APIs Web</a> i <a href="/ca/docs/Glossary/DOM">DOM</a>.</p> + +<p>És important no confondre JavaScript amb el <a href="http://en.wikipedia.org/wiki/Java_(programming_language)">llenguatge de programació Java</a>. Java és una marca comercial o marca enregistrada pertanyent a Oracle als Estats Units d'Amèrica i d'altres països.</p> + +<div class="column-container"> +<div class="column-half"> +<h2 id="Creating" name="Creating">Tutorials</h2> + +<p>Apreneu com programar en JavaScript.</p> + +<h3 id="Nivell_introductori">Nivell introductori</h3> + +<dl> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Guide">Guia de JavaScript</a></dt> + <dd>Si sou nous quant a JavaScript, aquesta guia recorre el llenguatge.</dd> + <dt><a href="/ca/docs/Web/JavaScript/JavaScript_technologies_overview">Resum de tecnologies de JavaScript</a></dt> + <dd>Introducció al món de JavaScript dins el navegador web.</dd> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introducció al JavaScript Orientat a Objectes</a></dt> + <dd>Introducció als conceptes de programació orientada a objectes en JavaScript.</dd> +</dl> + +<h3 id="Nivell_intermig">Nivell intermig</h3> + +<dl> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/A_re-introduction_to_JavaScript">Una re-introducció a JavaScript</a></dt> + <dd>Un resum per a aquells que <em>creuen</em> que ja ho saben tot sobre JavaScript.</dd> +</dl> + +<dl> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Data_structures">Estructures de dades de JavaScript</a></dt> + <dd>Resum de les estructures de dades disponibles a JavaScript.</dd> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Equality_comparisons_and_when_to_use_them">Comparacions d'equitat i quan utilitzar-les</a></dt> + <dd>JavaScript proporciona dos operacions diferents per a comparar valors: l'igualtat estricta mitjançant <code>===</code> i l'igualtat relaxada mitjançant <code>==.</code></dd> +</dl> + +<h3 id="Nivell_avançat">Nivell avançat</h3> + +<dl> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain">Herència i la cadena de prototipus</a></dt> + <dd>Explicació de l'herència basada en prototipus, tot sovint malentesa i poc valorada.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Strict_mode">El mode estricte</a></dt> + <dd>Una variant restringida de JavaScript.</dd> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Typed_arrays">Arrays amb tipus a JavaScript</a></dt> + <dd>Les arrays amb tipus de JavaScript proporcionen un mecanisme per a accedir a dades binàries sense tractar.</dd> + <dt><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Memory_Management">Manegament de Memòria</a></dt> + <dd>El cicle de vida de la memòria i la recolecció de la brossa a JavaScript.</dd> +</dl> +</div> + +<div class="column-half"> +<h2 id="Referència">Referència</h2> + +<p>Navegue per la documentació de <a href="/ca/docs/Web/JavaScript/Reference">referència de JS</a> complerta.</p> + +<dl> + <dt><a href="/ca/docs/Web/JavaScript/Referencia/Objectes_standard">Objectes standard</a></dt> + <dd>Conegueu els objectes standard proporcionats per JavaScript <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Array" title="The JavaScript Array global object is a constructor for arrays, which are high-level, list-like objects."><code>Array</code></a></code>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Boolean" title="The Boolean object is an object wrapper for a boolean value."><code>Boolean</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Date" title="Creates a JavaScript Date instance that represents a single moment in time. Date objects are based on a time value that is the number of milliseconds since 1 January, 1970 UTC."><code>Date</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Error" title="The Error constructor creates an error object. Instances of Error objects are thrown when runtime errors occur. The Error object can also be used as a base objects for user-defined exceptions. See below for standard built-in error types."><code>Error</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Function" title="The Function constructor creates a new Function object. In JavaScript every function is actually a Function object."><code>Function</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/JSON" title="The JSON object contains methods for parsing JavaScript Object Notation (JSON) and converting values to JSON. It can't be called or constructed, and aside from its two method properties it has no interesting functionality of its own."><code>JSON</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Math" title="Math is a built-in object that has properties and methods for mathematical constants and functions. Not a function object."><code>Math</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Number" title="The Number JavaScript object is a wrapper object allowing you to work with numerical values. A Number object is created using the Number() constructor."><code>Number</code></a>, <a href="/ca/docs/Web/JavaScript/Reference/Global_Objects/Object"><code>Object</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/RegExp" title="The RegExp constructor creates a regular expression object for matching text with a pattern."><code>RegExp</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/String" title="The String global object is a constructor for strings, or a sequence of characters."><code>String</code></a>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/Map" title="The Map object is a simple key/value map. Any value (both objects and primitive values) may be used as either a key or a value."><code>Map</code></a>, <code><a href="/ca/docs/Web/JavaScript/Reference/Global_Objects/Set">Set</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/WeakMap" title="The WeakMap object is a collection of key/value pairs in which the keys are objects and the values can be arbitrary values."><code>WeakMap</code></a></code>, <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Global_Objects/WeakSet" title="The WeakSet object lets you store weakly held objects in a collection."><code>WeakSet</code></a>, i d'altres.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Operators">Expressions i operadors</a></dt> + <dd>Apreneu més sobre el comportament dels operadors de JavaScript <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Operators/instanceof">instanceof</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Operators/new">new</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Operators/this">this</a></code>, i més.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Statements">Sentències i declaracions</a></dt> + <dd>Apreneu com funcionen les sentències <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/do...while">do-while</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/for...in">for-in</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/for...of">for-of</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/try...catch">try-catch</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/let">let</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/var">var</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/const">const</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/if...else">if-else</a></code>, <code><a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Reference/Statements/switch">switch</a></code>, així com d'altres sentències i paraules clau de JavaScript.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Functions">Funcions</a></dt> + <dd>Apreneu com treballar amb funcions a JS per a desenvolupar aplicacions.</dd> +</dl> + +<h2 id="Eines_i_recursos">Eines i recursos</h2> + +<p>Eines útils per a escriure i depurar codi JavaScript.</p> + +<dl> + <dt><a href="/ca/docs/Tools">Firefox Developer Tools</a></dt> + <dd><a href="/ca/docs/Tools/Scratchpad">Scratchpad</a>, <a href="/ca/docs/Tools/Web_Console">Web Console</a>, <a href="/ca/docs/Tools/Profiler">JavaScript Profiler</a>, <a href="/ca/docs/Tools/Debugger">Debugger</a>, i més.</dd> + <dt><a class="external" href="http://www.getfirebug.com/">Firebug</a></dt> + <dd>Editeu, depureu i controleu CSS, HTML i JavaScript en directe a qualsevol pàgina web.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Shells">Consoles JavaScript</a></dt> + <dd>Les consoles JavaScript permeten provar ràpidament bocins de codi JavaScript.</dd> + <dt><a href="https://togetherjs.com/">TogetherJS</a></dt> + <dd> + <p class="hero-header-text large">Colaborar de forma senzilla.</p> + </dd> + <dt><a href="http://stackoverflow.com/questions/tagged/javascript">Stack Overflow</a></dt> + <dd>Preguntes a Stack Overflow amb l'etiqueta "JavaScript".</dd> + <dt><a href="/ca/docs/Web/JavaScript/New_in_JavaScript">Versions de JavaScript i notes de versió</a></dt> + <dd>Navegeu per l'històric de característiques de JavaScript així com l'estat de la seva implementació.</dd> +</dl> +</div> +</div> diff --git a/files/ca/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/ca/web/javascript/inheritance_and_the_prototype_chain/index.html new file mode 100644 index 0000000000..d4c5aee693 --- /dev/null +++ b/files/ca/web/javascript/inheritance_and_the_prototype_chain/index.html @@ -0,0 +1,299 @@ +--- +title: Herència i la cadena de prototipus +slug: Web/JavaScript/Inheritance_and_the_prototype_chain +tags: + - Avançat + - Guía + - Herencia + - JavaScript + - OOP +translation_of: Web/JavaScript/Inheritance_and_the_prototype_chain +--- +<div>{{jsSidebar("Advanced")}}</div> + +<p>JavaScript pot resultar una mica confús per als desenvolupadors amb experiència en llenguatges bassats en classes (com ara Java o C++), ja que al ser un llenguatge dinàmic no proporciona una implementació de <code>class</code> per se (la paraula clau <code>class</code> va ser introduïda al ES2015, però sintàcticament és irrellevant, JavaScript continua essent basat en prototipus).</p> + +<p>En quant a l'herència, JavaScript només disposa d'una construcció: objectes. Cada objecte té una propietat privada (referida com a [[Prototipus]]) que conté un un enllaç a un altre objecte, anomenat el seu <strong>prototipus</strong>. Aquest objecte prototipus també té el seu propi prototipus, i així es crea una cadena fins que s'arriba a un objecte que tingui <code>null</code> com a prototipus. <code>null</code>, per definició, no te prototipus, i actua com a enllaç final en aquesta <strong>cadena de prototipus</strong>.</p> + +<p>Gairebé tots els objectes en JavaScript són instàncies de {{jsxref("Object")}}, que resta al principi de la cadena de prototipus.</p> + +<p>Encara que això es consideri freqüentment com a un dels punts dèbils de JavaScript, el model d'herència basat en prototipus és, de fet, més potent que el model clàssic. És, per exemple, força senzill construir un model clàssic mitjançant un model basat en prototipus.</p> + +<h2 id="Herència_mitjançant_la_cadena_de_prototipus">Herència mitjançant la cadena de prototipus</h2> + +<h3 id="Propietats_heretades">Propietats heretades</h3> + +<p>Els objectes a JavaScript són "bosses" dinàmiques de propietats (referenciades com a <strong>propietats pròpies</strong>). Els objectes a JavaScript tenen una referènia a un objecte prototipus. A l'hora d'intentar accedir a una propietat d'un objecte, no només es cercarà la propietat dins l'objecte mateix, sinò també al prototipus de l'objecte, el prototipus del prototipus, i així fins a que o bé es trobi la propietat amb el nom que es buscava o bé es troba el final de la cadena de prototipus.</p> + +<div class="note"> +<p>Tot seguint l'standard ECMAScript, utilitzem la notació <code>unObjecte.[[Prototipus]]</code> per a designar el prototipus de <code>unObjecte</code><code>.</code> Des de l'ECMAScript 2015, el [[Prototipus]] és accedit utilitzant les funcions d'accés {{jsxref("Object.getPrototypeOf()")}} i {{jsxref("Object.setPrototypeOf()")}}. El resultat és el mateix que el d'utilitzar la propietat <code>__proto__</code> que no és estàndard però l'implementen la majoria de navegadors. </p> + +<p>No s'ha de confondre amb la propietat <em>func</em>.prototype de les funcions, que especifica el [[Prototipus]] que s'assigna a totes les <em>instàncies </em>dels objectes creats per una funció quan aquesta s'utilitza com a constructora. La propietat <strong>Object.prototype</strong> representa l'objecte prototipus {{jsxref("Object")}}.</p> +</div> + +<p>A continuació es mostra el que succeeix quan s'intenta accedir a una propietat:</p> + +<pre class="brush: js">// Assumim que disposem de l'objecte o, amb les seves pròpies propietats a i b: +// {a: 1, b: 2} +// o.[[Prototipus]] té les propietats b i c: +// {b: 3, c: 4} +// Finalment, o.[[Prototipus]].[[Prototipus]] és null. +// Aquest és el final de la cadena de prototipus ja que null, +// per definició, no té [[Prototipus]]. +// Aleshores, la cadena de prototipus sencera és la següent: +// {a:1, b:2} ---> {b:3, c:4} ---> null + +console.log(o.a); // 1 +// Hi ha una propietat 'a' pròpia a l'objecte o? Sí, i el seu valor és 1. + +console.log(o.b); // 2 +// Hi ha una propietat 'b' pròpia a l'objecte o? Sí, i el seu valor és 2. +// El prototipus també té una propietat 'b', però aquest no s'arriba a visitar. +// Aquest fenòmen es coneix com a "property shadowing" + +console.log(o.c); // 4 +// Hi ha una propietat 'c' pròpia a l'objecte o? No, cerca-la al seu prototipus. +// Hi ha una propietat 'c' pròpia a o[[Prototipus]]? Sí, i el seu valor és 4. + +console.log(o.d); // undefined +// Hi ha una propietat 'd' pròpia a l'objecte o? No, cerca-la al seu prototipus. +// Hi ha una propietat 'd' pròpia a o[[Prototipus]]? No, cerca-la al seu prototipus. +// o.[[Prototipus]].[[Prototipus]] és null, atura la cerca, +// no s'ha trobat la propietat, retornem undefined +</pre> + +<p>Assignar una propietat a un objecte crea una propietat pròpia. L'única excepció al les regles de comportament d'assignació i obtenció és quan hi ha una propietat heretada que disposa d'un <a href="/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters" title="Defining Getters and Setters">getter o un setter</a>.</p> + +<h3 id="Herència_de_mètodes">Herència de "mètodes"</h3> + +<p>JavaScript no té "mètodes" de la manera en que els llenguatges bassats en classes els defineixen. En JavaScript, qualsevol funció pot ser afegida a un objecte com a propietat. Una funció heretada actua com qualsevol altra propietat, incloent <em>shadowing</em> de propietats, tal i com es mostra més amunt (en aquest cas, una forma de <em>sobreescritura de mètodes</em>).</p> + +<p>Quan s'executa una funció heretada, el valor de <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this" title="this"><code>this</code></a> passa a apuntar a l'objecte que l'hereta, no a l'objecte prototipus al qual la funció pertany com a propietat pròpia.</p> + +<pre class="brush: js">var o = { + a: 2, + m: function(b){ + return this.a + 1; + } +}; + +console.log(o.m()); // 3 +// Al cridar a o.m en aquest cas, 'this' fa referència a o + +var p = Object.create(o); +// p és un objecte que hereta de o + +p.a = 12; // crea una propietat pròpia 'a' a l'objecte p +console.log(p.m()); // 13 +// quan es crida p.m 'this' fa referència a p. +// Així quan p hereta la funció m de o, +// 'this.a' s'avalua com a p.a, la propietat pròpia 'a' de p +</pre> + +<h2 id="Formes_diferents_de_crear_objectes_i_la_cadena_de_prototipus_resultant">Formes diferents de crear objectes i la cadena de prototipus resultant</h2> + +<h3 id="Crear_objectes_amb_sintaxi_de_construcció">Crear objectes amb sintaxi de construcció</h3> + +<pre class="brush: js">var o = {a: 1}; + +// L'objecte recentment creat o té Object.prototype com al seu [[Prototipus]] +// o no te cap propietat pròpia anomenada 'hasOwnProperty' +// hasOwnProperty és una propietat pròpia de Object.prototype. +// Així o hereta hasOwnProperty de Object.prototype +// El prototipus de Object.prototype val null. +// o ---> Object.prototype ---> null + +var a = ["yo", "whadup", "?"]; + +// Els Arrays hereten de Array.prototype +// (el qual té mètodes com ara indexOf, forEach, etc.) +// La cadena de prototipus té la forma següent: +// a ---> Array.prototype ---> Object.prototype ---> null + +function f(){ + return 2; +} + +// Les funcions hereten de Function.prototype +// (que té mètodes com ara call, bind, etc.) +// f ---> Function.prototype ---> Object.prototype ---> null +</pre> + +<h3 id="Crear_objectes_mitjançant_un_constructor">Crear objectes mitjançant un constructor</h3> + +<p>En JavaScript, una "constructora" és "simplement" una funció que es crida amb l'<a href="/en-US/docs/Web/JavaScript/Reference/Operators/new" title="new">operador new</a>.</p> + +<pre class="brush: js">function Graph() { + this.vertices = []; + this.edges = []; +} + +Graph.prototype = { + addVertex: function(v){ + this.vertices.push(v); + } +}; + +var g = new Graph(); +// g és un objecte amb propietats pròpies 'vertices' i 'edges'. +// g.[[Prototipus]] és el valor de Graph.prototype quan s'executa new Graph(). +</pre> + +<h3 id="Crear_objectes_mitjançant_Object.create">Crear objectes mitjançant <code>Object.create</code></h3> + +<p>ECMAScript 5 va introduïr un nou mètode: {{jsxref("Object.create()")}}. Cridar aquest mètode crea un nou objecte. El prototipus d'aquest objecte es el primer argument de la funció:</p> + +<pre class="brush: js">var a = {a: 1}; +// a ---> Object.prototype ---> null + +var b = Object.create(a); +// b ---> a ---> Object.prototype ---> null +console.log(b.a); // 1 (heretat) + +var c = Object.create(b); +// c ---> b ---> a ---> Object.prototype ---> null + +var d = Object.create(null); +// d ---> null +console.log(d.hasOwnProperty); +// undefined, perque d no hereta de Object.prototype +</pre> + +<div> +<h3 id="Crear_objectes_mitjançant_la_paraula_clau_class">Crear objectes mitjançant la paraula clau <code>class</code></h3> + +<p>ECMAScript 2015 va introduïr un nou conjunt de paraules clau per a implementar <a href="/en-US/docs/Web/JavaScript/Reference/Classes">classes</a>. Encara que aquestes construccions s'assemblen a les que es poden trobar en llenguatges bassats en classes, no són iguals. JavaScript continua sent un llenguatge bassat en prototipus. Les noves paraules clau inclouen {{jsxref("Statements/class", "class")}}, {{jsxref("Classes/constructor", "constructor")}}, {{jsxref("Classes/static", "static")}}, {{jsxref("Classes/extends", "extends")}}, i {{jsxref("Operators/super", "super")}}.</p> + +<pre class="brush: js">"use strict"; + +class Polygon { + constructor(height, width) { + this.height = height; + this.width = width; + } +} + +class Square extends Polygon { + constructor(sideLength) { + super(sideLength, sideLength); + } + get area() { + return this.height * this.width; + } + set sideLength(newLength) { + this.height = newLength; + this.width = newLength; + } +} + +var square = new Square(2); +</pre> + +<h3 id="Rendiment">Rendiment</h3> + +<p>El temps que es triga a resoldre propietats que estan lluny dins la cadena de prototipups pot tenir un impacte negatiu en el rendiment, i aquest impacte pot ser significatiu en parts del codi on el rendiment és crític. A més, intentar accedir a propietats que no existeixen sempre atravessarà totalment la cadena de prototipus.</p> + +<p>Adicionalment, quan s'itera sobre propietats d'un objecte, <strong>totes</strong> les propietats enumerables de la cadena de prototipus seran enumerades.</p> + +<p>Per a comprovar si un objecte té una propietat definida <em>en si mateix</em> (pròpia) en comptes de heretada de la cadena de prototipus, s'ha d'utilitzar el mètode <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" title="/ru/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"><code>hasOwnProperty</code></a>, el qual és heretat per tots els objectes mitjançant <code>Object.prototype</code>.</p> + +<p><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty" title="/ru/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">hasOwnProperty</a></code> és l'únic element de JavaScript que treballa amb propietats i <strong>no</strong> recorre la cadena de prototipus.</p> +Nota: <strong>No n'hi ha prou</strong> amb comprovar si una propietat és <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined"><code>undefined</code></a>. La propietat pot existir perfectament, però tenir assignat el valor <code>undefined</code>.</div> + +<h3 id="sect1"> </h3> + +<h3 id="Males_pràctiques_Extensió_de_prototipus_nadius">Males pràctiques: Extensió de prototipus nadius</h3> + +<p>Una característica que sovint es mal utilitza és extendre <code>Object.prototype</code> o qualsevol altre prototipus nadiu.</p> + +<p>Aquesta tècnica, anomenada <em>monkey patching</em>, trenca l'<em>encapsulació</em>. Malgrat ser utilitzada per llibreries populars, com ara Prototype.js, no hi ha cap bona raó per saturar els tipus nadius amb funcionalitats no estàndards.</p> + +<p>La <strong>única</strong> possible bona raó per a extendre un prototipus nadiu és per a afegir característiques dels nous motors de JavaScript no suportades per motors més antics (funcions <em>polifill</em>), com ara <code>Array.forEach</code>.</p> + +<h2 id="Exemple">Exemple</h2> + +<p><code>B</code> hauria d'heretar de <code>A</code>:</p> + +<pre class="brush: js">function A(a){ + this.varA = a; +} + +// Quin és el propòsit d'incloure varA al prototipus quan A.prototype.varA <em>sempre </em>estarà amagat (<em>shadowed</em>) per +// this.varA, donada la definició de la funció A de dalt? +A.prototype = { + varA : null, // No hauriem de treure varA del prototipus ja que no fa res? + // potser es tracta d'una optimització per a reservar espai a classes ocultes? + // https://developers.google.com/speed/articles/optimizing-javascript#Initializing instance variables + // seria vàlid si varA no s'inicialitzés de forma única per a cada instància + doSomething : function(){ + // ... + } +} + +function B(a, b){ + A.call(this, a); + this.varB = b; +} +B.prototype = Object.create(A.prototype, { + varB : { + value: null, + enumerable: true, + configurable: true, + writable: true + }, + doSomething : { + value: function(){ // sobreescriu + A.prototype.doSomething.apply(this, arguments); // crida a super + // ... + }, + enumerable: true, + configurable: true, + writable: true + } +}); +B.prototype.constructor = B; + +var b = new B(); +b.doSomething(); +</pre> + +<p>Les parts importants són:</p> + +<ul> + <li>Els tipus es defineixen a <code>.prototype</code></li> + <li>S'utilitza <code>Object.create()</code> per a heretar</li> +</ul> + +<h2 id="prototype_i_Object.getPrototypeOf"><code>prototype</code> i <code>Object.getPrototypeOf</code></h2> + +<p>JavaScript pot resultar una mica confús per a desenvolupadors que vinguin de Java o C++ degut a que és completament dinàmic, tot succeeix en temps d'execució i no té classes. Només té instàncies (objectes). Fins i tot les "classes" que simulem són simplement un objecte de tipus funció.</p> + +<p>Potser ja us heu adonat que la nostra funció <code>A</code> té una propietat especial anomenada <code>prototype</code>. Aquesta propietat especial funciona en conjunció amb l'operador de JavaScript <code>new</code>. La referència a l'objecte prototipus es copia a la propietat interna <code>[[Prototype]]</code> de la nova instància. Per exemple, amb el codi <code>var a1 = new A()</code>, JavaScript (després de crear l'objecte en memòria però abans d'executar la funció <code>A()</code> amb <code>this</code> definit i apuntant a si mateixa) assigna <code>a1.[[Prototype]] = A.prototype</code>. Després, quan accedim a les propietats de la instància, JavaScript primer comprova si aquestes existeixen dins l'objecte mateix i, en cas contrari, les cerca dins el <code>[[Prototipus]]</code>. Això implica que tot allò que es defineix al <code>prototype</code> és compartit per totes les instàncies, i més tard es poden canviar parts de <code>prototype</code> de forma que els canvis afectaran a totes les instàncies que existeixen, si es vol.</p> + +<p>Si, a l'exemple anterior, s'executa <code>var a1 = new A(); var a2 = new A();</code> llavors <code>a1.doSomething</code> faria referència en realitat a <code>Object.getPrototypeOf(a1).doSomething</code>, que és el mateix que <code>A.prototype.doSomething</code> que heu definit, per exemple, <code>Object.getPrototypeOf(a1).doSomething == Object.getPrototypeOf(a2).doSomething == A.prototype.doSomething</code>.</p> + +<p>Resumint, <code>prototype</code> és per als tipus mentre que <code>Object.getPrototypeOf()</code> és el mateix per les instàncies.</p> + +<p><code>[[Prototype]]</code> s'accedeix <em>de forma recursiva</em>, per exemple: <code>a1.doSomething</code>, <code>Object.getPrototypeOf(a1).doSomething</code>, <code>Object.getPrototypeOf(Object.getPrototypeOf(a1)).doSomething</code> etc., fins que es troba o bé <code>Object.getPrototypeOf retorna null</code>.</p> + +<p>Així, quan cridem:</p> + +<pre class="brush: js">var o = new Foo();</pre> + +<p>JavaScript simplement executa:</p> + +<pre class="brush: js">var o = new Object(); +o.[[Prototype]] = Foo.prototype; +Foo.call(o);</pre> + +<p>(o quelcom similar) i quan després executem:</p> + +<pre class="brush: js">o.someProp;</pre> + +<p>comprova si <code>o</code> té definida la propietat <code>someProp</code>. En cas que no, comprova <code>Object.getPrototypeOf(o).someProp</code> i si aquesta tampoc existeix llavors comprova <code>Object.getPrototypeOf(Object.getPrototypeOf(o)).someProp</code>, etcètera.</p> + +<div> +<h2 id="Conclusions">Conclusions</h2> + +<p>Resulta <strong>essencial</strong> entendre el model d'herència basat en prototipus abans de començar a escriure codi complex que es basi en ell. Així mateix, és important tenir en compte la longitud de la cadena de prototipus dins el nostre codi i trencar-la en cas necesari, per a evitar possibles problemes de rendiment. A més els prototipus natius no s'haurien d'extendre <strong>mai</strong> a no ser que el motiu sigui afegir compatibilitat amb característiques més modernes de JavaScript.</p> +</div> diff --git a/files/ca/web/javascript/introducció_al_javascript_orientat_a_objectes/index.html b/files/ca/web/javascript/introducció_al_javascript_orientat_a_objectes/index.html new file mode 100644 index 0000000000..6e5a4e2922 --- /dev/null +++ b/files/ca/web/javascript/introducció_al_javascript_orientat_a_objectes/index.html @@ -0,0 +1,361 @@ +--- +title: Introducció al Javascript orientat a Objectes +slug: Web/JavaScript/Introducció_al_Javascript_orientat_a_Objectes +translation_of: Learn/JavaScript/Objects +--- +<div>{{jsSidebar("Introductory")}}</div> + +<p>JavaScript és orientat a objectes des del nucli, amb unes capacitats potents, flexibles {{Glossary("OOP")}}. Aquest article comença amb la introducció de la programació orientada a objectes, després es revisa el model d'objectes de Javascript, i finalment es mostren els conceptes de la programació orientada a objectes en JavaScript.</p> + +<h2 id="JavaScript_Review" name="JavaScript_Review">Revisió de JavaScript</h2> + +<p>Si no us sentiu segurs amb els conceptes de Javascript com ara variables, tipus, funcions, i àmbits podeu llegir sobre aquests temes en <a href="/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript">Una reintroducció a JavaScript</a>. També podeu consultar la <a href="/en-US/docs/Web/JavaScript/Guide">Guia de JavaScript</a>.</p> + +<h2 id="Object-oriented_programming" name="Object-oriented_programming">Programació orientada a Objectes</h2> + +<p>La programació orientada a Objectes és un paradigma de programació que usa l'abstracció per crear models basants en el món real. Fa servir diverseses tècniques de paradigmes previament establerts, inclosa la modularitat, poliformisme, i l'encapsulament. Avui, moltes llengües de programació (com Java, JavaScript, C#, C++, Python, PHP, Ruby i Objective-C) suporten la programació orientada a Objectes (POO).</p> + +<p>La programació orientada a Objectes es pot entendre com el disseny de software fent servir una col·lecció d'objectes que cooperen, al contrari de la visió tradicional en el qual un programa es vist com una col·lecció de funcions, o simplement com una llista d'instruccions per a un ordinador. En POO, cada objecte és capaç de rebre missatges, processar data, i enviar missatges a altres objectes. Cada objecte pot ser entès com una petita màquina independent amb un rol diferent o amb responsabilitat.</p> + +<p>La programació orientada a Objectes intenta promoure una major flexibilitat, mantenibilitat en programació, i és àmpliament popular en enginyeria de software a gran esala. En virtut de la seva forta èmfasi en modularitat, el codi orientat a objecte intenta ser més simple de desenvolupar i més facil d'entendre després, es presta a una anàlisi més directa, codificació, i comprensió de situacions complexes i procediments en comptes d'altres mètodes de programació menys modulars.<a href="#cite-1"><sup>1</sup></a></p> + +<h2 id="Terminology" name="Terminology">Terminologia</h2> + +<dl> + <dt>{{Glossary("Namespace")}}</dt> + <dd>Un contenidor que permet als desenvolupadors agrupar totes les funcionalitats sota un nom únic d'aplicació específica.</dd> + <dt>{{Glossary("Class")}}</dt> + <dd>Defineix les característiques de l'objecte. És la definició d'una plantilla de variables i mètodes d'un objecte.</dd> + <dt>{{Glossary("Object")}}</dt> + <dd>Una instància d'una classe.</dd> + <dt>{{Glossary("Property")}}</dt> + <dd>Una característca d'un objecte, com ara un color.</dd> + <dt>{{Glossary("Method")}}</dt> + <dd>Una capacitat d'un objecte, com ara caminar. És una subrutina o funció associada amb una classe.</dd> + <dt>{{Glossary("Constructor")}}</dt> + <dd>Un mètode que es crida en el moment d'instanciació d'un objecte. Normalment té el mateix nom que el de la classe que el conté.</dd> + <dt>{{Glossary("Inheritance")}}</dt> + <dd>Una classe pot heretar les característiques d'una altra classe.</dd> + <dt>{{Glossary("Encapsulation")}}</dt> + <dd>Una manera d'agrupar les dades i mètodes que es fan servir juntes.</dd> + <dt>{{Glossary("Abstraction")}}</dt> + <dd>La conjunció d'una herència complexa, mètodes, les propietats d'un objecte, han de ser capaces de simular una realitat a modelar.</dd> + <dt>{{Glossary("Polymorphism")}}</dt> + <dd>Poli significa "<em>molts</em>" i morfisme significa "<em>formes</em>". Classes diferents poden definir el mateix mètode o propietat.</dd> +</dl> + +<p>Per una descripció més extensa sobre la programació orientada a objectes vegeu {interwiki("wikipedia", "Object-oriented programming")}} a la Viquipèdia.</p> + +<h2 id="Programació_basada_en_prototipus">Programació basada en prototipus</h2> + +<p>Programació basat en prototipus és un estil de programació orientada a objectes que no fa ús de les classes. En el seu lloc, la reutilització del comportament (conegut com a herència en llenguatges basats en classes) es porta a terme a través d'un procés de decoració (o d'ampliació) on els objectes que ja existeixen serveixen com a prototipus. Aquest model també és conegut com a model sense classes, orientat a prototip, o programació basadad en instàncies.</p> + +<p>L'exemple original (i més canònic) d'un llenguatge basat en prototipus és el llenguatge de programació {{interwiki("wikipedia", "Self (programming language)", "Self")}} desenvolupat per David Ungar i Randall Smith. Tanmateix, l'estil de programació sense classes s'ha anat fent més i més popular, i ha sigut adoptat per llenguatges de programació com JavaScript, Cecil, NewtonScript, Io, MOO, REBOL, Kevo, Squeak (quan s'utilitza el marc Viewer per manipular components Morphic), i altres.<a href="#cite-1"><sup>1</sup></a></p> + +<h2 id="JavaScript_Object_Oriented_Programming" name="JavaScript_Object_Oriented_Programming">Programació orientada a Objectes de JavaScript</h2> + +<h3 id="Namespace">Namespace</h3> + +<p>Un namespace és un contenidor el qual permet als desenvolupadors agrupar totes les funcionalitats sota un únic, nom d'aplicació específic. <strong>En JavaScript un namespace és només un altre objecte que conté mètodes, propietats, i objectes.</strong></p> + +<div class="note"> +<p><strong>Nota:</strong> Es important remarcar que en JavaScript, no hi ha diferèn<u>cia de nivell d'idioma entre els objectes regulars i els namespace</u>s. Això dista d'altres llenguatges orientats a objectes, i pot resultat confús als programadors nous en JavaScript.</p> +</div> + +<p>La idea darrera la creació d'un namespace en JavaScript és simple: Un objecte global és creat i totes les variables, metòdes, i funcions es converteixen en propietats d'aquest objecte.<u> L'ús de namespaces també minimitza la possibilitat de conflictes de noms en l'aplicació, ja que cada objecte d'aplicació son propietats d'un objecte global d'aplicació definit</u>.</p> + +<p>Creem un objecte global anomenat MYAPP:</p> + +<pre class="brush: js">// global namespace +var MYAPP = MYAPP || {};</pre> + +<p>En el codi de mostra superior, primer hem comprovat si MYAPP ja està definit (ja sigui en el mateix arxiu o en un altre arxiu). En cas de ser així, s'usa l'objecte global MYAPP existent, del contrari es crea un objecte buit anomenat MYAPP el qual encapsula el mètode, funcions, variables, i objectes.</p> + +<p>També podem crear sub-namespaces:</p> + +<pre class="brush: js">// sub namespace +MYAPP.event = {};</pre> + +<p>Abaix es troba la sintaxi de codi per crear un namespace i afegir variables, funcions, i un mètode:</p> + +<pre class="brush: js">// Create container called MYAPP.commonMethod for common method and properties +MYAPP.commonMethod = { + regExForName: "", // define regex for name validation + regExForPhone: "", // define regex for phone no validation + validateName: function(name){ + // Do something with name, you can access regExForName variable + // using "this.regExForName" + }, + + validatePhoneNo: function(phoneNo){ + // do something with phone number + } +} + +// Object together with the method declarations +MYAPP.event = { + addListener: function(el, type, fn) { + // code stuff + }, + removeListener: function(el, type, fn) { + // code stuff + }, + getEvent: function(e) { + // code stuff + } + + // Can add another method and properties +} + +// Syntax for Using addListener method: +MYAPP.event.addListener("yourel", "type", callback);</pre> + +<h3 id="Core_Objects" name="Core_Objects">Objectes estàndards integrats</h3> + +<p>JavaScript té alguns objectes inclosos en el seu nucli, per exemple, trobem objectes come Math, Object, Array, i String. L'exemple d'abaix ens mostra com fer servir l'objecte Math per aconseguir números aleatoris usant el seu mètode <code>random()</code>.</p> + +<pre class="brush: js">console.log(Math.random()); +</pre> + +<div class="note"><strong>Nota:</strong> Aquest i tots els exemples següents suposen que la funció anomenada {{domxref("console.log()")}} es defineix globalment. De fet, la funció <code>console.log()</code> no és part del llenguatge de JavaScript en si, però molts navegadors ho implementen per tal d'ajudar en la depuració.</div> + +<p>Vegeu <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects" title="en-US/docs/Web/JavaScript/Reference/Global_Objects">Referència de JavaScript: Objectes estàndards integrats</a> per una llista d'objectes cor en JavaScript.</p> + +<p>Cada objecte en JavaScript és una instància de l'objecte <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object"><code>Object</code></a> i per tant, n'hereda totes les seves propietats i mètodes.</p> + +<h3 id="Custom_Objects" name="Custom_Objects">Objectes personalitzats</h3> + +<h4 id="The_Class" name="The_Class">La classe</h4> + +<p>JavaScript és un llenguatge basat en prototipus que no conté<u> cap <code>class</code> statement, </u>el qual si que es pot trobar en C++ o Java. Això és confós a vegades per a programadors acostumats a llenguatges amb el <u><code>class</code> statement.</u> En el seu lloc, JavaScript fa servir funcions com a classes. Definir duna classe és tan fàcil com definir una funció. En l'exemple d'abaix definim una nova classe anomenada Person.</p> + +<pre class="brush: js">var Person = function () {}; +</pre> + +<h4 id="The_Object_.28Class_Instance.29" name="The_Object_.28Class_Instance.29">L'objecte (instància de classe)</h4> + +<p>Per crear una nova instància d'un objecte <code>obj</code> fem servir la declaració <code>new obj</code>, assignant el resultat (el qual és de tipus <code>obj</code>) a una variable per accedir-hi més tard. <span style="font-size: 14px; line-height: 1.5;">Una forma alternativa de crear una nova instància és fent servir {{jsxref("Object.create()")}}. Aquesta crearà una instància This will create an <u>uninititalized instance.</u></span></p> + +<p>En l'exemple d'adalt definim una classe anomenada <code>Person</code>. En l'exemple següent creem dues instàncies (<code>person1</code> i <code>person2</code>).</p> + +<pre class="brush: js">var person1 = new Person(); +var person2 = new Person(); +</pre> + +<div class="note"><strong>Nota:</strong> Siusplau vegeu {{jsxref("Object.create()")}} per un mètode instantacional nou, addiccional new, additional, instantiation mètode.</div> + +<h4 id="The_Constructor" name="The_Constructor">El constructor</h4> + +<p>El constructor és cridat en el moment de la instantiation (el moment en que la instància de l'objecte és creat). El constructor és ún mètode de la classe. En JavaScript la funció serveix com el constructor de l'objecte, therefore there is no need to explicitly define a constructor method. Every action declared in the class gets executed at the time of instantiation.</p> + +<p>El constructor es fa servir per establir les propietats de l'objecte o per cridar mè call methods to prepare the object for use. Per afegir mètodes de classes i les seves definicions es necessita una sintaxi diferent que s'explicarà més tard en aquest article.</p> + +<p>En l'exemple d'abaix, el constructor de la classe <code>Person</code> mostra un missatge quan és crea una instànca <code>Person</code>.</p> + +<pre class="brush: js">var Person = function () { + console.log('instance created'); +}; + +var person1 = new Person(); +var person2 = new Person(); +</pre> + +<h4 id="The_Property_.28object_attribute.29" name="The_Property_.28object_attribute.29">La propietat (atribut de l'objecte)</h4> + +<p>Les propietats són variables contingudes en la classe; cada instància de l'objecte té aquestes propietats. Les propietats són asssignades en el constructor (funció) de la classe de forma que es creen en cada instància.</p> + +<p>Per treballar amb propietats de dins de la classe s'utilitza la paraula clau <code>this</code>, que fa referència a l'objecte actual. Accedir (llegir o escriure) a una propietat fora d'aquesta classe es fa mitjançant la sintaxi: <code>InstanceName.Property</code>; Aquesta és la mateixa sintaxi que es fa servir en C++, Java, i numeroses altres llengües. (Dins la classe, la sintaxi <code>this.Property</code> s'utilitza per obtindre o escriure el valor de les propietats.)</p> + +<p>En l'exemple següent definim la propietat <code>firstName</code> property per la classe <code>Person</code> i ho definim com a instanciació.</p> + +<pre class="brush: js">var Person = function (firstName) { + this.firstName = firstName; + console.log('Person instantiated'); +}; + +var person1 = new Person('Alice'); +var person2 = new Person('Bob'); + +// Show the firstName properties of the objects +console.log('person1 is ' + person1.firstName); // logs "person1 is Alice" +console.log('person2 is ' + person2.firstName); // logs "person2 is Bob" +</pre> + +<h4 id="The_methods" name="The_methods">Els mètodes</h4> + +<p>Els mètodes segueixen la mateixa llògica que les propietats; la diferència es que són funcions i estan definides com a funcions. Cridar un mètode és similar a accedir a una propietat, però s'afegeix <code>()</code> al final the nom del mètode, possiblement amb arguments. Per definir un mètode, s'assigna una funció a una propietat amb nom de la propietat de la classe <code>prototype</code>; el nom que s'assigna a la funció és el mateix que el nom que té el mètode en l'objecte.</p> + +<p>En l'exemple següent definim i usem el mètode <code>sayHello()</code> per la classe <code>Person</code>.</p> + +<pre class="brush: js">var Person = function (firstName) { + this.firstName = firstName; +}; + +Person.prototype.sayHello = function() { + console.log("Hello, I'm " + this.firstName); +}; + +var person1 = new Person("Alice"); +var person2 = new Person("Bob"); + +// call the Person sayHello method. +person1.sayHello(); // logs "Hello, I'm Alice" +person2.sayHello(); // logs "Hello, I'm Bob" +</pre> + +<p>En JavaScript els mètodes són funcions normals dels objectes que són lligats a un objecte com una propietat, El que vol dir que poden ser invocats "fora del context". Vegeu el codi d'exemple següent:</p> + +<pre class="brush: js">var Person = function (firstName) { + this.firstName = firstName; +}; + +Person.prototype.sayHello = function() { + console.log("Hello, I'm " + this.firstName); +}; + +var person1 = new Person("Alice"); +var person2 = new Person("Bob"); +var helloFunction = person1.sayHello; + +// logs "Hello, I'm Alice" +person1.sayHello(); + +// logs "Hello, I'm Bob" +person2.sayHello(); + +// logs "Hello, I'm undefined" (or fails +// with a TypeError in strict mode) +helloFunction(); + +// logs true +console.log(helloFunction === person1.sayHello); + +// logs true +console.log(helloFunction === Person.prototype.sayHello); + +// logs "Hello, I'm Alice" +helloFunction.call(person1);</pre> + +<p>Com l'exemple mostra, totes les referències a la funció <code>sayHello</code> — les que existeixen a <code>person1</code>, a <code>Person.prototype</code>, a la variable <code>helloFunction</code>, etc. — fan referència a la <em>mateixa funció</em>. El valor de <code>this</code> durant una crida a la funció depen en com es crida. En el cas comú en que es crida la funció des d'una propietat de l'objecte — <code>person1.sayHello()</code> — <code>this</code> rep el valor de l'objecte d'on prové la propietat (<code>person1</code>), és per això que <code>person1.sayHello()</code> fa servir el nom "Alice" i <code>person2.sayHello()</code> fa servir el nom "Bob". Però si ho cridem d'altres maneres, <code>this</code> rebrà un valor diferent: Cridar-la des d'una variable — <code>helloFunction()</code> — <code>this</code> rep el valor de l'objecte global (<code>window</code>, en navegadors). Al no tenir la propietat <code>firstName aquest </code>objecte (probablement) , acabem amb el resultat "Hello, I'm undefined". (Això és en el mode no estricte; en el <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode" title="/en/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode">mode estricte </a>seria diferent [un error], però per evitar confussions no entrarem aquí en detall.) O podem assignar explícitament el valor de <code>this</code> mitjançant <code>Function#call</code> (o <code>Function#apply</code>), com es mostra al final de l'exemple.</p> + +<div class="note"><strong>Nota:</strong> Vegeu més sobre <code>this</code> a <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call">Function#call</a> i <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply">Function#apply</a></div> + +<h4 id="Inheritance" name="Inheritance">L'herència</h4> + +<p>L'herència és una manera de crear una classe com una versió especialitzada d'una o més classes (<em>JavaScript només suporta l'herència única</em>). La classe especialitzada és communment anomenada el <em>fill</em>, i l'altra classe es comunment anomenada el <em>pare</em>. En JavaScript això s'aconsegueix mitjançant l'assignació d'una instància de la classe pare a la classe fill, i després s'especialitza. En navegadors moderns també es pot usar <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Classical_inheritance_with_Object.create" title="/en-US/docs/JavaScript/Reference/Global_Objects/Object/create#Classical_inheritance_with_Object.create">Object.create</a> per implementar herències.</p> + +<div class="note"> +<p><strong>Nota:</strong> JavaScript does no detecta la classe fill <code>prototype.constructor</code> (vegeu <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype">Object.prototype</a>), així que ho hem de declarar manualment.</p> +</div> + +<p>En l'exemple d'abaix, definim la classe <code>Student</code> com una classe fill de <code>Person</code>. Després redefinim el mètode <code>sayHello()</code> i afegim el mètode <code>sayGoodBye()</code>.</p> + +<pre class="brush: js">// Define the Person constructor +var Person = function(firstName) { + this.firstName = firstName; +}; + +// Add a couple of methods to Person.prototype +Person.prototype.walk = function(){ + console.log("I am walking!"); +}; + +Person.prototype.sayHello = function(){ + console.log("Hello, I'm " + this.firstName); +}; + +// Define the Student constructor +function Student(firstName, subject) { + // Call the parent constructor, making sure (using Function#call) + // that "this" is set correctly during the call + Person.call(this, firstName); + + // Initialize our Student-specific properties + this.subject = subject; +}; + +// Create a Student.prototype object that inherits from Person.prototype. +// Note: A common error here is to use "new Person()" to create the +// Student.prototype. That's incorrect for several reasons, not least +// that we don't have anything to give Person for the "firstName" +// argument. The correct place to call Person is above, where we call +// it from Student. +Student.prototype = Object.create(Person.prototype); // See note below + +// Set the "constructor" property to refer to Student +Student.prototype.constructor = Student; + +// Replace the "sayHello" method +Student.prototype.sayHello = function(){ + console.log("Hello, I'm " + this.firstName + ". I'm studying " + + this.subject + "."); +}; + +// Add a "sayGoodBye" method +Student.prototype.sayGoodBye = function(){ + console.log("Goodbye!"); +}; + +// Example usage: +var student1 = new Student("Janet", "Applied Physics"); +student1.sayHello(); // "Hello, I'm Janet. I'm studying Applied Physics." +student1.walk(); // "I am walking!" +student1.sayGoodBye(); // "Goodbye!" + +// Check that instanceof works correctly +console.log(student1 instanceof Person); // true +console.log(student1 instanceof Student); // true +</pre> + +<p>Pel que fa a la línia <code>Student.prototype = Object.create(Person.prototype)</code>: En els motors de Javascript més antics sense <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" title="Object.create"><code>Object.create</code></a>, es pot utilitzar tant un "polyfill" (també conegut com a "falca", vegeu l'article enllaçat), o fer servir una funció que aconegueixi assolir el mateix resultat, tal com:</p> + +<pre class="brush: js">function createObject(proto) { + function ctor() { } + ctor.prototype = proto; + return new ctor(); +} + +// Usage: +Student.prototype = createObject(Person.prototype); +</pre> + +<div class="note"><strong>Nota:</strong> Vegeu <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" title="Object.create">Object.create</a> per més informació sobre el que fa, i una falca per a motors més vells.</div> + +<h4 id="Encapsulation" name="Encapsulation">L'encapsulació</h4> + +<p>En l'exemple anterior, <code>Student</code> no necessita saber com el mètode <code>Person</code> class's <code>walk()</code> és implementat, però tot i així pot fer-lo servir com a mètode; la classe <code>Student</code>no necessita definir explícitament aquest mètode a no ser que ho volguem canviar. D'això se'n diu <strong>encapsulació</strong>, per la qual cada classe empaqueta data i mètodes en una sola unitat.</p> + +<p>L'ocultació d'informació és una característica comuna en altres llenguatges sovint com a mètodes/propietats privats i protegits. Tot i que es podria simular alguna cosa com aquesta en JavaScript, no és un requeriment per fer programació orientada a objectes.<a href="#cite-2"><sup>2</sup></a></p> + +<h4 id="Abstraction" name="Abstraction">L'abstracció</h4> + +<p>L'abstracció és un mecanisme que permet modelar la part que ens ocupa del problema en el qual estem treballant. Això es pot aconseguir per mitjar de l'herència (especialització), o composició. JavaScript aconsegueix l'especialització per mitjà de l'herència, i la composició per mitjà de deixar a les instàncies de classes ser valors d'atributs d'altres objectes.</p> + +<p>La classe Function de JavaScript hereta de la classe Object (això demostra la especialització del model) i la propietat Function.prototype property és una instància d'Object (Això demostra composició).</p> + +<pre class="brush: js">var foo = function () {}; + +// logs "foo is a Function: true" +console.log('foo is a Function: ' + (foo instanceof Function)); + +// logs "foo.prototype is an Object: true" +console.log('foo.prototype is an Object: ' + (foo.prototype instanceof Object));</pre> + +<h4 id="Polymorphism" name="Polymorphism">El polimorfisme</h4> + +<p>Tal i com tots els mètodes i propietats són definides dins la propietat Prototype, classes diferents poden definir mètodes amb el mateix nom; els mètodes estan en l'àmbit de la classe en la qual estan definits. Això només és cert quan les dues classes no tenen una relació pare-fill (quan un no hereta de l'altre en una cadena d'herència).</p> + +<h2 id="Notes" name="Notes">Notes</h2> + +<p>Les tècniques presentades en aquesta article per implementar programació orientada a objectes no són les úniques que es poden fer servir en JavaScript, que és molt flexible en termes de com es pot realitzar la programació orientada a objectes.</p> + +<p>De la mateixa manera, les tècniques que s'han mostrat aquí no utilitzen cap <em>hack</em> del llenguatge, ni imiten cap implementació de teories d'objectes d'altres llenguatges.</p> + +<p>Hi ha altres tècniques que proporcionen programació orientada a objectes més avançada en JavaScript, però aquests estan fora de l'abast d'aquest article introductori.</p> + +<h2 id="References" name="References">Referències</h2> + +<ol> + <li><a name="cite-1"></a>Viquipèdia. "<a href="http://ca.wikipedia.org/wiki/Programaci%C3%B3_orientada_a_objectes">Programació orientada a Objectes</a>"</li> + <li><a name="cite-2"></a>Viquipèdia. "<a href="http://ca.wikipedia.org/wiki/Encapsulaci%C3%B3">Encapsulació (programació orientada a Objectes)</a>"</li> +</ol> diff --git a/files/ca/web/javascript/language_resources/index.html b/files/ca/web/javascript/language_resources/index.html new file mode 100644 index 0000000000..843ee185e4 --- /dev/null +++ b/files/ca/web/javascript/language_resources/index.html @@ -0,0 +1,98 @@ +--- +title: Recursos pel llenguatge JavaScript +slug: Web/JavaScript/Language_Resources +translation_of: Web/JavaScript/Language_Resources +--- +<div>{{JsSidebar()}}</div> + +<p><strong>ECMAScript</strong> és el llenguatge que forma el nucli de <a href="/en-US/docs/JavaScript">JavaScript</a>. ECMAScript és un standard definit per la organització d'standards <a href="http://www.ecma-international.org/" title="http://www.ecma-international.org/">Ecma International</a> sota les <strong>especificacions ECMA-262 i ECMA-402.</strong> Els següents standards de ECMAScript han sigut aprovats:</p> + +<table class="standard-table"> + <tbody> + <tr> + <th>Nom</th> + <th>Enllaços</th> + <th>Data</th> + <th>Descripció</th> + </tr> + <tr> + <td>ECMA-262 Edició 5.1</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">PDF</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/">HTML</a></td> + <td>Juny 2011</td> + <td> + <p>ECMAScript 5.1, l'última revisió publicada de la Especificació del Llenguatge.</p> + + <p>Aquesta versió està en sincronia amb la 3a edició de l'standard internacional <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=55755">ISO/IEC 16262:2011</a>.<br> + Inclou esmenes a errades al ES5, però cap característica adicional.</p> + </td> + </tr> + <tr> + <td>ECMA-402</td> + <td><a href="http://ecma-international.org/ecma-402/1.0/ECMA-402.pdf">PDF</a>, <a href="http://ecma-international.org/ecma-402/1.0/index.html">HTML</a></td> + <td>Desembre 2012</td> + <td>API d'internacionalització de l'ECMAScript.</td> + </tr> + <tr> + <td>ECMA-357 Edició 2</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-357.pdf">PDF</a></td> + <td>Desembre 2005</td> + <td><a href="/en-US/docs/E4X" title="E4X">ECMAScript for XML (E4X)</a>.</td> + </tr> + <tr> + <th colspan="4">Edicions obsoletes</th> + </tr> + <tr> + <td>ECMA-262</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf">PDF</a></td> + <td>Juny 1997</td> + <td>L'standard original d'ECMAScript.</td> + </tr> + <tr> + <td>ECMA-262 Edició 2</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%202nd%20edition,%20August%201998.pdf">PDF</a></td> + <td>Agost 1998</td> + <td>La segona revisió de l'standard ECMAScript; també conegut com a standard ISO 16262.</td> + </tr> + <tr> + <td>ECMA-262 Edició 3</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf">PDF</a></td> + <td>Desembre 1999</td> + <td>La tercera revisió de l'standard ECMAScript; es correspon a la versió 1.5 de JavaScript.<br> + Vegeu també la <a href="http://www.mozilla.org/js/language/E262-3-errata.html">fe d'errades</a>.</td> + </tr> + <tr> + <td>ECMA-262 Edició 5</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262%205th%20edition%20December%202009.pdf">PDF</a></td> + <td>Desembre 2009</td> + <td>ECMAScript 5<br> + Vegeu també <a href="http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft">fe d'errades del ES5</a> i el <a href="/en-US/docs/JavaScript/ECMAScript_5_support_in_Mozilla" title="JavaScript/ECMAScript 5 support in Mozilla">suport a ECMAScript 5 a Mozilla</a></td> + </tr> + <tr> + <td>ECMA-357</td> + <td><a href="http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-357,%201st%20edition,%20June%202004.pdf">PDF</a></td> + <td>June 2004</td> + <td><a href="/en-US/docs/E4X" title="E4X">ECMAScript per a XML (E4X)</a>.<br> + Vegeu també la <a class="link-https" href="https://bugzilla.mozilla.org/attachment.cgi?id=169406">fe d'errades E4X</a>.</td> + </tr> + </tbody> +</table> + +<p>Vegeu la <a href="http://en.wikipedia.org/wiki/ECMAScript" title="http://en.wikipedia.org/wiki/ECMAScript">entrada d'ECMAScript a la viquipèdia</a> per a més informació sobre la història de l'ECMAScript.</p> + +<p>Es pot participar o simplement seguir el treball realitzat a les properes revisions de l'especificació del llenguatge ECMAScript, la qual rep el nom clau de "Harmony", així com la Especificació de la API d'internacionalització de ECMAScript mitjançant la wiki pública i la <a class="link-https" href="https://mail.mozilla.org/listinfo/es-discuss" title="https://mail.mozilla.org/listinfo/es-discuss">llista de correu es-discuss</a> que es poden trobar enllaçades des de <a href="http://www.ecmascript.org/community.php" title="http://www.ecmascript.org/community.php">ecmascript.org</a>.</p> + +<h2 id="Implementacions">Implementacions</h2> + +<ul> + <li><a href="/en-US/docs/SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a> - el motor de JavaScript utilitzat per Firefox;</li> + <li><a href="/en-US/docs/Rhino" title="Rhino">Rhino</a> - un motor de JavaScript escrit en Java;</li> + <li><a href="/en-US/docs/Tamarin" title="Tamarin">Tamarin</a> - la màquina virtual de ActionScript (utilitzat per l'Adobe® Flash® Player);</li> + <li><a href="http://en.wikipedia.org/wiki/List_of_ECMAScript_engines" title="http://en.wikipedia.org/wiki/List_of_ECMAScript_engines">Altres implementacions</a> (viquipèdia).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="http://brendaneich.com/" title="http://brendaneich.com/">El bloc de Brendan Eich</a>. Brendan és el creador de JavaScript i el motor SpiderMonkey. Encara treballa amb el grup de treball de ECMA per a millorar el llenguatge.</li> + <li><a href="http://dmitrysoshnikov.com/" title="http://dmitrysoshnikov.com/">L'anàlisi de les edicions 3 i 5 de ECMA-262 de Dmitry Soshnikov</a></li> +</ul> diff --git a/files/ca/web/javascript/quant_a_javascript/index.html b/files/ca/web/javascript/quant_a_javascript/index.html new file mode 100644 index 0000000000..f581aa7021 --- /dev/null +++ b/files/ca/web/javascript/quant_a_javascript/index.html @@ -0,0 +1,55 @@ +--- +title: Sobre JavaScript +slug: Web/JavaScript/quant_a_JavaScript +translation_of: Web/JavaScript/About_JavaScript +--- +<div>{{JsSidebar()}}</div> + +<h2 id="What_is_JavaScript.3F" name="What_is_JavaScript.3F">Què és JavaScript?</h2> + +<p><span class="external">JavaScript</span><sup>®</sup> és el llenguatge de tipus scripting orientat a objectes desenvolupat per Netscape, utilitzat en millions de pàgines web i aplicacions de servidor arreu del món. El JavaScript de Netscape extén el llenguatge de scripting standard definit a l'ECMA-262 Edició 3 (<a href="/en-US/docs/Web/JavaScript/Language_Resources" title="en-US/docs/ECMAScript">ECMAScript</a>), amb només lleus diferències de l'standard publicat.</p> + +<p>Al contrari del que popular ment es creu de forma errònia, JavaScript no és "Java interpretat". En resum, JavaScript és un llegunatge d'scripting dinàmic que suporta contrucció d'objectes <a href="/ca/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-Based_vs._Prototype-Based_Languages">basada en prototipus</a>. La sintaxi bàsica és similar a Java i C++ de forma intencionada per a reduir el nombre de conceptes nous requerits per a aprendre el llenguatge. Construccions del llenguatge, com ara sentències <code>if</code>, bucles <code>for</code> i <code>while</code>, blocs <code>switch</code> i <code>try ... catch</code> funcionen de la mateixa forma que en aquests llenguatges (o bé d'una forma molt semblant).</p> + +<p>JavaScript pot funcionar com un llenguatge tant <a href="http://en.wikipedia.org/wiki/Procedural_programming">procedural</a> com <a href="/ca/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">orientat a objectes</a>. Els objectes es creen de forma programàtica en JavaScript tot afegint-hi mètodes i propietats a objectes <strong>en temps d'execució</strong> que d'altra forma serien buits, contràriament a les definicions sintàctiques de classes tan comunes a llenguatges compilats com C++ i Java. Un cop construit un objecte aquest pot ser utilitzat com a motlle (o prototipus) per a crear objectes similars.</p> + +<p>Les capacitats dinàmiques de JavaScript inclouen construcció d'objectes en temps d'execució, llistats de paràmetres variables, funcions com a variables, creació dinàmica de scripts (via <code><a href="/ca/docs/Web/JavaScript/Reference/Global_Objects/eval">eval</a></code>), introspecció d'objectes (via <code>for ... in</code>) i recuperació del codi font (els programes escrits en JavaScript poden decompilar els cosos de funcions a la seva forma original de codi font).</p> + +<p>Els objectes intrínsecs són <code>Number</code>, <code>String</code>, <code>Boolean</code>, <code>Date</code>, <code>RegExp</code>, i <code>Math</code>.</p> + +<p>Per a una discussió més profunda de la programació en JavaScript seguiu els enllaços de <a href="#JavaScript_resources">recursos de JavaScript</a> que trobareu a sota.</p> + +<h2 id="What_JavaScript_implementations_are_available.3F" name="What_JavaScript_implementations_are_available.3F">Quines implementacions de JavaScript hi ha disponibles?</h2> + +<p>mozilla.org alberga dues implementacions de JavaScript. La primera implementació de JavaScript <strong>de tots els temps</strong> va ser creada per Brendan Eich a Netscape, i des de llavors ha sigut actualitzada per a compliar amb la ECMA-262 Edició 5 i versions posteriors. Aquest motor, anomenat <a href="/ca/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a>, està implementat en C. El motor <a href="/ca/docs/Rhino">Rhino</a>, creat principalment per Norris Boyd (també a Netscape) és una implementació JavaScript en Java. Com el SpiderMonkey, Rhino compleix amb ECMA-262 Edició 3.</p> + +<p>Al llarg del temps s'han anat afegint diverses optimitzacions al motor de JavaScript SpiderMonkey, com ara TraceMonkey (Firefox 3.5), JägerMonkey (Firefox 4) i IonMonkey.</p> + +<p>A més de les implementacions anomenades a dalt, existeixen altres motors JavaScript, com ara:</p> + +<ul> + <li>El <a class="external" href="http://code.google.com/p/v8/" title="http://code.google.com/p/v8/">V8</a> de Google, utilitzat al navegador Google Chrome i a les versions més recents del navegador Opera.</li> + <li>El <a class="external" href="http://www.webkit.org/projects/javascript/index.html" title="http://www.webkit.org/projects/javascript/index.html">JavaScriptCore</a> (SquirrelFish/Nitro), utilitzat a alguns navegadors basats en WebKit, com ara l'Apple Safari.</li> + <li>El <a class="external" href="http://my.opera.com/ODIN/blog/carakan-faq" title="http://my.opera.com/ODIN/blog/carakan-faq">Carakan</a>, utilitzats en versions antigues d'Opera.</li> + <li>El <a class="external" href="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29" title="http://en.wikipedia.org/wiki/Chakra_%28JScript_engine%29">Chakra</a>, utilitzat en Internet Explorer (tot i que el llenguatge que implementa és anomenat formalment "JScript" per a evitar problemes amb marques registrades).</li> +</ul> + +<p>Tots els motors de JavaScript de mozilla.org exposen una API pública que les aplicacions poden emprar per a saber sobre el suport de JavaScript. L'entorn més comú per a JavaScript són els navegadors web, amb diferència. Els navegadors web usualment utilitzen una API pública per a crear 'objectes host' responsables d'exposar el <a href="http://www.w3.org/DOM/">DOM</a> dins de JavaScript.</p> + +<p>Una altra aplicació comuna de JavaScript és com a llenguatge d'escripting al cantó del servidor (web). Un servidor web de JavaScript exposaria els objectes host que representen peticions HTTP i objectes resposta, que podrien llavors ser manipulats per un programa JavaScript per a generar pàgines web de forma dinàmica.</p> + +<h2 id="JavaScript_resources" name="JavaScript_resources">Recursos de JavaScript</h2> + +<dl> + <dt><a href="/en-US/docs/Mozilla/Projects/SpiderMonkey" title="en-US/docs/SpiderMonkey">SpiderMonkey</a></dt> + <dd>Informació específica per a incrustar el motor JavaScript escrit en C (també conegut com a SpiderMonkey).</dd> +</dl> + +<dl> + <dt><a href="/en-US/docs/Rhino" title="en-US/docs/Rhino">Rhino</a></dt> + <dd>Informació específica sobre la implementació de JavaScript escrita en Java (també coneguda com a Rhino).</dd> + <dt><a href="/en-US/docs/Web/JavaScript/Language_Resources" title="en-US/docs/JavaScript_Language_Resources">Recursos del llenguatge</a></dt> + <dd>Recull dels standards de JavaScript publicats.</dd> + <dt><a href="/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript" title="en-US/docs/A_re-introduction_to_JavaScript">Una re-introducció a JavaScript</a></dt> + <dd><a href="/en-US/docs/Web/JavaScript/Guide" title="en-US/docs/JavaScript/Guide">Guia de JavaScript</a> i <a href="/en-US/docs/Web/JavaScript/Reference" title="en-US/docs/JavaScript/Reference">referència de JavaScript</a>.</dd> +</dl> diff --git a/files/ca/web/javascript/reference/errors/index.html b/files/ca/web/javascript/reference/errors/index.html new file mode 100644 index 0000000000..c295fccea6 --- /dev/null +++ b/files/ca/web/javascript/reference/errors/index.html @@ -0,0 +1,31 @@ +--- +title: JavaScript error reference +slug: Web/JavaScript/Reference/Errors +tags: + - Debugging + - Error + - Errors + - Exception + - JavaScript + - NeedsTranslation + - TopicStub + - exceptions +translation_of: Web/JavaScript/Reference/Errors +--- +<p>{{jsSidebar("Errors")}}</p> + +<p>Below, you'll find a list of errors which are thrown by JavaScript. These errors can be a helpful debugging aid, but the reported problem isn't always immediately clear. The pages below will provide additional details about these errors. Each error is an object based upon the {{jsxref("Error")}} object, and has a <code>name</code> and a <code>message</code>.</p> + +<p>Errors displayed in the Web console may include a link to the corresponding page below to help you quickly comprehend the problem in your code.</p> + +<h2 id="List_of_errors">List of errors</h2> + +<p>In this list, each page is listed by name (the type of error) and message (a more detailed human-readable error message). Together, these two properties provide a starting point toward understanding and resolving the error. For more information, follow the links below!</p> + +<p>{{ListSubPages("/en-US/docs/Web/JavaScript/Reference/Errors")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Learn/JavaScript/First_steps/What_went_wrong">What went wrong? Troubleshooting JavaScript</a>: Beginner's introductory tutorial on fixing JavaScript errors.</li> +</ul> diff --git a/files/ca/web/javascript/reference/errors/nomes-lectura/index.html b/files/ca/web/javascript/reference/errors/nomes-lectura/index.html new file mode 100644 index 0000000000..30c70c40dd --- /dev/null +++ b/files/ca/web/javascript/reference/errors/nomes-lectura/index.html @@ -0,0 +1,78 @@ +--- +title: 'TipusError: "x" es només de lectura' +slug: Web/JavaScript/Reference/Errors/Nomes-Lectura +tags: + - Errors + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Read-only +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Missatge">Missatge</h2> + +<pre class="syntaxbox">TipusError: "x" es només de lectura (Firefox) +TipusError: 0 es només de lectura (Firefox) +TipusError: No es pot fer l'assignació a la propietat 'x' de #<Object> que es només de lectura (Chrome) +TipusError: No es pot fer l'assignació a la propietat '0' de [object Array] (Chrome) +</pre> + +<h2 id="Tipus_d'error">Tipus d'error</h2> + +<p>{{jsxref("TypeError")}}</p> + +<h2 id="Qué_ha_anat_malament">Qué ha anat malament?</h2> + +<p>La variable global o propietat de l'objecte a la qual s'ha volgut fer l'assignació es només de lectura. (Tècnicament, es una <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Writable_attribute">propietat de no-escriptura</a>.)</p> + +<p>Aquest error succeeix només en <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">codi en mode estricte</a>. En codi en mode no estricte, l'assignació es ignorada de manera silenciosa.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Casos_invàlids">Casos invàlids</h3> + +<p>Propietats de només lectura no son súper comuns, però es poden donar quan es fa servir {{jsxref("Object.defineProperty()")}} o {{jsxref("Object.freeze()")}}.</p> + +<pre class="brush: js example-bad">'use strict'; +var obj = Object.freeze({name: 'Elsa', score: 157}); +obj.score = 0; // TypeError + +'use strict'; +Object.defineProperty(this, 'LUNG_COUNT', {value: 2, writable: false}); +LUNG_COUNT = 3; // TypeError + +'use strict'; +var frozenArray = Object.freeze([0, 1, 2]); +frozenArray[0]++; // TypeError +</pre> + +<p>També hi ha unes poques propietats de només lectura en la construcció de JavaScript. Potser que hagis provat de redefinir una constant matemàtica.</p> + +<pre class="brush: js example-bad">'use strict'; +Math.PI = 4; // TypeError</pre> + +<p>Ho sentim, no pots fer això.</p> + +<p>La variable global <code>undefined</code> també es només de lectura, llavors no pots silenciar l'infame error "undefined no es una funció" fent això:</p> + +<pre class="brush: js example-bad">'use strict'; +undefined = function() {}; // TypeError: "undefined" es només de lectura +</pre> + +<h3 id="Valid_cases">Valid cases</h3> + +<pre class="brush: js example-good">'use strict'; +var obj = Object.freeze({name: 'Score', points: 157}); +obj = {name: obj.name, points: 0}; // reemplaçant-ho amb un nou objecte funciona + +'use strict'; +var LUNG_COUNT = 2; // Una `var` funciona, perque no es de només lectura +LUNG_COUNT = 3; // ok (anatòmicament potser, però poc probable) +</pre> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("Object.defineProperty()")}}</li> + <li>{{jsxref("Object.freeze()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/arguments/caller/index.html b/files/ca/web/javascript/reference/functions/arguments/caller/index.html new file mode 100644 index 0000000000..b0a6afdf3e --- /dev/null +++ b/files/ca/web/javascript/reference/functions/arguments/caller/index.html @@ -0,0 +1,93 @@ +--- +title: arguments.caller +slug: Web/JavaScript/Reference/Functions/arguments/caller +translation_of: Archive/Web/JavaScript/arguments.caller +--- +<div>{{jsSidebar("Functions")}}</div> + +<p>La propietat obsoleta <strong><code>arguments.caller</code></strong> solia proporcionar la funció que invoca la funció que s'està executant en aquest moment. Aquesta propietat s'ha eleminitat i ja no funciona.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>La propietat ja no és troba disponible, però encara es pot utilitzar {{jsxref("Function.caller")}}.</p> + +<pre class="brush: js">function whoCalled() { + if (whoCalled.caller == null) + console.log('I was called from the global scope.'); + else + console.log(whoCalled.caller + ' called me!'); +}</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>El codi següent s'utilitzava per comprovar el valor de <code>arguments.caller</code> en una funció, però ja no funciona.</p> + +<pre class="brush: js">function whoCalled() { + if (arguments.caller == null) + console.log('I was called from the global scope.'); + else + console.log(arguments.caller + ' called me!'); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap estàndard. Implementat en JavaScript 1.1 i eliminat en {{bug(7224)}} a causa una potencial vulnerabilitat de seguretat.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Function")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/arguments/index.html b/files/ca/web/javascript/reference/functions/arguments/index.html new file mode 100644 index 0000000000..da5237bdf0 --- /dev/null +++ b/files/ca/web/javascript/reference/functions/arguments/index.html @@ -0,0 +1,211 @@ +--- +title: Arguments object +slug: Web/JavaScript/Reference/Functions/arguments +tags: + - Functions + - JavaScript + - NeedsTranslation + - TopicStub + - arguments +translation_of: Web/JavaScript/Reference/Functions/arguments +--- +<div> +<div>{{jsSidebar("Functions")}}</div> +</div> + +<p>The <strong><code>arguments</code></strong> object is an <code>Array</code>-like object corresponding to the arguments passed to a function.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">arguments</pre> + +<h2 id="Description">Description</h2> + +<p>The <code>arguments</code> object is a local variable available within all functions. <code>arguments</code> as a property of <code>Function</code> can no longer be used.</p> + +<p>You can refer to a function's arguments within the function by using the <code>arguments</code> object. This object contains an entry for each argument passed to the function, the first entry's index starting at 0. For example, if a function is passed three arguments, you can refer to the argument as follows:</p> + +<pre class="brush: js">arguments[0] +arguments[1] +arguments[2] +</pre> + +<p>The arguments can also be set:</p> + +<pre class="brush: js">arguments[1] = 'new value';</pre> + +<p>The <code>arguments</code> object is not an {{jsxref("Array")}}. It is similar to an <code>Array</code>, but does not have any <code>Array</code> properties except <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/length" title="JavaScript/Reference/Functions_and_function_scope/arguments/length">length</a></code>. For example, it does not have the <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop" title="JavaScript/Reference/Global_Objects/Array/pop">pop</a></code> method. However it can be converted to a real <code>Array</code>:</p> + +<pre class="brush: js">var args = Array.prototype.slice.call(arguments);</pre> + +<div class="warning"> +<p><strong>Important:</strong> You should not slice on arguments because it prevents optimizations in JavaScript engines (V8 for example). Instead, try constructing a new array by iterating through the arguments object. <a href="https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments">More information</a>.</p> +</div> + +<p>If <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods" title="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array#Array_generic_methods">Array generics</a> are available, one can use the following instead:</p> + +<pre class="brush: js">var args = Array.slice(arguments);</pre> + +<p>The <code>arguments</code> object is available only within a function body. Attempting to access the <code>arguments</code> object outside a function declaration results in an error.</p> + +<p>You can use the <code>arguments</code> object if you call a function with more arguments than it is formally declared to accept. This technique is useful for functions that can be passed a variable number of arguments. You can use <code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments/length" title="JavaScript/Reference/Functions_and_function_scope/arguments/length">arguments.length</a></code> to determine the number of arguments passed to the function, and then process each argument by using the <code>arguments</code> object. (To determine the number of arguments declared when a function was defined, use the <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function/length" title="JavaScript/Reference/Global_Objects/Function/length">Function.length</a></code> property.)</p> + +<h2 id="Properties">Properties</h2> + +<dl> + <dt><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee" title="JavaScript/Reference/Functions_and_function_scope/arguments/callee">arguments.callee</a></code></dt> + <dd>Reference to the currently executing function.</dd> + <dt><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/caller" title="JavaScript/Reference/Functions_and_function_scope/arguments/caller">arguments.caller</a></code> {{ Obsolete_inline() }}</dt> + <dd>Reference to the function that invoked the currently executing function.</dd> + <dt><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/length" title="JavaScript/Reference/Functions_and_function_scope/arguments/length">arguments.length</a></code></dt> + <dd>Reference to the number of arguments passed to the function.</dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<h3 id="Defining_a_function_that_concatenates_several_strings">Defining a function that concatenates several strings</h3> + +<p>This example defines a function that concatenates several strings. The only formal argument for the function is a string that specifies the characters that separate the items to concatenate. The function is defined as follows:</p> + +<pre class="brush:js">function myConcat(separator) { + var args = Array.prototype.slice.call(arguments, 1); + return args.join(separator); +}</pre> + +<p>You can pass any number of arguments to this function, and it creates a list using each argument as an item in the list.</p> + +<pre class="brush:js">// returns "red, orange, blue" +myConcat(", ", "red", "orange", "blue"); + +// returns "elephant; giraffe; lion; cheetah" +myConcat("; ", "elephant", "giraffe", "lion", "cheetah"); + +// returns "sage. basil. oregano. pepper. parsley" +myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");</pre> + +<h3 id="Defining_a_function_that_creates_HTML_lists">Defining a function that creates HTML lists</h3> + +<p>This example defines a function that creates a string containing HTML for a list. The only formal argument for the function is a string that is "<code>u</code>" if the list is to be unordered (bulleted), or "<code>o</code>" if the list is to be ordered (numbered). The function is defined as follows:</p> + +<pre class="brush:js">function list(type) { + var result = "<" + type + "l><li>"; + var args = Array.prototype.slice.call(arguments, 1); + result += args.join("</li><li>"); + result += "</li></" + type + "l>"; // end list + + return result; +}</pre> + +<p>You can pass any number of arguments to this function, and it adds each argument as an item to a list of the type indicated. For example:</p> + +<pre class="brush:js">var listHTML = list("u", "One", "Two", "Three"); + +/* listHTML is: + +"<ul><li>One</li><li>Two</li><li>Three</li></ul>" + +*/</pre> + +<h3 id="Rest_default_and_destructured_parameters">Rest, default and destructured parameters</h3> + +<p>The <code>arguments</code> object can be used in conjunction with <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters">default parameters</a> or <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">destructured parameters</a>.</p> + +<pre class="brush: js">function foo(...args) { + return arguments; +} +foo(1, 2, 3); // { "0": 1, "1": 2, "2": 3 } +</pre> + +<p>However, in non-strict functions, a <strong>mapped <code>arguments</code> object</strong> is only provided if the function does <strong>not</strong> contain any <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a>, any <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters">default parameters</a> or any <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">destructured parameters</a>. For example, in the following function that uses a default parameter, <code>1</code>0 instead of 100 is returned:</p> + +<pre class="brush: js">function bar(a=1) { + arguments[0] = 100; + return a; +} +bar(10); // 10 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initial definition. Implemented in JavaScript 1.1</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-10.6', 'Arguments Object')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("Function")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/arguments/length/index.html b/files/ca/web/javascript/reference/functions/arguments/length/index.html new file mode 100644 index 0000000000..cf2660b7e4 --- /dev/null +++ b/files/ca/web/javascript/reference/functions/arguments/length/index.html @@ -0,0 +1,117 @@ +--- +title: arguments.length +slug: Web/JavaScript/Reference/Functions/arguments/length +translation_of: Web/JavaScript/Reference/Functions/arguments/length +--- +<div>{{jsSidebar("Functions")}}</div> + +<p>La propietat <strong><code>arguments.length</code></strong> conté el número d'arguments passats a la funció.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">arguments.length</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>La propietat arguments.length proporciona el número d'arguments passats a la funció. Aquest pot ser major o menor que el nombre total de paràmetres definits. (Vegeu {{jsxref("Function.length")}}).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_arguments.length">Utilitzar <code>arguments.length</code></h3> + +<p>En aquest exemple definim una funció que pot afegir dos o més nombres.</p> + +<pre class="brush: js">function adder(base /*, n2, ... */) { + base = Number(base); + for (var i = 1; i < arguments.length; i++) { + base += Number(arguments[i]); + } + return base; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.1</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-10.6', 'Arguments Object')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Function.length")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/get/index.html b/files/ca/web/javascript/reference/functions/get/index.html new file mode 100644 index 0000000000..92a9de2965 --- /dev/null +++ b/files/ca/web/javascript/reference/functions/get/index.html @@ -0,0 +1,217 @@ +--- +title: getter +slug: Web/JavaScript/Reference/Functions/get +translation_of: Web/JavaScript/Reference/Functions/get +--- +<div>{{jsSidebar("Functions")}}</div> + +<p>la sintaxi <strong><code>get</code></strong> lliga la propietat d'un objecte a una funció que es cridarà quan la propietat sigui cercada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{get <em>prop</em>() { ... } } +{get <em>[expressió]</em>() { ... } }</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>prop</code></dt> + <dd>El nom de la propietat que es pretén lligar a la funció donada.</dd> + <dt>expressió</dt> + <dd>A partir d'ECMAScript 6, també es pot utilitzar expressions per a calcular el nom d'una propietat a lligar a la funció donada.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>A vegades és desitjable permetre l'accès a una propietat que retorna un valor calculat dinàmicament, o potser es vol reflectir l'estat d'una variable interna sense ésser necessari l'ús de crides explícites a mètodes. En JavaScript, Això es pot aconseguir utilitzant un <em>getter</em>. No és possible tenir simultàniament un lligam a una propietat i que aquesta mateixa propietat contingui un valor, tot i que sí és possible utilitzar un getter i un setter en conjunt per crear un tipus de pseudo-propietat.</p> + +<p>Tingueu en compte el següent quan treballeu amb la sintàxi <code>get</code>:</p> + +<div> +<ul> + <li>Pot tenir com a identificador tant un número com una string;</li> + <li>Ha de tenir exactament zero paràmetres (vegeu <a class="external" href="http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/" rel="external nofollow">Canvi incompatible <abbr title="ECMAScript 5th edition">ES5</abbr>: les funcions getter i setter literals han de tenir zero o un argument</a> per més informació).</li> + <li>No pot aparèixer en un objecte literla amb un altre <code>get</code> o amb una entrada de dades per la mateixa propietat (<code>{ get x() { }, get x() { } }</code> i <code>{ x: ..., get x() { } }</code> estàn prohibits).</li> +</ul> +</div> + +<p>Un getter pot ser eliminiat utilitzant l'operador <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator">delete.</a></code></p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Definir_un_getter_en_nous_objectes_en_inicialitzadors_d'objectes">Definir un getter en nous objectes, en inicialitzadors d'objectes</h3> + +<p>Això crearà una pseudo-propietat <code>latest</code> per l'objecte <code>obj</code>, el qual retornarà l'últim ítem de l'array en <code>log</code>.</p> + +<pre class="brush: js">var log = ['test']; +var obj = { + get latest () { + if (log.length == 0) retorna undefined; + return log[log.length - 1] + } +} +console.log (obj.latest); // Retornarà "test". +</pre> + +<p>Recordeu que intentar assignar un valor a <code>latest</code> no el canviarà.</p> + +<h3 id="Eliminar_un_getter_utilitzanr_l'operador_delete">Eliminar un getter utilitzanr l'operador <code>delete</code></h3> + +<p>Si voleu eliminar el getter, simplement utilitzeu <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code>:</p> + +<pre class="brush: js">delete obj.latest; +</pre> + +<h3 id="Definir_un_getter_en_objectes_existents_utilitzant_la_Propietat_define">Definir un getter en objectes existents utilitzant la<code> Propietat</code> <code>define</code></h3> + +<p>Per annexar un getter a un objecte existent posteriorment en qualsevol moment, utilitzeu {{jsxref("Object.defineProperty()")}}.</p> + +<pre class="brush: js">var o = { a:0 } + +Object.defineProperty(o, "b", { get: function () { return this.a + 1; } }); + +console.log(o.b) // Executa el getter, el qual produeix a + 1 (que és 1)</pre> + +<h3 id="Utilitzar_un_nom_de_propietat_calculat">Utilitzar un nom de propietat calculat</h3> + +<div class="note"> +<p><strong>Nota:</strong> Les propietats calculades són una tecnologia experimental, que forma part de la proposta d'ECMAScript 6, i encara no estàn ampliament suportats pels navegadors. Això llençarà un error de sintàxi en entorns que no les suportin.</p> +</div> + +<pre class="brush: js">var expr = "foo"; + +var obj = { + get [expr]() { return "bar"; } +}; + +console.log(obj.foo); // "bar"</pre> + +<h3 id="Getters_smart_self-overwriting_lazy"> Getters smart / self-overwriting / lazy</h3> + +<p>Getters et donen una forma de definir una propietat d'un objecte, però aquests no calculen el valor de la propietat fins que no s'hi ha accedit. getter posposen el cost de calcular el valor fins el moment en que es necessiti el valor, i si no és mai necessari, mai es pagarà el cost.</p> + +<p>Una tècnica d'optimització addiccional per retardar o realitzar de forma lenta el càlcul del valor d'una propietat i guardar-ho per a accedir-hi posteriorment són els<strong> getters smart o<em> <a href="https://en.wikipedia.org/wiki/Memoization">memoized</a> </em></strong>. El valor és calculat el primer cop que es crida el getter, i és llavors guardat per tal els accessos subsegüents retornin el calor guardat en caché sense recalcular-lo. Això és útil en les situacions següents:</p> + +<ul> + <li>Si el càlcul del valor d'una propietat és car (utilitza massa RAM o massa temps de CPU, spawns worker thread, recupera els arxius remots, etc).</li> + <li>Si el valor no és necessari ara mateix. S'utilitzarà després, o en alguns casos no s'utilitzarà mai.</li> + <li>Si s'utilitza, serà accedit diverses vegades, i no hi ha necessitat de recalcular el valor que no es canviarà, o no s'hauria de recalcular.</li> +</ul> + +<p>Això vol dir que no haurieu d'utilitzar un getter lazy per una propietat el valor de la qual espereu canviar, ja que el getter no recalcularà el valor.</p> + +<p>En l'exemple següent, l'objecte té un getter com propietat pròpia. Obtenint la propietat, la propietat s'elimina de l'objecte i es reafegeix, però implícitament com a propietat de tipus data aquest cop. Finalment el valor es retorna.</p> + +<pre class="brush: js">get notifier() { + delete this.notifier; + return this.notifier = document.getElementById("bookmarked-notification-anchor"); +},</pre> + +<p>Per codi Firefox, vegeu també el mòdul de codi XPCOMUtils.jsm, el qual defineix la funció <code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm#defineLazyGetter()">defineLazyGetter()</a></code>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Noms de propietats calculats afegits.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(1)}}</td> + <td>{{ CompatGeckoDesktop("1.8.1") }}</td> + <td>{{ CompatIE(9) }}</td> + <td>9.5</td> + <td>3</td> + </tr> + <tr> + <td>Noms de propietats calculats</td> + <td>{{CompatChrome(46)}}</td> + <td>{{ CompatGeckoDesktop("34") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("1.8.1") }}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Noms de propietats calculats</td> + <td>47</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile("34.0") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">setter</a></li> + <li>{{jsxref("Operators/delete", "delete")}}</li> + <li>{{jsxref("Object.defineProperty()")}}</li> + <li>{{jsxref("Object.defineGetter", "__defineGetter__")}}</li> + <li>{{jsxref("Object.defineSetter", "__defineSetter__")}}</li> + <li><a href="/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Definir Getters i Setters</a> en la guia de JavaScript</li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/index.html b/files/ca/web/javascript/reference/functions/index.html new file mode 100644 index 0000000000..1dbb672ef5 --- /dev/null +++ b/files/ca/web/javascript/reference/functions/index.html @@ -0,0 +1,617 @@ +--- +title: Functions +slug: Web/JavaScript/Reference/Functions +tags: + - Function + - Functions + - JavaScript + - NeedsTranslation + - TopicStub +translation_of: Web/JavaScript/Reference/Functions +--- +<div>{{jsSidebar("Functions")}}</div> + +<p>Generally speaking, a function is a "subprogram" that can be <em>called</em> by code external (or internal in the case of recursion) to the function. Like the program itself, a function is composed of a sequence of statements called the <em>function body</em>. Values can be <em>passed</em> to a function, and the function can <em>return</em> a value.</p> + +<p>In JavaScript, functions are first-class objects, i.e. they are objects and can be manipulated and passed around just like any other object. Specifically, they are <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Function">Function</a></code> objects.</p> + +<p>For more examples and explanations, see also the <a href="/en-US/docs/Web/JavaScript/Guide/Functions">JavaScript guide about functions</a>.</p> + +<h2 id="Description">Description</h2> + +<p>Every function in JavaScript is a <code>Function</code> object. See {{jsxref("Function")}} for information on properties and methods of <code>Function</code> objects.</p> + +<p>Functions are not the same as procedures. A function always returns a value, but a procedure may or may not return any value.</p> + +<p>To return a specific value other than the default, a function must have a <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/return">return</a></code> statement that specifies the value to return. A function without a return statement will return a default value. In the case of a <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor">constructor</a> called with the <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/new">new</a></code> keyword, the default value is the value of its <code>this</code> parameter. For all other functions, the default return value is <code>undefined</code>.</p> + +<p>The parameters of a function call are the function's <em>arguments</em>. Arguments are passed to functions <em>by value</em>. If the function changes the value of an argument, this change is not reflected globally or in the calling function. However, object references are values, too, and they are special: if the function changes the referred object's properties, that change is visible outside the function, as shown in the following example:</p> + +<pre class="brush: js">/* Declare the function 'myFunc' */ +function myFunc(theObject) { + theObject.brand = "Toyota"; + } + + /* + * Declare variable 'mycar'; + * create and initialize a new Object; + * assign reference to it to 'mycar' + */ + var mycar = { + brand: "Honda", + model: "Accord", + year: 1998 + }; + + /* Logs 'Honda' */ + console.log(mycar.brand); + + /* Pass object reference to the function */ + myFunc(mycar); + + /* + * Logs 'Toyota' as the value of the 'brand' property + * of the object, as changed to by the function. + */ + console.log(mycar.brand); +</pre> + +<p>The <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this"><code>this</code> keyword</a> does not refer to the currently executing function, so you must refer to <code>Function</code> objects by name, even within the function body.</p> + +<h2 id="Defining_functions">Defining functions</h2> + +<p>There are several ways to define functions:</p> + +<h3 id="The_function_declaration_(function_statement)">The function declaration (<code>function</code> statement)</h3> + +<p>There is a special syntax for declaring functions (see <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function">function statement</a> for details):</p> + +<pre class="syntaxbox">function <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { + <em>statements</em> +} +</pre> + +<dl> + <dt><code>name</code></dt> + <dd>The function name.</dd> +</dl> + +<dl> + <dt><code>param</code></dt> + <dd>The name of an argument to be passed to the function. A function can have up to 255 arguments.</dd> +</dl> + +<dl> + <dt><code>statements</code></dt> + <dd>The statements comprising the body of the function.</dd> +</dl> + +<h3 id="The_function_expression_(function_expression)">The function expression (<code>function</code> expression)</h3> + +<p>A function expression is similar to and has the same syntax as a function declaration (see <a href="/en-US/docs/Web/JavaScript/Reference/Operators/function">function expression</a> for details):</p> + +<pre class="syntaxbox">function [<em>name</em>]([<em>param</em>] [, <em>param</em>] [..., <em>param</em>]) { + <em>statements</em> +} +</pre> + +<dl> + <dt><code>name</code></dt> + <dd>The function name. Can be omitted, in which case the function becomes known as an anonymous function.</dd> +</dl> + +<dl> + <dt><code>param</code></dt> + <dd>The name of an argument to be passed to the function. A function can have up to 255 arguments.</dd> + <dt><code>statements</code></dt> + <dd>The statements which comprise the body of the function.</dd> +</dl> + +<h3 id="The_generator_function_declaration_(function*_statement)">The generator function declaration (<code>function*</code> statement)</h3> + +<div class="note"> +<p><strong>Note:</strong> Generator function are an <em>experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<p>There is a special syntax for declaration generator functions (see {{jsxref('Statements/function*', 'function* statement')}} for details):</p> + +<pre class="syntaxbox">function* <em>name</em>([<em>param</em>[, <em>param</em>[, ... <em>param</em>]]]) { + <em>statements</em> +} +</pre> + +<dl> + <dt><code>name</code></dt> + <dd>The function name.</dd> +</dl> + +<dl> + <dt><code>param</code></dt> + <dd>The name of an argument to be passed to the function. A function can have up to 255 arguments.</dd> +</dl> + +<dl> + <dt><code>statements</code></dt> + <dd>The statements comprising the body of the function.</dd> +</dl> + +<h3 id="The_generator_function_expression_(function*_expression)">The generator function expression (<code>function*</code> expression)</h3> + +<div class="note"> +<p><strong>Note:</strong> Generator function are an <em>experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<p>A generator function expression is similar to and has the same syntax as a generator function declaration (see {{jsxref('Operators/function*', 'function* expression')}} for details):</p> + +<pre class="syntaxbox">function* [<em>name</em>]([<em>param</em>] [, <em>param</em>] [..., <em>param</em>]) { + <em>statements</em> +} +</pre> + +<dl> + <dt><code>name</code></dt> + <dd>The function name. Can be omitted, in which case the function becomes known as an anonymous function.</dd> +</dl> + +<dl> + <dt><code>param</code></dt> + <dd>The name of an argument to be passed to the function. A function can have up to 255 arguments.</dd> + <dt><code>statements</code></dt> + <dd>The statements which comprise the body of the function.</dd> +</dl> + +<h3 id="The_arrow_function_expression_(>)">The arrow function expression (=>)</h3> + +<div class="note"> +<p><strong>Note:</strong> Arrow function expressions are an <em>experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<p>An arrow function expression has a shorter syntax and lexically binds its this value (see <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">arrow functions</a> for details):</p> + +<pre class="syntaxbox">([param] [, param]) => { + statements +} + +param => expression +</pre> + +<dl> + <dt><code>param</code></dt> + <dd>The name of an argument. Zero arguments need to be indicated with <code>()</code>. For only one argument the parentheses are not required. (like <code>foo => 1</code>)</dd> + <dt><code>statements or expression</code></dt> + <dd>Multiple statements need to be enclosed in brackets. A single expression requires no brackets. The expression is also the implicit return value of that function.</dd> +</dl> + +<h3 id="The_Function_constructor">The <code>Function</code> constructor</h3> + +<div class="note"> +<p><strong>Note:</strong> Using the <code>Function</code> constructor to create functions is not recommended since it needs the function body as a string which may prevent some JS engine optimizations and can also cause other problems.</p> +</div> + +<p>As all other objects, {{jsxref("Function")}} objects can be created using the <code>new</code> operator:</p> + +<pre class="syntaxbox">new Function (<em>arg1</em>, <em>arg2</em>, ... <em>argN</em>, <em>functionBody</em>) +</pre> + +<dl> + <dt><code>arg1, arg2, ... arg<em>N</em></code></dt> + <dd>Zero or more names to be used by the function as formal argument names. Each must be a string that conforms to the rules for a valid JavaScript identifier or a list of such strings separated with a comma; for example "<code>x</code>", "<code>theValue</code>", or "<code>a,b</code>".</dd> +</dl> + +<dl> + <dt><code>functionBody</code></dt> + <dd>A string containing the JavaScript statements comprising the function definition.</dd> +</dl> + +<p>Invoking the <code>Function</code> constructor as a function (without using the <code>new</code> operator) has the same effect as invoking it as a constructor.</p> + +<h3 id="The_GeneratorFunction_constructor">The <code>GeneratorFunction</code> constructor</h3> + +<div class="note"> +<p><strong>Note:</strong> Arrow function expressions are an <em>experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<div class="note"> +<p><strong>Note:</strong> <code>GeneratorFunction</code> is not a global object, but could be obtained from generator function instance (see {{jsxref("GeneratorFunction")}} for more detail).</p> +</div> + +<div class="note"> +<p><strong>Note:</strong> Using the <code>GeneratorFunction</code> constructor to create functions is not recommended since it needs the function body as a string which may prevent some JS engine optimizations and can also cause other problems.</p> +</div> + +<p>As all other objects, {{jsxref("GeneratorFunction")}} objects can be created using the <code>new</code> operator:</p> + +<pre class="syntaxbox">new GeneratorFunction (<em>arg1</em>, <em>arg2</em>, ... <em>argN</em>, <em>functionBody</em>) +</pre> + +<dl> + <dt><code>arg1, arg2, ... arg<em>N</em></code></dt> + <dd>Zero or more names to be used by the function as formal argument names. Each must be a string that conforms to the rules for a valid JavaScript identifier or a list of such strings separated with a comma; for example "<code>x</code>", "<code>theValue</code>", or "<code>a,b</code>".</dd> +</dl> + +<dl> + <dt><code>functionBody</code></dt> + <dd>A string containing the JavaScript statements comprising the function definition.</dd> +</dl> + +<p>Invoking the <code>Function</code> constructor as a function (without using the <code>new</code> operator) has the same effect as invoking it as a constructor.</p> + +<h2 id="Function_parameters">Function parameters</h2> + +<div class="note"> +<p><strong>Note:</strong> Default and rest parameters are <em>experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<h3 id="Default_parameters">Default parameters</h3> + +<p>Default function parameters allow formal parameters to be initialized with default values if no value or <code>undefined</code> is passed. For more details, see<a href="/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters"> default parameters</a>.</p> + +<h3 id="Rest_parameters">Rest parameters</h3> + +<p>The rest parameter syntax allows to represent an indefinite number of arguments as an array. For more details, see <a href="/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a>.</p> + +<h2 id="The_arguments_object">The <code>arguments</code> object</h2> + +<p>You can refer to a function's arguments within the function by using the <code>arguments</code> object. See <a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a>.</p> + +<ul> + <li><code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments">arguments</a></code>: An array-like object containing the arguments passed to the currently executing function.</li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments/callee">arguments.callee</a></code> {{Deprecated_inline}}: The currently executing function.</li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments/caller">arguments.caller</a></code> {{Obsolete_inline}} : The function that invoked the currently executing function.</li> + <li><code><a href="/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments/length">arguments.length</a></code>: The number of arguments passed to the function.</li> +</ul> + +<h2 id="Defining_method_functions">Defining method functions</h2> + +<h3 id="Getter_and_setter_functions">Getter and setter functions</h3> + +<p>You can define getters (accessor methods) and setters (mutator methods) on any standard built-in object or user-defined object that supports the addition of new properties. The syntax for defining getters and setters uses the object literal syntax.</p> + +<dl> + <dt><a href="/en-US/docs/Web/JavaScript/Reference/Functions/get">get</a></dt> + <dd> + <p>Binds an object property to a function that will be called when that property is looked up.</p> + </dd> + <dt><a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">set</a></dt> + <dd>Binds an object property to a function to be called when there is an attempt to set that property.</dd> +</dl> + +<h3 id="Method_definition_syntax">Method definition syntax</h3> + +<div class="note"> +<p><strong>Note:</strong> <em>Method definitions are experimental technology,</em> part of the ECMAScript 6 proposal, and are not widely supported by browsers yet.</p> +</div> + +<p>Starting with ECMAScript 6, you are able to define own methods in a shorter syntax, similar to the getters and setters. See <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions">method definitions</a> for more information.</p> + +<pre class="brush: js">var obj = { + foo() {}, + bar() {} +};</pre> + +<h2 id="Function_constructor_vs._function_declaration_vs._function_expression"><code>Function</code> constructor vs. function declaration vs. function expression</h2> + +<p>Compare the following:</p> + +<p>A function defined with the <code>Function</code> constructor assigned to the variable <code>multiply:</code></p> + +<pre class="brush: js">function multiply(x, y) { + return x * y; +} +</pre> + +<p>A <em>function expression</em> of an anonymous function assigned to the variable <code>multiply:</code></p> + +<pre class="brush: js">var multiply = function(x, y) { + return x * y; +}; +</pre> + +<p>A <em>function expression</em> of a function named <code>func_name</code> assigned to the variable <code>multiply:</code></p> + +<pre class="brush: js">var multiply = function func_name(x, y) { + return x * y; +}; +</pre> + +<h3 id="Differences">Differences</h3> + +<p>All do approximately the same thing, with a few subtle differences:</p> + +<p>There is a distinction between the function name and the variable the function is assigned to. The function name cannot be changed, while the variable the function is assigned to can be reassigned. The function name can be used only within the function's body. Attempting to use it outside the function's body results in an error (or <code>undefined</code> if the function name was previously declared via a <code>var</code> statement). For example:</p> + +<pre class="brush: js">var y = function x() {}; +alert(x); // throws an error +</pre> + +<p>The function name also appears when the function is serialized via <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString"><code>Function</code>'s toString method</a>.</p> + +<p>On the other hand, the variable the function is assigned to is limited only by its scope, which is guaranteed to include the scope where the function is declared in.</p> + +<p>As the 4th example shows, the function name can be different from the variable the function is assigned to. They have no relation to each other.A function declaration also creates a variable with the same name as the function name. Thus, unlike those defined by function expressions, functions defined by function declarations can be accessed by their name in the scope they were defined in:</p> + +<p>A function defined by '<code>new Function'</code> does not have a function name. However, in the <a href="/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> JavaScript engine, the serialized form of the function shows as if it has the name "anonymous". For example, <code>alert(new Function())</code> outputs:</p> + +<pre class="brush: js">function anonymous() { +} +</pre> + +<p>Since the function actually does not have a name, <code>anonymous</code> is not a variable that can be accessed within the function. For example, the following would result in an error:</p> + +<pre class="brush: js">var foo = new Function("alert(anonymous);"); +foo(); +</pre> + +<p>Unlike functions defined by function expressions or by the <code>Function</code> constructor, a function defined by a function declaration can be used before the function declaration itself. For example:</p> + +<pre class="brush: js">foo(); // alerts FOO! +function foo() { + alert('FOO!'); +} +</pre> + +<p>A function defined by a function expression inherits the current scope. That is, the function forms a closure. On the other hand, a function defined by a <code>Function</code> constructor does not inherit any scope other than the global scope (which all functions inherit).</p> + +<p>Functions defined by function expressions and function declarations are parsed only once, while those defined by the <code>Function</code> constructor are not. That is, the function body string passed to the <code>Function</code> constructor must be parsed each and every time the constructor is called. Although a function expression creates a closure every time, the function body is not reparsed, so function expressions are still faster than "<code>new Function(...)</code>". Therefore the <code>Function</code> constructor should generally be avoided whenever possible.</p> + +<p>It should be noted, however, that function expressions and function declarations nested within the function generated by parsing a <code>Function constructor</code> 's string aren't parsed repeatedly. For example:</p> + +<pre class="brush: js">var foo = (new Function("var bar = \'FOO!\';\nreturn(function() {\n\talert(bar);\n});"))(); +foo(); // The segment "function() {\n\talert(bar);\n}" of the function body string is not re-parsed.</pre> + +<p>A function declaration is very easily (and often unintentionally) turned into a function expression. A function declaration ceases to be one when it either:</p> + +<ul> + <li>becomes part of an expression</li> + <li>is no longer a "source element" of a function or the script itself. A "source element" is a non-nested statement in the script or a function body:</li> +</ul> + +<pre class="brush: js">var x = 0; // source element +if (x == 0) { // source element + x = 10; // not a source element + function boo() {} // not a source element +} +function foo() { // source element + var y = 20; // source element + function bar() {} // source element + while (y == 10) { // source element + function blah() {} // not a source element + y++; // not a source element + } +} +</pre> + +<h3 id="Examples">Examples</h3> + +<pre class="brush: js">// function declaration +function foo() {} + +// function expression +(function bar() {}) + +// function expression +x = function hello() {} + + +if (x) { + // function expression + function world() {} +} + + +// function declaration +function a() { + // function declaration + function b() {} + if (0) { + // function expression + function c() {} + } +} +</pre> + +<h2 id="Conditionally_defining_a_function">Conditionally defining a function</h2> + +<p>Functions can be conditionally defined using either //function statements// (an allowed extension to the <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMA-262 Edition 3</a> standard) or the <code>Function</code> constructor. Please note that such <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=609832">function statements are no longer allowed in ES5 strict</a>. Additionally, this feature does not work consistently cross-browser, so you should not rely on it.</p> + +<p>In the following script, the <code>zero</code> function is never defined and cannot be invoked, because '<code>if (0)</code>' evaluates its condition to false:</p> + +<pre class="brush: js">if (0) { + function zero() { + document.writeln("This is zero."); + } +} +</pre> + +<p>If the script is changed so that the condition becomes '<code>if (1)</code>', function <code>zero</code> is defined.</p> + +<p>Note: Although this kind of function looks like a function declaration, it is actually an expression (or statement), since it is nested within another statement. See differences between function declarations and function expressions.</p> + +<p>Note: Some JavaScript engines, not including <a href="/en-US/docs/SpiderMonkey">SpiderMonkey</a>, incorrectly treat any function expression with a name as a function definition. This would lead to <code>zero</code> being defined, even with the always-false <code>if</code> condition. A safer way to define functions conditionally is to define the function anonymously and assign it to a variable:</p> + +<pre class="brush: js">if (0) { + var zero = function() { + document.writeln("This is zero."); + } +} +</pre> + +<h2 id="Examples_2">Examples</h2> + +<h3 id="Returning_a_formatted_number">Returning a formatted number</h3> + +<p>The following function returns a string containing the formatted representation of a number padded with leading zeros.</p> + +<pre class="brush: js">// This function returns a string padded with leading zeros +function padZeros(num, totalLen) { + var numStr = num.toString(); // Initialize return value as string + var numZeros = totalLen - numStr.length; // Calculate no. of zeros + for (var i = 1; i <= numZeros; i++) { + numStr = "0" + numStr; + } + return numStr; +} +</pre> + +<p>The following statements call the padZeros function.</p> + +<pre class="brush: js">var result; +result = padZeros(42,4); // returns "0042" +result = padZeros(42,2); // returns "42" +result = padZeros(5,4); // returns "0005" +</pre> + +<h3 id="Determining_whether_a_function_exists">Determining whether a function exists</h3> + +<p>You can determine whether a function exists by using the <code>typeof</code> operator. In the following example, a test is peformed to determine if the <code>window</code> object has a property called <code>noFunc</code> that is a function. If so, it is used; otherwise some other action is taken.</p> + +<pre class="brush: js"> if ('function' == typeof window.noFunc) { + // use noFunc() + } else { + // do something else + } +</pre> + +<p>Note that in the <code>if</code> test, a reference to <code>noFunc</code> is used—there are no brackets "()" after the function name so the actual function is not called.</p> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initial definition. Implemented in JavaScript 1.0</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-13', 'Function Definition')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>New: Arrow functions, Generator functions, default parameters, rest parameters</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#', 'function*')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-arrow-function-definitions', 'Arrow Function Definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Generator function</td> + <td>39</td> + <td>{{CompatGeckoDesktop("26.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>26</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Arrow function</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("22.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Generator function</td> + <td>{{CompatUnknown}}</td> + <td>39</td> + <td>{{CompatGeckoMobile("26.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>26</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Arrow function</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("22.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("Statements/function", "function statement")}}</li> + <li>{{jsxref("Operators/function", "function expression")}}</li> + <li>{{jsxref("Statements/function*", "function* statement")}}</li> + <li>{{jsxref("Operators/function*", "function* expression")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("GeneratorFunction")}}</li> + <li>{{jsxref("Functions/Arrow_functions", "Arrow functions")}}</li> + <li>{{jsxref("Functions/Default_parameters", "Default parameters")}}</li> + <li>{{jsxref("Functions/rest_parameters", "Rest parameters")}}</li> + <li>{{jsxref("Functions/arguments", "Arguments object")}}</li> + <li>{{jsxref("Functions/get", "getter")}}</li> + <li>{{jsxref("Functions/set", "setter")}}</li> + <li>{{jsxref("Functions/Method_definitions", "Method definitions")}}</li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope" title="JavaScript/Reference/Functions_and_function_scope">Functions and function scope</a></li> +</ul> diff --git a/files/ca/web/javascript/reference/functions/parameters_rest/index.html b/files/ca/web/javascript/reference/functions/parameters_rest/index.html new file mode 100644 index 0000000000..68fc5f0bba --- /dev/null +++ b/files/ca/web/javascript/reference/functions/parameters_rest/index.html @@ -0,0 +1,156 @@ +--- +title: Paràmetres rest +slug: Web/JavaScript/Reference/Functions/parameters_rest +translation_of: Web/JavaScript/Reference/Functions/rest_parameters +--- +<div>{{jsSidebar("Functions")}}</div> + +<p>El <strong>paràmetre rest</strong> ens permet representar un nombre indefinit d'arguments en forma d 'array.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="brush: js">function f(a, b, ...theArgs) { + // ... +} +</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Si l'últim argument d'una funció, està prefixat amb l'operador <code>...</code>, aquest esdevé un array el qual té com a elements des de <code>0</code> (inclòs) fins a <code>theArgs.length</code> (no inclòs) els arguments passats a la funció.</p> + +<p>A l'exemple de sobre, <code>theArgs</code> aglutina el tercer argument de la funció, ja que el primer està mapejat a <code>a</code> i el segon està mapejat a <code>b</code> , i tota la resta d'arguments consecutius. </p> + +<h3 id="Diferència_entre_els_paràmetres_rest_i_l'objecte_arguments">Diferència entre els paràmetres rest i l'objecte <code>arguments</code></h3> + +<p>Existeixen tres diferències principals entre els paràmetres rest i l'objecte <code>arguments</code></p> + +<ul> + <li>Els paràmetres rest són aquells als que no s' ha donat un nom per separat, mentre que l' objecte <code>arguments</code> conté tots els paràmetres passats a la funció</li> + <li>L' objecte <code>arguments</code> no és un array real, mentre que els paràmetres rest són instàncies d' <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="Array"><code>Array</code></a> , el qual significa que els hi podem aplicar directamaent els mètodes <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort" title="Array sort method"><code>sort</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map" title="Array map method"><code>map</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach" title="Array forEach method"><code>forEach</code></a> o <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop" title="Array pop method">pop</a>.</code></li> + <li>L' objecte <code>arguments</code> té funcionalitat específica a sí mateix (com la propietat <code>calle</code>).</li> +</ul> + +<h3 id="Des_d'_arguments_fins_a_un_array">Des d' arguments fins a un array</h3> + +<p>El paràmetre rest ha estat introduit per tal de reduir la quantitat de codi utilitzat que es introduit per els arguments</p> + +<pre class="brush: js">// Anteriorment a l' existència del paràmetre rest el s' utilitzava seguent codi +function f(a, b) { + var args = Array.prototype.slice.call(arguments, f.length); + + // … +} + +// equivalent a + +function f(a, b, ...args) { + +} +</pre> + +<h3 id="Desestructurant_paràmetres_rest">Desestructurant paràmetres rest</h3> + +<p>Els paràmetres rest es poden desestructurar, que vol dir que els valors que contenen es poden desenpaquetar en variables diferents i separades. Vegeu <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Destructuring assignment</a>.</p> + +<pre class="brush: js">function f(...[a, b, c]) { + return a + b + c; +} + +f(1) // NaN (bi c són undefined) +f(1, 2, 3) // 6 +f(1, 2, 3, 4) // 6 (el quart paràmetre no està desetructurat)</pre> + +<h2 id="Exemples">Exemples</h2> + +<p>Com que <code>theArgs</code> és un array, la propietat <code>length</code> en retorna el recompte:</p> + +<pre class="brush: js">function fun1(...theArgs) { + console.log(theArgs.length); +} + +fun1(); // 0 +fun1(5); // 1 +fun1(5, 6, 7); // 3 +</pre> + +<p>En el seguent exemple el paràmetre rest s' utilitza per aglutinar tots els paràmetres passats a la funcció després del primer en un array. Després cadascun d' ells és multiplicat per el primer paràmetre passat a la funció i es retorna l' array.</p> + +<pre class="brush: js">function multiply(multiplier, ...theArgs) { + return theArgs.map(function(element) { + return multiplier * element; + }); +} + +var arr = multiply(2, 1, 2, 3); +console.log(arr); // [2, 4, 6] +</pre> + +<p>El seguent exemple mostra com els mètodes d' <code>Array</code> es poden utilitzar am paràmetres rest, però no amb l' objecte <code>arguments</code> :</p> + +<pre class="brush: js">function sortRestArgs(...theArgs) { + var sortedArgs = theArgs.sort(); + return sortedArgs; +} + +console.log(sortRestArgs(5, 3, 7, 1)); // mostra 1, 3, 5, 7 + +function sortArguments() { + var sortedArgs = arguments.sort(); + return sortedArgs; // aquesta línia mai s' executarà +} + +// genera el TypeError: arguments.sort no és una funció +console.log(sortArguments(5, 3, 7, 1)); +</pre> + +<p>Per tal de poder usar els mètodes d' <code>Array</code> amb l' objecte <code>arguments</code> , aquest s' ha de convertir primer en un array.</p> + +<pre class="brush: js">function sortArguments() { + var args = Array.prototype.slice.call(arguments); + var sortedArgs = args.sort(); + return sortedArgs; +} +console.log(sortArguments(5, 3, 7, 1)); // shows 1, 3, 5, 7 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-definitions', 'Function Definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Initial definition</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-function-definitions', 'Function Definitions')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div> + + +<p>{{Compat("javascript.functions.rest_parameters")}}</p> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator" title="spread operator">Spread operator</a> (also ‘<code>...</code>’)</li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments" title="arguments">Arguments object</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="Array">Array</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions" title="Functions and function scope">Functions</a></li> + <li><a class="external" href="http://wiki.ecmascript.org/doku.php?id=harmony:rest_parameters">Original proposal at ecmascript.org</a></li> + <li><a class="external" href="http://javascriptweblog.wordpress.com/2011/01/18/javascripts-arguments-object-and-beyond/">JavaScript arguments object and beyond</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Destructuring assignment</a></li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/dataview/buffer/index.html b/files/ca/web/javascript/reference/global_objects/dataview/buffer/index.html new file mode 100644 index 0000000000..40da57fa52 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/dataview/buffer/index.html @@ -0,0 +1,101 @@ +--- +title: DataView.prototype.buffer +slug: Web/JavaScript/Reference/Global_Objects/DataView/buffer +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/buffer +--- +<div>{{JSRef}}</div> + +<p>La propietat d'accés <strong><code>buffer</code></strong> representa el {{jsxref("ArrayBuffer")}} referenciat per <code>DataView</code> en el temps de construcció.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><var>dataview</var>.buffer</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>La propietat <code>buffer</code> és una propietat d'accés de la qual la seva funció d'accés és <code>undefined</code>, el que vol dir que només es pot llegir aquesta propietat. El valor s'estableix quan <code>DataView</code> és construït i no es pot canviar.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_la_propietat_buffer">Utilitzar la propietat <code>buffer</code></h3> + +<pre class="brush:js">var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.buffer; // ArrayBuffer { byteLength: 8 } +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-get-dataview.prototype.buffer', 'DataView.prototype.buffer')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>9.0</td> + <td>{{ CompatGeckoDesktop("15.0") }}</td> + <td>10</td> + <td>12.1</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("15") }}</td> + <td>{{CompatUnknown}}</td> + <td>12.0</td> + <td>4.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("DataView")}}</li> + <li>{{jsxref("ArrayBuffer")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/dataview/getfloat32/index.html b/files/ca/web/javascript/reference/global_objects/dataview/getfloat32/index.html new file mode 100644 index 0000000000..83de1562e4 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/dataview/getfloat32/index.html @@ -0,0 +1,122 @@ +--- +title: DataView.prototype.getFloat32() +slug: Web/JavaScript/Reference/Global_Objects/DataView/getFloat32 +translation_of: Web/JavaScript/Reference/Global_Objects/DataView/getFloat32 +--- +<div>{{JSRef}}</div> + +<p>El mètode <code>getFloat32()</code> obtè un nombre decimal en coma flotant amb signe de 32 bits (float) a la posició en bytes especificada, content des del començament de {{jsxref("DataView")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><var>dataview</var>.getFloat32(byteOffset [, littleEndian])</pre> + +<h2 id="Paràmetres">Paràmetres</h2> + +<dl> + <dt>byteOffset</dt> + <dd>La posició, en bytes, des de l'inici de la vista a la que es llegiran les dades.</dd> + <dt>littleEndian</dt> + <dd>{{optional_inline}} Indica si el nombre decimal en coma flotant de 32 bits es troba emmagatzemat en format {{Glossary("Endianness", "little- o big-endian")}}. De ésser false o undefined, s'interpreta el valor com a big-endian.</dd> +</dl> + +<h3 id="Errors_llençats">Errors llençats</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Es llença si <code>byteOffset</code> té un valor que representa una posició més enllà del final de la vista.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>No hi ha cap restricció d'alineament; es poden llegir valors de múltiples bytes des de qualsevol posició.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_getFloat32">Utilitzar el mètode <code>getFloat32</code></h3> + +<pre class="brush:js">var buffer = new ArrayBuffer(8); +var dataview = new DataView(buffer); +dataview.getFloat32(1); // 0 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('Typed Array')}}</td> + <td>{{Spec2('Typed Array')}}</td> + <td>Reemplaçada per ECMAScript 6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-dataview.prototype.getfloat32', 'DataView.prototype.getFloat32')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial en un estàndard ECMA.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("15.0")}}</td> + <td>10</td> + <td>12.1</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{ CompatGeckoMobile("15") }}</td> + <td>{{CompatUnknown}}</td> + <td>12.0</td> + <td>4.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("DataView")}}</li> + <li>{{jsxref("ArrayBuffer")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/dataview/index.html b/files/ca/web/javascript/reference/global_objects/dataview/index.html new file mode 100644 index 0000000000..90c9d640ee --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/dataview/index.html @@ -0,0 +1,174 @@ +--- +title: DataView +slug: Web/JavaScript/Reference/Global_Objects/DataView +tags: + - Constructor + - DataView + - JavaScript + - NeedsTranslation + - TopicStub + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +<div>{{JSRef}}</div> + +<p>The <strong><code>DataView</code></strong> view provides a low-level interface for reading data from and writing it to an {{jsxref("ArrayBuffer")}}.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">new DataView(buffer [, byteOffset [, byteLength]])</pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>buffer</code></dt> + <dd>An existing {{jsxref("ArrayBuffer")}} to use as the storage for the new <code>DataView</code> object.</dd> + <dt><code>byteOffset</code> {{optional_inline}}</dt> + <dd>The offset, in bytes, to the first byte in the specified buffer for the new view to reference. If not specified, the view of the buffer will start with the first byte.</dd> + <dt><code>byteLength</code> {{optional_inline}}</dt> + <dd>The number of elements in the byte array. If unspecified, length of the view will match the buffer's length.</dd> +</dl> + +<h3 id="Return_value">Return value</h3> + +<p>A new <code>DataView</code> object representing the specified data buffer.</p> + +<h3 id="Errors_thrown">Errors thrown</h3> + +<dl> + <dt><code>{{jsxref("RangeError")}}</code></dt> + <dd>Thrown if the <code>byteOffset</code> and <code>byteLength</code> result in the specified view extending past the end of the buffer.</dd> +</dl> + +<h2 id="Description">Description</h2> + +<h3 id="Detect_endianness">Detect endianness</h3> + +<p>You'll probably need to detect the type of architecture your script is running, here is a little trick to check it. See {{Glossary("Endianness")}} for more information.</p> + +<pre class="brush: js">var littleEndian = (function() { + var buffer = new ArrayBuffer(2); + new DataView(buffer).setInt16(0, 256, true); + return new Int16Array(buffer)[0] === 256; +})(); +console.log(littleEndian); // true or false +</pre> + +<h2 id="Properties">Properties</h2> + +<dl> + <dt>DataView.length</dt> + <dd>The <code>DataView</code> constructor's length property whose value is 3.</dd> + <dt>{{jsxref("DataView.prototype")}}</dt> + <dd>Allows the addition of properties to all <code>DataView</code> objects.</dd> +</dl> + +<h2 id="DataView_instances"><code>DataView</code> instances</h2> + +<p>All <code>DataView</code> instances inherit from {{jsxref("DataView.prototype")}}.</p> + +<h3 id="Properties_2">Properties</h3> + +<p>{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Properties')}}</p> + +<h3 id="Methods">Methods</h3> + +<p>{{page('en-US/Web/JavaScript/Reference/Global_Objects/DataView/prototype','Methods')}}</p> + +<h2 id="Example">Example</h2> + +<pre class="brush: js">var buffer = new ArrayBuffer(16); +var dv = new DataView(buffer, 0); + +dv.setInt16(1, 42); +dv.getInt16(1); //42 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-dataview-constructor', 'DataView')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Initial definition in an ECMA standard</td> + </tr> + <tr> + <td>{{SpecName('Typed Array')}}</td> + <td>{{Spec2('Typed Array')}}</td> + <td>Superseded by ECMAScript 6</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>9.0</td> + <td>{{CompatGeckoDesktop("15.0")}}</td> + <td>10</td> + <td>12.1</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("15")}}</td> + <td>{{CompatUnknown}}</td> + <td>12.0</td> + <td>4.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Firefox-specific_notes">Firefox-specific notes</h2> + +<p>Starting with Gecko / SpiderMonkey 40 {{geckoRelease(40)}}, <code>DataView</code> requires to be constructed with a {{jsxref("Operators/new", "new")}} operator. Calling <code>DataView()</code> as a function without <code>new</code>, will throw a {{jsxref("TypeError")}} from now on.</p> + +<pre class="brush: js example-bad">var dv = DataView(buffer, 0); +// TypeError: calling a builtin DataView constructor without new is forbidden</pre> + +<pre class="brush: js example-good">var dv = new DataView(buffer, 0);</pre> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a class="link-https" href="https://github.com/jDataView/jDataView">jDataView</a>: JavaScript library that polyfills and extends the <code>DataView</code> API to all browsers and Node.js.</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/dataview/prototype/index.html b/files/ca/web/javascript/reference/global_objects/dataview/prototype/index.html new file mode 100644 index 0000000000..203e5076e4 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/dataview/prototype/index.html @@ -0,0 +1,146 @@ +--- +title: DataView.prototype +slug: Web/JavaScript/Reference/Global_Objects/DataView/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/DataView +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>DataView</strong></code><strong><code>.prototype</code></strong> representa el prototip de l'objecte {{jsxref("DataView")}}.</p> + +<div>{{js_property_attributes(0,0,0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies <code>DataView</code> hereten de <code>DataView.prototype</code>. Com passa amb tots els constructors, podeu canviar l'objecte prototip del constructor per produir canvis a totes les instàncies <code>DataView</code>.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt>DataView.prototype.constructor</dt> + <dd>Especifica la funció que crea un prototip de l'objecte. El valor inicial és el constructor integrat estàndard <code>DataView</code>.</dd> + <dt>{{jsxref("DataView.prototype.buffer")}} {{readonlyInline}}</dt> + <dd>L'{{jsxref("ArrayBuffer")}} referenciat per aquesta vista. Fixat en el temps de construcció i per tant és <strong>només de lectura.</strong></dd> + <dt>{{jsxref("DataView.prototype.byteLength")}} {{readonlyInline}}</dt> + <dd>La llargària (en bytes) d'aquesta vista des del començament del seu {{jsxref("ArrayBuffer")}}. Fixat en el temps de construcció i per tant és <strong>només de lectura.</strong></dd> + <dt>{{jsxref("DataView.prototype.byteOffset")}} {{readonlyInline}}</dt> + <dd>La posició (en bytes) d'aquesta vista des de l'inici del seu {{jsxref("ArrayBuffer")}}. Fixat en el temps de construcció i per tant és <strong>només de lectura.</strong></dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<h3 id="Lectura">Lectura</h3> + +<dl> + <dt>{{jsxref("DataView.prototype.getInt8()")}}</dt> + <dd>Obté un nombre sencer (byte) de 8 bits amb signe al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getUint8()")}}</dt> + <dd>Obté un nombre sencer sense signe de 8 bits (unsigned byte) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getInt16()")}}</dt> + <dd>Obté un nombre sencer de 16 bits (short) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getUint16()")}}</dt> + <dd>Obté un nombre sencer sense signe de 16 bits (unsigned short) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getInt32()")}}</dt> + <dd>Obté un nombre sencer de 32 bits (long) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getUint32()")}}</dt> + <dd>Obté un nombre sencer sense signe de 31 bits (unsigned long) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getFloat32()")}}</dt> + <dd>Obté un nombre en coma flotant amb signe de 32 bits (float) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.getFloat64()")}}</dt> + <dd>Obté un nombre en coma flotant amb signe de 64 bits (double) al byte de posició especificat des de l'inici de la vista.</dd> +</dl> + +<h3 id="Escritura">Escritura</h3> + +<dl> + <dt>{{jsxref("DataView.prototype.setInt8()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer de 8 bits (byte) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setUint8()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer sense signe de 8 bits (unsigned byte) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setInt16()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer amb signe de 16 bits (short) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setUint16()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer sense signe de 16 bits (unsigned short) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setInt32()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer amb signe de 32 bits (long) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setUint32()")}}</dt> + <dd>Emmagatzema el valor d'un nombre sencer sense signe de 32 bits (unsigned long) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setFloat32()")}}</dt> + <dd>Emmagatzema el valor d'un nombre en coma flotant amb signe de 32 bits (float) al byte de posició especificat des de l'inici de la vista.</dd> + <dt>{{jsxref("DataView.prototype.setFloat64()")}}</dt> + <dd>Emmagatzema el valor d'un nombre en coma flotant amb signe de 64 bits (double) al byte de posició especificat des de l'inici de la vista.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-dataview.prototype', 'DataView.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegador">Compatibilitat amb navegador</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>9.0</td> + <td>{{ CompatGeckoDesktop("15.0") }}</td> + <td>10</td> + <td>12.1</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>4.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("15")}}</td> + <td>{{CompatUnknown}}</td> + <td>12.0</td> + <td>4.2</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("DataView")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/evalerror/index.html b/files/ca/web/javascript/reference/global_objects/evalerror/index.html new file mode 100644 index 0000000000..65a4df349e --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/evalerror/index.html @@ -0,0 +1,161 @@ +--- +title: EvalError +slug: Web/JavaScript/Reference/Global_Objects/EvalError +tags: + - Error + - EvalError + - JavaScript + - NeedsTranslation + - Reference + - TopicStub +translation_of: Web/JavaScript/Reference/Global_Objects/EvalError +--- +<div>{{JSRef}}</div> + +<p>The <strong><code>EvalError</code></strong> object indicates an error regarding the global {{jsxref("Global_Objects/eval", "eval()")}} function.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox"><code>new EvalError([<var>message</var>[, <var>fileName</var>[, <var>lineNumber</var>]]])</code></pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>message</code></dt> + <dd>Optional. Human-readable description of the error</dd> + <dt><code>fileName</code> {{non-standard_inline}}</dt> + <dd>Optional. The name of the file containing the code that caused the exception</dd> + <dt><code>lineNumber</code> {{non-standard_inline}}</dt> + <dd>Optional. The line number of the code that caused the exception</dd> +</dl> + +<h2 id="Description">Description</h2> + +<p>An <code>EvalError</code> is thrown when the global {{jsxref("Global_Objects/eval", "eval()")}} function is used improperly.</p> + +<h2 id="Properties">Properties</h2> + +<dl> + <dt>{{jsxref("EvalError.prototype")}}</dt> + <dd>Allows the addition of properties to an <code>EvalError</code> object.</dd> +</dl> + +<h2 id="Methods">Methods</h2> + +<p>The global <code>EvalError</code> contains no methods of its own, however, it does inherit some methods through the prototype chain.</p> + +<h2 id="EvalError_instances"><code>EvalError</code> instances</h2> + +<h3 id="Properties_2">Properties</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype', 'Properties')}}</div> + +<h3 id="Methods_2">Methods</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError/prototype', 'Methods')}}</div> + +<h2 id="Examples">Examples</h2> + +<p><code>EvalError</code> is not used now, and never be thrown by the runtime.</p> + +<h3 id="Creating_an_EvalError">Creating an <code>EvalError</code></h3> + +<pre class="brush: js">try { + throw new EvalError('Hello', 'someFile.js', 10); +} catch (e) { + console.log(e instanceof EvalError); // true + console.log(e.message); // "Hello" + console.log(e.name); // "EvalError" + console.log(e.fileName); // "someFile.js" + console.log(e.lineNumber); // 10 + console.log(e.columnNumber); // 0 + console.log(e.stack); // "@Scratchpad/2:2:9\n" +} +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.6.1', 'EvalError')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Not used in this specification. Present for backward compatibility.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-evalerror', 'EvalError')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Not used in this specification. Present for backward compatibility.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("Error")}}</li> + <li>{{jsxref("EvalError.prototype")}}</li> + <li>{{jsxref("Global_Objects/eval", "eval()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/evalerror/prototype/index.html b/files/ca/web/javascript/reference/global_objects/evalerror/prototype/index.html new file mode 100644 index 0000000000..8aecc42c15 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/evalerror/prototype/index.html @@ -0,0 +1,123 @@ +--- +title: EvalError.prototype +slug: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/EvalError +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>EvalError.prototype</strong></code> representa el prototip del constructor {{jsxref("EvalError")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Totes les instàncies {{jsxref("EvalError")}} hereten de <code>EvalError.prototype</code>. Es pot utilitzar el prototip per afegir propietats o mètodes a totes les instàncies.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>EvalError.prototype.constructor</code></dt> + <dd>Especifica la funció que ha creat el prototip d'una instància.</dd> + <dt>{{jsxref("Error.prototype.message", "EvalError.prototype.message")}}</dt> + <dd>Missatge d'error. Tot i que l'ECMA-262 especifica que {{jsxref("EvalError")}} hauria de proveir la seva pròpia propietat <code>message</code>, en <a href="/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a>, hereta {{jsxref("Error.prototype.message")}}.</dd> + <dt>{{jsxref("Error.prototype.name", "EvalError.prototype.name")}}</dt> + <dd>Nom de l'error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.fileName", "EvalError.prototype.fileName")}}</dt> + <dd>Camí cap al fitxer que ha llançat aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.lineNumber", "EvalError.prototype.lineNumber")}}</dt> + <dd>Número de línia en el fitxer que ha llançat aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.columnNumber", "EvalError.prototype.columnNumber")}}</dt> + <dd>Número de columna en la línia que ha llançat aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.stack", "EvalError.prototype.stack")}}</dt> + <dd>Traça de l'error. Heretat de {{jsxref("Error")}}.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<p>Tot i que l'objecte prototip {{jsxref("EvalError")}} no contè cap mètode en si mateix, les instàncies {{jsxref("EvalError")}} hereten alguns mètodes a través de la cadena prototip.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit com a <code><em>NativeError</em>.prototype</code>.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit com a <code><em>NativeError</em>.prototype</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype")}}</li> + <li>{{jsxref("Function.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/arguments/index.html b/files/ca/web/javascript/reference/global_objects/function/arguments/index.html new file mode 100644 index 0000000000..6371caeb23 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/arguments/index.html @@ -0,0 +1,125 @@ +--- +title: Function.arguments +slug: Web/JavaScript/Reference/Global_Objects/Function/arguments +translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>La propietat <code><strong><em>function</em>.arguments</strong></code> es refereix a un objecte que s'assembla a una array corresponent als arguments passats a una funció. Utilitzeu la variable simple {{jsxref("Functions/arguments", "arguments")}}.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>La sintaxis <code><em>function</em>.arguments</code> és obsoleta. El camí recomanat per accedir a l'objecte {{jsxref("Functions/arguments", "arguments")}} disponible en les funcions requereix simplement referir-se a la variable{{jsxref("Functions/arguments", "arguments")}}.</p> + +<p>En cas de recursivitat, és a dir, si la funció <code>f</code> apareix vàries vegades en la pila de crides, el valor det <code>f.arguments</code> representa els arguments corresponents a la invocació més recent de la funció.</p> + +<p>El valor del la propietat arguments normalment és null si no hi ha una invocació excel·lent de la funció (això vol dir, que s'ha cridat la funció però la seva execució encara no s'ha acabat).</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">function f(n) { g(n - 1); } + +function g(n) { + console.log('before: ' + g.arguments[0]); + if (n > 0) { f(n); } + console.log('after: ' + g.arguments[0]); +} + +f(2); + +console.log('returned: ' + g.arguments); + +// Resultat + +// abans: 1 +// abans: 0 +// després: 0 +// després: 1 +// retorn: null +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Obsolet a favor de {{jsxref("Functions/arguments", "arguments")}} en ES3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-10.6', 'arguments object')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>{{jsxref("Functions/arguments", "arguments")}} object</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-arguments-object', 'arguments object')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>{{jsxref("Functions/arguments", "arguments")}} object</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característca</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Objecte {{jsxref("Functions/arguments", "arguments")}}</li> + <li>{{jsxref("Functions", "Functions and function scope", "", 1)}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/arity/index.html b/files/ca/web/javascript/reference/global_objects/function/arity/index.html new file mode 100644 index 0000000000..d330307535 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/arity/index.html @@ -0,0 +1,70 @@ +--- +title: Function.arity +slug: Web/JavaScript/Reference/Global_Objects/Function/arity +translation_of: Archive/Web/JavaScript/Function.arity +--- +<div>{{JSRef}} {{obsolete_header}}</div> + +<p class="note">La propietat <code><strong>arity</strong></code> solia retornar el número d'arguments esperats per la funció, tanmateix, ja no existeix i s'ha reemplaçat per la propietat {{jsxref("Function.prototype.length")}}.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>Implementat en JavaScript 1.2. Obsolet en JavaScript 1.4.}</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Function.prototype.length")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/caller/index.html b/files/ca/web/javascript/reference/global_objects/function/caller/index.html new file mode 100644 index 0000000000..613e163d6a --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/caller/index.html @@ -0,0 +1,124 @@ +--- +title: Function.caller +slug: Web/JavaScript/Reference/Global_Objects/Function/caller +translation_of: Web/JavaScript/Reference/Global_Objects/Function/caller +--- +<div>{{JSRef}} {{non-standard_header}}</div> + +<p>La propietat <code><strong><em>function</em>.caller</strong></code> retorna la funció que ha invocat la funció especificada.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>SI la funció <code>f</code> ha estat invocada pel codi de nivell superior, el valor de <code>f.caller</code> és {{jsxref("null")}}, sinó és la funció que ha cridat <code>f</code>.</p> + +<p>Aquesta propietat reemplaça la propietat obsoleta {{jsxref("Functions/arguments/caller", "arguments.caller")}} de l'objecte {{jsxref("Functions/arguments", "arguments")}}.</p> + +<p>La propietat especial <code>__caller__</code>, la qual retorna l'objecte activatwhich returned the activation object of the caller thus allowing to reconstruct the stack, was removed for security reasons.</p> + +<h3 id="Notes">Notes</h3> + +<p>Vegeu que en cas de recursió, no podeu reconstruir la pila de crida fent servir aquesta propietat. C that in case of recursion, you can't reconstruct the call stack using this property. Tingueu en compte:</p> + +<pre class="brush: js">function f(n) { g(n - 1); } +function g(n) { if (n > 0) { f(n); } else { stop(); } } +f(2); +</pre> + +<p>At the moment <code>stop()</code> is called the call stack will be:</p> + +<pre class="brush: js">f(2) -> g(1) -> f(1) -> g(0) -> stop() +</pre> + +<p>El següent és cert:</p> + +<pre class="brush: js">stop.caller === g && f.caller === g && g.caller === f +</pre> + +<p>so if you tried to get the stack trace in the <code>stop()</code> function like this:</p> + +<pre class="brush: js">var f = stop; +var stack = 'Stack trace:'; +while (f) { + stack += '\n' + f.name; + f = f.caller; +} +</pre> + +<p>El bucle mai s'aturaria.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Checking_the_value_of_a_function's_caller_property">Checking the value of a function's <code>caller</code> property</h3> + +<p>El codi següent comprova que el valor following code checks the value a function's <code>caller</code> property.</p> + +<pre class="brush: js">function myFunc() { + if (myFunc.caller == null) { + return 'The function was called from the top!'; + } else { + return 'This function\'s caller was ' + myFunc.caller; + } +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. Implementat en JavaScript 1.5.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>8.0</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>Error d'Implementació de SpiderMonkey {{bug(65683)}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/index.html b/files/ca/web/javascript/reference/global_objects/function/index.html new file mode 100644 index 0000000000..9cb0571d13 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/index.html @@ -0,0 +1,236 @@ +--- +title: Function +slug: Web/JavaScript/Reference/Global_Objects/Function +tags: + - Constructor + - Function + - JavaScript + - NeedsTranslation + - TopicStub +translation_of: Web/JavaScript/Reference/Global_Objects/Function +--- +<div>{{JSRef}}</div> + +<p>The <strong><code>Function</code> constructor</strong> creates a new <code>Function</code> object. In JavaScript every function is actually a <code>Function</code> object.</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox"><code>new Function ([<var>arg1</var>[, <var>arg2</var>[, ...<var>argN</var>]],] <var>functionBody</var>)</code></pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>arg1, arg2, ... arg<em>N</em></code></dt> + <dd>Names to be used by the function as formal argument names. Each must be a string that corresponds to a valid JavaScript identifier or a list of such strings separated with a comma; for example "<code>x</code>", "<code>theValue</code>", or "<code>a,b</code>".</dd> + <dt><code>functionBody</code></dt> + <dd>A string containing the JavaScript statements comprising the function definition.</dd> +</dl> + +<h2 id="Description">Description</h2> + +<p><code>Function</code> objects created with the <code>Function</code> constructor are parsed when the function is created. This is less efficient than declaring a function with a <a href="/en-US/docs/Web/JavaScript/Reference/Operators/function">function expression</a> or <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function">function statement</a> and calling it within your code, because such functions are parsed with the rest of the code.</p> + +<p>All arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed.</p> + +<div class="note"> +<p><strong>Note:</strong> Functions created with the <code>Function</code> constructor do not create closures to their creation contexts; they always are created in the global scope. When running them, they will only be able to access their own local variables and global ones, not the ones from the scope in which the <code>Function</code> constructor was called. This is different from using {{jsxref("eval")}} with code for a function expression.</p> +</div> + +<p>Invoking the <code>Function</code> constructor as a function (without using the <code>new</code> operator) has the same effect as invoking it as a constructor.</p> + +<h2 id="Properties_and_Methods_of_Function">Properties and Methods of <code>Function</code></h2> + +<p>The global <code>Function</code> object has no methods or properties of its own, however, since it is a function itself it does inherit some methods and properties through the prototype chain from {{jsxref("Function.prototype")}}.</p> + +<h2 id="Function_prototype_object"><code>Function</code> prototype object</h2> + +<h3 id="Properties">Properties</h3> + +<div>{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Properties')}}</div> + +<h3 id="Methods">Methods</h3> + +<div>{{page('/en-US/docs/JavaScript/Reference/Global_Objects/Function/prototype', 'Methods')}}</div> + +<h2 id="Function_instances"><code>Function</code> instances</h2> + +<p><code>Function</code> instances inherit methods and properties from {{jsxref("Function.prototype")}}. As with all constructors, you can change the constructor's prototype object to make changes to all <code>Function</code> instances.</p> + +<h2 id="Examples">Examples</h2> + +<h3 id="Specifying_arguments_with_the_Function_constructor">Specifying arguments with the <code>Function</code> constructor</h3> + +<p>The following code creates a <code>Function</code> object that takes two arguments.</p> + +<pre class="brush: js">// Example can be run directly in your JavaScript console + +// Create a function that takes two arguments and returns the sum of those arguments +var adder = new Function('a', 'b', 'return a + b'); + +// Call the function +adder(2, 6); +// > 8 +</pre> + +<p>The arguments "<code>a</code>" and "<code>b</code>" are formal argument names that are used in the function body, "<code>return a + b</code>".</p> + +<h3 id="A_recursive_shortcut_to_massively_modify_the_DOM">A recursive shortcut to massively modify the DOM</h3> + +<p>Creating functions with the <code>Function</code> constructor is one of the ways to dynamically create an indeterminate number of new objects with some executable code into the global scope from a function. The following example (a recursive shortcut to massively modify the DOM) is impossible without the invocation of the <code>Function</code> constructor for each new query if you want to avoid closures.</p> + +<pre class="brush: html"><!doctype html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title>MDN Example - a recursive shortcut to massively modify the DOM</title> +<script type="text/javascript"> +var domQuery = (function() { + var aDOMFunc = [ + Element.prototype.removeAttribute, + Element.prototype.setAttribute, + CSSStyleDeclaration.prototype.removeProperty, + CSSStyleDeclaration.prototype.setProperty + ]; + + function setSomething(bStyle, sProp, sVal) { + var bSet = Boolean(sVal), fAction = aDOMFunc[bSet | bStyle << 1], + aArgs = Array.prototype.slice.call(arguments, 1, bSet ? 3 : 2), + aNodeList = bStyle ? this.cssNodes : this.nodes; + + if (bSet && bStyle) { aArgs.push(''); } + for ( + var nItem = 0, nLen = this.nodes.length; + nItem < nLen; + fAction.apply(aNodeList[nItem++], aArgs) + ); + this.follow = setSomething.caller; + return this; + } + + function setStyles(sProp, sVal) { return setSomething.call(this, true, sProp, sVal); } + function setAttribs(sProp, sVal) { return setSomething.call(this, false, sProp, sVal); } + function getSelectors() { return this.selectors; }; + function getNodes() { return this.nodes; }; + + return (function(sSelectors) { + var oQuery = new Function('return arguments.callee.follow.apply(arguments.callee, arguments);'); + oQuery.selectors = sSelectors; + oQuery.nodes = document.querySelectorAll(sSelectors); + oQuery.cssNodes = Array.prototype.map.call(oQuery.nodes, function(oInlineCSS) { return oInlineCSS.style; }); + oQuery.attributes = setAttribs; + oQuery.inlineStyle = setStyles; + oQuery.follow = getNodes; + oQuery.toString = getSelectors; + oQuery.valueOf = getNodes; + return oQuery; + }); +})(); +</script> +</head> + +<body> + +<div class="testClass">Lorem ipsum</div> +<p>Some text</p> +<div class="testClass">dolor sit amet</div> + +<script type="text/javascript"> +domQuery('.testClass') + .attributes('lang', 'en')('title', 'Risus abundat in ore stultorum') + .inlineStyle('background-color', 'black')('color', 'white')('width', '100px')('height', '50px'); +</script> +</body> + +</html> +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initial definition. Implemented in JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.3', 'Function')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-objects', 'Function')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("Functions", "Functions and function scope")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Statements/function", "function statement")}}</li> + <li>{{jsxref("Operators/function", "function expression")}}</li> + <li>{{jsxref("Statements/function*", "function* statement")}}</li> + <li>{{jsxref("Operators/function*", "function* expression")}}</li> + <li>{{jsxref("GeneratorFunction")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/length/index.html b/files/ca/web/javascript/reference/global_objects/function/length/index.html new file mode 100644 index 0000000000..2af00ebf41 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/length/index.html @@ -0,0 +1,134 @@ +--- +title: Function.length +slug: Web/JavaScript/Reference/Global_Objects/Function/length +translation_of: Web/JavaScript/Reference/Global_Objects/Function/length +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>length</strong></code> especifica el nombre d'arguments que la funció espera.</p> + +<div>{{js_property_attributes(0,0,1)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p><code>length</code> és una propietat d'un objecte funció, i indica quants arguments la funció espera, és a dir, el nombre de paràmetres formals. Aquest nombre no inclou el {{jsxref("rest_parameters", "rest parameter", "", 1)}}. Per contra, {{jsxref("Functions_and_function_scope/arguments/length", "arguments.length")}} és local a la funció i retorna el nombre d'arguments que s'han passat a la funció.</p> + +<h3 id="Propietat_Data_del_constructor_Function">Propietat Data del constructor <code>Function</code></h3> + +<p>El constructor {{jsxref("Function")}} és per ell mateix un objecte {{jsxref("Function")}}. La seva propietat data <code>length</code> pren un valor d'1. Els atributs de la propietat són: Writable: <code>false</code>, Enumerable: <code>false</code>, Configurable: <code>true</code>.</p> + +<h3 id="Propietat_de_l'objecte_prototipus_Function">Propietat de l'objecte prototipus <code>Function</code></h3> + +<p>La propietat length de l'objecte prototipus {{jsxref("Function")}} pren un valor de 0.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">console.log(Function.length); /* 1 */ + +console.log((function() {}).length); /* 0 */ +console.log((function(a) {}).length); /* 1 */ +console.log((function(a, b) {}).length); /* 2 etc. */ +console.log((function(...args) {}).length); /* 0, la resta de paràmetres no es conta */ +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definció inicial. Implementat en JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.3.5.1', 'Function.length')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-instances-length', 'Function.length')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>L'atribut <code>configurable</code> d'aquesta propietat és ara <code>true</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Configurable: true</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop(37)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Configurable: true</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(37)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Function")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/function/name/index.html b/files/ca/web/javascript/reference/global_objects/function/name/index.html new file mode 100644 index 0000000000..6f88ba9be2 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/name/index.html @@ -0,0 +1,153 @@ +--- +title: Function.name +slug: Web/JavaScript/Reference/Global_Objects/Function/name +translation_of: Web/JavaScript/Reference/Global_Objects/Function/name +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong><em>function</em>.name</strong></code> retorna el nom de la funció.</p> + +<div>{{js_property_attributes(0,0,1)}}</div> + +<div>Vegeu que en les implementacions no estàndards anteriors a ES2015 l'atribut <code>configurable</code> també era <code>false</code>.</div> + +<h2 id="Descripció">Descripció</h2> + +<p>La propietat <code>name</code> retorna el nom de la funció, o una cadena buida per les funcions anònimes.</p> + +<pre class="brush: js">function fesAlgo() {} + +console.log(desAlgo.name); // escriu "fesAlgo" +</pre> + +<p>Les funcions creades amb la sintaxis <code>new Function(...)</code> o sols <code>Function(...)</code>tenen la seva propietat <code>name</code> en una cadena buida. En els exemples següents es creen funcions anònimes , de forma que <code>name</code> retorna una cadena buida:</p> + +<pre class="brush: js">var f = function() {}; +var object = { + someMethod: function() {} +}; + +console.log(f.name == ''); // true +console.log(object.someMethod.name == ''); // també true +</pre> + +<p>Es pot definir una funció amb un nom en un {{jsxref("Operators/Function", "function expression", "", 1)}}:</p> + +<pre class="brush: js">var object = { + someMethod: function object_someMethod() {} +}; +console.log(object.someMethod.name); // logs "object_someMethod" + +try { object_someMethod } catch(e) { console.log(e); } +// ReferenceError: object_someMethod no està definit +</pre> + +<p>No es pot canviar el nom de la funció, aquesta propietat és només llegible:</p> + +<pre class="brush: js">var object = { + // anònima + someMethod: function() {} +}; + +object.someMethod.name = 'someMethod'; +console.log(object.someMethod.name); // cadena buida, someMethod és anònima. +</pre> + +<p>Per canviar-ho, es pot utilitzar {{jsxref("Object.defineProperty()")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Es pot utilitzar <code>obj.constructor.name</code> per comprovar la "classe" d'un objecte:</p> + +<pre class="brush: js">function a() {} + +var b = new a(); + +console.log(b.constructor.name); // escriu "a" +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES2015', '#sec-name', 'name')}}</td> + <td>{{Spec2('ES2015')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Comptabilitat_amb_navegadors">Comptabilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>33</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Configurable: true</td> + <td>43</td> + <td>{{CompatGeckoDesktop(38)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Configurable: true</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile(38)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/reference/global_objects/function/tosource/index.html b/files/ca/web/javascript/reference/global_objects/function/tosource/index.html new file mode 100644 index 0000000000..27f135ce13 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/function/tosource/index.html @@ -0,0 +1,97 @@ +--- +title: Function.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/Function/toSource +translation_of: Web/JavaScript/Reference/Global_Objects/Function/toSource +--- +<div>{{JSRef}} {{non-standard_header}}</div> + +<p>El mètode <code><strong>toSource()</strong></code>retorna una cadena que representa el codi font de l'objecte.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>function</var>.toSource(); +Function.toSource(); +</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>toSource</code> retorna els valors següents:</p> + +<ul> + <li>Per l'objecte incorporat {{jsxref("Function")}}, <code>toSource()</code> retorna la cadena següent indicant que el codi font no es troba disponible: + + <pre class="brush: js">function Function() { + [native code] +} +</pre> + </li> + <li>Per funcions personalitzades, <code>toSource()</code> retorna la font de JavaScript que defineix l'objecte com una cadena.</li> +</ul> + +<p>Aquest mètode se sol cridar internament per JavaScript i no explícitament en el codi. Podeu cridar <code>toSource</code> durant la depuració per examinar el contingut d'un objecte.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap estàndard. Implementat en JavaScript 1.3.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.toSource()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/assign/index.html b/files/ca/web/javascript/reference/global_objects/object/assign/index.html new file mode 100644 index 0000000000..855b5654a6 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/assign/index.html @@ -0,0 +1,252 @@ +--- +title: Object.assign() +slug: Web/JavaScript/Reference/Global_Objects/Object/assign +translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Object.assign()</code></strong> s'utilitza per copiar els valors de totes les propietats enumerables pròpies d'un o més objectes d'orígens a un objecte objectiu o destí. Retornarà l'objecte destí.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.assign(<var>target</var>, ...<var>orígens</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>target</code></dt> + <dd>L'objecte destí.</dd> + <dt><code>sources</code></dt> + <dd>El(s) objecte(s) d'orígen.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>L'objecte destí (o objectiu) es retornat.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>Object.assign()</code> només copia propietats <em>enumerable</em>s i <em>pròpies</em> d'un objecte orígen a un objecte destí. S'utilitza <code>[[Get]]</code> a l'orígen i <code>[[Put]]</code> al destí, de forma que invocarà getters i setters. Per tant, <em>assigna</em> propietats en comptes de només copiar o definir noves propietats. Axò pot fer que sigui inadequat per juntar noves propietats en un prototipus si les fonts de la unió contenen getters. Per copiar definicions de la propietat, incloent la seva enumerabilitat, en prototipus s'ha de fer servir {{jsxref("Object.getOwnPropertyDescriptor()")}} i {{jsxref("Object.defineProperty()")}}.</p> + +<p>Tant la propietat {{jsxref("String")}} com la propietat {{jsxref("Symbol")}} són copiades.</p> + +<p>En cas d'error, per exemple si una propietat no és modificable, un {{jsxref("TypeError")}} <strong><u>s'incrementarà </u></strong>i l'objecte <code>target</code> object es mantindrà sense canvis.</p> + +<p>Vegeu que <code>Object.assign()</code> does not throw on {{jsxref("null")}} or {{jsxref("undefined")}} source values.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Clonar_un_objecte">Clonar un objecte</h3> + +<pre class="brush: js">var obj = { a: 1 }; +var copy = Object.assign({}, obj); +console.log(copy); // { a: 1 } +</pre> + +<h3 id="Unir_objectes">Unir objectes</h3> + +<pre class="brush: js">var o1 = { a: 1 }; +var o2 = { b: 2 }; +var o3 = { c: 3 }; + +var obj = Object.assign(o1, o2, o3); +console.log(obj); // { a: 1, b: 2, c: 3 } +console.log(o1); // { a: 1, b: 2, c: 3 }, L'objecte de destinació es canvia</pre> + +<h3 id="Copiar_propietats_symbol-typed">Copiar propietats symbol-typed</h3> + +<pre class="brush: js">var o1 = { a: 1 }; +var o2 = { [Symbol('foo')]: 2 }; + +var obj = Object.assign({}, o1, o2); +console.log(obj); // { a: 1, [Symbol("foo")]: 2 } +</pre> + +<h3 id="Les_propietats_heretades_i_les_propietats_no_enumerables_no_es_poden_copiar">Les propietats heretades i les propietats no enumerables no es poden copiar</h3> + +<pre class="brush: js">var obj = Object.create({ foo: 1 }, { // foo és una propietat heretada. + bar: { + value: 2 // bar és una propietat no enumerable. + }, + baz: { + value: 3, + enumerable: true // baz is an own enumerable property. + } +}); + +var copy = Object.assign({}, obj); +console.log(copy); // { baz: 3 } +</pre> + +<h3 id="Primitives_will_be_wrapped_to_objects">Primitives will be wrapped to objects</h3> + +<pre class="brush: js">var v1 = '123'; +var v2 = true; +var v3 = 10; +var v4 = Symbol('foo') + +var obj = Object.assign({}, v1, null, v2, undefined, v3, v4); +// Primitives will be wrapped, null and undefined will be ignored. +// Note, only string wrappers can have own enumerable properties. +console.log(obj); // { "0": "1", "1": "2", "2": "3" } +</pre> + +<h3 id="Exceptions_will_interrupt_the_ongoing_copying_task">Exceptions will interrupt the ongoing copying task</h3> + +<pre class="brush: js">var target = Object.defineProperty({}, 'foo', { + value: 1, + writeable: false +}); // target.foo is a read-only property + +Object.assign(target, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 }); +// TypeError: "foo" is read-only +// The Exception is thrown when assigning target.foo + +console.log(target.bar); // 2, the first source was copied successfully. +console.log(target.foo2); // 3, the first property of the second source was copied successfully. +console.log(target.foo); // 1, exception is thrown here. +console.log(target.foo3); // undefined, assign method has finished, foo3 will not be copied. +console.log(target.baz); // undefined, the third source will not be copied either. +</pre> + +<h3 id="Copying_accessors">Copying accessors</h3> + +<pre class="brush: js">var obj = { + foo: 1, + get bar() { + return 2; + } +}; + +var copy = Object.assign({}, obj); +console.log(copy); +// { foo: 1, bar: 2 }, the value of copy.bar is obj.bar's getter's return value. + +// This is an assign function which can copy accessors. +function myAssign(target, ...sources) { + sources.forEach(source => { + Object.defineProperties(target, Object.keys(source).reduce((descriptors, key) => { + descriptors[key] = Object.getOwnPropertyDescriptor(source, key); + return descriptors; + }, {})); + }); + return target; +} + +var copy = myAssign({}, obj); +console.log(copy); +// { foo:1, get bar() { return 2 } } +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway:</p> + +<pre class="brush: js">if (!Object.assign) { + Object.defineProperty(Object, 'assign', { + enumerable: false, + configurable: true, + writable: true, + value: function(target) { + 'use strict'; + if (target === undefined || target === null) { + throw new TypeError('Cannot convert first argument to object'); + } + + var to = Object(target); + for (var i = 1; i < arguments.length; i++) { + var nextSource = arguments[i]; + if (nextSource === undefined || nextSource === null) { + continue; + } + nextSource = Object(nextSource); + + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + to[nextKey] = nextSource[nextKey]; + } + } + } + return to; + } + }); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}</td> + <td>{{Spec2('ES2015')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_de_navegadors">Compatibilitat de navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Caracteristica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("45")}}</td> + <td>{{CompatGeckoDesktop("34")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("34")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.defineProperties()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/count/index.html b/files/ca/web/javascript/reference/global_objects/object/count/index.html new file mode 100644 index 0000000000..ed84c7006c --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/count/index.html @@ -0,0 +1,82 @@ +--- +title: Object.prototype.__count__ +slug: Web/JavaScript/Reference/Global_Objects/Object/count +translation_of: Archive/Web/JavaScript/Object.count +--- +<div>{{JSRef}} {{obsolete_header("2")}}</div> + +<p>La propietat <strong><code>__count__</code></strong> s'utilitzava per emmagatzemar el recompte de les propietats enumerables d'un objecte, però s'ha eliminat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>obj</var>.__count__</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">{ 1: 1 }.__count__ // 1 +[].__count__ // 0 +[1].__count__ // 1 +[1, /* hole */, 2, 3].__count__ // 3 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="external" href="http://whereswalden.com/2010/04/06/more-changes-coming-to-spidermonkey-the-magical-__count__-property-of-objects-is-being-removed/">[Blog post] Més canvis en SpiderMonkey: la propietat màgica __count__ s'ha eliminat</a></li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/eval/index.html b/files/ca/web/javascript/reference/global_objects/object/eval/index.html new file mode 100644 index 0000000000..8c43cf423a --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/eval/index.html @@ -0,0 +1,85 @@ +--- +title: Object.prototype.eval() +slug: Web/JavaScript/Reference/Global_Objects/Object/eval +translation_of: Archive/Web/JavaScript/Object.eval +--- +<div>{{JSRef}} {{obsolete_header}}</div> + +<p>El mètode <code><strong>Object.eval()</strong></code> solia avaluar una cadena del codi JavaScript en el context d'un objecte, tanmateix, aquest mètode s'ha eliminat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>obj</var>.eval(<var>cadena</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>cadena</code></dt> + <dd>Qualsevol cadena que representi una expressió JavaScript, sentència, o una seqüència de sentències. L'expressió pot incloure variables i propietats d'objectes ja existents.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>eval</code> ja no es pot utilitzar com a mètode d'un objecte. Utilitzeu la funció de més alt nivell {{jsxref("Global_Objects/eval", "eval()")}} per aquesta finalitat.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/eval", "eval()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/freeze/index.html b/files/ca/web/javascript/reference/global_objects/object/freeze/index.html new file mode 100644 index 0000000000..1231afe27f --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/freeze/index.html @@ -0,0 +1,193 @@ +--- +title: Object.freeze() +slug: Web/JavaScript/Reference/Global_Objects/Object/freeze +translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Object.freeze()</strong></code> congela un objecte: és a dir, evita que se li puguin afegir noves propietats, eliminar propietats ja existents així com modificar els paràmetres d'enumerabilitat, configurabilitat i possibilitat d'escriptura de les propietats existents. Això, en essència fa que l'objecte esdevingui immutable a efectes pràctics. El mètode retorna l'objecte que s'ha congelat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.freeze(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte a congelar.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Res pot ser afegit o eliminat del conjunt de propietats d'un objecte congelat. Qualsevol intent fallarà o bé sense reportar cap error o bé llençant una excepció {{jsxref("TypeError")}} (és l'excepció més freqüent que serà llençada però en pot llençat altres tipus; a l'utilitzar el {{jsxref("Strict_mode", "mode estricte", "", 1)}}).</p> + +<p>Congelar un objecte també evita que es puguin modificar els valors de les seves propietats. Les propietats d'accés (getters i setters) segueixen funcionan (donant la il·lusió que s'ha canviat el valor). Cal advertir, però, que els valors que siguin objectes sí que es poden modificar, a no ser que aquests objectes també estiguin congelats.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">var obj = { + prop: function() {}, + foo: 'bar' +}; + +// Es poden afegir noves propietats, així com canviar o eliminar les propietats ja existents +obj.foo = 'baz'; +obj.lumpy = 'woof'; +delete obj.prop; + +var o = Object.freeze(obj); + +assert(Object.isFrozen(obj) === true); + +// A partir d'ara qualsevol canvi fallarà +obj.foo = 'quux'; // falla silenciosament +obj.quaxxor = 'the friendly duck'; // romàn en silenci i no afegeix la propietat + +// ...i en mode estricte qualsevol intent llençarà una excepció TypeError +function fail(){ + 'use strict'; + obj.foo = 'sparky'; // llença TypeError + delete obj.quaxxor; // llença TypeError + obj.sparky = 'arf'; // llença TypeError +} + +fail(); + +// Intentar realitzar canvis a través de Object.defineProperty també resultaran en excepcions +Object.defineProperty(obj, 'ohai', { value: 17 }); // llença TypeError +Object.defineProperty(obj, 'foo', { value: 'eit' }); // llença TypeError +</pre> + +<p>L'exemple següent demostra que valors de tipus objecte pertanyents a propietats d'un objecte congelat sí que es poden modificar.(<code>freeze</code> no s'aplica de manera recursiva).</p> + +<pre class="brush: js">obj1 = { + internal: {} +}; + +Object.freeze(obj1); +obj1.internal.a = 'aValue'; + +obj1.internal.a // 'aValue' + +// Per a fer que obj sigui totalment immutable cal congelar tots els objectes referenciats per aquest. +// Per a aconseguir això utilitzem la funció següent +function deepFreeze(obj) { + + // Obté els nomes de les propietats definides a l'objecte obj + var propNames = Object.getOwnPropertyNames(obj); + + // Congela les propietats abans de congelar l'objecte en si + propNames.forEach(function(name) { + var prop = obj[name]; + + // Congela prop si aquest és un objecte + if (typeof prop == 'object' && !Object.isFrozen(prop)) + deepFreeze(prop); + }); + + // Congela l'objecte pare + return Object.freeze(obj); +} + +obj2 = { + internal: {} +}; + +deepFreeze(obj2); +obj2.internal.a = 'anotherValue'; +obj2.internal.a; // undefined +</pre> + +<h2 id="Notes">Notes</h2> + +<p>A l'EcmaScript 5, si l'argument passat a aquest mètode no és un objecte (un valor primitiu), llençarà un {{jsxref("TypeError")}}. A l'EcmaScript 6, un argument que no sigui un objecte serà tractat com si fós un objecte congelat ordinari, i simplement el retornarà.</p> + +<pre class="brush: js">> Object.freeze(1) +TypeError: 1 no és un objecte // Codi EcmaScript 5 + +> Object.freeze(1) +1 // Codi EcmaScript 6 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.freeze', 'Object.freeze')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Firefox (Gecko)</th> + <th>Chrome</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatGeckoDesktop("2")}}</td> + <td>{{CompatChrome("6")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("12")}}</td> + <td>{{CompatSafari("5.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Firefox Mobile (Gecko)</th> + <th>Android</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.isFrozen()")}}</li> + <li>{{jsxref("Object.preventExtensions()")}}</li> + <li>{{jsxref("Object.isExtensible()")}}</li> + <li>{{jsxref("Object.seal()")}}</li> + <li>{{jsxref("Object.isSealed()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html b/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html new file mode 100644 index 0000000000..01666d0898 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/getprototypeof/index.html @@ -0,0 +1,124 @@ +--- +title: Object.getPrototypeOf() +slug: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Object.getPrototypeOf()</strong></code> retorna el prototipus (és a dir, el valor de la propietat interna <code>[[Prototype]]</code>) de l'objecte especificat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.getPrototypeOf(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte del qual es retornarà el prototipus.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">var proto = {}; +var obj = Object.create(proto); +Object.getPrototypeOf(obj) === proto; // true +</pre> + +<h2 id="Notes">Notes</h2> + +<p>A l'EcmaScript 5 llençarà una excepció {{jsxref("TypeError")}} si el paràmetre <code>obj</code> no és un objecte. A l'EcmaScript 6 el paràmetre serà forçat al tipus {{jsxref("Object")}}.</p> + +<pre class="brush: js">Object.getPrototypeOf("foo"); +// TypeError: "foo" no és un objecte (codi EcmaScript 5) +Object.getPrototypeOf("foo"); +// String.prototype (codi EcmaScript 6) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("5")}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("12.10")}}</td> + <td>{{CompatSafari("5")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_a_Opera">Notes específiques per a Opera</h2> + +<p>Tot i que versions antigues de Opera no suporten <code>Object.getPrototypeOf()</code>, Opera soporta la propietat no standard {{jsxref("Object.proto", "__proto__")}} a partir de la versió 10.50.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li> + <li>{{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}}</li> + <li>{{jsxref("Object.prototype.__proto__")}}</li> + <li>John Resig's post on <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/">getPrototypeOf</a></li> + <li>{{jsxref("Reflect.getPrototypeOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/index.html b/files/ca/web/javascript/reference/global_objects/object/index.html new file mode 100644 index 0000000000..1c2a779065 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/index.html @@ -0,0 +1,213 @@ +--- +title: Object +slug: Web/JavaScript/Reference/Global_Objects/Object +tags: + - Constructor + - JavaScript + - NeedsTranslation + - Object + - TopicStub +translation_of: Web/JavaScript/Reference/Global_Objects/Object +--- +<div>{{JSRef}}</div> + +<p>El constructor <code><strong>Object</strong></code> crea un embolcall d'objecte.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>// Inicialitzador d'objecte o literal +{ [ <var>parellNomValor1</var>[, <var>parellNomValor2</var>[, ...<var>parellNomValorN</var>] ] ] } + +// Cridat com a constructor +new Object([valor])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>parellNomValor1, parellNomValor2, ... parellNomValor<em>N</em></code></dt> + <dd>Parells de noms (string) i valors (quasevol valor) on els noms se separen dels valors mitjançant dos punts (:).</dd> + <dt><code>value</code></dt> + <dd>Qualsevol valor.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El constructor <code>Object</code> crea un embolcall d'objecte per al valor donat. Si el valor és {{jsxref("null")}} o bé {{jsxref("undefined")}}, crearà i retornarà un objecte buit. En cas contrari retornarà un objecte del tipus corresponent al valor donat. Si el valor donat ja és un objecte, retornarà el mateix objecte.</p> + +<p>Quan es crida fora d'un contexte constructor, <code>Object</code> es comporta exactament de la mateixa manera que <code>new Object()</code>.</p> + +<p>Vegeu també la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">sintaxi literal / d'inicialització d'objectes</a>.</p> + +<h2 id="Propietats_del_constructor_Object">Propietats del constructor <code>Object</code></h2> + +<dl> + <dt><code>Object.length</code></dt> + <dd>Val 1.</dd> + <dt>{{jsxref("Object.prototype")}}</dt> + <dd>Permet l'adició de propietats a tots els objecte del tipus <code>Object</code>.</dd> +</dl> + +<h2 id="Mètodes_del_constructor_Object">Mètodes del constructor <code>Object</code></h2> + +<dl> + <dt>{{jsxref("Object.assign()")}} {{experimental_inline}}</dt> + <dd>Crea un nou objecte copiant els valors de totes les propietats pròpies enumerables d'un o més objectes origin a l'objecte destí.</dd> + <dt>{{jsxref("Object.create()")}}</dt> + <dd>Crea un nou objecte amb l'objecte prototipus que s'especifiqui, així com les propietats passades.</dd> + <dt>{{jsxref("Object.defineProperty()")}}</dt> + <dd>Afegeix a l'objecte la propietat amb nom descrita pel descriptor especificat.</dd> + <dt>{{jsxref("Object.defineProperties()")}}</dt> + <dd>Afegeix a l'objecte les propietats amb nom descrites pels descriptors especificats.</dd> + <dt>{{jsxref("Object.freeze()")}}</dt> + <dd><em>Congela</em> un objecte de forma que les propietats d'aquest no poden ser esborrades o canviades.</dd> + <dt>{{jsxref("Object.getOwnPropertyDescriptor()")}}</dt> + <dd>Retorna un descriptor de propietat per a la propietat donada d'un objecte.</dd> + <dt>{{jsxref("Object.getOwnPropertyNames()")}}</dt> + <dd>Retorna un array que contindrà els nomes de totes les propietats <strong>pròpies</strong> d'un objecte, tant enumerables com no enumerables.</dd> + <dt>{{jsxref("Object.getOwnPropertySymbols()")}} {{experimental_inline}}</dt> + <dd>Retorna un array amb totes les propietats de tipus symbol que siguin pròpies d'un objecte donat.</dd> + <dt>{{jsxref("Object.getPrototypeOf()")}}</dt> + <dd>Retorna el prototipus de l'objecte especificat.</dd> + <dt>{{jsxref("Object.is()")}} {{experimental_inline}}</dt> + <dd>Compara dos valors i determina si són equivalents (és a dir, si són el mateix objecte).</dd> + <dt>{{jsxref("Object.isExtensible()")}}</dt> + <dd>Determina si és permés extendre un objecte.</dd> + <dt>{{jsxref("Object.isFrozen()")}}</dt> + <dd>Determina si l'objecte està congelat.</dd> + <dt>{{jsxref("Object.isSealed()")}}</dt> + <dd>Determina si un objecte està segellat.</dd> + <dt>{{jsxref("Object.keys()")}}</dt> + <dd>Retorna un array que conté els noms de totes les propietats enumerables <strong>pròpies</strong> d'un objecte donat.</dd> + <dt>{{jsxref("Object.observe()")}} {{experimental_inline}}</dt> + <dd>Observa canvies en un objecte de forma asíncrona.</dd> + <dt>{{jsxref("Object.preventExtensions()")}}</dt> + <dd>Desactiva la capacitat d'un objecte per a ser extés.</dd> + <dt>{{jsxref("Object.seal()")}}</dt> + <dd>Desactiva la capacitat de poder esborrar propietats de l'objecte.</dd> + <dt>{{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}}</dt> + <dd>Assigna el prototipus (és a dir, la propietat interna <code>[[Prototype]]</code>)</dd> +</dl> + +<h2 id="Instàncies_de_Object_i_l'objecte_prototipus">Instàncies de <code>Object</code> i l'objecte prototipus</h2> + +<p>A JavaScript, tots els objectes són descendents de <code>Object</code>; tots els objectes hereten els mètodes i propietats de {{jsxref("Object.prototype")}}, tot i que poden ser sobreescrits. Per exemple, els prototipus d'altres constructors sobreescriuen la propietat <code>constructor</code> i ofereixen el seu propi mètode <code>toString()</code>. Els canvis al prototipus <code>Object</code> es propaguen a tots els objectes a no ser que les propietats i mètodes que reben aquests canvis hagin sigut sobreescrites més avall a la cadena de prototipus.</p> + +<h3 id="Propietats">Propietats</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Properties') }}</div> + +<h3 id="Mètodes">Mètodes</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Methods') }}</div> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Object_amb_els_tipus_undefined_i_null_types">Utilitzar <code>Object</code> amb els tipus <code>undefined</code> i <code>null</code> types</h3> + +<p>Els següents exemples emmagatzemen un objecte <code>Object</code> buit a <code>o</code>:</p> + +<pre class="brush: js">var o = new Object(); +</pre> + +<pre class="brush: js">var o = new Object(undefined); +</pre> + +<pre class="brush: js">var o = new Object(null); +</pre> + +<h3 id="Utilitzar_Object_per_a_crear_objectes_booleans">Utilitzar <code>Object</code> per a crear objectes booleans</h3> + +<p>Els exemples següents emmagatzemen objectes de tipus {{jsxref("Boolean")}} a <code>o</code>:</p> + +<pre class="brush: js">// equivalent a o = new Boolean(true); +var o = new Object(true); +</pre> + +<pre class="brush: js">// equivalent a o = new Boolean(false); +var o = new Object(Boolean()); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2', 'Object')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object-objects', 'Object')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">Inicialitzador d'objectes</a></li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html b/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html new file mode 100644 index 0000000000..7b8700654c --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/isextensible/index.html @@ -0,0 +1,138 @@ +--- +title: Object.isExtensible() +slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible +translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Object.isExtensible()</code></strong> determina si un objecte és extensible (és a dir, si accepta l'addició de noves propietats).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.isExtensible(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte del que comprovarà l'extensibilitat.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Per defecte tots els objectes són extensibles: se'ls hi poden afegir noves propietats, i (en objectes que suportin {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} la seva propietat __proto__ property) es pot modificar. Es pot marcar un objecte com a no extensible utilitzant {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}}, o bé {{jsxref("Object.freeze()")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">// Els objectes nous són extensibles. +var empty = {}; +Object.isExtensible(empty); // === true + +// ...pero això pot canviar. +Object.preventExtensions(empty); +Object.isExtensible(empty); // === false + +// Els objectes segellats són no extensibles per definició +var sealed = Object.seal({}); +Object.isExtensible(sealed); // === false + +// Els objectes congelats també són no extensibes per definició +var frozen = Object.freeze({}); +Object.isExtensible(frozen); // === false +</pre> + +<h2 id="Notes">Notes</h2> + +<p>A l'EcmaScript 5, si l'argument d'aquest mètode no és un objecte (un valor primitiu) es llençarà una excepció {{jsxref("TypeError")}}. A l'EcmaScript 6, un argument que no sigui un objecte es tractarà com si fós un objecte no extensible ordinari i simplement retornarà <code>false</code>.</p> + +<pre class="brush: js">Object.isExtensible(1); +// TypeError: 1 no és un objecte (codi EcmaScript 5) + +Object.isExtensible(1); +// false (codi EcmaScript 6) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("6")}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("12")}}</td> + <td>{{CompatSafari("5.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.preventExtensions()")}}</li> + <li>{{jsxref("Object.seal()")}}</li> + <li>{{jsxref("Object.isSealed()")}}</li> + <li>{{jsxref("Object.freeze()")}}</li> + <li>{{jsxref("Object.isFrozen()")}}</li> + <li>{{jsxref("Reflect.isExtensible()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html new file mode 100644 index 0000000000..46c2e24be2 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html @@ -0,0 +1,182 @@ +--- +title: Object.isFrozen() +slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen +translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Object.isFrozen()</strong></code> determina si un objecte està congelat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.isFrozen(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte que es comprovarà si està congelat o no.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Un objecte està congelat si i només si no és {{jsxref("Object.isExtensible()", "extensible", "", 1)}}, cap de les seves propietats és configurable, i cap de les seves propietats de dades (és a dir, propietats que no són <em>accessor</em> amb components getter o setter) that is, properties which are not accessor properties with getter or setter components) es poden escriure (modificar el seu valor).</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">// Els objectes nous són extensibles, així que no estan congelats. +Object.isFrozen({}); // === false + +// Un objecte buit que no és extensible està congelat ja que no te propietats que trenquin les restriccions. +var vacuouslyFrozen = Object.preventExtensions({}); +Object.isFrozen(vacuouslyFrozen); // === true + +// Un objecte nou amb una propietat és extensible, i per tant no està congelat. +var oneProp = { p: 42 }; +Object.isFrozen(oneProp); // === false + +// Fer-lo no extensible no el fa congelat, +// perquè la propietat encara és configurable (i permet l'escriptura). +Object.preventExtensions(oneProp); +Object.isFrozen(oneProp); // === false + +// ...però, un altre cop, si eliminem la propietat ens trobem amb un objecte buit congelat. +delete oneProp.p; +Object.isFrozen(oneProp); // === true + +// Un objecte no extensible amb una propietat que no permeti l'escriptura però sí que es configurable no està congelat. +var nonWritable = { e: 'plep' }; +Object.preventExtensions(nonWritable); +Object.defineProperty(nonWritable, 'e', { writable: false }); // fer que la propietat no permeti l'escriptura +Object.isFrozen(nonWritable); // === false + +// Fer aquesta propietat no configurable fa que l'objecte estigui congelat +Object.defineProperty(nonWritable, 'e', { configurable: false }); // fer la propietat no configurable +Object.isFrozen(nonWritable); // === true + +// Un objecte no extensible amb una propietat no configurable però que si permeti l'escriptura tampoc està congelat. +var nonConfigurable = { release: 'the kraken!' }; +Object.preventExtensions(nonConfigurable); +Object.defineProperty(nonConfigurable, 'release', { configurable: false }); +Object.isFrozen(nonConfigurable); // === false + +// Canviar aquesta propietat per a que no permeti l'escriptura fa que l'objecte estigui congelat. +Object.defineProperty(nonConfigurable, 'release', { writable: false }); +Object.isFrozen(nonConfigurable); // === true + +// Un objecte amb una propietat accessor no extensible no està congelat. +var accessor = { get food() { return 'yum'; } }; +Object.preventExtensions(accessor); +Object.isFrozen(accessor); // === false + +// ...però si la propietat es fa no configurable l'objecte esdevé congelat. +Object.defineProperty(accessor, 'food', { configurable: false }); +Object.isFrozen(accessor); // === true + +// La forma més fàcil, però, d'aconseguir congelar un objecte és cridant el mètode Object.freeze al mateix objecte. +var frozen = { 1: 81 }; +Object.isFrozen(frozen); // === false +Object.freeze(frozen); +Object.isFrozen(frozen); // === true + +// Per definició, un objecte congelat no és extensible. +Object.isExtensible(frozen); // === false + +// També per definició, un objecte congelat està segellat. +Object.isSealed(frozen); // === true +</pre> + +<h2 id="Notes">Notes</h2> + +<p>A l'EcmaScript 5, si l'argument passat a aquest mètode no és un objecte (un valor primitiu), llençarà un <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a>. A l'EcmaScript 6, un argument que no sigui un objecte serà tractat com si fós un objecte congelat ordinari, i simplement el retornarà.</p> + +<pre class="brush: js">Object.isFrozen(1); +// TypeError: 1 no és un objecte (codi EcmaScript 5) + +Object.isFrozen(1); +// true (codi EcmaScript 6) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("6")}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("12")}}</td> + <td>{{CompatSafari("5.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.freeze()")}}</li> + <li>{{jsxref("Object.preventExtensions()")}}</li> + <li>{{jsxref("Object.isExtensible()")}}</li> + <li>{{jsxref("Object.seal()")}}</li> + <li>{{jsxref("Object.isSealed()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/keys/index.html b/files/ca/web/javascript/reference/global_objects/object/keys/index.html new file mode 100644 index 0000000000..17d05b181c --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/keys/index.html @@ -0,0 +1,189 @@ +--- +title: Object.keys() +slug: Web/JavaScript/Reference/Global_Objects/Object/keys +translation_of: Web/JavaScript/Reference/Global_Objects/Object/keys +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Object.keys()</strong></code> retorna un array de les propietats enumerables pròpies de l'objecte, en el mateix ordre en que es donarien en un bucle {{jsxref("Statements/for...in", "for...in")}} (la diferència radica en que el bucle for-in també enumera les propietats que pertanyen a la cadena de prototipus).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.keys(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte del qual es retornaran les seves propietats pròpies enumerables.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>Object.keys()</code> retorna un array els elements del qual són strings que corresponen a les propietats enumerables que pertanyen directament a l'objecte <code>obj</code>. L'ordre de les propietats és el mateix que el donat per recòrrer les propieats de l'objecte de forma manual.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">var arr = ['a', 'b', 'c']; +console.log(Object.keys(arr)); // console: ['0', '1', '2'] + +// objecte en forma d'array +var obj = { 0: 'a', 1: 'b', 2: 'c' }; +console.log(Object.keys(obj)); // console: ['0', '1', '2'] + +// objecte en forma d'array amb les claus ordenades de manera aleatòria +var an_obj = { 100: 'a', 2: 'b', 7: 'c' }; +console.log(Object.keys(an_obj)); // console: ['2', '7', '100'] + +// getFoo és una propietat no enumerable +var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } }); +my_obj.foo = 1; + +console.log(Object.keys(my_obj)); // console: ['foo'] +</pre> + +<p>Si esteu interessats en obtenir totes les propietats, no només les enumerables, vegeu {{jsxref("Object.getOwnPropertyNames()")}}.</p> + +<h2 id="Notes">Notes</h2> + +<p>A l'EcmaScript 5 llençarà una excepció <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a> si el paràmetre <code>obj</code> no és un objecte. A l'EcmaScript 6 el paràmetre serà forçat al tipus <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Object" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>Object</code></a>.</p> + +<pre class="brush: js">Object.keys("foo"); +// TypeError: "foo" no és un objecte (codi EcmaScript 5) +Object.keys("foo"); +// ["0", "1", "2"] (codi EcmaScript 6) +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Per a afegit una funció compatible amb <code>Object.keys</code> en plataformes que no la suporten de forma nativa, podeu utilitzar el codi següent:</p> + +<pre class="brush: js">// Tret de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys +if (!Object.keys) { + Object.keys = (function() { + 'use strict'; + var hasOwnProperty = Object.prototype.hasOwnProperty, + hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'), + dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' + ], + dontEnumsLength = dontEnums.length; + + return function(obj) { + if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) { + throw new TypeError('Object.keys called on non-object'); + } + + var result = [], prop, i; + + for (prop in obj) { + if (hasOwnProperty.call(obj, prop)) { + result.push(prop); + } + } + + if (hasDontEnumBug) { + for (i = 0; i < dontEnumsLength; i++) { + if (hasOwnProperty.call(obj, dontEnums[i])) { + result.push(dontEnums[i]); + } + } + } + return result; + }; + }()); +} +</pre> + +<p>Cal destacar que aquest codi inclou també propietats no enumerables a Internet Explorer 7 (i possiblement també a Internet Explorer 8), al passar un objecte pertanyent a una altra finestra.</p> + +<p>Per a una versió simplificada Polyfill per a navegadors vegeu <a href="http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html">Compatibilitat de navegadors amb la funció Object.keys de JavaScript</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.14', 'Object.keys')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.keys', 'Object.keys')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("5")}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("12")}}</td> + <td>{{CompatSafari("5")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Enumerability_and_ownership_of_properties">Enumerabilitat i possessió de propietats</a></li> + <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li> + <li>{{jsxref("Object.create()")}}</li> + <li>{{jsxref("Object.getOwnPropertyNames()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/observe/index.html b/files/ca/web/javascript/reference/global_objects/object/observe/index.html new file mode 100644 index 0000000000..7059b86cd8 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/observe/index.html @@ -0,0 +1,191 @@ +--- +title: Object.observe() +slug: Web/JavaScript/Reference/Global_Objects/Object/observe +translation_of: Archive/Web/JavaScript/Object.observe +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Object.observe()</code></strong> s'utilitza per observar asincrònicament els canvis en un objecte. Proveeix una corrent de canvis en l'ordre en què es produeixen.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Object.observe(<var>obj</var>, <var>callback</var>[, <var>acceptList</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte que s'observa.</dd> + <dt><code>callback</code></dt> + <dd>La funció es crida cada cop que es realitzen canvis, amb l'argument següent: + <dl> + <dt><code>changes</code></dt> + <dd>Un array d'objectes cadascún d'ells representa un canvi. Les propietats d'aquests objectes canvi són: + <ul> + <li><strong><code>name</code></strong>: El nom de la propietat que s'ha canviat.</li> + <li><strong><code>object</code></strong>: L'objecte canviat després d'haverse realitzat els canvis.</li> + <li><strong><code>type</code></strong>: Una cadena que indica el tipus de canvi que s'ha portat a terme: <code>"add"</code>, <code>"update"</code>, o <code>"delete"</code>.</li> + <li><strong><code>oldValue</code></strong>: Només pels tipus <code>"update"</code> i <code>"delete"</code>. El valor abans del canvi.</li> + </ul> + </dd> + </dl> + </dd> + <dt><code>acceptList</code></dt> + <dd>La llista de tipus de canvis que s'han d'observar en l'objecte donat callback. En cas d'ometre's, s'utilitzarà l'array <code>["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"]</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>callback</code> és cridat cada cop que es realitza un canvi a <code>obj</code>, amb un array de tots els canvis en l'ordre en que han succeït.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Mostrant_tots_els_sis_tipus_diferents">Mostrant tots els sis tipus diferents</h3> + +<pre class="brush: js">var obj = { + foo: 0, + bar: 1 +}; + +Object.observe(obj, function(changes) { + console.log(changes); +}); + +obj.baz = 2; +// [{name: 'baz', object: <obj>, type: 'add'}] + +obj.foo = 'hello'; +// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}] + +delete obj.baz; +// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}] + +Object.defineProperty(obj, 'foo', {writable: false}); +// [{name: 'foo', object: <obj>, type: 'reconfigure'}] + +Object.setPrototypeOf(obj, {}); +// [{name: '__proto__', object: <obj>, type: 'setPrototype', oldValue: <prototype>}] + +Object.seal(obj); +// [ +// {name: 'foo', object: <obj>, type: 'reconfigure'}, +// {name: 'bar', object: <obj>, type: 'reconfigure'}, +// {object: <obj>, type: 'preventExtensions'} +// ] +</pre> + +<h3 id="Enllaçar_dades">Enllaçar dades</h3> + +<pre class="brush: js">// Un model d'usuari +var user = { + id: 0, + name: 'Brendan Eich', + title: 'Mr.' +}; + +// Crear una benvinguda per l'usuari +function updateGreeting() { + user.greeting = 'Hello, ' + user.title + ' ' + user.name + '!'; +} +updateGreeting(); + +Object.observe(user, function(changes) { + changes.forEach(function(change) { + // Qualsevol canvi de nom del temps o títol, actualitzar la benvinguda + if (change.name === 'name' || change.name === 'title') { + updateGreeting(); + } + }); +}); +</pre> + +<h3 id="Tipus_de_canvi_personalitzat">Tipus de canvi personalitzat</h3> + +<pre class="brush: js">// Un punt en un pla 2D +var point = {x: 0, y: 0, distance: 0}; + +function setPosition(pt, x, y) { + // Performing a custom change + Object.getNotifier(pt).performChange('reposition', function() { + var oldDistance = pt.distance; + pt.x = x; + pt.y = y; + pt.distance = Math.sqrt(x * x + y * y); + return {oldDistance: oldDistance}; + }); +} + +Object.observe(point, function(changes) { + console.log('Distance change: ' + (point.distance - changes[0].oldDistance)); +}, ['reposition']); + +setPosition(point, 3, 4); +// Distance change: 5 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p><a href="https://github.com/arv/ecmascript-object-observe">Proposta de Strawman per ECMAScript 7</a>.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("36")}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatOpera("23")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("36")}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}} [2]</td> + <td>{{CompatOpera("23")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1]: Vegeu {{bug(800355)}}</p> + +<p>[2]: Vegeu rellevant <a href="https://dev.modern.ie/platform/status/objectobserve/">entrada de l'estat de la plataforma MS Edge</a></p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li> + <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/object/prototype/index.html b/files/ca/web/javascript/reference/global_objects/object/prototype/index.html new file mode 100644 index 0000000000..b18ecc2d5a --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/object/prototype/index.html @@ -0,0 +1,214 @@ +--- +title: Object.prototype +slug: Web/JavaScript/Reference/Global_Objects/Object/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Object +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>Object.prototype</strong></code> representa el prototipus per a {{jsxref("Object")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>A JavaScript, tots els objectes hereten de {{jsxref("Object")}}; tots els objectes hereten els mètodes i propietats de <code>Object.prototype</code>, tot i que es poden sobreescriure (excepte un <code>Object</code> amb prototipus <code>null</code>, és a dir, <code>Object.create(null)</code>). Per exemple, altres prototipus de constructors sobreescriuen la propietat <code>constructor</code> i ofereixen els seus propis mètodes {{jsxref("Object.prototype.toString()", "toString()")}}. Els canvis al prototipus <code>Object</code> es propaguen a tots els objectes a no ser que les propietats i mètodes que reben aquests canvis hagin sigut sobreescrites més avall a la cadena de prototipus.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt>{{jsxref("Object.prototype.constructor")}}</dt> + <dd>Especifica la funció que ha creat el prototipus de l'objecte.</dd> + <dt>{{jsxref("Object.prototype.__proto__")}} {{non-standard_inline}}</dt> + <dd>Referencia l'objecte utilitzat com a prototipus quan aquest objecte va ser instanciat.</dd> + <dt>{{jsxref("Object.prototype.__noSuchMethod__")}} {{non-standard_inline}}</dt> + <dd>Permet definir una funció que serà executada quan es cridi com mètode un membre no definit.</dd> + <dt><s class="obsoleteElement">{{jsxref("Object.prototype.__count__")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Retornava el nombre de propietats enumerables que hi hagués a un objecte definit per l'usuari. S'ha eliminat.</s></dd> + <dt><s class="obsoleteElement">{{jsxref("Object.prototype.__parent__")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Referenciava el context d'un objecte. S'ha eliminat.</s></dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Object.prototype.__defineGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Associa una funció a una propietat que, quan s'accedeix, executa aquesta funció i retorna el seu valor.</dd> + <dt>{{jsxref("Object.prototype.__defineSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Associa una funció a una propietat que, quan s'assigna, executa aquesta funció que modifica la propietat.</dd> + <dt>{{jsxref("Object.prototype.__lookupGetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Retorna una funció associada a la propietat especificada pel mètode {{jsxref("Object.defineGetter", "__defineGetter__")}}.</dd> + <dt>{{jsxref("Object.prototype.__lookupSetter__()")}} {{non-standard_inline}} {{deprecated_inline}}</dt> + <dd>Retorna a funció associada a la propietat especificada pel mètode {{jsxref("Object.defineSetter", "__defineSetter__")}}.</dd> + <dt>{{jsxref("Object.prototype.hasOwnProperty()")}}</dt> + <dd>Retorna un booleà que indica si l'objecte conté la propietat especificada com una propietat pròpia d'ell mateix en comptes d'heretar-la a través de la cadena de prototipus.</dd> + <dt>{{jsxref("Object.prototype.isPrototypeOf()")}}</dt> + <dd>Retorna un booleà que indica si l'objecte espeicfifcat pertany a la cadena de prototipus de l'objecte sobre el que es crida aquest mètode.</dd> + <dt>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</dt> + <dd>Retorna un booleà que indica si està activat l'atribut intern <a href="/en-US/docs/ECMAScript_DontEnum_attribute" title="ECMAScript_DontEnum_attribute">DontEnum de l'ECMAScript</a>.</dd> + <dt>{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna un string que conté cofi font que defineix un literal d'objecte que representa l'objecte sobre el que s'executa aquest mètode; aquest valor pot utilitzar-se per a crear un nou objecte.</dd> + <dt>{{jsxref("Object.prototype.toLocaleString()")}}</dt> + <dd>Crida el mètode {{jsxref("Object.toString", "toString()")}}.</dd> + <dt>{{jsxref("Object.prototype.toString()")}}</dt> + <dd>Retorna una representació d'aquest objecte en forma de string.</dd> + <dt>{{jsxref("Object.prototype.unwatch()")}} {{non-standard_inline}}</dt> + <dd>Esborra un <em>watchpoint</em> d'una propietat de l'objecte.</dd> + <dt>{{jsxref("Object.prototype.valueOf()")}}</dt> + <dd>Retorna el valor primitiu de l'objecte especificat.</dd> + <dt>{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}</dt> + <dd>Afegeix un <em>watchpoint</em> a una propietat de l'objecte.</dd> + <dt><s class="obsoleteElement">{{jsxref("Object.prototype.eval()")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Evaluava un string de codi font JavaScript dins el context de l'objecte especificat. S'ha eliminat.</s></dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<p>Degut a que JavaScript no res semblant a subclasses d'objectes, la propietat <code>prototype</code> és una bona forma d'utilitzar algunes funcions que fan d'objectes com a "classe base". Per exemple:</p> + +<pre class="brush: js">var Person = function() { + this.canTalk = true; +}; + +Person.prototype.greet = function() { + if (this.canTalk) { + console.log('Hi, I am ' + this.name); + } +}; + +var Employee = function(name, title) { + Person.call(this); + this.name = name; + this.title = title; +}; + +Employee.prototype = Object.create(Person.prototype); +Employee.prototype.constructor = Employee; + +Employee.prototype.greet = function() { + if (this.canTalk) { + console.log('Hi, I am ' + this.name + ', the ' + this.title); + } +}; + +var Customer = function(name) { + Person.call(this); + this.name = name; +}; + +Customer.prototype = Object.create(Person.prototype); +Customer.prototype.constructor = Customer; + +var Mime = function(name) { + Person.call(this); + this.name = name; + this.canTalk = false; +}; + +Mime.prototype = Object.create(Person.prototype); +Mime.prototype.constructor = Mime; + +var bob = new Employee('Bob', 'Builder'); +var joe = new Customer('Joe'); +var rg = new Employee('Red Green', 'Handyman'); +var mike = new Customer('Mike'); +var mime = new Mime('Mime'); + +bob.greet(); +// Hi, I am Bob, the Builder + +joe.greet(); +// Hi, I am Joe + +rg.greet(); +// Hi, I am Red Green, the Handyman + +mike.greet(); +// Hi, I am Mike + +mime.greet(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.2.3.1', 'Object.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-object.prototype', 'Object.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també"> Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introducció al JavaScript orientat a objectes</a></li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html new file mode 100644 index 0000000000..443e075d46 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html @@ -0,0 +1,91 @@ +--- +title: WeakMap.prototype.clear() +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/clear +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear +--- +<div>{{JSRef}} {{obsolete_header}}</div> + +<p>El mètode <code><strong>clear()</strong></code> elimina tots els elements d'un objecte <code>WeakMap.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>wm</em>.clear();</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_clear">Utilitzar el mètode <code>clear</code></h3> + +<pre class="brush: js;highlight:[10]">var wm = new WeakMap(); +var obj = {}; + +wm.set(obj, "foo"); +wm.set(window, "bar"); + +wm.has(obj); // true +wm.has(window); // true + +wm.clear(); + +wm.has(obj) // false +wm.has(window) // false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació o borrador actual. Aquest mètode formava part del borrador de l'especificació d'ECMAScript 6 fins a la revisió número 28 (versió del 14 d'octubre del 2014), però s'ha eliminat en versions posteriors del borrador. No formarà part de l'estàndard final.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("20.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("20.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakMap")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html new file mode 100644 index 0000000000..1037fdb3fc --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html @@ -0,0 +1,114 @@ +--- +title: WeakMap.prototype.delete() +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/delete +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/delete +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>delete()</strong></code> elimina l'element especificat d'un objecte <code>WeakMap.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>wm</em>.delete(key);</code></pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt>key</dt> + <dd>Necessari. La clau de l'element a eliminar de l'objecte <code>WeakMap.</code></dd> +</dl> + +<h3 id="Valor_de_retorn">Valor de retorn</h3> + +<p>Retorna <code>true</code> si un element en l'objecte <code>WeakMap</code> s'ha eliminat satisfactòriament.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzarel_mètode_delete">Utilitzarel mètode <code>delete</code></h3> + +<pre class="brush: js;highlight:[4]">var wm = new WeakMap(); +wm.set(window, "foo"); + +wm.delete(window); // Retorna true. Eliminat satisfactòriament + +wm.has(window); // Retorna false. L'objecte window ja no es troba en el WeakMap. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2> + +<ul> + <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llançava un {{jsxref("TypeError")}} quan el paràmetre <code>key</code> no era un objecte. Aquest error s'ha arreglat en la versió 38 i posteriors al retornar <code>false</code> segons l'últim estàndard ES6 ({{bug(1127827)}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakMap")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html new file mode 100644 index 0000000000..f69ca1aa58 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html @@ -0,0 +1,115 @@ +--- +title: WeakMap.prototype.get() +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/get +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/get +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>get()</strong></code> retorna un element especificat d'un objecte <code>WeakMap.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>wm</em>.get(key);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>key</dt> + <dd>Necessari. La clau d'un element a retornar de l'objecte <code>WeakMap.</code></dd> +</dl> + +<h3 id="Valor_a_retornar">Valor a retornar</h3> + +<p>Retorna l'element associat a la clau especificada o <code>undefined</code> si no es pot trobar la clau en l'objecte <code>WeakMap.</code></p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_get">Utilitzar el mètode <code>get</code></h3> + +<pre class="brush: js">var wm = new WeakMap(); +wm.set(window, "foo"); + +wm.get(window); // Retorna "foo". +wm.get("baz"); // Retorna undefined. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2> + +<ul> + <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llençava un {{jsxref("TypeError")}} quan no es trobava el paràmetre key en l'objecte. Tot i així, l'últim estàndard ES6 especifica que en comptes d'això es retorni <code>undefined.</code> És més, <code>WeakMap.prototype.get</code> acceptava un segon argument opcional com a valor com a pla B, el qual no forma part de l'estàndard. Ambdós comportaments no estàndards s'han eliminat en la versió 38 i posterior ({{bug(1127827)}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakMap")}}</li> + <li>{{jsxref("WeakMap.set()")}}</li> + <li>{{jsxref("WeakMap.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html new file mode 100644 index 0000000000..0a2d017462 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html @@ -0,0 +1,118 @@ +--- +title: WeakMap.prototype.has() +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/has +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/has +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>has()</strong></code> retorna un booleà indicant si un element amb una clau especificada existeix o no en l'objecte <code>WeakMap.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>wm</em>.has(key);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>key</dt> + <dd>Necessari. La clau de l'element a comprovar la seva presència de l'objecte <code>WeakMap.</code></dd> +</dl> + +<h3 id="valor_de_retorn">valor de retorn</h3> + +<dl> + <dt>Booleà</dt> + <dd>Retorna <code>true</code> si un element amb una clau especificada existeix en l'objecte <code>WeakMap</code>; en el cas contrari retornarà <code>false</code>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_has">Utilitzar el mètode <code>has</code></h3> + +<pre class="brush: js">var wm = new WeakMap(); +wm.set(window, "foo"); + +wm.has(window); // retorna true +wm.has("baz"); // retorna false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2> + +<ul> + <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llençava un {{jsxref("TypeError")}} quan el paràmetre <code>key</code> no era un objecte. Això s'ha arreglat en la versió 38 i posteriors per tal de retornar <code>false</code> segons l'últim estàndard ES6 ({{bug(1127827)}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakMap")}}</li> + <li>{{jsxref("WeakMap.prototype.set()")}}</li> + <li>{{jsxref("WeakMap.prototype.get()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/index.html new file mode 100644 index 0000000000..27fdd6a71d --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/index.html @@ -0,0 +1,279 @@ +--- +title: WeakMap +slug: Web/JavaScript/Reference/Global_Objects/WeakMap +tags: + - ECMAScript6 + - Experimental + - JavaScript + - NeedsTranslation + - TopicStub + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap +--- +<div>{{JSRef}}</div> + +<p>L'objecte <strong><code>WeakMap</code></strong> és una col·lecció de parelles clau/valor on les claus són dèbilment referenciades. Les claus han de ser objectes i els valors poden ser valors aribitraris.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox notranslate"><code>new WeakMap([iterable]) +</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>iterable</code></dt> + <dd>Iterable és un Array o un altre objecte iterable el qual els seus elements són parelles clau/valor (Array de 2 elements). Cada parella clau/valor serà afegida al nou WeakMap. null és tractat com a undefined.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Les claus de WeakMaps són només de tipus <code>Object.</code> {{Glossary("Primitive", "Primitive data types")}} com a claus no són permesos (e.g. a {{jsxref("Symbol")}} no pot ser una clau <code>WeakMap</code>).</p> + +<p>La clau d'un WeakMap es sostè dèbilment. El que significa que, si no hi ha altres referències fortes a la clau, llavors la entrada sencera serà eliminada del WeakMap pel recol·lector de brossa (garbage collector).</p> + +<h3 id="Per_què_WeakMap">Per què <em>Weak</em>Map?</h3> + +<p>El programador expert en JavaScript s'adonarà que aquesta API es podria implementar en JavaScript amb dos arrays (una per a claus, i una per valors) compartides pels quatre mètodes de l'API. Tal implementació tindria dos inconvenients principals. El primer és que la cerca té un cost de O(n) (on n és el nombre de claus al mapa). El segon és que té problemes de fuita de memòria (memory leak). Amb els mapes mantinguts manualment, l'array de claus mantindria referències a le objectes clau, evitant que aquests fóssin eliminats de memòria pel recol·lector de brossa. Als WeakMaps natius, les referències als objectes clau són "dèbils", que vol dir que el recol·lector de brossa pot eliminar l'objecte de memòria si aquest només és referenciat per referències dèbils.</p> + +<p>Degut a que les referències són dèbils les claus del WeakMap no són enumerables (és a dir, no hi ha cap mètode que us retornarà un llistat de claus). Si aquest mètode existís, aquest dependria de l'estat del recol·lector de brossa, introduïnt un comportament no determinista. Si voleu tenir un llistat amb les claus, l'haureu de mantenir pel vostre compte.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>WeakMap.length</code></dt> + <dd>El valor de la propietat <code>length</code> és 0.</dd> + <dt>{{jsxref("WeakMap.prototype")}}</dt> + <dd>Representa el prototip pel constructor <code>WeakMap.</code> Permet l'adició de propietats a tots els objectes <code>WeakMap.</code></dd> +</dl> + +<h2 id="Instàncies_WeakMap">Instàncies <code>WeakMap</code></h2> + +<p>Totes les instàncies <code>WeakMap</code> hereten de {{jsxref("WeakMap.prototype")}}.</p> + +<h3 id="Propietats_2">Propietats</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Properties')}}</p> + +<h3 id="Mètodes">Mètodes</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Methods')}}</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_WeakMap">Utilitzar <code>WeakMap</code></h3> + +<pre class="brush: js notranslate">var wm1 = new WeakMap(), + wm2 = new WeakMap(), + wm3 = new WeakMap(); +var o1 = {}, + o2 = function(){}, + o3 = window; + +wm1.set(o1, 37); +wm1.set(o2, "azerty"); +wm2.set(o1, o2); // un valor pot ser qualsevol cosa, incloent un objecte object o una funció +wm2.set(o3, undefined); +wm2.set(wm1, wm2); // claus i valors poden ser qualsevol objecte. Fins i tot WeakMaps! + +wm1.get(o2); // "azerty" +wm2.get(o2); // undefined, ja que no hi ha cap valor per o2 a wm2 +wm2.get(o3); // undefined, al tenir assignat aquest valor + +wm1.has(o2); // true +wm2.has(o2); // false +wm2.has(o3); // true (encara que el valor en si sigui 'undefined') + +wm3.set(o1, 37); +wm3.get(o1); // 37 + +wm1.has(o1); // true +wm1.delete(o1); +wm1.has(o1); // false +</pre> + +<h3 id="Implementar_una_classe_tipus_WeakMap_amb_un_mètode_.clear">Implementar una classe tipus <code>WeakMap</code> amb un mètode .clear()</h3> + +<p>Amb fins expositius, l'exemple següent utilitza el nou constructor <code>class</code> d' ECMAScript 6, el qual no està àmpliament implementat.</p> + +<pre class="brush: js notranslate">class ClearableWeakMap { + constructor(init) { + this._wm = new WeakMap(init) + } + clear() { + this._wm = new WeakMap() + } + delete(k) { + return this._wm.delete(k) + } + get(k) { + return this._wm.get(k) + } + has(k) { + return this._wm.has(k) + } + set(k, v) { + this._wm.set(k, v) + return this + } +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap-objects', 'WeakMap')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>{{ CompatOpera(23) }}</td> + <td>7.1</td> + </tr> + <tr> + <td><code>new WeakMap(iterable)</code></td> + <td>38</td> + <td>{{CompatGeckoDesktop("36")}}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatOpera(25) }}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>clear()</code></td> + <td>36</td> + <td>{{CompatGeckoDesktop("20.0")}}</td> + <td>11</td> + <td>{{ CompatOpera(23) }}</td> + <td>7.1</td> + </tr> + <tr> + <td>Constructor argument: <code>new WeakMap(null)</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Monkey-patched <code>set()</code> in constructor</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>WeakMap()</code> without <code>new</code> throws</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("42")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>35</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td><code>new WeakMap(iterable)</code></td> + <td>38</td> + <td>{{CompatGeckoMobile("36")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td><code>clear()</code></td> + <td>35</td> + <td>{{CompatGeckoMobile("20.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td>Constructor argument: <code>new WeakMap(null)</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Monkey-patched <code>set()</code> in constructor</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>WeakMap()</code> without <code>new</code> throws</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("42")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=547941">Bug de WeakMap a Mozilla</a></li> + <li><a href="http://fitzgeraldnick.com/weblog/53/">Amagant detalls d'implementació amb els WeakMaps de l'ECMAScript 6</a></li> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("WeakSet")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html new file mode 100644 index 0000000000..5155a0a664 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html @@ -0,0 +1,132 @@ +--- +title: WeakMap.prototype +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>WeakMap</strong></code><strong><code>.prototype</code></strong> representa el prototip pel constructor {{jsxref("WeakMap")}}.</p> + +<div>{{js_property_attributes(0,0,0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instantànies {{jsxref("WeakMap")}} hereten de {{jsxref("WeakMap.prototype")}}. Es pot utilitzar l'objecte prototip del constructor per afegir propietats o mètodes a totes les instàncies <code>WeakMap.</code></p> + +<p><code>WeakMap.prototype</code> és en si mateix només un objecte ordinari:</p> + +<pre class="brush: js">Object.prototype.toString.call(WeakMap.prototype); // "[object Object]"</pre> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>WeakMap.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat un prototip de la instància. Aquesta és la funció {{jsxref("WeakMap")}} per defecte.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("WeakMap.delete", "WeakMap.prototype.delete(key)")}}</dt> + <dd>Elimina qualsevol valor associat a <code>key</code>. <code>WeakMap.prototype.has(key)</code> retornarà <code>false</code> després d'això.</dd> + <dt>{{jsxref("WeakMap.get", "WeakMap.prototype.get(key)")}}</dt> + <dd>Retorna el valor associat a <code>key</code>, o <code>undefined</code> si no n'hi ha cap.</dd> + <dt>{{jsxref("WeakMap.has", "WeakMap.prototype.has(key)")}}</dt> + <dd>Retorna un booleà afirmant si un valor s'ha associat o no a la <code>key</code> en l'objecte <code>WeakMap</code>.</dd> + <dt>{{jsxref("WeakMap.set", "WeakMap.prototype.set(key, value)")}}</dt> + <dd>Estableix el valor per la <code>key</code> en l'objecte <code>WeakMap.</code> Retorna l'objecte <code>WeakMap.</code></dd> + <dt><s class="obsoleteElement">{{jsxref("WeakMap.prototype.clear()")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Elimina totes les parelles clau/valor de l'objecte <code>WeakMap.</code> Vegeu que es posible implementar un objecte <code>WeakMap</code>-like que tingui un mètode <code>.clear()</code> per mitjà d'encapsular un objecte <code>WeakMap </code>que no ho tingui (vegeu un exemple a la pàgina {{jsxref("WeakMap")}})</s></dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap.prototype', 'WeakMap.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + <tr> + <td>Objecte ordinari</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("40")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td>Objecte ordinari</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("40")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html new file mode 100644 index 0000000000..800a097971 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html @@ -0,0 +1,120 @@ +--- +title: WeakMap.prototype.set() +slug: Web/JavaScript/Reference/Global_Objects/WeakMap/set +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/set +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>set()</strong></code> afegeix un nou element amb una <code>key</code> i un <code>value</code> especificats a un objecte <code>WeakMap</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>wm</em>.set(key, value);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>key</dt> + <dd>Necesari. La clau de l'element a afegir al objecte <code>WeakMap.</code></dd> + <dt>value</dt> + <dd>Necesari. El valor de l'element a afegir a l'objecte <code>WeakMap.</code></dd> +</dl> + +<h3 id="Valor_de_retorn">Valor de retorn</h3> + +<p>L'objecte <code>WeakMap</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_set">Utilitzar el mètode <code>set</code></h3> + +<pre class="brush: js">var wm = new WeakMap(); +var obj = {}; + +// Afegir nous elements al WeakMap +wm.set(obj, "foo").set(window, "bar"); // chainable + +// Actualitzem un element en WeakMap +wm.set(obj, "baz"); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop("6.0")}}</td> + <td>11</td> + <td>23</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("6.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2> + +<ul> + <li>Abans de Firefox 33 {{geckoRelease("33")}}, <code>WeakMap.prototype.set</code> retornava <code>undefined</code> al no poder-se encadenar. Això s'ha arreglat ({{bug(1031632)}}). El comportament es pot trobar també a Chrome/v8 (<a href="https://code.google.com/p/v8/issues/detail?id=3410">problema</a>).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakMap")}}</li> + <li>{{jsxref("WeakMap.prototype.get()")}}</li> + <li>{{jsxref("WeakMap.prototype.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/add/index.html b/files/ca/web/javascript/reference/global_objects/weakset/add/index.html new file mode 100644 index 0000000000..983b24329a --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/add/index.html @@ -0,0 +1,103 @@ +--- +title: WeakSet.prototype.add() +slug: Web/JavaScript/Reference/Global_Objects/WeakSet/add +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet/add +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>add()</strong></code> afegeix un nou objecte al final d'un objecte <code>WeakSet</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>ws</em>.add(value);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>value</dt> + <dd>Necessari. L'objecte que es vol afegir a la col·lecció de <code>WeakSet.</code></dd> +</dl> + +<h2 id="Utilitzar_el_mètode_add">Utilitzar el mètode <code>add</code></h2> + +<pre class="brush: js">var ws = new WeakSet(); + +ws.add(window); // afegeix l'objecte window al WeakSet + +ws.has(window); // true +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakset.prototype.add', 'WeakSet.prototype.add')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop(34)}}</td> + <td>{{CompatNo}}</td> + <td>23</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakSet")}}</li> + <li>{{jsxref("WeakSet.prototype.delete()")}}</li> + <li>{{jsxref("WeakSet.prototype.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/clear/index.html b/files/ca/web/javascript/reference/global_objects/weakset/clear/index.html new file mode 100644 index 0000000000..4e6b2e6f8c --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/clear/index.html @@ -0,0 +1,87 @@ +--- +title: WeakSet.prototype.clear() +slug: Web/JavaScript/Reference/Global_Objects/WeakSet/clear +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet/clear +--- +<div>{{JSRef}} {{obsolete_header}}</div> + +<p>El mètode <code><strong>clear()</strong></code> elimina tots els elements d'un objecte <code>WeakSet.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>ws</em>.clear();</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_clear">Utilitzar el mètode <code>clear</code></h3> + +<pre class="brush: js">var ws = new WeakSet(); + +ws.add(window); +ws.has(window); // true + +ws.clear(); + +ws.has(window); // false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació actual o borrador. Aquest mètode formava part del borrador de l'especificació d'ECMAScript 6 fins la revisió 28 (versió del 14 d'octubre del 2014), però s'ha eliminat en versions posteriors del borrador. No formarà part de l'estàndard final.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop(34)}}</td> + <td>{{CompatNo}}</td> + <td>23</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile(34)}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakSet")}}</li> + <li>{{jsxref("WeakSet.prototype.delete()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/delete/index.html b/files/ca/web/javascript/reference/global_objects/weakset/delete/index.html new file mode 100644 index 0000000000..9bfaa0f439 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/delete/index.html @@ -0,0 +1,112 @@ +--- +title: WeakSet.prototype.delete() +slug: Web/JavaScript/Reference/Global_Objects/WeakSet/delete +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet/delete +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>delete()</strong></code>elimina l'element especificat de l'objecte <code>WeakSet.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>ws</em>.delete(value);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>value</dt> + <dd>Necessari. L'objecte que es vol eliminar de l'objecte <code>WeakSet.</code></dd> +</dl> + +<h3 id="Return_value">Return value</h3> + +<p>Retorna <code>true</code> si l'element dins l'objecte <code>WeakSet</code> s'ha eliminat satisfactòriament; Del cas contrari retornarà <code>false</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_delete">Utilitzar el mètode <code>delete</code></h3> + +<pre class="brush: js">var ws = new WeakSet(); +var obj = {}; + +ws.add(window); + +ws.delete(obj); // Retorna false. No s'ha trobat cap obj per eliminar. +ws.delete(window); // Retorna true. Eliminat satisfactòriament. + +ws.has(window); // Retorna false. window ja no és present en WeakSet. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakset.prototype.delete', 'WeakSet.prototype.delete')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop(34)}}</td> + <td>{{CompatNo}}</td> + <td>23</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakSet")}}</li> + <li>{{jsxref("WeakSet.prototype.clear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/has/index.html b/files/ca/web/javascript/reference/global_objects/weakset/has/index.html new file mode 100644 index 0000000000..b2074a9847 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/has/index.html @@ -0,0 +1,113 @@ +--- +title: WeakSet.prototype.has() +slug: Web/JavaScript/Reference/Global_Objects/WeakSet/has +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet/has +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>has()</strong></code> retorna un booleà indicant si un objecte existeix o no en unmethod returns a boolean indicating whether an object exists in a <code>WeakSet</code> or not.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>ws</em>.has(valor);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>valor</dt> + <dd>Necessari. L'objecte a comprovar la seva presència en <code>WeakSet</code>.</dd> +</dl> + +<h3 id="Valor_de_retorn">Valor de retorn</h3> + +<dl> + <dt>Booleà</dt> + <dd>Retorna <code>true</code> si un element amb el valor especificat existeix en l'objecte <code>WeakSet</code>; en el cas contrari retornarà <code>false</code>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_has">Utilitzar el mètode <code>has</code></h3> + +<pre class="brush: js">var ws = new WeakSet(); +var obj = {}; +ws.add(window); + +mySet.has(window); // retorna true +mySet.has(obj); // retorna false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakset.prototype.has', 'WeakSet.prototype.has')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{CompatGeckoDesktop(34)}}</td> + <td>{{CompatNo}}</td> + <td>23</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("WeakSet")}}</li> + <li>{{jsxref("WeakSet.prototype.add()")}}</li> + <li>{{jsxref("WeakSet.prototype.delete()")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/index.html b/files/ca/web/javascript/reference/global_objects/weakset/index.html new file mode 100644 index 0000000000..d1ae3999a6 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/index.html @@ -0,0 +1,201 @@ +--- +title: WeakSet +slug: Web/JavaScript/Reference/Global_Objects/WeakSet +tags: + - ECMAScript6 + - Experimental + - JavaScript + - NeedsTranslation + - TopicStub + - WeakSet +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet +--- +<div>{{JSRef}}</div> + +<p><u>L'objecte <strong><code>WeakSet</code></strong> permet emmagatzemar dèbilment <em>objects</em> en una col·lecció.</u></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"> new WeakSet([iterable]);</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>iterable</dt> + <dd>Si es pasa un <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">objecte iterable</a>, tots els seus elements seràn afegits al nou <code>WeakSet</code>. null es tractat com a undefined.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Els objectes <code>WeakSet</code> són col·leccions d'objectes. Un objecte al <code>WeakSet</code> només pot passar un cop, és únic en la col·lecció de <code>WeakSet.</code></p> + +<p>Les principals diferències respecte l'objecte {{jsxref("Set")}} són:</p> + +<ul> + <li>Al contrari que <code>Sets</code>, <code>WeakSets</code> són <strong>únicament col·leccions d'objectes</strong> i no de valors arbitraris de qualsevol tipus.</li> + <li> <code>WeakSet</code> és <em>dèbil (weak)</em>: Les referències a la col·lecció es mantenen dèbilment. SI no hi ha cap altra referència a un objecte emmagatzemat en <code>WeakSet</code>,<u> poden ser recollits com a brossa</u>. Això també vol dir que no hi ha cap llista d'objectes actuals emmagatzemats a la col·lecció. <code>WeakSets</code> no són enumerables.</li> +</ul> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>WeakSet.length</code></dt> + <dd>El valor de la propietat <code>length</code> és 0.</dd> + <dt>{{jsxref("WeakSet.prototype")}}</dt> + <dd>Representa el prototip per al constructor de <code>Set.</code> Permet afegir propietats a tots els objectes <code>WeakSet</code>.</dd> +</dl> + +<h2 id="Instàncies_WeakSet">Instàncies <code>WeakSet</code></h2> + +<p>Totes les instàncies <code>WeakSet</code> hereten de {{jsxref("WeakSet.prototype")}}.</p> + +<h3 id="Propietats_2">Propietats</h3> + +<p>{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Properties')}}</p> + +<h3 id="Mètodes">Mètodes</h3> + +<p>{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakSet/prototype','Methods')}}</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_l'objecte_WeakSet">Utilitzar l'objecte <code>WeakSet</code></h3> + +<pre class="brush: js">var ws = new WeakSet(); +var obj = {}; +var foo = {}; + +ws.add(window); +ws.add(obj); + +ws.has(window); // true +ws.has(foo); // false, foo no s'ha afegit al conjunt + +ws.delete(window); // elimina window del conjunt +ws.has(window); // false, window ha sigut eliminat + +ws.clear(); // buida tot el WeakSet +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakset-objects', 'WeakSet')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(36)}}</td> + <td>{{ CompatGeckoDesktop(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatOpera(23) }}</td> + <td>9</td> + </tr> + <tr> + <td><code>new WeakSet(iterable)</code></td> + <td>38</td> + <td>{{ CompatGeckoDesktop(34) }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>9</td> + </tr> + <tr> + <td>Constructor argument: <code>new WeakSet(null)</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>9</td> + </tr> + <tr> + <td>Monkey-patched <code>add()</code> in Constructor</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>9</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>9</td> + </tr> + <tr> + <td><code>new WeakMap(iterable)</code></td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>9</td> + </tr> + <tr> + <td>Constructor argument: <code>new WeakSet(null)</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>9</td> + </tr> + <tr> + <td>Monkey-patched <code>add()</code> in Constructor</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>9</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("WeakMap")}}</li> +</ul> diff --git a/files/ca/web/javascript/reference/global_objects/weakset/prototype/index.html b/files/ca/web/javascript/reference/global_objects/weakset/prototype/index.html new file mode 100644 index 0000000000..2b4cd51048 --- /dev/null +++ b/files/ca/web/javascript/reference/global_objects/weakset/prototype/index.html @@ -0,0 +1,131 @@ +--- +title: WeakSet.prototype +slug: Web/JavaScript/Reference/Global_Objects/WeakSet/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>WeakSet</strong></code><strong><code>.prototype</code></strong> representa el prototip pel constructor {{jsxref("WeakSet")}}.</p> + +<div>{{js_property_attributes(0,0,0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies {{jsxref("WeakSet")}} hereten de {{jsxref("WeakSet.prototype")}}. Es pot utilitzar l'objecte prototip del constructor per afegir propietats o mètodes a totes les instàncies <code>WeakSet</code>.</p> + +<p><code>WeakSet.prototype</code> és en si mateix només un objecte ordinari</p> + +<pre class="brush: js">Object.prototype.toString.call(WeakSet.prototype); // "[object Object]"</pre> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>WeakSet.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat un prototip de la instància. Aquesta és la funció {{jsxref("WeakSet")}} per defecte.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("WeakSet.add", "WeakSet.prototype.add(value)")}}</dt> + <dd>Afegeix un nou element amb el valor donat a l'objecte <code>WeakSet.</code></dd> + <dt>{{jsxref("WeakSet.delete", "WeakSet.prototype.delete(value)")}}</dt> + <dd>Elimina l'element associat al <code>value</code>. <code>WeakSet.prototype.has(value)</code> retornarà després <code>false</code>.</dd> + <dt>{{jsxref("WeakSet.has", "WeakSet.prototype.has(value)")}}</dt> + <dd>Retorna un booleà afirmant si un element és o no present amb el valor donat en l'objecte <code>WeakSet</code>.</dd> + <dt><s class="obsoleteElement">{{jsxref("WeakSet.prototype.clear()")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Elimina tots els elements de l'objecte <code>WeakSet.</code></s></dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-weakset.prototype', 'WeakSet.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>36</td> + <td>{{ CompatGeckoDesktop(34) }}</td> + <td>{{CompatNo}}</td> + <td>23</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Objecte ordinari</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("40")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome per Android</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile(34) }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Objecte ordinari</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("40")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set.prototype")}}</li> + <li>{{jsxref("WeakMap.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/classes/constructor/index.html b/files/ca/web/javascript/referencia/classes/constructor/index.html new file mode 100644 index 0000000000..a0bd6b966f --- /dev/null +++ b/files/ca/web/javascript/referencia/classes/constructor/index.html @@ -0,0 +1,129 @@ +--- +title: constructor +slug: Web/JavaScript/Referencia/Classes/constructor +translation_of: Web/JavaScript/Reference/Classes/constructor +--- +<div>{{jsSidebar("Classes")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>El mètode <code>constructor</code> és un mètode especial per crear i inicialitzar un objecte creat amb una <code>class</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">constructor([arguments]) { ... }</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Només hi pot haver un mètode especial am el nom "constructor" en una classe. Es llançarà un {{jsxref("SyntaxError")}}, si la classe conté més d'un cas d'un mètode <code>constructor</code>.</p> + +<p>Un constructor pot utilitzar la paraula clau <code>super</code> per cridar el constructor de la classe pare.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Aquest fragment de codi es pren de <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html">mostra de classes</a> (<a href="https://googlechrome.github.io/samples/classes-es6/index.html">demostració en viu</a>).</p> + +<pre class="brush: js">class Square extends Polygon { + constructor(length) { + // Aquí es crida el constructor del pare de la classe amb les longituts + // proveïdes per l'amplada i l'alçada del polígon + super(length, length); + // Nota: En classes derivades, s'ha de cridar super() abans + // d'utilitzar 'this'. Obviar això causarà un error de referència. + this.name = 'Square'; + } + + get area() { + return this.height * this.width; + } + + set area(value) { + this.area = value; + } +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-static-semantics-constructormethod', 'Constructor Method')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(42.0)}}</td> + <td> + <p>Disponible només al canal Nightly (desde febrer del 2015)</p> + </td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(42.0)}}</td> + <td>Disponible només al canal Nightly (desde febrer del 2015)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Notes_específiques_per_Firefox">Notes específiques per Firefox</h3> + +<ul> + <li>Els constructors estàndards encara no s'han implementat ({{bug(1105463)}})</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/super">super()</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class">expressió </a><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class"><code>class</code> </a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class">declaració </a><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class"><code>class</code> </a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Classes">Classes</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/classes/index.html b/files/ca/web/javascript/referencia/classes/index.html new file mode 100644 index 0000000000..23daf7e1ff --- /dev/null +++ b/files/ca/web/javascript/referencia/classes/index.html @@ -0,0 +1,382 @@ +--- +title: Classes +slug: Web/JavaScript/Referencia/Classes +tags: + - Classes + - ECMAScript 2015 + - Experimental + - Expérimental(2) + - JavaScript + - NeedsContent + - NeedsTranslation + - Reference + - Référence(2) + - TopicStub +translation_of: Web/JavaScript/Reference/Classes +--- +<div>{{JsSidebar("Classes")}}</div> + +<p>JavaScript classes, introduced in ECMAScript 2015, are primarily syntactical sugar over JavaScript's existing prototype-based inheritance. The class syntax <strong>does not</strong> introduce a new object-oriented inheritance model to JavaScript.</p> + +<h2 id="Defining_classes">Defining classes</h2> + +<p>Classes are in fact "special <a href="/en-US/docs/Web/JavaScript/Reference/Functions">functions</a>", and just as you can define <a href="/en-US/docs/Web/JavaScript/Reference/Operators/function">function expressions</a> and <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function">function declarations</a>, the class syntax has two components: <a href="/en-US/docs/Web/JavaScript/Reference/Operators/class">class expressions</a> and <a href="/en-US/docs/Web/JavaScript/Reference/Statements/class">class declarations</a>.</p> + +<h3 id="Class_declarations">Class declarations</h3> + +<p>One way to define a class is using a <strong>class declaration</strong>. To declare a class, you use the <code>class</code> keyword with the name of the class ("Rectangle" here).</p> + +<pre class="brush: js">class Rectangle { + constructor(height, width) { + this.height = height; + this.width = width; + } +}</pre> + +<h4 id="Hoisting">Hoisting</h4> + +<p>An important difference between <strong>function declarations</strong> and <strong>class declarations</strong> is that function declarations are {{Glossary("Hoisting", "hoisted")}} and class declarations are not. You first need to declare your class and then access it, otherwise code like the following will throw a {{jsxref("ReferenceError")}}:</p> + +<pre class="brush: js example-bad">var p = new Rectangle(); // ReferenceError + +class Rectangle {} +</pre> + +<h3 id="Class_expressions">Class expressions</h3> + +<p>A <strong>class expression</strong> is another way to define a class. Class expressions can be named or unnamed. The name given to a named class expression is local to the class's body. (it can be retrieved through the class's (not an instance's) <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name">.name</a> property, though)</p> + +<pre class="brush: js">// unnamed +var Rectangle = class { + constructor(height, width) { + this.height = height; + this.width = width; + } +}; +console.log(Rectangle.name); +// output: "Rectangle" + +// named +var Rectangle = class Rectangle2 { + constructor(height, width) { + this.height = height; + this.width = width; + } +}; +console.log(Rectangle.name); +// output: "Rectangle2" +</pre> + +<p><strong>Note:</strong> Class <strong>expressions</strong> also suffer from the same hoisting issues mentioned for Class <strong>declarations</strong>.</p> + +<h2 id="Class_body_and_method_definitions">Class body and method definitions</h2> + +<p>The body of a class is the part that is in curly brackets <code>{}</code>. This is where you define class members, such as methods or constructor.</p> + +<h3 id="Strict_mode">Strict mode</h3> + +<p>The bodies of <em>class declarations</em> and <em>class expressions</em> are executed in <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> i.e. constructor, static and prototype methods, getter and setter functions are executed in strict mode.</p> + +<h3 id="Constructor">Constructor</h3> + +<p>The <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/constructor">constructor</a></code> method is a special method for creating and initializing an object created with a <code>class</code>. There can only be one special method with the name "constructor" in a class. A {{jsxref("SyntaxError")}} will be thrown if the class contains more than one occurrence of a <code>constructor</code> method.</p> + +<p>A constructor can use the <code>super</code> keyword to call the constructor of the super class.</p> + +<h3 id="Prototype_methods">Prototype methods</h3> + +<p>See also <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions">method definitions</a>.</p> + +<pre class="brush: js">class Rectangle { + constructor(height, width) { + this.height = height; + this.width = width; + } + // Getter + get area() { + return this.calcArea(); + } + // Method + calcArea() { + return this.height * this.width; + } +} + +const square = new Rectangle(10, 10); + +console.log(square.area); // 100</pre> + +<h3 id="Static_methods">Static methods</h3> + +<p>The <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/static">static</a></code> keyword defines a static method for a class. Static methods are called without <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#The_object_(class_instance)" title='An example of class instance is "var john = new Person();"'>instantiating </a>their class and <strong>cannot </strong>be called through a class instance. Static methods are often used to create utility functions for an application.</p> + +<pre class="brush: js">class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } + + static distance(a, b) { + const dx = a.x - b.x; + const dy = a.y - b.y; + + return Math.hypot(dx, dy); + } +} + +const p1 = new Point(5, 5); +const p2 = new Point(10, 10); + +console.log(Point.distance(p1, p2)); // 7.0710678118654755</pre> + +<h3 id="Boxing_with_prototype_and_static_methods">Boxing with prototype and static methods</h3> + +<p>When a static or prototype method is called without a value for <em>this</em>, the <em>this</em> value will be <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.498039);">undefined</span></font> inside the method. This behavior will be the same even if the <code>"use strict"</code> directive isn't present, because code within the <code>class</code> syntax is always executed in strict mode.</p> + +<pre class="brush: js">class Animal { + speak() { + return this; + } + static eat() { + return this; + } +} + +let obj = new Animal(); +obj.speak(); // Animal {} +let speak = obj.speak; +speak(); // undefined + +Animal.eat() // class Animal +let eat = Animal.eat; +eat(); // undefined</pre> + +<p>If the above is written using traditional function–based syntax, then autoboxing in method calls will happen in non–strict mode based on the initial <em>this</em> value. If the inital value is <code>undefined</code>, <em>this</em> will be set to the global object.</p> + +<p>Autoboxing will not happen in strict mode, the <em>this</em> value remains as passed.</p> + +<pre class="brush: js">function Animal() { } + +Animal.prototype.speak = function() { + return this; +} + +Animal.eat = function() { + return this; +} + +let obj = new Animal(); +let speak = obj.speak; +speak(); // global object + +let eat = Animal.eat; +eat(); // global object +</pre> + +<h3 id="Instance_properties">Instance properties</h3> + +<p>Instance properties must be defined inside of class methods:</p> + +<pre class="brush: js">class Rectangle { + constructor(height, width) { + this.height = height; + this.width = width; + } +}</pre> + +<p>Static class-side properties and prototype data properties must be defined outside of the ClassBody declaration:</p> + +<pre class="brush: js">Rectangle.staticWidth = 20; +Rectangle.prototype.prototypeWidth = 25; +</pre> + +<p> </p> + +<h2 id="Sub_classing_with_extends">Sub classing with <code>extends</code></h2> + +<p>The <code><a href="/en-US/docs/Web/JavaScript/Reference/Classes/extends">extends</a></code> keyword is used in <em>class declarations</em> or <em>class expressions</em> to create a class as a child of another class.</p> + +<pre class="brush: js">class Animal { + constructor(name) { + this.name = name; + } + + speak() { + console.log(this.name + ' makes a noise.'); + } +} + +class Dog extends Animal { + speak() { + console.log(this.name + ' barks.'); + } +} + +var d = new Dog('Mitzie'); +d.speak(); // Mitzie barks. +</pre> + +<p>If there is a constructor present in subclass, it needs to first call super() before using "this".</p> + +<p>One may also extend traditional function-based "classes":</p> + +<pre class="brush: js">function Animal (name) { + this.name = name; +} + +Animal.prototype.speak = function () { + console.log(this.name + ' makes a noise.'); +} + +class Dog extends Animal { + speak() { + console.log(this.name + ' barks.'); + } +} + +var d = new Dog('Mitzie'); +d.speak(); // Mitzie barks. +</pre> + +<p>Note that classes cannot extend regular (non-constructible) objects. If you want to inherit from a regular object, you can instead use {{jsxref("Object.setPrototypeOf()")}}:</p> + +<pre class="brush: js">var Animal = { + speak() { + console.log(this.name + ' makes a noise.'); + } +}; + +class Dog { + constructor(name) { + this.name = name; + } +} + +// If you do not do this you will get a TypeError when you invoke speak +Object.setPrototypeOf(Dog.prototype, Animal); + +var d = new Dog('Mitzie'); +d.speak(); // Mitzie makes a noise. +</pre> + +<h2 id="Species">Species</h2> + +<p>You might want to return {{jsxref("Array")}} objects in your derived array class <code>MyArray</code>. The species pattern lets you override default constructors.</p> + +<p>For example, when using methods such as {{jsxref("Array.map", "map()")}} that returns the default constructor, you want these methods to return a parent <code>Array</code> object, instead of the <code>MyArray</code> object. The {{jsxref("Symbol.species")}} symbol lets you do this:</p> + +<pre class="brush: js">class MyArray extends Array { + // Overwrite species to the parent Array constructor + static get [Symbol.species]() { return Array; } +} + +var a = new MyArray(1,2,3); +var mapped = a.map(x => x * x); + +console.log(mapped instanceof MyArray); // false +console.log(mapped instanceof Array); // true +</pre> + +<h2 id="Super_class_calls_with_super">Super class calls with <code>super</code></h2> + +<p>The <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/super">super</a></code> keyword is used to call corresponding methods of super class.</p> + +<pre class="brush: js">class Cat { + constructor(name) { + this.name = name; + } + + speak() { + console.log(this.name + ' makes a noise.'); + } +} + +class Lion extends Cat { + speak() { + super.speak(); + console.log(this.name + ' roars.'); + } +} + +var l = new Lion('Fuzzy'); +l.speak(); +// Fuzzy makes a noise. +// Fuzzy roars. + +</pre> + +<h2 id="Mix-ins">Mix-ins</h2> + +<p>Abstract subclasses or <em>mix-ins</em> are templates for classes. An ECMAScript class can only have a single superclass, so multiple inheritance from tooling classes, for example, is not possible. The functionality must be provided by the superclass.</p> + +<p>A function with a superclass as input and a subclass extending that superclass as output can be used to implement mix-ins in ECMAScript:</p> + +<pre class="brush: js">var calculatorMixin = Base => class extends Base { + calc() { } +}; + +var randomizerMixin = Base => class extends Base { + randomize() { } +}; +</pre> + +<p>A class that uses these mix-ins can then be written like this:</p> + +<pre class="brush: js">class Foo { } +class Bar extends calculatorMixin(randomizerMixin(Foo)) { }</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES2015', '#sec-class-definitions', 'Class definitions')}}</td> + <td>{{Spec2('ES2015')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES2016', '#sec-class-definitions', 'Class definitions')}}</td> + <td>{{Spec2('ES2016')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES2017', '#sec-class-definitions', 'Class definitions')}}</td> + <td>{{Spec2('ES2017')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + + + +<p>{{Compat("javascript.classes")}}</p> + +<h2 id="Running_in_Scratchpad">Running in Scratchpad</h2> + +<p>A class can't be redefined. If you're playing with code in Scratchpad (Firefox menu Tools > Web Developer > Scratchpad) and you 'Run' a definition of a class with the same name twice, you'll get a confusing SyntaxError: redeclaration of let <class-name>.</p> + +<p>To re-run a definition, use Scratchpad's menu Execute > Reload and Run.<br> + Please vote for bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1428672">#1428672</a>.</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions">Functions</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class"><code>class</code> declaration</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class"><code>class</code> expression</a></li> + <li>{{jsxref("Operators/super", "super")}}</li> + <li><a href="https://hacks.mozilla.org/2015/07/es6-in-depth-classes/">Blog post: "ES6 In Depth: Classes"</a></li> + <li><a href="https://github.com/tc39/proposal-class-fields">Fields and public/private class properties proposal (stage 3)</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/classes/static/index.html b/files/ca/web/javascript/referencia/classes/static/index.html new file mode 100644 index 0000000000..3255dc1552 --- /dev/null +++ b/files/ca/web/javascript/referencia/classes/static/index.html @@ -0,0 +1,116 @@ +--- +title: static +slug: Web/JavaScript/Referencia/Classes/static +translation_of: Web/JavaScript/Reference/Classes/static +--- +<div>{{jsSidebar("Classes")}}</div> + +<p>La paraula clau <strong>static</strong> defineix un mètode estàtic per a una classe.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">static methodName() { ... }</pre> + +<h2 id="Descripció">Descripció</h2> + +<p><u>Els mètodes estàtics es criden sense realitzar una instantània de la seva classe o instantiating their class nor are they callable when the class is instantiated</u>. Els mètodes estàtics s'utilitzen sovint per crear funcions d'utilitat per una aplicació.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>L'exemple següent mostra diverses coses. Mostra com un mètode estàtic és implementat en una classe i que una classe amb un membre estàtic pot tenir subclasses. Finalment, mostra com es pot i com no es pot cridar un mètode estàtic.</p> + +<pre class="brush: js">class Tripple { + static tripple(n) { + n = n | 1; + return n * 3; + } +} + +class BiggerTripple extends Tripple { + static tripple(n) { + return super.tripple(n) * super.tripple(n); + } +} + +console.log(Tripple.tripple()); +console.log(Tripple.tripple(6)); +console.log(BiggerTripple.tripple(3)); +var tp = new Tripple(); +console.log(tp.tripple()); //Logs 'tp.tripple is not a function'.</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(42.0)}}</td> + <td>Disponible només en el canal Nightly (desde febrer del 2015)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(42.0)}}</td> + <td>Disponible només en el canal Nightly (desde febrer del 2015)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class">expressió </a><a href="/en-US/docs/Web/JavaScript/Reference/Operators/class"><code>class</code> </a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class">declaració </a><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class"><code>class</code> </a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Classes">Classes</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/index.html b/files/ca/web/javascript/referencia/index.html new file mode 100644 index 0000000000..f524504ab2 --- /dev/null +++ b/files/ca/web/javascript/referencia/index.html @@ -0,0 +1,46 @@ +--- +title: Glossari de JavaScript +slug: Web/JavaScript/Referencia +translation_of: Web/JavaScript/Reference +--- +<div>{{JsSidebar}}</div> + +<p>Aquesta part de la secció de JavaScript a l'MDN serveix com a glossari de informació sobre el llenguatge JavaScript. Podeu llegir més <a href="/ca/docs/Web/JavaScript/Reference/About">sobre aquest glossari</a>.</p> + +<h2 id="Objectes_Globals">Objectes Globals</h2> + +<p>Aquest capítol documenta tots els <a href="/ca/docs/Web/JavaScript/Reference/Global_Objects">objectes standard de JavaScript</a>, així com els seus mètodes i propietats.</p> + +<p>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects', 'Objectes standard (per categoria)')}}</p> + +<h2 id="Sentències">Sentències</h2> + +<p>Aquest capítol documenta totes les <a href="/ca/docs/Web/JavaScript/Reference/Statements">sentències i declaracions disponibles a JavaScript</a>.</p> + +<p>{{page('/ca/docs/Web/JavaScript/Reference/Statements', 'Instruccions i declaracions disponibles (per categoria)')}}</p> + +<h2 id="Expressions_i_operadors">Expressions i operadors</h2> + +<p>Aquest capítol documenta totes les <a href="/ca/docs/Web/JavaScript/Reference/Operators">expressions i els operadors soportats per JavaScript</a>.</p> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Operators', 'Expressions i operadors (per categoria)')}}</div> + +<h2 id="Funcions">Funcions</h2> + +<p>Aquest capítol documenta com treballar amb <a href="/ca/docs/Web/JavaScript/Reference/Functions">funcions de JavaScript</a>.</p> + +<ul> + <li><a href="/ca/docs/Web/JavaScript/Reference/Functions/arguments"><code>arguments</code></a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Functions fletxa</a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Functions/Default_parameters">Paràmetres per defecte</a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Functions/rest_parameters">Parametres Rest</a></li> +</ul> + +<h2 id="Pàgines_de_glossari_adicionals">Pàgines de glossari adicionals</h2> + +<ul> + <li><a href="/ca/docs/Web/JavaScript/Reference/Lexical_grammar">Gramàtica lèxica</a></li> + <li><a href="/ca/docs/Web/JavaScript/Data_structures">Tipus i estructures de dades</a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Strict_mode">Mode estricte</a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features">Característiques en desús</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/entries/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/entries/index.html new file mode 100644 index 0000000000..8b67c06038 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/entries/index.html @@ -0,0 +1,105 @@ +--- +title: Array.prototype.entries() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/entries +translation_of: Web/JavaScript/Reference/Global_Objects/Array/entries +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>entries()</strong></code> retorna un nou objecte <code><strong>Array Iterator</strong></code> que conté els parells clau/valor per a cada posició de l'array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.entries()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush:js">var arr = ['a', 'b', 'c']; +var eArr = arr.entries(); + +console.log(eArr.next().value); // [0, 'a'] +console.log(eArr.next().value); // [1, 'b'] +console.log(eArr.next().value); // [2, 'c'] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.entries', 'Array.prototype.entries')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("28")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("28")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.keys()")}}</li> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Array.prototype.every()")}}</li> + <li>{{jsxref("Array.prototype.some()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/every/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/every/index.html new file mode 100644 index 0000000000..ad707b4990 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/every/index.html @@ -0,0 +1,220 @@ +--- +title: Array.prototype.every() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/every +translation_of: Web/JavaScript/Reference/Global_Objects/Array/every +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>every()</strong></code> comprova si tots els elements d'un array passen el test implementat per la funció proporcionada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.every(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció utilitzada com a test per a cada element, rep tres arguments: + <dl> + <dt><code>valorActual</code></dt> + <dd>L'element de l'array que està sent avaluat.</dd> + <dt><code>posició</code></dt> + <dd>La posició que l'element passat al primer paràmetre ocupa dins l'array.</dd> + <dt><code>array</code></dt> + <dd>L'array des del que s'ha cridat el mètode <code>every()</code>.</dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. Valor que valdrà la variable <code>this</code> quan s'estigui executant la funció <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>every()</code> executa la funció <code>callback</code> un cop per a cada element present a l'array fins que troba un per al qual <code>callback</code> retorna un valor <em>falsy</em> (és a dir, un valor que esdebé fals si es realitza una conversió de tipus a <code>Boolean</code>). Si es troba aquest element, el mètode <code>every</code> retorna immediatament <code>false</code>. En cas contrari, si <code>callback</code> ha retornat un valor <code>true</code> per a tots els elements, <code>every</code> retornarà <code>true</code>. Només s'invocarà la funció <code>callback</code> en les posicions de l'array que tinguin un valor assignat, és a dir, mai es cridarà per a posicions que han estat esborrades o el valor de les quals no ha estat mai assignat.</p> + +<p>S'invoca <code>callback</code> amb tres arguments: el valor de l'element, la posició de l'element dins l'array, i l'objecte array que es recorrerà.</p> + +<p>Si es proporciona el paràmetre <code>thisArg</code> al mètode <code>every()</code>, aquest es passarà a <code>callback</code> quan s'invoqui, i serà el valor que mostrarà la variable <code>this</code>. En cas contrari, s'utilitzarà el valor <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/undefined" title="El valor de la propietat global undefined representa el valor undefined. És un dels tipus primitius de JavaScript."><code>undefined</code></a> com a valor per a <code>this</code>. El valor de <code>this</code> observable en última instància per <code>callback</code> es determinarà d'acord a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this">les regles per a determinar el valor de <code>this</code> observat per una funció</a>.</p> + +<p><code>every()</code> no mutarà l'array quan sigui cridada.</p> + +<p>El rang d'elements processat per <code>every()</code> és determinat abans de la primera invocació de <code>callback</code>. Els elements que s'afegeixin a l'array després de la crida a <code>every()</code> no seran visitats per <code>callback</code>. Si el valor d'un element encara no visitat canvia, el valor que es passarà a <code>callback</code> serà el valor que tingui aquest element a l'hora de visitar-lo; els elements que s'esborrin no es visitaran.</p> + +<p><code>every</code> es comporta com un quantificador "for all" en matemàtiques. En concret, per a un array buit retornarà <code>true</code> (s'anomena <a href="http://en.wikipedia.org/wiki/Vacuous_truth#Vacuous_truths_in_mathematics">veritat per buit</a> el fet que tots els elements d'un <a href="http://en.wikipedia.org/wiki/Empty_set#Common_problems">grup buit</a> satisfacin qualsevol condició donada).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Comprovar_el_tamany_de_tots_els_elements_d'un_array">Comprovar el tamany de tots els elements d'un array</h3> + +<p>L'exemple següent comprova si tots els elements d'un array son majors de 10.</p> + +<pre class="brush: js">function isBigEnough(element, index, array) { + return element >= 10; +} +[12, 5, 8, 130, 44].every(isBigEnough); // false +[12, 54, 18, 130, 44].every(isBigEnough); // true +</pre> + +<h3 id="Utilitzar_funcions_flexta">Utilitzar funcions flexta</h3> + +<p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Les funcions fletxa</a> ofereixen una sintaxi reduïda per a realitzar el mateix test.</p> + +<pre class="brush: js">[12, 5, 8, 130, 44].every(elem => elem >= 10); // false +[12, 54, 18, 130, 44].every(elem => elem >= 10); // true</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>every</code> va ser afegida al standard ECMA-262 en la cinquena edició; és per això que pot no estar disponible en certes implementacions del standard. Es pot proporcionar la seva funcionalitat inserint l'script següent a l'inici dels vostres scripts, permetent l'ús de <code>every()</code> en implementacions que no la suporten de forma nativa. Aquest algoritme és exactament l'especificat a l'ECMA-262, cinquena edició, assumint que <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Object" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>Object</code></a> i <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a> tenen els valors originals i que <code>callbackfn.call</code> es correspon amb el valor original de {{jsxref("Function.prototype.call")}}.</p> + +<pre class="brush: js">if (!Array.prototype.every) { + Array.prototype.every = function(callbackfn, thisArg) { + 'use strict'; + var T, k; + + if (this == null) { + throw new TypeError('this is null or not defined'); + } + + // 1. Let O be the result of calling ToObject passing the this + // value as the argument. + var O = Object(this); + + // 2. Let lenValue be the result of calling the Get internal method + // of O with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = O.length >>> 0; + + // 4. If IsCallable(callbackfn) is false, throw a TypeError exception. + if (typeof callbackfn !== 'function') { + throw new TypeError(); + } + + // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. + if (arguments.length > 1) { + T = thisArg; + } + + // 6. Let k be 0. + k = 0; + + // 7. Repeat, while k < len + while (k < len) { + + var kValue; + + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the HasProperty internal + // method of O with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + if (k in O) { + + // i. Let kValue be the result of calling the Get internal method + // of O with argument Pk. + kValue = O[k]; + + // ii. Let testResult be the result of calling the Call internal method + // of callbackfn with T as the this value and argument list + // containing kValue, k, and O. + var testResult = callbackfn.call(T, kValue, k, O); + + // iii. If ToBoolean(testResult) is false, return false. + if (!testResult) { + return false; + } + } + k++; + } + return true; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificaicó</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.16', 'Array.prototype.every')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implemnetat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.every', 'Array.prototype.every')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.every', 'Array.prototype.every')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Array.prototype.some()")}}</li> + <li>{{jsxref("TypedArray.prototype.every()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/fill/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/fill/index.html new file mode 100644 index 0000000000..e1952a8407 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/fill/index.html @@ -0,0 +1,173 @@ +--- +title: Array.prototype.fill() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/fill +translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>fill()</strong></code> omple tots els elements d'un array a partir d'una posició inicial fins a una posició final amb un valor estàtic predeterminat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.fill(valor[, <var>posInicial <var>= 0[, posFinal = this.length]])</var></var></code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>Valor amb el que s'omplirà l'array.</dd> + <dt><code>posInicial</code></dt> + <dd>Opcional. Posició inicial.</dd> + <dt><code>posFinal</code></dt> + <dd>Opcional. Posició final.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>L'interval d'elements a omplir és <code>[posInicial, posFinal)</code> (inici inclusiu, final exclusiu).</p> + +<p>El mètode <strong><code>fill</code></strong> accepta fins a tres arguments: <code>valor</code>, <code>posInicial</code> i <code>posFinal.</code></p> + +<p>Els arguments <code>posInicial</code> i <code>posFinal</code> són opcionals i si no s'especifiquen prenen per defecte els valors <code>0</code> i la propietat <code>length</code> de l'objecte <code>this</code>, respectivament.</p> + +<p>Si <code>posInicial</code> és negatiu, es considera com a <code>length+start</code> on <code>length</code> és la mida de l'array. Si <code>posFinal</code> és negatiu es considera com a <code>length+end</code>.</p> + +<p>La funció <strong>fill</strong> és genèrica intencionalment i no requereix que el valor <code>this</code> sigui un objecte de tipus <code>Array</code>.</p> + +<p>El mètode <strong>fill</strong> és mutable, ja que canviarà l'objecte <code>this</code> en si mateix i després el retornarà com a resultat, en comptes de retornar una copia d'aquest.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">[1, 2, 3].fill(4); // [4, 4, 4] +[1, 2, 3].fill(4, 1); // [1, 4, 4] +[1, 2, 3].fill(4, 1, 2); // [1, 4, 3] +[1, 2, 3].fill(4, 1, 1); // [1, 2, 3] +[1, 2, 3].fill(4, -3, -2); // [4, 2, 3] +[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3] +Array(3).fill(4); // [4, 4, 4] +[].fill.call({ length: 3 }, 4); // {0: 4, 1: 4, 2: 4, length: 3} +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">if (!Array.prototype.fill) { + Array.prototype.fill = function(value) { + + // Pasos 1-2. + if (this == null) { + throw new TypeError('this is null or not defined'); + } + + var O = Object(this); + + // Pasos 3-5. + var len = O.length >>> 0; + + // Pasos 6-7. + var start = arguments[1]; + var relativeStart = start >> 0; + + // Pasos 8. + var k = relativeStart < 0 ? + Math.max(len + relativeStart, 0) : + Math.min(relativeStart, len); + + // Pasos 9-10. + var end = arguments[2]; + var relativeEnd = end === undefined ? + len : end >> 0; + + // Pasos 11. + var final = relativeEnd < 0 ? + Math.max(len + relativeEnd, 0) : + Math.min(relativeEnd, len); + + // Pasos 12. + while (k < final) { + O[k] = value; + k++; + } + + // Pasos 13. + return O; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.fill', 'Array.prototype.fill')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("45")}} [1]</td> + <td>{{CompatGeckoDesktop("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] A partir del Chrome 36, està disponible a través d'una preferència. A chrome://flags, activeu l'entrada “Enable Experimental JavaScript”.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("TypedArray.prototype.fill()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/filter/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/filter/index.html new file mode 100644 index 0000000000..c1bfec77f3 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/filter/index.html @@ -0,0 +1,213 @@ +--- +title: Array.prototype.filter() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/filter +translation_of: Web/JavaScript/Reference/Global_Objects/Array/filter +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>filter()</strong></code> crea un nou array amb tots els elements que passin el test implementat per la funció que passa com a argument.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.filter(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció que s'emprarà per a testejar cada element de l'array. Aquesta serà invocada amb els arguments <code>(element, posició, array)</code>. Ha de retornar <code>true</code> per als elements que es vulguin conservar i <code>false</code> en qualsevol altre cas.</dd> + <dt><code>element</code></dt> + <dd>El element actual que s'esta processant a l'Array.</dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. Valor que rebrà <code>this</code> durant l'execució de la funció <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>filter()</code> crida la funció <code>callback</code> proporcionada un cop per cada element de l'array, i construeix un nou array amb tots els elements per als quals la funció <code>callback</code> retorni el valor <code>true</code> o bé <a href="/en-US/docs/Glossary/Truthy">un valor que pugui ser interpretat com a <code>true</code></a>. Només escridarà la funció <code>callback</code> per a posicions de l'array que tinguin valors assignats; no es cridarà per a posicions que han estat esborrades o que mai hagin tingut assignat un element. Els elements que no passsin el test de <code>callback</code> seràn simplement ignorats i en cap cas seran afegits al nou array.</p> + +<p>S'invoca <code>callback</code> tot passant-li els tres arguments següents:</p> + +<ol> + <li>el valor de l'element</li> + <li>la posició de l'element</li> + <li>L'objecte array que s'està recorrent</li> +</ol> + +<p>Si es proporciona el paràmetre <code>thisArg</code> a la crida de <code>filter</code>, aquest es passarà a <code>callback</code> quan s'invoqui per a ser utilitzat com a <code>this</code> dins la funció. En qualsevol altre cas el valor que rebrà <code>this</code> dins la funció <code>callback</code> serà <code>undefined</code>. El valor de <code>this</code> que serà finalment observable dins de <code>callback</code> és determinat d'acord a <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">les regles habituals per a determinar el valor de <code>this</code> observat dins d'una funció</a>.</p> + +<p><code>filter()</code> mai modificarà l'array des del qual s'invoca.</p> + +<p>El rang dels elements processats per <code>filter()</code> es determina abans de la primera invocació de <code>callback</code>. Els elements que s'afegeixin a l'array un cop la crida a <code>filter()</code> hagi començat no seran visibles per a <code>callback</code>. Els elements que es modifiquin o s'esborrin durant aquest periode tindran el valor que els hi pertoqui al moment de cridar la funció <code>callback</code>; els elements que s'hagin eliminat no es visitaran.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Descartar_tots_els_valors_petits">Exemple: Descartar tots els valors petits</h3> + +<p>L'exemple següent utilitza <code>filter()</code> per a crear un array filtrat que contindrà tots els elements amb valors menors de 10.</p> + +<pre class="brush: js">function esProuGran(valor) { + return valor >= 10; +} +var filtrat = [12, 5, 8, 130, 44].filter(esProuGran); +// filtrat val [12, 130, 44] +</pre> + +<h3 id="Exemple_Descartar_entrades_invàlides_de_JSON">Exemple: Descartar entrades invàlides de JSON</h3> + +<p>L'exemple següent utilitza <code>filter()</code> per a crear un array que no contingui cap entrada de JSON amb una <code>id</code> numèrica no vàlida o amb valor menor que zero.</p> + +<pre class="brush: js">var arr = [ + { id: 15 }, + { id: -1 }, + { id: 0 }, + { id: 3 }, + { id: 12.2 }, + { }, + { id: null }, + { id: NaN }, + { id: 'undefined' } +]; + +var invalidEntries = 0; + +function filterByID(obj) { + if ('id' in obj && typeof(obj.id) === 'number' && !isNaN(obj.id)) { + return true; + } else { + invalidEntries++; + return false; + } +} + +var arrByID = arr.filter(filterByID); + +console.log('Array filtrat\n', arrByID); +// [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }] + +console.log('Nombre d'entrades invàlides = ', invalidEntries); +// 4 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>filter()</code> va ser afegit al standard ECMA-262 a la cinquena edició; degut a això aquesta funció pot no ser present a totes les implementacions del standard. Es pot solucionar aquest problema inserint el codi següent al principi dels scripts, permetent l'ús de <code>filter()</code> en implementacions de l'ECMA-262 que no la incorporin per defecte. Aquest algoritme és exactament l'especificat per l'ECMA-262, 5a edició, i assumeix que <code>fn.call</code> s'evalua al valor original de {{jsxref("Function.prototype.call()")}} i que {{jsxref("Array.prototype.push()")}} te el seu valor original.</p> + +<pre class="brush: js">if (!Array.prototype.filter) { + Array.prototype.filter = function(fun/*, thisArg*/) { + 'use strict'; + + if (this === void 0 || this === null) { + throw new TypeError(); + } + + var t = Object(this); + var len = t.length >>> 0; + if (typeof fun !== 'function') { + throw new TypeError(); + } + + var res = []; + var thisArg = arguments.length >= 2 ? arguments[1] : void 0; + for (var i = 0; i < len; i++) { + if (i in t) { + var val = t[i]; + + // NOTA: Tècnicament hauria de ser Object.defineProperty + // a la posició següent ja que push pot veure's afectat per + // les propietats de Object.prototype i Array.prototype. + // Però aquest mètode és nou i només hi haurà col·lisions + // en casos excepcionals, aixíq ue utilitzem l'alternativa més compatible. + if (fun.call(thisArg, val, i, t)) { + res.push(val); + } + } + } + + return res; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.20', 'Array.prototype.filter')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.filter', 'Array.prototype.filter')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Array.prototype.every()")}}</li> + <li>{{jsxref("Array.prototype.some()")}}</li> + <li>{{jsxref("Array.prototype.reduce()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/find/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/find/index.html new file mode 100644 index 0000000000..8ee7742c09 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/find/index.html @@ -0,0 +1,191 @@ +--- +title: Array.prototype.find() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/find +translation_of: Web/JavaScript/Reference/Global_Objects/Array/find +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>find()</strong></code> retorna un valor <strong>valor</strong> pertanyent a l'array si un element de l'array satisfà la funció de testeig donada. En cas contrari retornarà {{jsxref("undefined")}}.</p> + +<p>Vegeu també el mètode {{jsxref("Array.findIndex", "findIndex()")}}, que retorna la posició a la qual s'ha trobat l'element que satisfà la funció de testeig, en comptes del seu valor.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.find(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció que s'executarà per a cada valor de l'array, rep tres arguments: + <dl> + <dt><code>element</code></dt> + <dd>L'element de l'array que s'està processant actualment.</dd> + <dt><code>posició</code></dt> + <dd>La posició de l'array que s'està processant actualment.</dd> + <dt><code>array</code></dt> + <dd>L'array des del qual s'ha cridat el mètode <code>find</code>.</dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. L'objecte a utilitzar com a <code>this</code> mentre s'executi <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>find</code> executa la funció <code>callback</code> un cop per a cada element present a l'array fins que trobi un on <code>callback</code> retorni <code>true</code>. Si es troba aquest element el mètode <code>find</code> retorna el valor de l'element trobat immediatament. En cas contrari <code>find</code> retornarà {{jsxref("undefined")}}. <code>callback</code> només serà invocada per a posicions de l'array que tinguin valors assignats; no serà invoada per a posicions que s'hagin eliminat o que mai hagin tingut assignat un valor.</p> + +<p>La invocaicó de <code>callback</code> té tres arguments: el valor de l'element, la posició de l'element i l'objecte array que està sent recorregut.</p> + +<p>Si es proporciona el paràmetre <code>thisArg</code> al cridar el mètode <code>find</code>, aquest serà utilitzat com a <code>this</code> per a cada invocació del mètode <code>callback</code>. En cas de no ser proporcionat s'utilitzarà {{jsxref("undefined")}}.</p> + +<p><code>find</code> no mutarà l'array des del que es crida.</p> + +<p>El rang d'elemnets que <code>find</code> processarà es determina abans de la primera invocació a <code>callback</code>. Els elements afegits a l'array després de la crida a <code>find</code> no seran visitats per <code>callback</code>. Si un element existent, no visitat encara, rep un altre valor, el valor percebut per <code>callback</code> serà aquell que tingui l'element al ser visitat; els elements visitats no són visitats.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Trobar_un_objecte_en_un_array_segons_el_valor_d'una_propietat">Trobar un objecte en un array segons el valor d'una propietat</h3> + +<pre class="brush: js">var inventory = [ + {name: 'apples', quantity: 2}, + {name: 'bananas', quantity: 0}, + {name: 'cherries', quantity: 5} +]; + +function findCherries(fruit) { + return fruit.name === 'cherries'; +} + +console.log(inventory.find(findCherries)); // { name: 'cherries', quantity: 5 }</pre> + +<h3 id="Trobar_un_nombre_primer_en_un_array">Trobar un nombre primer en un array</h3> + +<p>L'exemple següent troba un element dins l'array el valor del qual sigui un nombre primer (o bé retorna {{jsxref("undefined")}} si no n'hi ha cap).</p> + +<pre class="brush: js">function isPrime(element, index, array) { + var start = 2; + while (start <= Math.sqrt(element)) { + if (element % start++ < 1) { + return false; + } + } + return element > 1; +} + +console.log([4, 6, 8, 12].find(isPrime)); // undefined, no trobat +console.log([4, 5, 8, 12].find(isPrime)); // 5 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode es va afegira la especificació 2015 de l'ECMAScript i pot no estar disponible encara en algunes implementacions de JavaScript. Tot i així es pot utilitzar el codi següent per a utilitzar-lo en entorns on no estigui disponible:</p> + +<pre class="brush: js">if (!Array.prototype.find) { + Array.prototype.find = function(predicate) { + if (this === null) { + throw new TypeError('Array.prototype.find called on null or undefined'); + } + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + var list = Object(this); + var length = list.length >>> 0; + var thisArg = arguments[1]; + var value; + + for (var i = 0; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { + return value; + } + } + return undefined; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.find', 'Array.prototype.find')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.find', 'Array.prototype.find')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>12</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Edge</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>12</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.findIndex()")}}</li> + <li>{{jsxref("Array.prototype.every()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/findindex/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/findindex/index.html new file mode 100644 index 0000000000..5b089bdb98 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/findindex/index.html @@ -0,0 +1,173 @@ +--- +title: Array.prototype.findIndex() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/findIndex +translation_of: Web/JavaScript/Reference/Global_Objects/Array/findIndex +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>findIndex()</strong></code> retorna una <strong>posició</strong> de l'array si un element de l'array satisfà la funció de testeig donada. En cas contrari retornarà -1.</p> + +<p>Vegeu també el mètode {{jsxref("Array.find", "find()")}}, que retorna el <strong>valor</strong> trobat dins l'array en comptes de la posició.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.findIndex(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció que s'executarà per a cada valor de l'array, rep tres arguments: + <dl> + <dt><code>element</code></dt> + <dd>L'element de l'array que s'està processant actualment.</dd> + <dt><code>posició</code></dt> + <dd>La posició de l'array que s'està processant actualment.</dd> + <dt><code>array</code></dt> + <dd>L'array des del qual s'ha cridat el mètode <code>find</code>.</dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. L'objecte a utilitzar com a <code>this</code> mentre s'executi <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>findIndex</code> executa la funció <code>callback</code> un cop per a cada element present a l'array fins que trobi un on <code>callback</code> retorni <code>true</code>. Si es troba aquest element el mètode <code>findIndex</code> retorna la posició de l'element trobat immediatament. En cas contrari <code>findIndex</code> retornarà -1. <code>callback</code> només serà invocada per a posicions de l'array que tinguin valors assignats; no serà invoada per a posicions que s'hagin eliminat o que mai hagin tingut assignat un valor.</p> + +<p>La invocaicó de <code>callback</code> té tres arguments: el valor de l'element, la posició de l'element i l'objecte array que està sent recorregut.</p> + +<p>Si es proporciona el paràmetre <code>thisArg</code> al cridar el mètode <code>findIndex</code>, aquest serà utilitzat com a <code>this</code> per a cada invocació del mètode <code>callback</code>. En cas de no ser proporcionat s'utilitzarà {{jsxref("undefined")}}.</p> + +<p><code>findIndex</code> no mutarà l'array des del que es crida.</p> + +<p>El rang d'elemnets que <code>findIndex</code> processarà es determina abans de la primera invocació a <code>callback</code>. Els elements afegits a l'array després de la crida a <code>findIndex</code> no seran visitats per <code>callback</code>. Si un element existent, no visitat encara, rep un altre valor, el valor percebut per <code>callback</code> serà aquell que tingui l'element al ser visitat; els elements visitats no són visitats.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Trobar_la_posició_d'un_nombre_primer_dins_un_array">Trobar la posició d'un nombre primer dins un array</h3> + +<p>L'exemple següent trobarà la posició d'un element de l'array que sigui un nombre primer (o bé retornarà -1 si no n'hi ha cap).</p> + +<pre class="brush: js">function isPrime(element, index, array) { + var start = 2; + while (start <= Math.sqrt(element)) { + if (element % start++ < 1) { + return false; + } + } + return element > 1; +} + +console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, not found +console.log([4, 6, 7, 12].findIndex(isPrime)); // 2 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode es va afegir a la especificació 6 de l'ECMAScript i pot no estar disponible encara en algunes implementacions de JavaScript. Tot i així es pot utilitzar el codi següent per a utilitzar-lo en entorns on no estigui disponible:</p> + +<pre class="brush: js">if (!Array.prototype.findIndex) { + Array.prototype.findIndex = function(predicate) { + if (this === null) { + throw new TypeError('Array.prototype.findIndex called on null or undefined'); + } + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + var list = Object(this); + var length = list.length >>> 0; + var thisArg = arguments[1]; + var value; + + for (var i = 0; i < length; i++) { + value = list[i]; + if (predicate.call(thisArg, value, i, list)) { + return i; + } + } + return -1; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.findIndex', 'Array.prototype.findIndex')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.findIndex', 'Array.prototype.findIndex')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.find()")}}</li> + <li>{{jsxref("Array.prototype.indexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/foreach/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/foreach/index.html new file mode 100644 index 0000000000..4d391346eb --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/foreach/index.html @@ -0,0 +1,238 @@ +--- +title: Array.prototype.forEach() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/forEach +translation_of: Web/JavaScript/Reference/Global_Objects/Array/forEach +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>forEach()</strong></code> executa la funció rebuda un cop per cada element de l'array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.forEach(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció a executar per a cada element. Aquesta funció rebrà tres paràmetres: + <dl> + <dt><code>valor</code></dt> + <dd>L'element que s'està processant ara mateix a l'array.</dd> + <dt><code>posició</code></dt> + <dd>La posició que l'element actual ocupa dins l'array.</dd> + <dt><code>array</code></dt> + <dd>L'array al qual el mètode <code>forEach</code> s'aplica.</dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. Valor que s'utilitzarà com a <code>this</code> a l'hora d'executar la funció <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>forEach()</code> executa la funció <code>callback</code> rebuda com a argument un cop per cada element present a l'array, en ordre ascendent. No es cridarà la funció per a elements que s'hagin eliminat o que no hagin rebut cap valor (és a dir, arrays disperses).</p> + +<p>S'invocarà <code>callback</code> amb els <strong>tres arguments</strong> següents:</p> + +<ul> + <li>el <strong>valor de l'element</strong></li> + <li>la <strong>posició de l'element</strong></li> + <li>L'<strong>array que s'està recorrent</strong></li> +</ul> + +<p>Si es proporciona el paràmetre <code>thisArg</code> a <code>forEach()</code>, aquest es passarà a <code>callback</code> quan es cridi, i es podrà accedir a ell mitjançant la paraula clau <code>this</code>. En el cas que no es proporcioni el paràmetre <code>this</code> rebrà el valor {{jsxref("undefined")}}. El valor de <code>this</code> que serà observable per <code>callback</code> es determina d'acord a les <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">regles usuals per a determinar el valor de <code>this</code> que una funció veu</a>.</p> + +<p>El rang dels elements processats per <code>forEach()</code> és determinat abans de la primera invocació de <code>callback</code>. Els elements que s'afegeixin a l'array després de la crida a <code>forEach()</code> no seran visitats per la funció <code>callback</code>. En el cas que es canviï el valor dels elements de l'array el valor que es passarà a <code>callback</code> serà el valor que tingui l'element en el moment que es visita. Els elements que s'han eliminat abans de ser visitats no es visitaran.</p> + +<p><code>forEach()</code> executa la funció <code>callback</code> un cop per cada element de l'array; a diferència de {{jsxref("Array.prototype.map()", "map()")}} i {{jsxref("Array.prototype.reduce()", "reduce()")}}, sempre retorna el valor {{jsxref("undefined")}} i no es pot encadenar. El cas d'ús típic és per executar efectes secundaris al final de la cadena.</p> + +<div class="note"> +<p><strong>Nota:</strong> L'única forma d'aturar un bucle <code>forEach()</code> és llençar una excepció. Si es requereix aquesta funcionalitat llavors el mètode <code>.forEach()</code> és l'eina incorrecta i es recomana utilitzar un bucle normal. Si el que es pretén és validar els elements d'un array contra un predicat i es requereix retornar un valor booleà, es recomana utilitzar la funció {{jsxref("Array.prototype.every()", "every()")}} o bé {{jsxref("Array.prototype.some()", "some()")}}.</p> +</div> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Imprimir_el_contingut_d'un_array">Imprimir el contingut d'un array</h3> + +<p>El codi següent mostra una línia per a cada element de l'array:</p> + +<pre class="brush:js">function logArrayElements(element, index, array) { + console.log('a[' + index + '] = ' + element); +} + +// Cal destacar l'omissió, no hi ha cap element a la posició 2 així que aquesta no es visita +[2, 5, , 9].forEach(logArrayElements); +// Mostra: +// a[0] = 2 +// a[1] = 5 +// a[3] = 9 +</pre> + +<h3 id="Una_funció_per_a_copiar_objectes">Una funció per a copiar objectes</h3> + +<p>El codi següent crea una copia de l'objecte donat. Hi ha diverses formes de crear una copia d'un objecte, la forma següent és simplement una d'elles i es presenta per a explicar com funciona <code>Array.prototype.forEach()</code> tot utilitzant les funcions de meta-propietats de l'ECMAScript 5 a <code>Object.*</code></p> + +<pre class="brush: js">function copy(obj) { + var copy = Object.create(Object.getPrototypeOf(obj)); + var propNames = Object.getOwnPropertyNames(obj); + + propNames.forEach(function(name) { + var desc = Object.getOwnPropertyDescriptor(obj, name); + Object.defineProperty(copy, name, desc); + }); + + return copy; +} + +var obj1 = { a: 1, b: 2 }; +var obj2 = copy(obj1); // obj2 looks like o1 now +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>forEach()</code> va ser afegida l'standard ECMA-262 en la cinquena edició; per aquest motiu aquesta funció pot no estar present en altres implementacions de l'standard. Es pot solventar aquest problema inserint el codi següent a l'inici dels vostres scripts. Això permetrà l'ús de <code>forEach()</code> en implementacions que no el suportin de forma nativa. Aquest algoritme és el mateix que l'especificat a l'ECMA-262, cinquena edició, si assumim que {{jsxref("Object")}} i {{jsxref("TypeError")}} tenen els seus valors originals i que <code>callback.call</code> es resol com al valor original de {{jsxref("Function.prototype.call()")}}.</p> + +<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.18 +// Reference: http://es5.github.io/#x15.4.4.18 +if (!Array.prototype.forEach) { + + Array.prototype.forEach = function(callback, thisArg) { + + var T, k; + + if (this == null) { + throw new TypeError(' this is null or not defined'); + } + + // 1. Assignem a O el resultat de cridar ToObject tot passant-li el valor de |this| com a argument. + var O = Object(this); + + // 2. lenValue representa el resultat de cridar el mètode intern Get de O amb l'argument "length". + // 3. Assignem a len el valor ToUint32(lenValue). + var len = O.length >>> 0; + + // 4. Si IsCallable(callback) és false, llençem una excepció TypeError. + // Vegeu: http://es5.github.com/#x9.11 + if (typeof callback !== "function") { + throw new TypeError(callback + ' no és una funció'); + } + + // 5. Si s'ha passat thisArg com a aragument, assignem el seu valor a la variable T, en qualsevol altre cas deixem T com a undefined. + if (arguments.length > 1) { + T = thisArg; + } + + // 6. Assignem 0 a la variable k + k = 0; + + // 7. Repetir, mentre k < len + while (k < len) { + + var kValue; + + // a. Assignem ToString(k) a Pk. + // Aquest comportament és implícit per a operands al cantó esquerra (de l'anglés LHS o Left-Hand-Side) de l'operador "in"This is implicit for LHS operands of the in operator + // b. Assignem el resultat de cridar el mètode intern HasProperty de O amb l'argument Pk a la variable kPresent + // Podem combinar aquest pas amb c + // c. Si kPresent és true, llavors... + if (k in O) { + + // i. Assignem a kValue el resultat de cridar el mètode intern Get de l'objecte O amb l'argument Pk. + kValue = O[k]; + + // ii. Cridem el mètode intern "call" del callback tot passant-li T com a valor de "this" + // així com una llista d'arguments que conté kValue, k i 0 + callback.call(T, kValue, k, O); + } + // d. Incrementem el valor de k en 1. + k++; + } + // 8. retornem undefined + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.18', 'Array.prototype.forEach')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.foreach', 'Array.prototype.forEach')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype.forEach()")}}</li> + <li>{{jsxref("Set.prototype.forEach()")}}</li> + <li>{{jsxref("Array.prototype.map()")}}</li> + <li>{{jsxref("Array.prototype.every()")}}</li> + <li>{{jsxref("Array.prototype.some()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/includes/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/includes/index.html new file mode 100644 index 0000000000..9f64b0e117 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/includes/index.html @@ -0,0 +1,158 @@ +--- +title: Array.prototype.includes() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/includes +translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>includes()</strong></code> determina si un array inclou un element concret, retornant <code>true</code> o <code>false</code> segons s'escaigui. </p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">var <var>boolean</var> = <var>array</var>.includes(elementCercat[, desdePosicio])</pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt>elementCercat</dt> + <dd>L'element a cercar.</dd> + <dt>desdePosicio</dt> + <dd>Opcional. La posició de l'array a partir de la qual començar la cerca de <code>elementCercat</code>. Un valor negatiu cercarà el nombre absolut donat de posicions contant des del final de l'array. El seu valor per defecte és 0.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Un {{jsxref("Boolean")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">[1, 2, 3].includes(2); // true +[1, 2, 3].includes(4); // false +[1, 2, 3].includes(3, 3); // false +[1, 2, 3].includes(3, -1); // true +[1, 2, NaN].includes(NaN); // true +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">if (!Array.prototype.includes) { + Array.prototype.includes = function(searchElement /*, fromIndex*/ ) { + 'use strict'; + var O = Object(this); + var len = parseInt(O.length) || 0; + if (len === 0) { + return false; + } + var n = parseInt(arguments[1]) || 0; + var k; + if (n >= 0) { + k = n; + } else { + k = len + n; + if (k < 0) {k = 0;} + } + var currentElement; + while (k < len) { + currentElement = O[k]; + if (searchElement === currentElement || + (searchElement !== searchElement && currentElement !== currentElement)) { // NaN !== NaN + return true; + } + k++; + } + return false; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}}</td> + <td>{{Spec2('ES7')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Edge</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td> + <p>{{CompatChrome(47)}}</p> + </td> + <td>43</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>34</td> + <td>9</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td> + <p>{{CompatChrome(47)}}</p> + </td> + <td>43</td> + <td>{{CompatNo}}</td> + <td>34</td> + <td>9</td> + <td> + <p>{{CompatChrome(47)}}</p> + </td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("TypedArray.prototype.includes()")}}</li> + <li>{{jsxref("String.prototype.includes()")}}</li> + <li>{{jsxref("Array.prototype.indexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/index.html new file mode 100644 index 0000000000..da7c400799 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/index.html @@ -0,0 +1,482 @@ +--- +title: Array +slug: Web/JavaScript/Referencia/Objectes_globals/Array +translation_of: Web/JavaScript/Reference/Global_Objects/Array +--- +<div>{{JSRef}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'objecte de JavaScript <strong><code>Array</code></strong> és un objecte global que s'utilitza per a construir arrays; que són objectes d'al nivell que representen llistes.</p> + +<p><strong>Crear un Array</strong></p> + +<pre class="brush: js">var fruites = ["Poma", "Pera"]; + +console.log(fruites.length); +// 2 +</pre> + +<p><strong>Accedir (mitjançant la posició) a un element d'un Array</strong></p> + +<pre class="brush: js">var primer = fruites[0]; +// Poma + +var ultim = fruites[fruites.length - 1]; +// Pera +</pre> + +<p><strong>Recòrrer un Array</strong></p> + +<pre class="brush: js">fruites.forEach(function (element, index, array) { + console.log(element, index); +}); +// Poma 0 +// Pera 1 +</pre> + +<p><strong>Afegir elements al final d'un Array</strong></p> + +<pre class="brush: js">var nouTamany = fruites.push("Taronja"); +// ["Poma", "Pera", "Taronja"] +</pre> + +<p><strong>Eliminar l'element del final d'un Array</strong></p> + +<pre class="brush: js">var ultim = fruites.pop(); // Elimina Taronja (del final) +// ["Poma", "Pera"]; +</pre> + +<p><strong>Eliminar l'element de l'inici d'un Array</strong></p> + +<pre class="brush: js">var primer = fruites.shift(); // elimina Poma del principi del Array +// ["Pera"]; +</pre> + +<p><strong>Afegir un element a l'inici d'un Array</strong></p> + +<pre class="brush: js">var nouTamany = fruites.unshift("Maduixa") // Afegir al principi +// ["Maduixa", "Pera"]; +</pre> + +<p><strong>Trobar la posició d'un element del Array</strong></p> + +<pre class="brush: js">fruites.push("Mango"); +// ["Maduixa", "Pera", "Mango"] + +var pos = fruites.indexOf("Pera"); +// 1 +</pre> + +<p><strong>Eliminar un element segons la seva posició</strong></p> + +<pre class="brush: js">var elementEliminat = fruites.splice(pos, 1); // així és com s'elimina un element +// ["Maduixa", "Mango"] +</pre> + +<p><strong>Copiar un Array</strong></p> + +<pre class="brush: js">var shallowCopy = fruits.slice(); // així és com es copia +// ["Maduixa", "Mango"] +</pre> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>[<var>element0</var>, <var>element1</var>, ..., <var>elementN</var>] +new Array(<var>element0</var>, <var>element1</var>[, ...[, <var>elementN</var>]]) +new Array(longitudArray)</code></pre> + +<dl> + <dt><code>element<em>N</em></code></dt> + <dd>S'inicialitza un array de JavaScript amb els elements donats, excepte si només es proporciona un sol argument al constructor <code>Array</code> i aquest argument és un nombre. (Vegeu a sota). Cal destacar que aquest cas especial només s'aplica a arrays de JavaScript creats mitjançant el constructor <code>Array</code> i no a literals array creats a partir de ls sintaxi de claus.</dd> + <dt><code>longitudArray</code></dt> + <dd>Si només es passa un sol argument al constructor <code>Array</code> i aquest argument és un nombre entre 0 2<sup>32</sup>-1 (inclòs), aquest retorna un nou array de JavaScript amb la longitud especificada pel nombre passat com a argument. Si l'argument és qualsevol altre nombre es llença l'excepció {{jsxref("Global_Objects/RangeError", "RangeError")}}.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Els arrays són objectes semblants a lliste el prototipus dels quals té mètodes que permeten realitzar operacions de travessa i mutació. Ni a longitud ni el tipus dels elements són fixos en els arrays de JavaScript. Com que el tamany d'un array pot canviar en qualsevol moment no es pot garantir la seva densitat. En general aquestes característiques són convenients; però si en algun cas aquestes característiques no fossin convenients es recomana considerar l'ús de arrays amb tipus.</p> + +<p>Algunes persones creuen que <a class="external" href="http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/">no s'hauria de fer ús de arrays com amb finalitats associatives</a>. En qualsevol cas sempre es pot utilitzar senzillament un {{jsxref("Global_Objects/Object", "objects")}} per a tal fet instead, tot i que fer-ho també té els seus inconvenients. Vegeu el post <a class="external" href="http://www.less-broken.com/blog/2010/12/lightweight-javascript-dictionaries.html">Diccionaris de JavaScript lleugers amb claus arbitràries</a> per a exemple.</p> + +<h3 id="Accedir_als_elements_d'un_array">Accedir als elements d'un array</h3> + +<p>Els arrays de JavaScript comencen el compte de posició (índex) amb el zero: és a dir, el primer element d'un array ocupa la posició <code>0</code> i l'últim element d'un array es troba a l'índex amb valor del {{jsxref("Array.length", "tamany")}} de l'array menys 1.</p> + +<pre class="brush: js">var arr = ['aquest és el primer element', 'aquest és el segon element']; +console.log(arr[0]); // mostra 'aquest és el primer element' +console.log(arr[1]); // mostra 'aquest és el segon element' +console.log(arr[arr.length - 1]); // mostra 'aquest és el segon element' +</pre> + +<p>Els elements d'un array són propietats de l'objecte de la mateixa que <code>toString</code> és una propietat, però intentar accedir un element d'un array de la manera que es mostra a continuació llença un error de sintaxi, ja que el nom de la propietat no és vàlid:</p> + +<pre class="brush: js">console.log(arr.0); // error de sintaxi +</pre> + +<p>No hi ha res d'especial sobre els arrays de JavaScript i les propietats que causen aquest comportament. A JavaScript, les propietats que comencen amb un dígit no es poden referenciar amb la notació de punt; per a accedir-hi és necesari utilitzar la notació de claus. Per exemple, per a accedir a la propietat anomenada <code>'3d'</code> d'un objecte, l'única forma d'accedir-hi és mitjançant la notació de claus tal i com es mostra a continuació:</p> + +<pre class="brush: js">var anys = [1950, 1960, 1970, 1980, 1990, 2000, 2010]; +console.log(anys.0); // error de sintaxi +console.log(anys[0]); // funciona +</pre> + +<pre class="brush: js">renderer.3d.setTexture(model, 'character.png'); // error de sintaxi +renderer['3d'].setTexture(model, 'character.png'); // funciona +</pre> + +<p>Fixeu-vos que a l'exemple de <code>3d</code>, <code>'3d'</code> necessita cometes. És possible utilitzar cometes amb les posicions d'un array (per exemple, <code>anys['2']</code> en comptes de <code>anys[2]</code>), tot i que no és necesari. El 2 a <code>anys[2]</code> és transformat en un string pel motor de JavaScript implícitament mitjançant el mètode <code>toString</code>. Per aquesta raó <code>'2'</code> i <code>'02'</code> es referirien a dues propietats diferents de l'objecte <code>anys</code> i l'exemple següent podría retornar <code>true</code>:</p> + +<pre class="brush: js">console.log(anys['2'] != anys['02']); +</pre> + +<p>De la mateixa manera, les propietats d'objectes que utilitzin paraules clau com a nom(!) només es poden accedir mitjançant literals string en notació de claus (però poden accedir-se mitjançant notació de punt com a mínim al firefox 40.0a2):</p> + +<pre class="brush: js">var promise = { + 'var' : 'text', + 'array': [1, 2, 3, 4] +}; + +console.log(promise['array']); +</pre> + +<h3 id="Relació_entre_length_i_propietats_numèriques">Relació entre <code>length</code> i propietats numèriques</h3> + +<p>La propietat {{jsxref("Array.length", "length")}} dels arrays de JavaScript està relacionada amb les propietats numèriques. Diversos mètodes pertanyent de forma nativa a l'objecte array (com ara {{jsxref("Array.join", "join")}}, {{jsxref("Array.slice", "slice")}}, {{jsxref("Array.indexOf", "indexOf")}}, etcètera.) tenen en compte el valor de la propietat {{jsxref("Array.length", "length")}} quan són cridats. Altres mètodes, com ara {{jsxref("Array.push", "push")}} o {{jsxref("Array.splice", "splice")}}, també actualitzen el valor de la propietat {{jsxref("Array.length", "length")}}.</p> + +<pre class="brush: js">var fruites = []; +fruites.push('banana', 'poma', 'prèssec'); + +console.log(fruites.length); // 3 +</pre> + +<p>A l'hora d'assignar una propietat a un array de JavaScript, quan la propietat és una posició vàlida i aquesta posició cau fora dels límits que l'array té en aquell moment, el motor ha d'actualitzar la propietat {{jsxref("Array.length", "length")}} de l'array apropiadament:</p> + +<pre class="brush: js">fruites[5] = 'mango'; +console.log(fruites[5]); // 'mango' +console.log(Object.keys(fruites)); // ['0', '1', '2', '5'] +console.log(fruites.length); // 6 +</pre> + +<p>Incrementant la longitud amb {{jsxref("Array.length", "length")}}.</p> + +<pre class="brush: js">fruites.length = 10; +console.log(Object.keys(fruites)); // ['0', '1', '2', '5'] +console.log(fruites.length); // 10 +</pre> + +<p>Decrementar la propietat {{jsxref("Array.length", "length")}}, per contra, elimina elements.</p> + +<pre class="brush: js">fruites.length = 2; +console.log(Object.keys(fruites)); // ['0', '1'] +console.log(fruites.length); // 2 +</pre> + +<p>Aquest comportament s'explica amb més detall a la pàgina de {{jsxref("Array.length")}}.</p> + +<h3 id="Crear_un_array_utilitzant_el_resultat_d'una_expressió_regular">Crear un array utilitzant el resultat d'una expressió regular</h3> + +<p>El resultats obtinguts a l'aplicar una expressió regular sobre un string poden crear un array de JavaScript. Aquest array tindrà propietats i elements que ofereixen informació sobre les coincidències. Aquest tipus d'arrays és retornat pels mètodes {{jsxref("RegExp.exec")}}, {{jsxref("String.match")}}, i {{jsxref("String.replace")}}. Per a ajudar a entendre aquestes propietats i elements, vegeu l'exemple següent i la taula a continuació:</p> + +<pre class="brush: js">// Cerca una d seguida d'una o més b's seguides d'una d +// Desa les coincidències de b's amb una d a continuació +// No distingeix entre majúscules i minúscules + +var myRe = /d(b+)(d)/i; +var myArray = myRe.exec('cdbBdbsbz'); +</pre> + +<p>Les propietats i elements retornats d'aplicar aquesta expressió regular al string són les següents:</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <td class="header">Propietat/Element</td> + <td class="header">Descripció</td> + <td class="header">Exemple</td> + </tr> + <tr> + <td><code>input</code></td> + <td>Propietat només de lectura que representa el string original contra el que s'ha aplicat la expressió regular.</td> + <td>cdbBdbsbz</td> + </tr> + <tr> + <td><code>index</code></td> + <td>Propietat només de lectura que representa la posició on s'ha trobat coincidència (considerant zero la primera posició)</td> + <td>1</td> + </tr> + <tr> + <td><code>[0]</code></td> + <td>element només de lectura que especifica els últims caràcters que han coincidit.</td> + <td>dbBd</td> + </tr> + <tr> + <td><code>[1], ...[n]</code></td> + <td>Elements només de lectura que especifiquen coincidències parcials en parèntesi, si aquests s'inclouen a l'expressió regular. El nombre de possibles coincidències parcials en parèntesi és il·limitat.</td> + <td>[1]: bB<br> + [2]: d</td> + </tr> + </tbody> +</table> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Array.length</code></dt> + <dd>La propietat de longitud del constructor de <code>Array</code>. El seu valor és 1.</dd> + <dt>{{jsxref("Array.prototype")}}</dt> + <dd>Permet l'adició de propietats a tots els objectes array.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Array.from()")}} {{experimental_inline}}</dt> + <dd>Crea una nova instància de <code>Array</code> a partir d'un objecte iterable o un objecte similar a un array.</dd> + <dt>{{jsxref("Array.isArray()")}}</dt> + <dd>Retorna <code>true</code> si una variable és un array. En cas contrari retorna <code>false</code>.</dd> + <dt>{{jsxref("Array.observe()")}} {{experimental_inline}}</dt> + <dd>Observa de forma asíncrona canvis en Arrays, de manera similar al mètode {{jsxref("Object.observe()")}} per a objectes. Proporciona una sequència de canvis ordenats per ordre d'ocurrència.</dd> + <dt>{{jsxref("Array.of()")}} {{experimental_inline}}</dt> + <dd>Crea una nova instància de <code>Array</code> amb un nombre variable d'arguments, sense importar el nombre o tipus d'arguments.</dd> +</dl> + +<h2 id="Instàncies_de_Array">Instàncies de <code>Array</code></h2> + +<p>Totes les instàncies de <code>Array</code> hereten de {{jsxref("Array.prototype")}}. L'objecte prototipus del constructor de <code>Array</code> es pot modificar per a afectar a totes les instàncies de <code>Array</code> a l'hora.</p> + +<h3 id="Propietats_2">Propietats</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Properties')}}</div> + +<h3 id="Mètodes_2">Mètodes</h3> + +<h4 id="Mètodes_de_mutació">Mètodes de mutació</h4> + +<div>{{page('ca/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Mutator_methods')}}</div> + +<h4 id="Mètodes_d'accés">Mètodes d'accés</h4> + +<div>{{page('ca/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Accessor_methods')}}</div> + +<h4 id="Mètodes_d'iteració">Mètodes d'iteració</h4> + +<div>{{page('ca/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype', 'Iteration_methods')}}</div> + +<h2 id="Mètodes_genèrics_de_Array">Mètodes genèrics de <code>Array</code></h2> + +<div class="note"> +<p><strong>Els genèrics de Array no formen part de cap standard, estan en desús i poden ser esborrats en el futur</strong>. Noteu que no funcionen a tots els navegadors, tot i que hi ha una <a href="https://github.com/plusdude/array-generics">correcció de compatibilitat disponible a GitHub</a>.</p> +</div> + +<p>De vegades hom voldria aplicar mètodes de array a strings o altres objectes semblants a arrays (com ara la funció {{jsxref("Functions/arguments", "arguments", "", 1)}}). Per a aconseguir això, es tractaria un string com un array de caràcters (o en tot cas tractar un objecte que no sigui un array com a array). Per exemple, per a comprovar que tots els caràcters d'una variable <em>str</em> són lletres, es faria de la forma següent:</p> + +<pre class="brush: js">function isLetter(character) { + return character >= 'a' && character <= 'z'; +} + +if (Array.prototype.every.call(str, isLetter)) { + console.log("El string '" + str + "' només conté lletres!"); +} +</pre> + +<p>Aquesta notació és força molesta i JavaScript 1.6 va introduïr una abreviació genèrica:</p> + +<pre class="brush: js">if (Array.every(str, isLetter)) { + console.log("El string '" + str + "' només conté lletres!"); +} +</pre> + +<p>{{jsxref("Global_Objects/String", "Generics", "#String_generic_methods", 1)}} també estan disponibles a {{jsxref("Global_Objects/String", "String")}}.</p> + +<p>Aquests no formen actualment part de cap standard ECMAScript (tot i que es pot utilitzar el mètode {{jsxref("Array.from()")}} de l'ECMAScript 6 per a aconseguir el mateix resultat). A continuació es presenta una correcció de compatibilitat per a permetre el seu ús a qualsevol navegador:</p> + +<pre class="brush: js">// Asumeix que els extres de Array són presents (també es poden utilitzar funcions Polifyll per a suplir això) +(function() { + 'use strict'; + + var i, + // També es podria construïr l'array de mètodes de la forma següent, però + // el mètode getOwnPropertyNames() no té cap corrector de compatibilitat: + // Object.getOwnPropertyNames(Array).filter(function(methodName) { + // return typeof Array[methodName] === 'function' + // }); + methods = [ + 'join', 'reverse', 'sort', 'push', 'pop', 'shift', 'unshift', + 'splice', 'concat', 'slice', 'indexOf', 'lastIndexOf', + 'forEach', 'map', 'reduce', 'reduceRight', 'filter', + 'some', 'every', 'find', 'findIndex', 'entries', 'keys', + 'values', 'copyWithin', 'includes' + ], + methodCount = methods.length, + assignArrayGeneric = function(methodName) { + if (!Array[methodName]) { + var method = Array.prototype[methodName]; + if (typeof method === 'function') { + Array[methodName] = function() { + return method.call.apply(method, arguments); + }; + } + } + }; + + for (i = 0; i < methodCount; i++) { + assignArrayGeneric(methods[i]); + } +}()); +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Crear_un_array">Crear un array</h3> + +<p>L'exemple següent crea un array, <code>msgArray</code>, amb un tamany de 0, després assigna valors a les posicions <code>msgArray[0]</code> i <code>msgArray[99]</code>, canviant automàticament el tamany de l'array a 100.</p> + +<pre class="brush: js">var msgArray = []; +msgArray[0] = 'Hello'; +msgArray[99] = 'world'; + +if (msgArray.length === 100) { + console.log('The length is 100.'); +} +</pre> + +<h3 id="Crear_un_array_de_dues_dimensions_(bidimensional)">Crear un array de dues dimensions (bidimensional)</h3> + +<p>L'exemple següent crea un tauler d'escacs com a array bidimensional de strings. El primer moviement es realitza tot copiant la 'p' de la posició (6,4) a (4,4). La posició anterior esdevé buïda.</p> + +<pre class="brush: js">var board = [ + ['R','N','B','Q','K','B','N','R'], + ['P','P','P','P','P','P','P','P'], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + ['p','p','p','p','p','p','p','p'], + ['r','n','b','q','k','b','n','r'] ]; + +console.log(board.join('\n') + '\n\n'); + +// Movem el peó del Rei endevant dues caselles +board[4][4] = board[6][4]; +board[6][4] = ' '; +console.log(board.join('\n')); +</pre> + +<p>Aquesta seria la sortida:</p> + +<pre class="eval">R,N,B,Q,K,B,N,R +P,P,P,P,P,P,P,P + , , , , , , , + , , , , , , , + , , , , , , , + , , , , , , , +p,p,p,p,p,p,p,p +r,n,b,q,k,b,n,r + +R,N,B,Q,K,B,N,R +P,P,P,P,P,P,P,P + , , , , , , , + , , , , , , , + , , , ,p, , , + , , , , , , , +p,p,p,p, ,p,p,p +r,n,b,q,k,b,n,r +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4', 'Array')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>S'afegeixen més mètodes: {{jsxref("Array.isArray")}}, {{jsxref("Array.prototype.indexOf", "indexOf")}}, {{jsxref("Array.prototype.lastIndexOf", "lastIndexOf")}}, {{jsxref("Array.prototype.every", "every")}}, {{jsxref("Array.prototype.some", "some")}}, {{jsxref("Array.prototype.forEach", "forEach")}}, {{jsxref("Array.prototype.map", "map")}}, {{jsxref("Array.prototype.filter", "filter")}}, {{jsxref("Array.prototype.reduce", "reduce")}}, {{jsxref("Array.prototype.reduceRight", "reduceRight")}}</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array-objects', 'Array')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>S'afegeixen més mètodes: {{jsxref("Array.from")}}, {{jsxref("Array.of")}}, {{jsxref("Array.prototype.find", "find")}}, {{jsxref("Array.prototype.findIndex", "findIndex")}}, {{jsxref("Array.prototype.fill", "fill")}}, {{jsxref("Array.prototype.copyWithin", "copyWithin")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td> + <table class="compat-table"> + <tbody> + <tr> + <td>Suport bàsic</td> + </tr> + </tbody> + </table> + </td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Indexing_object_properties">Guia de JavaScript: “Indexar propietats d'objectes”</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Guide/Predefined_Core_Objects#Array_Object">Guia de JavaScript: “Objectes bàsics predefinits: L'objecte <code>Array</code>”</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions">Array comprehensions</a></li> + <li><a href="https://github.com/plusdude/array-generics">Polyfill per a Genèrics d'Array a JavaScript 1.8.5 i Array Extras a l'ECMAScript 5 </a></li> + <li><a href="/en-US/docs/JavaScript_typed_arrays">Arrays amb tipus</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/indexof/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/indexof/index.html new file mode 100644 index 0000000000..939571a0c8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/indexof/index.html @@ -0,0 +1,235 @@ +--- +title: Array.prototype.indexOf() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/indexOf +translation_of: Web/JavaScript/Reference/Global_Objects/Array/indexOf +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>indexOf()</strong></code> retorna la primera posició a la qual es troba l'element proporcionat, o bé -1 si l'element no es troba dins l'array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><var>arr</var>.indexOf(elementAcercar[, posicioInicial = 0])</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>elementAcercar</dt> + <dd>L'element que es cercarà.</dd> + <dt>posicioInicial</dt> + <dd>La posició a la qual començar la cerca. Si la posició és major o igual a la longitud de l'array, es retornarà -1, això implica que no es realitzarà cap cerca a l'array. Si es proporciona un onmbre negatiu, es calcularà la posició des de la qual cercar des del final de l'array. Nota: l'array sempre es cercarà accedint a les posicions en ordre ascendent encara que la <code>posicioInicial</code> sigui negatiu. Si la posició proporcionada és 0 es cercarà en tot l'array. El valor per defecte és 0 (cerca a tot l'array).</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>indexOf()</code> compara <strong>elementAcercar</strong> amb els elements de l'array mitjançant la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators">igualtat estricta</a> (el mateix mètode utilitzat per l'operador <code>===</code>, també anomenat triple-equals).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_indexOf()">Utilitzar <code>indexOf()</code></h3> + +<p>L'exemple següent utilitza <code>indexOf()</code> per a localitzar valors dins un array.</p> + +<pre class="brush: js">var array = [2, 9, 9]; +array.indexOf(2); // 0 +array.indexOf(7); // -1 +array.indexOf(9, 2); // 2 +array.indexOf(2, -1); // -1 +array.indexOf(2, -3); // 0 +</pre> + +<h3 id="Trobar_totes_les_ocurrències_d'un_element">Trobar totes les ocurrències d'un element</h3> + +<pre class="brush: js">var indices = []; +var array = ['a', 'b', 'a', 'c', 'a', 'd']; +var element = 'a'; +var idx = array.indexOf(element); +while (idx != -1) { + indices.push(idx); + idx = array.indexOf(element, idx + 1); +} +console.log(indices); +// [0, 2, 4] +</pre> + +<h3 id="Determinar_si_un_element_existeix_o_no_a_l'array_i_actualitzar-lo">Determinar si un element existeix o no a l'array i actualitzar-lo</h3> + +<pre class="brush: js">function updateVegetablesCollection (veggies, veggie) { + if (veggies.indexOf(veggie) === -1) { + veggies.push(veggie); + console.log('La nova col·lecció de verdures és : ' + veggies); + } else if (veggies.indexOf(veggie) > -1) { + console.log(veggie + ' ja existeix a la col·lecció de verdures.'); + } +} + +var veggies = ['potato', 'tomato', 'chillies', 'green-pepper']; + +updateVegetablesCollection(veggies, 'spinach'); +// La nova col·lecció de verdures és : potato,tomato,chillies,green-papper,spinach +updateVegetablesCollection(veggies, 'spinach'); +// spinach ja existeix a la col·lecció de verdures. +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>indexOf()</code> va ser afegit al standard ECMA-262 a la cinquena versió; degut a això pot no estar present en tots els navegadors. Afegir el següent codi al principi dels vostres escripts us permetrà utilitzar aquesta funció en navegadors on <code>indexOf</code> no sigui suportada de forma nativa. Aquest algoritme és el mateix que l'especificat a la cinquena versió de l'ECMA-262, donat que {{jsxref("Global_Objects/TypeError", "TypeError")}} i {{jsxref("Math.abs()")}} no han estat modificats.</p> + +<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.14 +// Reference: http://es5.github.io/#x15.4.4.14 +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(searchElement, fromIndex) { + + var k; + + // 1. Sigui o el resultat de cridar ToObject passant + // el valor de this com a argument. + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Sigui lenValue el resultat de cridar el mètode intern Get + // de o amb l'argument "length". + // 3. Sigui len ToUint32(lenValue). + var len = o.length >>> 0; + + // 4. Si len és 0, retornem -1. + if (len === 0) { + return -1; + } + + // 5. Si s'ha passat l'argument fromIndex n valdrà + // ToInteger(fromIndex); si no n valdrà 0. + var n = +fromIndex || 0; + + if (Math.abs(n) === Infinity) { + n = 0; + } + + // 6. Si n >= len, retornem -1. + if (n >= len) { + return -1; + } + + // 7. Si n >= 0, k valdrà n. + // 8. Si no, si n<0, k valdrà len - abs(n). + // Si k és menor que 0, llavors k valdrà 0. + k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + + // 9. Repetir mentre k < len + while (k < len) { + // a. Sigui Pk ToString(k). + // Això és implícit per a operands a l'esquerra de l'operador in + // b. Sigui kPresent el resultat de cridar el mètode intern + // HasProperty de o amb l'argument Pk. + // Aquest pas es pot combinar amb c + // c. Si kPresent és cert, llavors + // i. Sigui elementK el resultat de cridar el mètode intern Get + // de o amb l'argument ToString(k). + // ii. Sigui same el resultat d'aplicar l'algoritme del + // comparador d'igualtat estricta a + // searchElement i elementK. + // iii. Si same és cert retornem k. + if (k in o && o[k] === searchElement) { + return k; + } + k++; + } + return -1; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.14', 'Array.prototype.indexOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_de_compatibilitat">Notes de compatibilitat</h2> + +<ul> + <li>Començant amb el Firefox 47 {{geckoRelease(47)}}, aquest mètode no retornarà <code>-0</code>. Per exemple, <code>[0].indexOf(0, -0)</code> ara sempre retornarà <code>+0</code> ({{bug(1242043)}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.lastIndexOf()")}}</li> + <li>{{jsxref("TypedArray.prototype.indexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/isarray/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/isarray/index.html new file mode 100644 index 0000000000..6393dde86f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/isarray/index.html @@ -0,0 +1,135 @@ +--- +title: Array.isArray() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/isArray +translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Array.isArray()</strong></code>retorna <code>true</code> si un objecte és un array, o <code>false</code> en cas que no ho sigui.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Array.isArray(<var>obj</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>obj</code></dt> + <dd>L'objecte que s'ha de comprovar.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Vegeu l'article <a href="http://web.mit.edu/jwalden/www/isArray.html">“Determinar amb absoluta precisió si un objecte JavaScript és un array o no”</a> per més detalls.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">// totes les crides següents retornen true +Array.isArray([]); +Array.isArray([1]); +Array.isArray(new Array()); +// Fet poc conegut: Array.prototype és un array per si mateix: +Array.isArray(Array.prototype); + +// totes les crides següents retornen false +Array.isArray(); +Array.isArray({}); +Array.isArray(null); +Array.isArray(undefined); +Array.isArray(17); +Array.isArray('Array'); +Array.isArray(true); +Array.isArray(false); +Array.isArray({ __proto__: Array.prototype }); +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Executar el codi següent abans de cap altre codi crearà <code>Array.isArray()</code> si no es troba disponible de forma nativa.</p> + +<pre class="brush: js">if (!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("5")}}</td> + <td>{{CompatGeckoDesktop("2.0")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("10.5")}}</td> + <td>{{CompatSafari("5")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("2.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/join/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/join/index.html new file mode 100644 index 0000000000..8d76b4474a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/join/index.html @@ -0,0 +1,123 @@ +--- +title: Array.prototype.join() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/join +translation_of: Web/JavaScript/Reference/Global_Objects/Array/join +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>join()</strong></code> ajunta tots els elements d'un array en un string.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var> = <var>arr</var>.join([<var>separador</var> = ','])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>separador</code></dt> + <dd>Opcional. Expecifica un string que s'utilitzarà per a serparar cada element de l'array. El separador es converteix a string automàticament en cas necesari. Si s'omet, els elements de l'array seran separats per una coma. Si <code>separador</code> és un string buit, s'ajuntaran tots els elements de l'array sense cap caràcter entre ells.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Ajunta les conversions a string de tots els elements de l'array en un sol string. Si un element és <code>undefined</code> o bé <code>null</code> aquest es converteix en una cadena buida.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Quatre_formes_diferents_d'ajuntar_un_array">Quatre formes diferents d'ajuntar un array</h3> + +<p>L'exemple següent crea un array, <code>a</code>, amb tres elements, l'ajunta quatre cops: utilitzant el separador per defect, utilitzant coma i espai, utiltizant el signe més i utilitzant un string buit.</p> + +<pre class="brush: js">var a = ['Wind', 'Rain', 'Fire']; +var myVar1 = a.join(); // assigna 'Wind,Rain,Fire' a myVar1 +var myVar2 = a.join(', '); // assigna 'Wind, Rain, Fire' a myVar2 +var myVar3 = a.join(' + '); // assigna 'Wind + Rain + Fire' a myVar3 +var myVar4 = a.join(''); // assigna 'WindRainFire' a myVar4 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.5', 'Array.prototype.join')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.join', 'Array.prototype.join')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.split()")}}</li> + <li>{{jsxref("Array.prototype.toString()")}}</li> + <li>{{jsxref("TypedArray.prototype.join()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/keys/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/keys/index.html new file mode 100644 index 0000000000..7d9df8e1f5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/keys/index.html @@ -0,0 +1,115 @@ +--- +title: Array.prototype.keys() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/keys +translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>keys()</strong></code> retorna un nou <code><strong>Array Iterator</strong></code> que conté la clau de cada posició d'un array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.keys()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Ús_bàsic">Ús bàsic</h3> + +<pre class="brush: js">var arr = ["a", "b", "c"]; +var iterator = arr.keys(); + +console.log(iterator.next()); // { value: 0, done: false } +console.log(iterator.next()); // { value: 1, done: false } +console.log(iterator.next()); // { value: 2, done: false } +console.log(iterator.next()); // { value: undefined, done: true } +</pre> + +<h3 id="L'iterador_de_claus_no_ignora_els_forats">L'iterador de claus no ignora els forats</h3> + +<pre class="brush: js">var arr = ["a", , "c"]; +var sparseKeys = Object.keys(arr); +var denseKeys = [...arr.keys()]; +console.log(sparseKeys); // ['0', '2'] +console.log(denseKeys); // [0, 1, 2] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.keys', 'Array.prototype.keys')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("28")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("28")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8.0</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.values()")}}</li> + <li>{{jsxref("Array.prototype.entries()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/lastindexof/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/lastindexof/index.html new file mode 100644 index 0000000000..038aa614e5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/lastindexof/index.html @@ -0,0 +1,197 @@ +--- +title: Array.prototype.lastIndexOf() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/lastIndexOf +translation_of: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +--- +<div>{{JSRef}}</div> + +<p> </p> + +<p>El mètode <code><strong>lastIndexOf</strong></code> <code><strong>()</strong></code> retorna l'última posició a la qual es troba l'element proporcionat, o bé -1 si l'element no es troba dins l'array. L'array es recorrerà en ordre invers a partir de la posició <strong>pocicioInicial</strong>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.lastIndexOf(elementAcercar[, posicioInicial = arr.length - 1])</code></pre> + +<h2 id="Paràmetres">Paràmetres</h2> + +<dl> + <dt><code>elementAcercar</code></dt> + <dd>L'element que es cercarà.</dd> + <dt><code>posicioInicial</code></dt> + <dd>Opcional. La posició a partir de la qual es començarà a cercar cap enrera. El valor per defecte és el tamany de l'array menys un, és a dir, tota l'array serà cercada. Si la posició proporcionada es major o igual que la longitud de l'array tot l'array serà cercat. Si és negatiu s'utilitzarà com a desplaçament respecte el final de l'array. Nota: l'array sempre es cercarà accedint a les posicions en ordre descendent encara que la <code>posicioInicial</code> sigui negatiu. Si la posició calculada és menor que zero, es retornarà -1, és a dir, l'array no serà cercat.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>lastIndexOf</code> compara <strong>elementAcercar</strong> amb els elements de l'array mitjançant la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators">igualtat estricta</a> (el mateix mètode utilitzat per l'operador <code>===</code>, també anomenat triple-equals).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_lastIndexOf">Utilitzar <code>lastIndexOf</code></h3> + +<p>L'exemple següent utilitza <code>lastIndexOf</code> per a localitzar valors dins un array.</p> + +<pre class="brush: js">var array = [2, 5, 9, 2]; +array.lastIndexOf(2); // 3 +array.lastIndexOf(7); // -1 +array.lastIndexOf(2, 3); // 3 +array.lastIndexOf(2, 2); // 0 +array.lastIndexOf(2, -2); // 0 +array.lastIndexOf(2, -1); // 3 +</pre> + +<h3 id="Trobar_totes_les_ocurrències_d'un_element">Trobar totes les ocurrències d'un element</h3> + +<p>L'exemple segïuent utilitza <code>lastIndexOf</code> per a trobar totes les posicions d'un element en un array donat, utilitzant {{jsxref("Array.prototype.push", "push")}} per a afegir-los a u altre array un cop trobats.</p> + +<pre class="brush: js">var indices = []; +var array = ['a', 'b', 'a', 'c', 'a', 'd']; +var element = 'a'; +var idx = array.lastIndexOf(element); +while (idx != -1) { + indices.push(idx); + idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1); +} + +console.log(indices); +// [4, 2, 0] +</pre> + +<p>Cal destacar que el cas <code>idx == 0</code> s'ha de tractar de forma separada ja que l'element sempre serà trobat sense importar el valor del paràmetre <code>posicioInicial</code> si és el primer element de l'array. Aquest comportament és diferent del del mètode {{jsxref("Array.prototype.indexOf", "indexOf")}}.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>lastIndexOf</code> va ser afegit al standard ECMA-262 a la cinquena versió; degut a això pot no estar present en tots els navegadors. Afegir el següent codi al principi dels vostres escripts us permetrà utilitzar aquesta funció en navegadors on <code>indexOf</code> no sigui suportada de forma nativa. Aquest algoritme és el mateix que l'especificat a la cinquena versió de l'ECMA-262, donat que {{jsxref("Object")}}, {{jsxref("TypeError")}}, {{jsxref("Number")}}, {{jsxref("Math.floor")}}, {{jsxref("Math.abs")}}, i{{jsxref("Math.min")}} no han estat modificats.</p> + +<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.15 +// Reference: http://es5.github.io/#x15.4.4.15 +if (!Array.prototype.lastIndexOf) { + Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) { + 'use strict'; + + if (this === void 0 || this === null) { + throw new TypeError(); + } + + var n, k, + t = Object(this), + len = t.length >>> 0; + if (len === 0) { + return -1; + } + + n = len - 1; + if (arguments.length > 1) { + n = Number(arguments[1]); + if (n != n) { + n = 0; + } + else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + } + + for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) { + if (k in t && t[k] === searchElement) { + return k; + } + } + return -1; + }; +} +</pre> + +<p>Cal destacar que l'implementació aspira una compatibilitat ambsoluta amb els mètodes <code>lastIndexOf</code> trobats al Firefox i el motor JavaScript SpiderMonkey, incloent diversos casos que són excepcionals. Si es pretén utilitzar-lo en aplicacions quotidianes, és posible calcular <code>from</code> amb codi més senzill si s'ignoren aquests casos.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.15', 'Array.prototype.lastIndexOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_de_compatibilitat">Notes de compatibilitat</h2> + +<ul> + <li>Començant amb el Firefox 47 {{geckoRelease(47)}}, aquest mètode no retornarà <code>-0</code>. Per exemple, <code>[0].lastIndexOf(0, -0)</code> ara sempre retornarà <code>+0</code> ({{bug(1242043)}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.indexOf()")}}</li> + <li>{{jsxref("TypedArray.prototype.lastIndexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/length/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/length/index.html new file mode 100644 index 0000000000..a4954565ff --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/length/index.html @@ -0,0 +1,128 @@ +--- +title: Array.prototype.length +slug: Web/JavaScript/Referencia/Objectes_globals/Array/length +translation_of: Web/JavaScript/Reference/Global_Objects/Array/length +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>length</strong></code> representa un nombre sencer sense signe de 32 bits que és sempre numèricament major que la última posició de l'array.</p> + +<div>{{js_property_attributes(1, 0, 0)}}</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.length</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El valor de la propietat <code>length</code> és un sencer amb un signe positiu un valor menor de 2 elevat a 32 (2<sup>32</sup>).</p> + +<p>Es pot establir la propietat <code>length</code> per truncar un array en qualsevol moment. Quan s'exten un array per mitjà de canviar la seva propietat <code>length,</code> el nombre actual d'elements no s'incrementa; per exemple, si s'estableix <code>length</code> a 3 quan en aquell moment és 2, l'array encara conté només 2 elements. Així, la propietat <code>length</code> no necessàriament indica el nombre de valors definits en l'array. Vegeu també <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Relationship_between_length_and_numerical_properties" title="Relationship between length and numerical properties">Relació entre <code>length</code> i propietats numèriques.</a></p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Recorrer_un_array">Recorrer un array</h3> + +<p>En l'exemple següent, es recorre l'array <code>numbers</code> comprovant la propietat <code>length.</code> Es duplica el valor de cada element.</p> + +<pre class="brush: js">var numbers = [1, 2, 3, 4, 5]; + +for (var i = 0; i < numbers.length; i++) { + numbers[i] *= 2; +} +// <em>numbers </em>és ara [2, 4, 6, 8, 10] +</pre> + +<h3 id="Escurçar_una_array">Escurçar una array</h3> + +<p>L'exemple següent escurça l'array <code>statesUS</code> a una llargària de 50 en cas que la llargària actual sigui major de 50.</p> + +<pre class="brush: js">if (statesUS.length > 50) { + statesUS.length = 50; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/map/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/map/index.html new file mode 100644 index 0000000000..6f0dc1a0d4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/map/index.html @@ -0,0 +1,317 @@ +--- +title: Array.prototype.map() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/map +translation_of: Web/JavaScript/Reference/Global_Objects/Array/map +--- +<div>{{JSRef("Global_Objects", "Array")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <code><strong>map() </strong></code>crea una nova array amb els resultats de la crida a la funció proporcionada un cop per cada element.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.map(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció que produeix un element de la nova array, agafant tres arguments:</dd> + <dd> + <dl> + <dt><code>currentValue</code></dt> + <dd>El valor actual que és processat en l'array.</dd> + <dt><code>index</code></dt> + <dd>L'índex de l'element actual que és processat en l'array.</dd> + <dt><code>array</code></dt> + <dd>L'array sobre la qual es crida <code>map.</code></dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. Valor a usar com a <code>this</code> quan s'executa la funció.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p><code>map</code> crida a la funció passada <code>callback</code> <strong>un cop per cada element</strong> de l'array, en ordre, i construeix un nou array a partir dels resultats. Només s'invoca <code>callback</code> per a posicions de l'array que tinguin valors assignats, incloent <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined">undefined</a>. No es crida per a elements no trobats (és a dir, elements que no han rebut mai un valor o bé elements que s'han eliminat).</p> + +<p>S'invoca <code>callback</code> amb tres arguments: el valor de l'element, la posició de l'element a l'array, i l'array que s'està recorrent.</p> + +<p>Si s'ha proporcionat el paràmetre <code>thisArg</code> a l'hora de cridar <code>map</code>, aquest es passarà a la funció <code>callback</code> com a valor per a <code>this</code> dins la funció. En qualsevol altre cas el valor utilitzat com a <code>this</code> serà {{jsxref("Global_Objects/undefined", "undefined")}}. El valor finalment observable des de <code>callback</code> es determinarà d'acord a <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">les regles usuals per a determinar el valor de <code>this</code> dins una funció</a>.</p> + +<p><code>map</code> no canvia l'array des del que es crida (tot i que <code>callback</code>, si s'invoca, pot fer-ho).</p> + +<p>El rang d'elements processat per <code>map</code> s'estableix abans de la primera invocació de <code>callback</code>. Els elements que s'hagin afegit a l'array després d'haver cridat <code>map</code> no seran visitats per <code>callback</code>. Si es canvient els elements existents, o s'eliminen, el valor passat a <code>callback</code> serà el valor que tinguessin quan es va invocar <code>map</code>; els elements que s'han eliminat no es visitaran.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots" name="Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots">Exemple: Generar un array de rels quadrades a partir d'un array de nombres</h3> + +<p>El codi següent agafa un array de nombres i crea un nou array que contindrà les rels quadrades dels nombres del primer array.</p> + +<pre class="brush: js">var nombres = [1, 4, 9]; +var rels = nombres.map(Math.sqrt); +// rels ara val [1, 2, 3], nombres encara val [1, 4, 9] +</pre> + +<h3 id="Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots" name="Example:_Mapping_an_array_of_numbers_to_an_array_of_square_roots">Exemple: Utilitzar map per a canviar el format dels objectes d'un array</h3> + +<p>El codi següent agafa un array d'objectes i crea un nou array que conté els nous objectes, que tenen un format diferent.</p> + +<pre class="brush: js">var kvArray = [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}]; +var reformattedArray = kvArray.map(function(obj){ + var rObj = {}; + rObj[obj.key] = obj.value; + return rObj; +}); +// reformattedArray ara val [{1:10}, {2:20}, {3:30}], +// kvArray encara val [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}] +</pre> + +<h3 id="Example:_Mapping_an_array_of_numbers_using_a_function_containing_an_argument" name="Example:_Mapping_an_array_of_numbers_using_a_function_containing_an_argument">Exemple: Assignar els nombres d'un array al resultat d'una funció que espera un argument</h3> + +<p>El codi següent mostra com funciona <code>map</code> quan s'utilitza una funció que espera un argument. L'argument rebrà automàticament el valor de cada element de l'array mentre <code>map</code> recorre tot l'array original.</p> + +<pre class="brush: js">var nombres = [1, 4, 9]; +var dobles = nombres.map(function(num) { + return num * 2; +}); +// dobles ara val [2, 8, 18]. nombres encara val [1, 4, 9] +</pre> + +<h3 id="Example:_using_map_generically" name="Example:_using_map_generically">Exemple: utilitzar <code>map</code> de forma genèrica</h3> + +<p>Aquest exemple mostra com utilitzar <code>map</code> en un {{jsxref("Global_Objects/String", "String")}} per a obtindre un array de bytes que representin el valor dels caràcters codificats amb ASCII:</p> + +<pre class="brush: js">var map = Array.prototype.map; +var a = map.call('Hello World', function(x) { return x.charCodeAt(0); }); +// a ara val [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100] +</pre> + +<h3 id="Example:_using_map_generically_querySelectorAll" name="Example:_using_map_generically_querySelectorAll">Exemple: Utilitzar <code>map</code> de forma genèrica amb <code>querySelectorAll</code></h3> + +<p>Aquest exemple mostra com iterar sobre una col·lecció d'objectes obtinguts mitjançant <code>querySelectorAll</code>. En aquest cas obtenim totes les opcions seleccionades de la web:</p> + +<pre class="brush: js">var elems = document.querySelectorAll('select option:checked'); +var values = Array.prototype.map.call(elems, function(obj) { + return obj.value; +}); +</pre> + +<h3 id="Exemple_Utilitzar_map_per_a_invertir_un_string">Exemple: Utilitzar <code>map</code> per a invertir un string</h3> + +<pre class="brush: js">var str = '12345'; +Array.prototype.map.call(str, function(x) { + return x; +}).reverse().join(''); + +// Sortida: '54321' +// Bonus: utilitzeu '===' per a comprovar si l'string original era un palindrom +</pre> + +<h3 id="Example:_Tricky_use_case" name="Example:_Tricky_use_case">Exemple: Un cas d'ús delicat</h3> + +<p><a href="http://www.wirfs-brock.com/allen/posts/166">(inspirat per aquesta entrada de blog)</a></p> + +<p>És comú utilitzar la funció <em>callback</em> amb un sol argument (l'element corresponent a la volta del bucle de l'array que s'està recorrent). Algunes funcions també solen requerir un sol argument, tot i que també poden acceptar arguements adicionals de forma opcional. Això pot produïr comportaments confussos.</p> + +<pre class="brush: js">// Considerem: +['1', '2', '3'].map(parseInt); +// Quan hom esperaria [1, 2, 3] +// El resultat real serà [1, NaN, NaN] + +// parseInt s'utilitza normalment amb un argument, però admet dos. +// El primer és una expressió mentre que el segon és el mòdul. +// Array.prototype.map passa 3 arguments a la funció callback: +// l'element, la posició de l'element i l'array +// parseInt ignorarà el tercer argument, però no el segon, +// provocant la confussió. Vegeu l'entrada del blog per a més detalls + +function returnInt(element) { + return parseInt(element, 10); +} + +['1', '2', '3'].map(returnInt); // [1, 2, 3] +// Actual result is an array of numbers (as expected) + +// A simpler way to achieve the above, while avoiding the "gotcha": +['1', '2', '3'].map(Number); // [1, 2, 3] +</pre> + +<h2 id="Polyfill" name="Polyfill">Polyfill</h2> + +<p><code>map</code> va ser afegit a l'standard ECMA-262 a la cinquena edició; degut a això aquest pot no estar present en algunes implementacions de l'standard. Es pot solventar aquest problema insertant el codi següent al principi dels scripts que el requereixin, permetent que implementacions on <code>map</code> no està disponible de forma nativa en puguin fer ús. Aquest algoritme és exactament l'especificat per l'ECMA-262, 5a edició, assument que {{jsxref("Global_Objects/Object", "Object")}}, {{jsxref("Global_Objects/TypeError", "TypeError")}}, i {{jsxref("Global_Objects/Array", "Array")}} tenen els seus valors originals i que <code>callback.call</code> s'evalua al valor original de <code>{{jsxref("Function.prototype.call")}}</code>.</p> + +<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.19 +// Reference: http://es5.github.io/#x15.4.4.19 +if (!Array.prototype.map) { + + Array.prototype.map = function(callback, thisArg) { + + var T, A, k; + + if (this == null) { + throw new TypeError(' this is null or not defined'); + } + + // 1. Assignem a O el resultat de cridar a ToObject passant-li el valor de |this| + // com a argument. + var O = Object(this); + + // 2. lenValue és el resultat de cridar el mètode intern + // Get de O amb l'argument "length". + // 3. Assignem a len el valor d'executar ToUint32(lenValue). + var len = O.length >>> 0; + + // 4. Si IsCallable(callback) és false, llencem l'excepció TypeError. + // Vegeu: http://es5.github.com/#x9.11 + if (typeof callback !== 'function') { + throw new TypeError(callback + ' is not a function'); + } + + // 5. Si s'ha passat l'argument thisArg, l'assigment a T; en cas contrari T valdrà undefined. + if (arguments.length > 1) { + T = thisArg; + } + + // 6. Assignem a A el nou array creat per l'expressió new Array(len) + // on Array és el constructor standard de JavaScript amb aquest nom i + // len és el valor de len. + A = new Array(len); + + // 7. Assignem 0 a k + k = 0; + + // 8. Repetim mentre k < len + while (k < len) { + + var kValue, mappedValue; + + // a. Assignem ToString(k) a Pk. + // Això és implicit per a operands al cantó esquerra de l'operador <code>in</code> + // b. Assignem a kPresent el resultat de cridar el mètode intern HasProperty + // de O amb l'argument Pk. + // Es pot combinar aquest pas amb c + // c. Si kPresent és true, llavors + if (k in O) { + + // i. Assignem a kValue el resultat de cridar el mètode intern + // Get de O amb l'argument Pk. + kValue = O[k]; + + // ii. Assignem a mappedValue el resultat de cridar el mètode intern Call + // de callback amb T com a valor de this i una llista d'arguments + // que conté kValue, k, i O. + mappedValue = callback.call(T, kValue, k, O); + + // iii. Cridem el mètode intern DefineOwnProperty de A amb els arguments + // Pk, Property Descriptor + // { Value: mappedValue, + // Writable: true, + // Enumerable: true, + // Configurable: true }, + // i false. + + // En navegadors que suportin Object.defineProperty, utilitzeu el següent: + // Object.defineProperty(A, k, { + // value: mappedValue, + // writable: true, + // enumerable: true, + // configurable: true + // }); + + // Per a un millor suport de navegadors, utilitzeu el següent: + A[k] = mappedValue; + } + // d. incrementem k en 1. + k++; + } + + // 9. retornem A + return A; + }; +} +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.19', 'Array.prototype.map')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.map', 'Array.prototype.map')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Map")}} object</li> + <li>{{jsxref("Array.from()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/observe/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/observe/index.html new file mode 100644 index 0000000000..0214800297 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/observe/index.html @@ -0,0 +1,128 @@ +--- +title: Array.observe() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/observe +translation_of: Archive/Web/JavaScript/Array.observe +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Array.observe()</code></strong>s'utilitza per observar canvis en Arrays de forma asíncrona, de forma similar a que {{jsxref("Object.observe()")}} ho fa en objectes. Proporciona una corrent de canvis en l'ordre d'aparició. Es equivalent a la crida de <code>Object.observe()</code> <u>amb la llista de tipus acceptar </u><code>["add", "update", "delete", "splice"]</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Array.observe(<var>arr</var>, <var>callback</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>arr</code></dt> + <dd>L'array que s'ha d'observar.</dd> + <dt><code>callback</code></dt> + <dd>La funció es crida cada cop que es realitzen canvis, amb el següent argument: + <dl> + <dt><code>changes</code></dt> + <dd>Un array d'objectes cadascun dels quals representa un canvi. Les propietats d'aquests objectes de canvis són: + <ul> + <li><strong><code>name</code></strong>: El nom de la propietat que s'ha canviat.</li> + <li><strong><code>object</code></strong>: L'array canviat després que s'hagués produït el canvi.</li> + <li><strong><code>type</code></strong>: Una cadena que indica el tipus de canvi que s'ha portat a cap. Un de <code>"add"</code>, <code>"update"</code>, <code>"delete"</code>, o <code>"splice"</code>.</li> + <li><strong><code>oldValue</code></strong>: Únicament pel tipus <code>"update"</code> i <code>"delete"</code>. El valor abans del canvi.</li> + <li><strong><code>index</code></strong>: Únicament pel tipus <code>"splice"</code>. L'índex en el qual s'ha produït el canvi.</li> + <li><strong><code>removed</code></strong>: Únicament pel tipus <code>"splice</code>. Un array dels elements eliminats.</li> + <li><strong><code>addedCount</code></strong>: Únicament pel tipus<code>"splice"</code>. EL nombre d'elements afegits.</li> + </ul> + </dd> + </dl> + </dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>La funció <code>callback</code> es crida cada cop que es realitza un canvi en <code>arr</code>, amb un array de tots els canvis tal i com han succeït.</p> + +<div class="note"> +<p>Els canvis fets a través de mètodes d'Array, com ara <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop"><code>Array.prototype.pop()</code></a>seràn contats com a canvis de <code>"splice"</code>. Canvis d'assignació d'índexs que no canvien la llargària de l'array poden contar-se com a canvis <code>"update"</code>.</p> +</div> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Iniciar_diferents_tipus_de_canvis">Iniciar diferents tipus de canvis</h3> + +<pre class="brush: js">var arr = ['a', 'b', 'c']; + +Array.observe(arr, function(changes) { + console.log(changes); +}); + +arr[1] = 'B'; +// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}] + +arr[3] = 'd'; +// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}] + +arr.splice(1, 2, 'beta', 'gamma', 'delta'); +// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal for ECMAScript 7</a>.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("36")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="//stackoverflow.com/q/29269057/778272">Under what condition would Array.observe's “add” event trigger?</a></li> + <li>{{jsxref("Array.unobserve()")}} {{experimental_inline}}</li> + <li>{{jsxref("Object.observe()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/of/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/of/index.html new file mode 100644 index 0000000000..efe2d96abd --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/of/index.html @@ -0,0 +1,120 @@ +--- +title: Array.of() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/of +translation_of: Web/JavaScript/Reference/Global_Objects/Array/of +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>Array.of()</strong></code> crea una nova instància <code>Array</code> amb un nombre variable d'arguments, sense tenir en compte el nombre o el tipus d'arguments.</p> + +<p>La diferència entre <code><strong>Array.of()</strong></code> i el constructor <code><strong>Array</strong></code> es troba en el maneig dels arguments sencers: <code><strong>Array.of(42)</strong></code> crea un array amb un sol element, <code>42</code>, mentre que <code><strong>Array(42)</strong></code> crea un array amb 42 elements, Cadascun dels quals és <code>undefined</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Array.of(<var>element0</var>[, <var>element1</var>[, ...[, <var>elementN</var>]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>element<em>N</em></code></dt> + <dd>Elements a partir dels quals es crea l'array.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquesta funció forma part del ECMAScript 6 estàndard. Per més informació vegeu <a href="https://gist.github.com/rwaldron/1074126">proposta de l'<code>Array.of</code> i <code>Array.from</code> </a> i <a href="https://gist.github.com/rwaldron/3186576"><code>Array.of</code> polyfill</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">Array.of(1); // [1] +Array.of(1, 2, 3); // [1, 2, 3] +Array.of(undefined); // [undefined] +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Executar el codi següent abans que cap altre codi crearà <code>Array.of()</code> en cas que no es trobi disponible de forma nativa.</p> + +<pre class="brush: js">if (!Array.of) { + Array.of = function() { + return Array.prototype.slice.call(arguments); + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.of', 'Array.of')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(45)}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(39)}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Array.from()")}}</li> + <li>{{jsxref("TypedArray.of()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/pop/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/pop/index.html new file mode 100644 index 0000000000..7d2ee3189f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/pop/index.html @@ -0,0 +1,123 @@ +--- +title: Array.prototype.pop() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/pop +translation_of: Web/JavaScript/Reference/Global_Objects/Array/pop +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>pop()</strong></code> elimina l'<strong>últim</strong> element d'un array i retorna l'element eliminat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.pop()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>pop</code> elimina l'últim element d'un array i retorna el seu valor.</p> + +<p><code>pop</code> és genèric de forma intencionada; aquest mètode pot ser {{jsxref("Function.call", "cridat", "", 1)}} i {{jsxref("Function.apply", "aplicat", "", 1)}} des de/a objectes que semblin arrays. Els objectes que no continguin la propietat <code>length</code> que reflecteixi l'última propietat d'una sèrie de propietats numèriques consecutives, on el nom de la primera propietat sigui el zero, poden comportar-se de forma imprevista.</p> + +<p>Si es crida <code>pop()</code> en un array buit, es retornarà {{jsxref("undefined")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Esborrar_l'últim_element_d'un_array">Esborrar l'últim element d'un array</h3> + +<p>El codi següent crea un array anomenat <code>myFish</code> que conté quatre elements, després elimina l'últim element.</p> + +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'sturgeon']; + +console.log(myFish); // ['angel', 'clown', 'mandarin', 'sturgeon'] + +var popped = myFish.pop(); + +console.log(myFish); // ['angel', 'clown', 'mandarin' ] + +console.log(popped); // 'sturgeon'</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.push()")}}</li> + <li>{{jsxref("Array.prototype.shift()")}}</li> + <li>{{jsxref("Array.prototype.unshift()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/prototype/index.html new file mode 100644 index 0000000000..35ebf53933 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/prototype/index.html @@ -0,0 +1,203 @@ +--- +title: Array.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Array/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +--- +<div>{{JSRef}}</div> + +<p>La propietat <strong><code>Array.prototype</code></strong> representa el prototipus del constructor {{jsxref("Array")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Les instàncies de {{jsxref("Array")}} hereten de <code>Array.prototype</code>. Com tots els constructors, és possible modificar l'objecte prototipus del constructor per a afectar a totes les instàncies de {{jsxref("Array")}}.</p> + +<p>Fet poc conegut: <code>Array.prototype</code> és ell mateix un {{jsxref("Array")}}:</p> + +<pre class="brush: js">Array.isArray(Array.prototype); // true +</pre> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt><code>Array.prototype.constructor</code></dt> + <dd>Especifica la funció que ha creat el prototipus de l'objecte.</dd> + <dt>{{jsxref("Array.prototype.length")}}</dt> + <dd>Reflecteix el nombre d'elements d'un array.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<h3 id="Mutator_methods" name="Mutator_methods">Mètodes Mutadors</h3> + +<p>Els mètodes següents modifiquen l'array:</p> + +<dl> + <dt>{{jsxref("Array.prototype.copyWithin()")}} {{experimental_inline}}</dt> + <dd>Copia una seqüència d'elements de l'array dins l'array.</dd> + <dt>{{jsxref("Array.prototype.fill()")}} {{experimental_inline}}</dt> + <dd>Omple tots els elements d'un array d'una posició inicial a una posició final amb un valor estàtic.</dd> + <dt>{{jsxref("Array.prototype.pop()")}}</dt> + <dd>Elimina l'últim element d'un array i retorna aquest element.</dd> + <dt>{{jsxref("Array.prototype.push()")}}</dt> + <dd>Afegeix un o més elements al final de l'array i retorna el nou tamany de l'array.</dd> + <dt>{{jsxref("Array.prototype.reverse()")}}</dt> + <dd>Capgira l'ordre dels elements d'un array a l'array mateix (no crea cap array nou) — el primer element esdevé l'últim, l'últim esdevé el primer, etcètera.</dd> + <dt>{{jsxref("Array.prototype.shift()")}}</dt> + <dd>Elimina el primer element d'un array i retorna aquest element.</dd> + <dt>{{jsxref("Array.prototype.sort()")}}</dt> + <dd>Ordena els elements d'un array a l'array mateix i retorna l'array.</dd> + <dt>{{jsxref("Array.prototype.splice()")}}</dt> + <dd>Afegeix i/o elimina elements d'un array.</dd> + <dt>{{jsxref("Array.prototype.unshift()")}}</dt> + <dd>Afegeix un o més elements al pricipi d'un array i retorna el nou tamany de l'array.</dd> +</dl> + +<h3 id="Accessor_methods" name="Accessor_methods">Mètodes d'accés</h3> + +<p>Aquests mètodes no modifiquen l'array sino que retornen algun tipus de representació de l'array.</p> + +<dl> + <dt>{{jsxref("Array.prototype.concat()")}}</dt> + <dd>Retorna un nou array format per la unió de l'array actual amb altres arrays o valors.</dd> + <dt>{{jsxref("Array.prototype.includes()")}} {{experimental_inline}}</dt> + <dd>Determina si un array inclou un element en concret, retornant <code>true</code> en cas afirmatiu i <code>false</code> en cas contrari.</dd> + <dt>{{jsxref("Array.prototype.join()")}}</dt> + <dd>Uneix tots els elements d'un array en un string.</dd> + <dt>{{jsxref("Array.prototype.slice()")}}</dt> + <dd>Extrau una secció d'un array i la retorna en forma de nou array.</dd> + <dt>{{jsxref("Array.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna un literal d'array que representa l'array especificat; es pot emprar aquest valor per a crear un nou array. Sobreescriu el mètode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Array.prototype.toString()")}}</dt> + <dd>Retorna un string que representa l'array i els seus elements. Sobreescriu el mètode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Array.prototype.toLocaleString()")}}</dt> + <dd>Retorna un string localitzat que representa l'array i els seus elements. Sobreescriu el mètode {{jsxref("Object.prototype.toLocaleString()")}}.</dd> + <dt>{{jsxref("Array.prototype.indexOf()")}}</dt> + <dd>Retorna la primera posició de l'array en la que es troba un element igual al valor especificat, o bé -1 si no es troba l'element dins l'array.</dd> + <dt>{{jsxref("Array.prototype.lastIndexOf()")}}</dt> + <dd>Retorna la última posició de l'array en la que es troba un element igual al valor especificat, o bé -1 si no es troba l'element dins l'array.</dd> +</dl> + +<h3 id="Iteration_methods" name="Iteration_methods">Mètodes d'iteració</h3> + +<p>Alguns mètodes accepten com a arguments funcions que es cridaran al processar l'array. Quan es criden aquests mètodes, s'emmagatzema el valor de <code>length</code> de l'array i qualsevol element afegit després a dins de la funció no serà visitat per la mateixa. Altres canvis a l'array (com ara canviar un valor o bé eliminar un element) poden afectar els resultats de l'operació si el mètode visita els elements que han canviat. Tot i que el comportament específic d'aquests mètodes en aquests casos està ben definit no es recomana recolzar-se en ell ja que pot confondre a altres programadors que llegeixin el vostre codi. En comptes de modificar l'array copieu-lo i modifiqueu la copia.</p> + +<dl> + <dt>{{jsxref("Array.prototype.forEach()")}}</dt> + <dd>Crida una funció per a cada element de l'array.</dd> + <dt>{{jsxref("Array.prototype.entries()")}} {{experimental_inline}}</dt> + <dd>Retorna un nou objecte <code>Array Iterator</code> que conté parells clau-valor per a cada posició de l'array.</dd> + <dt>{{jsxref("Array.prototype.every()")}}</dt> + <dd>Retorna <code>true</code> si tots els elements de l'array satisfan la funció proporcionada.</dd> + <dt>{{jsxref("Array.prototype.some()")}}</dt> + <dd>Retorna <code>true</code> si al menys un dels elements de l'array satisfà la funció proporcionada.</dd> + <dt>{{jsxref("Array.prototype.filter()")}}</dt> + <dd>Crea un nou array que conté tots eles elements de l'array des d'on es crida que facin que la funció que actua de filtre retorni <code>true</code>.</dd> + <dt>{{jsxref("Array.prototype.find()")}} {{experimental_inline}}</dt> + <dd>Retorna el valor trobat a l'array, si un element de l'array satisfà la funció proporcionada. En cas contrari retorna <code>undefined</code>.</dd> + <dt>{{jsxref("Array.prototype.findIndex()")}} {{experimental_inline}}</dt> + <dd>Retorna la posició on es troba l'element de l'array que satifcaci la funció proporcionada. Retorna <code>-1</code> si cap element la satisfà.</dd> + <dt>{{jsxref("Array.prototype.keys()")}} {{experimental_inline}}</dt> + <dd>Retorna un nou <code>Array Iterator</code> que conté les claus per a cada posició de l'array.</dd> + <dt>{{jsxref("Array.prototype.map()")}}</dt> + <dd>Crea un nou array a partir dels resultats de cridar a la funció proporcionada per a cada element de l'array.</dd> + <dt>{{jsxref("Array.prototype.reduce()")}}</dt> + <dd>Executa una funció sobre un acumulador i cada valor de l'array (aplicats d'esquerra a dreta) amb l'objectiu de redudir els valors a un sol valor.</dd> + <dt>{{jsxref("Array.prototype.reduceRight()")}}</dt> + <dd>Executa una funció sobre un acumulador i cada valor de l'array (aplicats de dreta a esquerra) amb l'objectiu de redudir els valors a un sol valor.</dd> + <dt>{{jsxref("Array.prototype.values()")}} {{experimental_inline}}</dt> + <dd>Retorna un nou objecte <code>Array Iterator</code> que conté els valors de cada posició de l'array.</dd> + <dt>{{jsxref("Array.prototype.@@iterator()", "Array.prototype[@@iterator]()")}} {{experimental_inline}}</dt> + <dd>Retorna un nou objecte <code>Array Iterator</code> que conté els valors per a cada posició de l'array.</dd> +</dl> + +<h3 id="Generic_methods" name="Generic_methods">Mètodes genèrics</h3> + +<p>Molts dels mètodes de l'objecte Array de JavaScript estan dissenyats per a ser aplicats de manera genèrica a qualsevol objecte que tingui la propietat <code>length</code> i que disposin la seva informació en forma de noms de propietats numèrices (com ara <code>array[5]</code> per a accedir a l'element desat a la posició 5). Alguns mètodes, com ara {{jsxref("Array.join", "join")}}, només llegeixen la propietat <code>length</code> i les altes propietats numèriques. D'altres mètodes, com ara {{jsxref("Array.reverse", "reverse")}}, necessiten que tant les propietats numèriques com la propietat <code>length</code> siguin mutables; això implica que aquests mètodes no es poden fer servir sobre objectes com ara {{jsxref("String")}}, on la seva propietat <code>length</code> així com les propietats numèriques no es poden modificar.</p> + +<h2 id="Specificacions">Specificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.3.1', 'Array.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype', 'Array.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Function.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/push/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/push/index.html new file mode 100644 index 0000000000..5770e5a10c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/push/index.html @@ -0,0 +1,146 @@ +--- +title: Array.prototype.push() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/push +translation_of: Web/JavaScript/Reference/Global_Objects/Array/push +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>push()</strong></code> afegeix un o més elements al final d'un array i retorna el nou tamany de l'array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.push(<var>element1</var>, ..., <var>elementN</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>element<em>N</em></code></dt> + <dd>Els elements que seran afegits al final de l'array.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>El nou valor de la propietat {{jsxref("Array.length", "length")}} de l'objecte del qual s'ha executat el mètode.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>push</code> afegeix valors a un array.</p> + +<p><code>push</code> és genèric de manera intencionada. Es pot utilitzar aquest mètode amb {{jsxref("Function.call", "call()")}} i {{jsxref("Function.apply", "apply()")}} en objectes semblants a arrays. El mètode <code>push</code> depèn de la propietat <code>length</code> per a determinar on insertar els nous valors. Si la propietat <code>length</code> no es pot convertir en un nombre, la posició utilitzada serà la 0. Això inclou la posibilitat que no existeixi la propietat <code>length</code>, en aquest case es crearà automàticament la propietat <code>length</code>.</p> + +<p>Els únics objectes semblants a arrays que inclou el nucli de JavaScript són els {{jsxref("Global_Objects/String", "strings", "", 1)}}, tot i que no admeten la aplicació d'aquest mètode ja que els strings són immutables.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Afegir_elements_a_un_array">Afegir elements a un array</h3> + +<p>El codi següent crea un array anomenat <code>esports</code> que conté dos elements, llavors l'hi afegeix dos elements més. La variable <code>total</code> acaba revent el valor del nou tamany d e l'array.</p> + +<pre class="brush: js">var esports = ['futbol', 'basket']; +var total = esports.push('badminton', 'natació'); + +console.log(esports); // ['futbol', 'basket', 'badminton', 'natació'] +console.log(total); // 4 +</pre> + +<h3 id="Unir_dos_arrays">Unir dos arrays</h3> + +<p>Aquest exemple utilitza {{jsxref("Function.apply", "apply()")}} per a afegir tots els elements d'un segon array.</p> + +<pre class="brush: js">var verdures = ['ceba', 'patata']; +var mesVerdures = ['pastanaga', 'rabe']; + +// Uneix el segon array al primer +// Equivalent a verdures.push('pastanaga', 'rabe'); +Array.prototype.push.apply(verdures , mesVerdures); + +console.log(verdures); // ['ceba', 'patata', 'pastanaga', 'rabe'] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.pop()")}}</li> + <li>{{jsxref("Array.prototype.shift()")}}</li> + <li>{{jsxref("Array.prototype.unshift()")}}</li> + <li>{{jsxref("Array.prototype.concat()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/reduce/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/reduce/index.html new file mode 100644 index 0000000000..fa6253fd0c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/reduce/index.html @@ -0,0 +1,304 @@ +--- +title: Array.prototype.reduce() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/Reduce +translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>reduce()</strong></code> aplica una funció sobre un acumulador i cada valor de l'array (de esquerra a dreta) perr a reduir-lo a un sol valor.</p> + +<h2 id="sintaxi">sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.reduce(<var>callback</var>[, valorInicial])</code></pre> + +<h3 id="Parameters">Parameters</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció a executar per a cada valor de l'array. Rep quatre arguments: + <dl> + <dt><code>valorPrevi</code></dt> + <dd>El valor retornat prèviament en l'última invocació de la funció <code>callback</code>, o bé <code>valorInicial</code>, si s'ha proporcionat (vegeu més abaix).</dd> + <dt><code>valorActual</code></dt> + <dd>L'element essent processat actualment a l'array.</dd> + <dt><code>index</code></dt> + <dd>La posició de l'element essent processat actualment a l'array.</dd> + <dt><code>array</code></dt> + <dd>L'array al qual s'ha cridat el mètode <code>reduce</code>.</dd> + </dl> + </dd> + <dt><code>valorInicial</code></dt> + <dd>Opcional. Valor a utilitzar com a primer argument a la primera crida de la funció <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>reduce</code> executa la funció <code>callback</code> un cop per cada element present a l'array, excloent forats a l'array, i rep quatre arguments:</p> + +<ul> + <li><code>valorPrevi</code></li> + <li><code>valorActual</code></li> + <li><code>index</code></li> + <li><code>array</code></li> +</ul> + +<p>El primer cop que es crida <code>callback</code>, <code>valorAnterior</code> i <code>valorActual</code> reben el valor de la forma descrita a continuació. Si es proporciona <code>valorInicial</code> a la crida de <code>reduce</code>, <code>valorAnterior</code> rebrà el valor de <code>valorInicial</code> i <code>valorActual</code> serà igual al primer valor de l'array. Si no es proporciona <code>valorInicial</code>, <code>valorAnterior</code> serà igual al primer valor de l'array i <code>valorActual</code> serà igual al segon.</p> + +<p>Si l'array és buit i no s'ha proporcionat <code>valorInicial</code>, es llençarà {{jsxref("Global_Objects/TypeError", "TypeError")}}. Si l'array només té un element (sense importar la seva posició) i no s'ha proporcionat <code>valorInicial</code>, o si <code>valorInicial</code> s'ha proporcionat però l'array és buit, es retornarà aquest únic valor sense realitzar cap crida a <code>callback</code>.</p> + +<p>Suposem que s'ha utilitzar <code>reduce</code> de la forma següent:</p> + +<pre class="brush: js">[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) { + return previousValue + currentValue; +}); +</pre> + +<p>La funció <code>callback</code> es cridarà quatre cops, on els arguments i els valors a retornar es mostren a continuació:</p> + +<table> + <thead> + <tr> + <th scope="col"> </th> + <th scope="col"><code>valorAnterior</code></th> + <th scope="col"><code>valorActual</code></th> + <th scope="col"><code>index</code></th> + <th scope="col"><code>array</code></th> + <th scope="col">valor retornat</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">primera crida</th> + <td><code>0</code></td> + <td><code>1</code></td> + <td><code>1</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>1</code></td> + </tr> + <tr> + <th scope="row">segons crida</th> + <td><code>1</code></td> + <td><code>2</code></td> + <td><code>2</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>3</code></td> + </tr> + <tr> + <th scope="row">tercera crida</th> + <td><code>3</code></td> + <td><code>3</code></td> + <td><code>3</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>6</code></td> + </tr> + <tr> + <th scope="row">quarta crida</th> + <td><code>6</code></td> + <td><code>4</code></td> + <td><code>4</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>10</code></td> + </tr> + </tbody> +</table> + +<p>El valor retornat per <code>reduce</code> serà el de l'última invocació a <code>callback</code> (<code>10</code>).</p> + +<p>Si es proporcionés el valor inicial com a segon argument de <code>reduce</code>, el resultat seria el següent:</p> + +<pre class="brush: js">[0, 1, 2, 3, 4].reduce(function(valorAnterior, valorActual, index, array) { + return valorAnterior + valorActual; +}, 10); +</pre> + +<table> + <thead> + <tr> + <th scope="col"> </th> + <th scope="col"><code>valorAnterior</code></th> + <th scope="col"><code>valorActual</code></th> + <th scope="col"><code>index</code></th> + <th scope="col"><code>array</code></th> + <th scope="col">valor retornat</th> + </tr> + </thead> + <tbody> + <tr> + <th scope="row">primera crida</th> + <td><code>10</code></td> + <td><code>0</code></td> + <td><code>0</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>10</code></td> + </tr> + <tr> + <th scope="row">segona crida</th> + <td><code>10</code></td> + <td><code>1</code></td> + <td><code>1</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>11</code></td> + </tr> + <tr> + <th scope="row">tercera crida</th> + <td><code>11</code></td> + <td><code>2</code></td> + <td><code>2</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>13</code></td> + </tr> + <tr> + <th scope="row">quarta crida</th> + <td><code>13</code></td> + <td><code>3</code></td> + <td><code>3</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>16</code></td> + </tr> + <tr> + <th scope="row">cinquena crida</th> + <td><code>16</code></td> + <td><code>4</code></td> + <td><code>4</code></td> + <td><code>[0, 1, 2, 3, 4]</code></td> + <td><code>20</code></td> + </tr> + </tbody> +</table> + +<p>El valor de la crida final (<code>20</code>) és el retornat per la funció <code>reduce</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Sumar_tots_els_valors_d'un_array">Sumar tots els valors d'un array</h3> + +<pre class="brush: js">var total = [0, 1, 2, 3].reduce(function(a, b) { + return a + b; +}); +// total == 6 +</pre> + +<h3 id="Aplanar_un_array_d'arrays"><em>Aplanar</em> un array d'arrays</h3> + +<pre class="brush: js">var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) { + return a.concat(b); +}, []); +// flattened is [0, 1, 2, 3, 4, 5] +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>Array.prototype.reduce</code> va ser afegida a l'standard ECMA-262 a la cinquena edició; degut a això aquesta no estar present a totes les implementacions de l'standard. És possible simular-la en aquests casos mitjançant l'inserció del codi que trobareu a continuació a l'inici dels vostres scripts, tot permetent-vos utilitzar <code>reduce</code> en implementacions que no la suportin de forma nativa.</p> + +<pre class="brush: js">// Production steps of ECMA-262, Edition 5, 15.4.4.21 +// Reference: http://es5.github.io/#x15.4.4.21 +if (!Array.prototype.reduce) { + Array.prototype.reduce = function(callback /*, initialValue*/) { + 'use strict'; + if (this == null) { + throw new TypeError('Array.prototype.reduce called on null or undefined'); + } + if (typeof callback !== 'function') { + throw new TypeError(callback + ' is not a function'); + } + var t = Object(this), len = t.length >>> 0, k = 0, value; + if (arguments.length == 2) { + value = arguments[1]; + } else { + while (k < len && !(k in t)) { + k++; + } + if (k >= len) { + throw new TypeError('Reduce of empty array with no initial value'); + } + value = t[k++]; + } + for (; k < len; k++) { + if (k in t) { + value = callback(value, t[k], k, t); + } + } + return value; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.21', 'Array.prototype.reduce')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.8.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.reduce', 'Array.prototype.reduce')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("10.5")}}</td> + <td>{{CompatSafari("4.0")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.reduceRight()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/reverse/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/reverse/index.html new file mode 100644 index 0000000000..2528cabdc5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/reverse/index.html @@ -0,0 +1,119 @@ +--- +title: Array.prototype.reverse() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/reverse +translation_of: Web/JavaScript/Reference/Global_Objects/Array/reverse +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>reverse()</strong></code> inverteix un array. El primer element de l'array es converteix en l'últim element i l'últim element de l'array passa a ésser el primer.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.reverse()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>reverse</code> method transposa els elements de l'objecte array cridat en un lloc, mutant l'array, i retorna una referència de l'array.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Revertir_els_elements_d'un_array">Revertir els elements d'un array</h3> + +<p>L'exemple següent crea un array <code>myArray</code>, que conté tres elements, després inverteix l'array.</p> + +<pre class="brush: js">var myArray = ['one', 'two', 'three']; +myArray.reverse(); + +console.log(myArray) // ['three', 'two', 'one'] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.8', 'Array.prototype.reverse')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.join()")}}</li> + <li>{{jsxref("Array.prototype.sort()")}}</li> + <li>{{jsxref("TypedArray.prototype.reverse()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/shift/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/shift/index.html new file mode 100644 index 0000000000..7b5fa1b330 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/shift/index.html @@ -0,0 +1,129 @@ +--- +title: Array.prototype.shift() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/shift +translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>shift()</strong></code> elimina el <strong>primer</strong> element d'un array i retorna l'element eliminat. Aquest mètode canvia el tamany de l'array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.shift()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>shift</code> elimina l'element de l'array situat a la posició zero i mou la resta d'elements a la posició immediatament menor, tot seguit retorna el valor de l'element eliminat. Si la propietat {{jsxref("Array.length", "length")}} de l'array és 0, aquest mètode retornarà {{jsxref("undefined")}}.</p> + +<p><code>shift</code> és generic de forma intencionada; aquest mètode pot ser {{jsxref("Function.call", "cridat", "", 1)}} o bé {{jsxref("Function.apply", "aplicat", "", 1)}} a objectes que es comportin com a arrays. Els objectes que no continguin una propietat <code>length</code> que reflecteixi l'última propietat numèrica poden tenir un comportament erràtic.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Eliminar_un_element_d'un_array">Eliminar un element d'un array</h3> + +<p>El codi següent mostra l'array <code>myFish</code> abans i després d'eliminar el seu primer element. També mostra l'element eliminat:</p> + +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; + +console.log('myFish abans: ' + myFish); +// "myFish abans: angel,clown,mandarin,surgeon" + +var shifted = myFish.shift(); + +console.log('myFish després: ' + myFish); +// "myFish després: clown,mandarin,surgeon" + +console.log('Element eliminat: ' + shifted); +// "Element eliminat: angel"</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.9', 'Array.prototype.shift')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.shift', 'Array.prototype.shift')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.shift', 'Array.prototype.shift')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.push()")}}</li> + <li>{{jsxref("Array.prototype.pop()")}}</li> + <li>{{jsxref("Array.prototype.unshift()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/slice/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/slice/index.html new file mode 100644 index 0000000000..d181f94a65 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/slice/index.html @@ -0,0 +1,268 @@ +--- +title: Array.prototype.slice() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/slice +translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>slice()</strong></code> retorna una còpia feble d'una porció d'un array en forma d'un nou objecte array.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>arr</var>.slice([<var>inici</var>[, <var>fi</var>]])</code></pre> + +<h2 id="Paràmetres">Paràmetres</h2> + +<dl> + <dt><code>inici</code></dt> + <dd>La posició (tenint en compte que zero correspon a la primera posició) a partir de la qual començarà l'extracció.</dd> + <dd>Si <code>inici</code> és negatiu, la posició correspondrà a la posicó final de la seqüència menys el valor proporcionat. <code>slice(-2)</code> extreu els últims dos elements de la seqüència.</dd> + <dd>Si <code>inici</code> és <code>undefined</code>, <code>slice</code> començarà a la posició <code>0</code>.</dd> + <dt><code>fi</code></dt> + <dd>La posició (contant des de zero) en la qual finalitzarà l'extracció. <code>slice</code> extraurà fins a aquesta posicó, sense incloure-la.</dd> + <dd><code>slice(1,4)</code> extrau des del segon element fins al quart element (és a dir, els elements pertanyents a les posicions 1, 2 i 3).</dd> + <dd>Si <code>fi</code> és negatiu, la posició correspondrà a la posicó final de la seqüència menys el valor proporcionat. <code>slice(2,-1)</code> extrau des del tercer element fins al penúltim element de la seqüència.</dd> + <dd>Si s'omet el paràmetre <code>fi</code>, <code>slice</code> extreurà fins al final de la seqüència (<code>arr.length</code>)<code>.</code></dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>slice</code> no altera l'array original. Retorna una copia feble dels elements de l'array original. Els elements de l'array original són copiats a l'array resultat de la forma següent:</p> + +<ul> + <li>Per a referències a objectes (no l'objecte en si), <code>slice</code> copia la referència dins el nou array. Tant l'array original com el resultat referenciaran el mateix objecte. Si l'objecte referenciat canvia, aquests canvis seran visibles a ambdos arrays.</li> + <li>Per a strings i nombres (no els objectes {{jsxref("String")}} i {{jsxref("Number")}}), <code>slice</code> copia els strings i nombres a l'array resultant. Els canvis al string o nombre en un dels arrays no afectaran a l'altre array.</li> +</ul> + +<p>Si s'afegeix un nou element a un dels dos arrays, l'altre array no es veu afectat.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Retornar_una_part_d'un_array_existent">Retornar una part d'un array existent</h3> + +<pre class="brush: js">var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']; +var citrus = fruits.slice(1, 3); + +// citrus conté ['Orange','Lemon'] +</pre> + +<h3 id="Utilitzar_slice">Utilitzar <code>slice</code></h3> + +<p>A l'exemple següent <code>slice</code> crea un ou array <code>newCar</code>, a partir de <code>myCar</code>. Ambdos inclouen una referència a l'objecte <code>myHonda</code>. Quan el color de <code>myHonda</code> canvia a lila, ambdos arrays reflecteixen aquest canvi.</p> + +<pre class="brush: js">// Ús de slice, creem newCar a partir de myCar. +var myHonda = { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } }; +var myCar = [myHonda, 2, 'cherry condition', 'purchased 1997']; +var newCar = myCar.slice(0, 2); + +// Mostrem els valors de myCar, newCar, i el color de myHonda +// referenciat a ambdos arrays. +console.log('myCar = ' + myCar.toSource()); +console.log('newCar = ' + newCar.toSource()); +console.log('myCar[0].color = ' + myCar[0].color); +console.log('newCar[0].color = ' + newCar[0].color); + +// Canviem el color de myHonda. +myHonda.color = 'purple'; +console.log('The new color of my Honda is ' + myHonda.color); + +// Mostrem el color de myHonda referenciat a ambdos arrays. +console.log('myCar[0].color = ' + myCar[0].color); +console.log('newCar[0].color = ' + newCar[0].color); +</pre> + +<p>Aquest script mostra:</p> + +<pre class="brush: js">myCar = [{color:'red', wheels:4, engine:{cylinders:4, size:2.2}}, 2, + 'cherry condition', 'purchased 1997'] +newCar = [{color:'red', wheels:4, engine:{cylinders:4, size:2.2}}, 2] +myCar[0].color = red +newCar[0].color = red +The new color of my Honda is purple +myCar[0].color = purple +newCar[0].color = purple +</pre> + +<h2 id="Objectes_compatibles_amb_arrays">Objectes compatibles amb arrays</h2> + +<p>El mètode <code>slice</code> també es pot utilitzar per a convertir objectes compatibles amb arrays / col·leccions a un nou Array. Simplement hem de vincular el mètode a l'objecte. L'objecte {{jsxref("Functions/arguments", "arguments")}} dins una funció és un exemple d'objecte 'compatible amb arrays'.</p> + +<pre class="brush: js">function list() { + return Array.prototype.slice.call(arguments); +} + +var list1 = list(1, 2, 3); // [1, 2, 3] +</pre> + +<p>Podem vincular el mètode a l'objecte mitjançant la funció .<code>call</code> proporcionada per {{jsxref("Function.prototype")}}, també podem reduir-la a <code>[].slice.call(arguments)</code> en comptes de <code>Array.prototype.slice.call</code>. També podem simplificar-ho utilitzant la funció {{jsxref("Function.prototype.bind", "bind")}}.</p> + +<pre class="brush: js">var unboundSlice = Array.prototype.slice; +var slice = Function.prototype.call.bind(unboundSlice); + +function list() { + return slice(arguments); +} + +var list1 = list(1, 2, 3); // [1, 2, 3] +</pre> + +<h2 id="Oferint_un_comportament_similar_entre_navegadors">Oferint un comportament similar entre navegadors</h2> + +<p>Tot i que segons la especificació els objectes de l'hoste (com ara els objectes DOM) no requereixen seguir el comportament de Mozilla al ser convertits mitjançant <code>Array.prototype.slice</code> i, de fet les versions de Internet Explorer anteriors a la 9 no ho fan, les versions a partir de la 9 si que suporten l'ús d'aquesta funció de compatibilitat, permetent un comportament fiable entre navegadors. Mentre els altres navegadors moderns continuin oferint aquesta habilitat, tal i com ara fan IE, Mozilla, Chrome, Safari i Opera, els desenvolupadors que llegeixin codi sobre slice (suportat pel DOM) que es recolzi en aquesta funció de compatibilitat no tenen que patir per la semàntica; poden fiar-se de la semàntica descrita per a proporcionar el comportament que ara sembla standard <em>de facto</em> (La funció de compatibilitat també permet que el IE funcioni quan es passa com a segon argument de <code>slice()</code> un valor explícit de {{jsxref("null")}}/{{jsxref("undefined")}} ja que versions anteriors de IE no ho permetien però tots els nous navegadors, incloent IE >= 9, si que ho permeten.)</p> + +<pre class="brush: js">/** + * Shim for "fixing" IE's lack of support (IE < 9) for applying slice + * on host objects like NamedNodeMap, NodeList, and HTMLCollection + * (technically, since host objects have been implementation-dependent, + * at least before ES6, IE hasn't needed to work this way). + * Also works on strings, fixes IE < 9 to allow an explicit undefined + * for the 2nd argument (as in Firefox), and prevents errors when + * called on other DOM objects. + */ +(function () { + 'use strict'; + var _slice = Array.prototype.slice; + + try { + // Can't be used with DOM elements in IE < 9 + _slice.call(document.documentElement); + } catch (e) { // Fails in IE < 9 + // This will work for genuine arrays, array-like objects, + // NamedNodeMap (attributes, entities, notations), + // NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes), + // and will not fail on other DOM objects (as do DOM elements in IE < 9) + Array.prototype.slice = function(begin, end) { + // IE < 9 gets unhappy with an undefined end argument + end = (typeof end !== 'undefined') ? end : this.length; + + // For native Array objects, we use the native slice function + if (Object.prototype.toString.call(this) === '[object Array]'){ + return _slice.call(this, begin, end); + } + + // For array like object we handle it ourselves. + var i, cloned = [], + size, len = this.length; + + // Handle negative value for "begin" + var start = begin || 0; + start = (start >= 0) ? start : Math.max(0, len + start); + + // Handle negative value for "end" + var upTo = (typeof end == 'number') ? Math.min(end, len) : len; + if (end < 0) { + upTo = len + end; + } + + // Actual expected size of the slice + size = upTo - start; + + if (size > 0) { + cloned = new Array(size); + if (this.charAt) { + for (i = 0; i < size; i++) { + cloned[i] = this.charAt(start + i); + } + } else { + for (i = 0; i < size; i++) { + cloned[i] = this[start + i]; + } + } + } + + return cloned; + }; + } +}()); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.10', 'Array.prototype.slice')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.slice', 'Array.prototype.slice')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.slice', 'Array.prototype.slice')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Function.prototype.call()")}}</li> + <li>{{jsxref("Function.prototype.bind()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/some/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/some/index.html new file mode 100644 index 0000000000..7abc1ed76d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/some/index.html @@ -0,0 +1,213 @@ +--- +title: Array.prototype.some() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/some +translation_of: Web/JavaScript/Reference/Global_Objects/Array/some +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>some()</strong></code> comprova si un algun element de l'array passa el test implementat per la funció proporcionada com a argument.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox notranslate"><code><var>arr</var>.some(<var>callback</var>[, <var>thisArg</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció utilitzada com a test per a cada element, rep tres arguments: + <dl> + <dt><code>valorActual</code></dt> + <dd>L'element de l'array que està sent avaluat.</dd> + <dt><code>posició</code></dt> + <dd>La posició que l'element passat al primer paràmetre ocupa dins l'array.</dd> + <dt><code>array</code></dt> + <dd>L'array des del que s'ha cridat el mètode <code>some()</code>.</dd> + </dl> + </dd> + <dt><code>thisArg</code></dt> + <dd>Opcional. Valor que valdrà la variable <code>this</code> quan s'estigui executant la funció <code>callback</code>.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Aquesta funció retorna <code><strong>true</strong></code> si la funció <code>callback</code> retorna <code><strong>true</strong></code> per a almenys un element de l'array; en qualsevol altre cas retorna <code><strong>false</strong></code>.</p> + +<h2 id="Descripció">Descripció</h2> + +<p><code>some()</code> executa la funció <code>callback</code> un cop per a cada element present a l'array fins que troba un per al qual <code>callback</code> retorna <code>true</code>. Si es troba aquest element, <code>some()</code> retorna <code>true</code> immediatament. En cas contrari <code>some()</code> retornarà <code>false</code>. Només s'invocarà la funció <code>callback</code> en les posicions de l'array que tinguin un valor assignat, és a dir, mai es cridarà per a posicions que han estat esborrades o el valor de les quals no ha estat mai assignat.</p> + +<p>S'invoca <code>callback</code> amb tres arguments: el valor de l'element, la posició de l'element dins l'array, i l'objecte array que es recorrerà.</p> + +<p>Si es proporciona el paràmetre <code>thisArg</code> al mètode <code>some()</code>, aquest es passarà a <code>callback</code> quan s'invoqui, i serà el valor que mostrarà la variable <code>this</code>. En cas contrari, s'utilitzarà el valor {{jsxref("undefined")}} com a valor per a <code>this</code>. El valor de <code>this</code> observable en última instància per <code>callback</code> es determinarà d'acord a <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">les regles per a determinar el valor de <code>this</code> observat per una funció</a>.</p> + +<p><code>some()</code> no mutarà l'array quan sigui cridada.</p> + +<p>El rang d'elements processat per <code>some()</code> és determinat abans de la primera invocació de <code>callback</code>. Els elements que s'afegeixin a l'array després de la crida a <code>some()</code> no seran visitats per <code>callback</code>. Si el valor d'un element encara no visitat canvia, el valor que es passarà a <code>callback</code> serà el valor que tingui aquest element a l'hora de visitar-lo; els elements que s'esborrin no es visitaran.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Comprovar_el_valor_dels_elements_dun_array">Comprovar el valor dels elements d'un array</h3> + +<p>L'exemple següent comprova si el valor d'algun element de l'array es major que 10.</p> + +<pre class="brush: js notranslate">function isBiggerThan10(element, posicio, array) { + return element > 10; +} +[2, 5, 8, 1, 4].some(isBiggerThan10); // false +[12, 5, 8, 1, 4].some(isBiggerThan10); // true +</pre> + +<h3 id="Comprovar_els_elements_dun_array_utilitzant_funcions_fletxa">Comprovar els elements d'un array utilitzant funcions fletxa</h3> + +<p><a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Les funcions fletxa</a> ofereixen una sintaxi reduïda per a realitzar el mateix test.</p> + +<pre class="brush: js notranslate">[2, 5, 8, 1, 4].some(elem => elem > 10); // false +[12, 5, 8, 1, 4].some(elem => elem > 10); // true +</pre> + +<h3 id="Comprovar_si_existeix_un_valor_en_un_array">Comprovar si existeix un valor en un array</h3> + +<p>L'exemple següent retorna cert si existeix un elmeent donat dins un array</p> + +<pre class="brush: js notranslate">var fruits = ['poma', 'platan', 'mango', 'guava']; + +function checkAvailability(arr, val) { + return arr.some(function(arrVal) { + return val === arrVal; + }); +} + +checkAvailability(fruits, 'kela'); //false +checkAvailability(fruits, 'platan'); //true</pre> + +<h3 id="Comprovar_si_existeix_un_valor_amb_funcions_fletxa">Comprovar si existeix un valor amb funcions fletxa</h3> + +<pre class="brush: js notranslate">var fruits = ['poma', 'platan', 'mango', 'guava']; + +function checkAvailability(arr, val) { + return arr.some(arrVal => val === arrVal); +} + +checkAvailability(fruits, 'kela'); //false +checkAvailability(fruits, 'platan'); //true</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p><code>some()</code> va ser afegida al standard ECMA-262 en la cinquena edició; és per això que pot no estar disponible en certes implementacions del standard. Es pot proporcionar la seva funcionalitat inserint l'script següent a l'inici dels vostres scripts, permetent l'ús de <code>some()</code> en implementacions que no la suporten de forma nativa. Aquest algoritme és exactament l'especificat a l'ECMA-262, cinquena edició, assumint que {{jsxref("Object")}} i {{jsxref("TypeError")}} tenen els valors originals i que <code>fun.call</code> es correspon amb el valor original de {{jsxref("Function.prototype.call()")}}.</p> + +<pre class="brush: js notranslate">// Production steps of ECMA-262, Edition 5, 15.4.4.17 +// Reference: http://es5.github.io/#x15.4.4.17 +if (!Array.prototype.some) { + Array.prototype.some = function(fun/*, thisArg*/) { + 'use strict'; + + if (this == null) { + throw new TypeError('Array.prototype.some called on null or undefined'); + } + + if (typeof fun !== 'function') { + throw new TypeError(); + } + + var t = Object(this); + var len = t.length >>> 0; + + var thisArg = arguments.length >= 2 ? arguments[1] : void 0; + for (var i = 0; i < len; i++) { + if (i in t && fun.call(thisArg, t[i], i, t)) { + return true; + } + } + + return false; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.17', 'Array.prototype.some')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.6.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.some', 'Array.prototype.some')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.some', 'Array.prototype.some')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.8")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.8")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Array.prototype.every()")}}</li> + <li>{{jsxref("TypedArray.prototype.some()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/array/splice/index.html b/files/ca/web/javascript/referencia/objectes_globals/array/splice/index.html new file mode 100644 index 0000000000..c1abada8d9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/array/splice/index.html @@ -0,0 +1,171 @@ +--- +title: Array.prototype.splice() +slug: Web/JavaScript/Referencia/Objectes_globals/Array/splice +translation_of: Web/JavaScript/Reference/Global_Objects/Array/splice +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>splice()</strong></code> modifica el contingut d'un array eliminant elements ja existents i/o afegint-ne de nous.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>array</var>.splice(<em>inici</em>, <em>comptadorEliminar</em>[, <var>item1</var>[, <var>item2</var>[, ...]]]) +</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>inici</code></dt> + <dd>La posició a partir de la qual es començarà a modificar l'array (considerant 0 com a primera posició). Si s'especifca un nombre major que la longitud de l'array, la posició d'inici real esdevindrà la longitud de l'array. Si s'especifica un nombre negatiu, la posició d'inici serà el valor absolut del nombre especificat contant des del final de l'array.</dd> + <dt><code>comptadorEliminar</code></dt> + <dd>Un nombre sencer que indica el nombre d'elements que s'eliminaran. Si <code>comptadorEliminar</code> és 0 no s'eliminarà cap element. En aquest cas s'hauria d'especificar al menys un nou element. Si <code>comptadorEliminar</code> és major que el nombre d'elements de l'array des de la posició<strong> </strong><code>inici</code> fins el final de l'array tots els elements des d'<code>inici</code> fins al final de l'array seran eliminats.</dd> + <dd>Si s'omet <code>comptadorEliminar</code> aquest rebrà un valor per defecte igual a (<code>arr.length - inici</code>)<code>.</code></dd> + <dt><code>item1, item2, <em>...</em></code></dt> + <dd>Els elements que s'afegiran a l'array, començant a la posició <code>inici</code>. Si no s'especifcia cap element, <code>splice()</code> només eliminarà elements de l'array.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Un array que conté els elements eliminats. Si només s'ha eliminat un element es retornarà un array amb un sol element. Si no s'ha eliminat cap element retornarà un array buit.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Si s'especifica un nombre diferent d'elements a eliminar del nombre d'elements a inserir la longitud de l'array canviarà al final de la crida.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_splice()">Utilitzar <code>splice()</code></h3> + +<p>L'script seguent ilustra l'ús de <code>splice()</code>:</p> + +<pre class="brush: js">var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; + +// eliminem 0 elements a partir de la posició 2, i inserim 'drum' +var eliminats = myFish.splice(2, 0, 'drum'); +// myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] +// eliminats va [], no s'han eliminat elements + +// myFish val ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] +// eliminem 1 element a la posició 3 +eliminats = myFish.splice(3, 1); +// myFish val ['angel', 'clown', 'drum', 'surgeon'] +// eliminats val ['mandarin'] + +// myFish val ['angel', 'clown', 'drum', 'surgeon'] +// Eliminem 1 element a la posició 2, i inserim 'trumpet' +eliminats = myFish.splice(2, 1, 'trumpet'); +// myFish val ['angel', 'clown', 'trumpet', 'surgeon'] +// eliminats val ['drum'] + +// myFish val ['angel', 'clown', 'trumpet', 'surgeon'] +// eliminem 2 elements de la posició 0, i inserim 'parrot', 'anemone' i 'blue' +eliminats = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); +// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] +// eliminats val ['angel', 'clown'] + +// myFish val ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] +// eliminem 2 elements de la posició 3 +eliminats = myFish.splice(myFish.length -3, 2); +// myFish val ['parrot', 'anemone', 'surgeon'] +// eliminats val ['blue', 'trumpet'] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.4.4.12', 'Array.prototype.splice')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-array.prototype.splice', 'Array.prototype.splice')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-array.prototype.splice', 'Array.prototype.splice')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("1.0")}}</td> + <td>{{CompatGeckoDesktop("1.7")}}</td> + <td>{{CompatIE("5.5")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Compatibilitat_amb_versions_anteriors">Compatibilitat amb versions anteriors</h2> + +<p>A JavaScript 1.2 el mètode <code>splice()</code> retornava l'element eliminat si només s'havia eliminat un sol element (és a dir, si el valor del paràmetre <code>comptadorEliminar</code> era 1); en qualsevol altre cas retornava un array contenit els elements eliminats.</p> + +<div class="note"> +<p><strong>Nota:</strong> L'últim navegador en utilitzar JavaScript 1.2 va ser el Netscape Navigator 4, així que podeu asumir que <code>splice()</code> sempre retornarà un array. Aquest és el cas quan un objecte JavaScript disposa de la propietat <code>length</code> i un mètode <code>splice()</code>,{{domxref("console.log()")}} el tracta com si fós un objecte array. Comprovar-ho amb <code>instanceof Array</code> retornarà <code>false.</code></p> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.push()", "push()")}} / {{jsxref("Array.prototype.pop()", "pop()")}} — afegir/eliminar elements del final d'un array</li> + <li>{{jsxref("Array.prototype.unshift()", "unshift()")}} / {{jsxref("Array.prototype.shift()", "shift()")}} — afegir/eliminar elements de l'inici d'un array</li> + <li>{{jsxref("Array.prototype.concat()", "concat()")}} — retorna un nou array format a partir d'aquest array i d'altres array(s) i/o valor(s)</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/boolean/index.html b/files/ca/web/javascript/referencia/objectes_globals/boolean/index.html new file mode 100644 index 0000000000..83f2597df9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/boolean/index.html @@ -0,0 +1,196 @@ +--- +title: Boolean +slug: Web/JavaScript/Referencia/Objectes_globals/Boolean +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean +--- +<div>{{JSRef("Global_Objects", "Boolean")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'objecte <strong><code>Boolean</code></strong> és un objecte que embolcalla valors booleans.</p> + +<h2 id="Syntax" name="Syntax">Constructor</h2> + +<pre class="syntaxbox"><code>new Boolean([<var>valors</var>])</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>valors</code></dt> + <dd>Opcional. El valor inicial de l'objecte <code>Boolean</code>.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El valor passat com a primer paràmetre es converteix a un valor booleà, en cas necesari. Si és omés o si és <code>0</code>, <code>-0</code>, {{jsxref("Global_Objects/null", "null")}}, <code>false</code>, {{jsxref("Global_Objects/NaN", "NaN")}}, {{jsxref("Global_Objects/undefined", "undefined")}}, o la cadena de caràcters buida (<code>""</code>), l'objecte tindrà el valor inicial <code>false</code>. Tots els altres valors, incloent qualsevol objecte o la cadena de caràcters <code>"false"</code>, crea un objecte amb el valor inicial de <code>true</code>.</p> + +<p>No confoneu els valors <code>Boolean</code> primitius <code>true</code> i <code>false</code> amb els valors <code>true</code> i <code>false</code> de l'objecte <code>Boolean</code>.</p> + +<p>Qualsevol objecte el valor del qual no sigui {{jsxref("Global_Objects/undefined", "undefined")}} o {{jsxref("Global_Objects/null", "null")}}, incloent un objecte de tipus <code>Boolean</code> el valor del qual sigui <code>false</code>, evalua a <code>true</code> quan es passa a una sentència condicional. Per exemple, la condició en la següent sentència {{jsxref("Statements/if...else", "if")}} evalua a <code>true</code>:</p> + +<pre class="brush: js">x = new Boolean(false); +if (x) { + // aquest codi s'executarà +} +</pre> + +<p>Aquest comportament no s'aplica a les primitives de tipus booleà. Per exemple, la condició en la següent sentència {{jsxref("Statements/if...else", "if")}} evalua a <code>false</code>:</p> + +<pre class="brush: js">x = false; +if (x) { + // aquest codi no s'executarà +} +</pre> + +<p>No creeu una instància de <code>Boolean</code> per a convertir un valor no booleà a un valor booleà. En comptes d'això utilitzeu <code>Boolean</code> com una funció per a realitzar aquesta tasca:</p> + +<pre class="brush: js">x = Boolean(expression); // utilitzar preferentment +x = new Boolean(expression); // no ho utilitzeu +</pre> + +<p>Si s'especifica qualsevol objecte, inclòs un objecte <code>Boolean</code> el valor del qual sigui false, com a valor inicial per a un objecte <code>Boolean</code>, el nou objecte <code>Boolean</code> tindrà un valor de <code>true</code>.</p> + +<pre class="brush: js">myFalse = new Boolean(false); // valor inicial false +g = new Boolean(myFalse); // valor inicial true +myString = new String('Hello'); // objecte de tipus String +s = new Boolean(myString); // valor inicial true +</pre> + +<p>No utilitzeu un objecte <code>Boolean</code> quan podríeu utilitzar un valor primitiu booleà.</p> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt><code>Boolean.length</code></dt> + <dd>La propietat Length retorna el valor de 1.</dd> + <dt>{{jsxref("Boolean.prototype")}}</dt> + <dd>Representa el prototip pel constructor <code>Boolean</code>.</dd> +</dl> + +<p>{{jsOverrides("Function", "Properties", "prototype")}}</p> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<p>L'objecte <code>Boolean</code> no té mètodes propis. Hereta, però, alguns mètodes a través de la cadena de prototipus:</p> + +<div>{{jsOverrides("Function", "Methods")}}</div> + +<h2 id="Boolean_instances" name="Boolean_instances"><code>Instàncies de Boolean</code></h2> + +<p>Totes les instàncies de <code>Boolean</code> hereten de {{jsxref("Boolean.prototype")}}. Com tots els constructors, el prototipus de l'objecte dicta les propietats i mètodes que heretaran les instàncies.</p> + +<h3 id="Propietats">Propietats</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Properties')}}</div> + +<h3 id="Mètodes">Mètodes</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype', 'Methods')}}</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Creating_Boolean_objects_with_an_initial_value_of_false" name="Example:_Creating_Boolean_objects_with_an_initial_value_of_false">Exemple: Crear objectes <code>Boolean</code> amb un valor inicial de<code> false</code></h3> + +<pre class="brush: js">var bNoParam = new Boolean(); +var bZero = new Boolean(0); +var bNull = new Boolean(null); +var bEmptyString = new Boolean(''); +var bfalse = new Boolean(false); +</pre> + +<h3 id="Example:_Creating_Boolean_objects_with_an_initial_value_of_true" name="Example:_Creating_Boolean_objects_with_an_initial_value_of_true">Exemple: Crear objectes <code>Boolean amb un valor inicial de</code> <code>true</code></h3> + +<pre class="brush: js">var btrue = new Boolean(true); +var btrueString = new Boolean('true'); +var bfalseString = new Boolean('false'); +var bSuLin = new Boolean('Su Lin'); +var bArrayProto = new Boolean([]); +var bObjProto = new Boolean({}); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.6', 'Boolean')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-boolean-objects', 'Boolean')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatIE("6.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Boolean.prototype")}}</li> + <li>{{Glossary("Boolean")}}</li> + <li><a href="http://en.wikipedia.org/wiki/Boolean_data_type">El tipus de dades booleà (Wikipedia)</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/boolean/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/boolean/prototype/index.html new file mode 100644 index 0000000000..b203f57c40 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/boolean/prototype/index.html @@ -0,0 +1,117 @@ +--- +title: Boolean.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Boolean/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean +--- +<div>{{JSRef("Global_Objects", "Boolean")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Boolean.prototype</code></strong> representa el prototipus pel constructor {{jsxref("Global_Objects/Boolean", "Boolean")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Les instàncies de {{jsxref("Global_Objects/Boolean", "Boolean")}} hereten de<code> Boolean.prototype</code>. Es pot emprar l'objecte prototipus del constructor per a afegir noves propietats o mètodes a totes les instàncies de {{jsxref("Global_Objects/Boolean", "Boolean")}}.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Boolean.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat la instància del prototipus. Aquesta funció és {{jsxref("Global_Objects/Boolean", "Boolean")}} per defecte.</dd> +</dl> + +<div>{{jsOverrides("Object", "properties", "constructor")}}</div> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Boolean.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna una cadena de caràcters que conté el codi fond de l'objecte {{jsxref("Global_Objects/Boolean", "Boolean")}}; aquesta pot utilitzar-se per a crear un objecte equivalent. Sobreescriu el mètode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Boolean.prototype.toString()")}}</dt> + <dd>Retorna una cadena de caràcters que valdrà o bé <code>"true"</code> o bé <code>"false"</code>, depenent del valor que l'objecte representi. Sobreescriu el mètode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Boolean.prototype.valueOf()")}}</dt> + <dd>Retorna el valor primitiu de l'objecte {{jsxref("Global_Objects/Boolean", "Boolean")}}. Sobreescriu el mètode {{jsxref("Object.prototype.valueOf()")}}.</dd> +</dl> + +<div>{{jsOverrides("Object", "methods", "toSource", "toString", "valueOf")}}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.6.3.1', 'Boolean.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-boolean.prototype', 'Boolean.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/referencia/objectes_globals/boolean/tosource/index.html b/files/ca/web/javascript/referencia/objectes_globals/boolean/tosource/index.html new file mode 100644 index 0000000000..6b6a1b8b2b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/boolean/tosource/index.html @@ -0,0 +1,98 @@ +--- +title: Boolean.prototype.toSource() +slug: Web/JavaScript/Referencia/Objectes_globals/Boolean/toSource +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource +--- +<div>{{JSRef("Objectes_standard", "Boolean")}} {{non-standard_header}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <code><strong>toSource()</strong></code> retorna una cadena de caràcters que representa el codi font de l'objecte.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>booleanObj</var>.toSource() +Boolean.toSource()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>toSource</code> retorna els valors següents:</p> + +<ul> + <li>Per a objectes {{jsxref("Objectes_standard/Boolean", "Boolean")}} de la implementació de JavaScript, <code>toSource</code> retorna la següent cadena de caràcters indicant que el codi font no està disponible: + + <pre class="brush: js">function Boolean() { + [native code] +} +</pre> + </li> + <li>Per a instàncies de {{jsxref("Objectes_standard/Boolean", "Boolean")}}, <code>toSource</code> retorna una cadena de caràcters que representa el codi font.</li> +</ul> + +<p>Aquest mètode normalment és utilitzat internament per JavaScript i no explícitament al codi.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap standard. Implementat a JavaScript 1.3.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_Also" name="See_Also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.toSource()")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/boolean/tostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/boolean/tostring/index.html new file mode 100644 index 0000000000..90da6cba3a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/boolean/tostring/index.html @@ -0,0 +1,121 @@ +--- +title: Boolean.prototype.toString() +slug: Web/JavaScript/Referencia/Objectes_globals/Boolean/toString +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toString +--- +<div>{{JSRef("Global_Objects", "Boolean")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <code><strong>toString()</strong></code> retorna una cadena de caràcters que representa l'objecte Boolean.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>bool</var>.toString()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>L'objecte {{jsxref("Objectes_standard/Boolean", "Boolean")}} sobreescriu el mètode <code>toString</code> de l'objecte {{jsxref("Objectes_standard/Object", "Object")}}; no hereta {{jsxref("Object.prototype.toString()")}}. Per a objectes de tipus Boolean, el mètode <code>toString</code> retorna una cadena de caràcters que representa l'objecte.</p> + +<p>JavaScript crida el mètode <code>toString</code> de manera automàtica quan aquest ha de ser representat mitjançant text o bé quan un {{jsxref("Objectes_standard/Boolean", "Boolean")}} és referenciat en una concatenació de cadenes de caràcters.</p> + +<p>Per a objectes i valors de tipus {{jsxref("Objectes_standard/Boolean", "Boolean")}}, el mètode <code>toString</code> incorporat retorna la cadena de caràcters "<code>true</code>" o bé "<code>false</code>", depenent del valor de l'objecte booleà.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Utilitzar_toString">Exemple: Utilitzar <code>toString</code></h3> + +<p>Al codi següent <code>flag.toString()</code> retorna "<code>true</code>":</p> + +<pre class="brush: js">var flag = new Boolean(true); +var myVar = flag.toString(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició. Implementat a JavaScript 1.1</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.6.4.2', 'Boolean.prototype.toString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-boolean.prototype.tostring', 'Boolean.prototype.toString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/boolean/valueof/index.html b/files/ca/web/javascript/referencia/objectes_globals/boolean/valueof/index.html new file mode 100644 index 0000000000..f99fd3c6c0 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/boolean/valueof/index.html @@ -0,0 +1,117 @@ +--- +title: Boolean.prototype.valueOf() +slug: Web/JavaScript/Referencia/Objectes_globals/Boolean/valueOf +translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +--- +<div>{{JSRef("Global_Objects", "Boolean")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <code><strong>valueOf()</strong></code> retorna el valor primitiu d'un objecte {{jsxref("Objectes_standard/Boolean", "Boolean")}}.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>bool</var>.valueOf()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>valueOf</code> pertanyent a {{jsxref("Objectes_standard/Boolean", "Boolean")}} retorna el valor primitiu d'un objecte o literal {{jsxref("Objectes_standard/Boolean", "Boolean")}} com a tipus de dada Boolean.</p> + +<p>Aquest mètode normalment és utilitzat internament per JavaScript i no explícitament als scripts.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_valueOf" name="Example:_Using_valueOf">Exemple: Utilitzar <code>valueOf</code></h3> + +<pre class="brush: js">x = new Boolean(); +myVar = x.valueOf(); // assigna false a myVar +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.6.4.3', 'Boolean.prototype.valueOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-boolean.prototype.valueof', 'Boolean.prototype.valueOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.valueOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getdate/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getdate/index.html new file mode 100644 index 0000000000..16808aaae0 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getdate/index.html @@ -0,0 +1,119 @@ +--- +title: Date.prototype.getDate() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getDate +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>getDate()</code></strong> retorna el dia del mes per a la data especificada segons l'hora local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.getDate()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>El valor retornat per <code>getDate()</code> és un nombre sencer entre 1 i 31.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_getDate()">Utilitzar <code>getDate()</code></h3> + +<p>La segona sentència de l'exemple de sota assigna el valor 25 a la variable <code>dia</code>, basant-se en el valor de l'objecte {{jsxref("Date")}} <code>nadal95</code>.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var dia = nadal95.getDate(); + +console.log(dia); // 25 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getdate', 'Date.prototype.getDate')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.14', 'Date.prototype.getDate')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCDate()")}}</li> + <li>{{jsxref("Date.prototype.getUTCDay()")}}</li> + <li>{{jsxref("Date.prototype.setDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getday/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getday/index.html new file mode 100644 index 0000000000..244562c167 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getday/index.html @@ -0,0 +1,121 @@ +--- +title: Date.prototype.getDay() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getDay +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getDay()</code></strong> retorna el dia de la setmana per a la data especificada, en temps local on 0 (zero) representa el Diumenge.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getDay()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getDay()</code> és un nombre sencer que correspon al dia de la setmana tal i com es mostra a continuació: 0 és Diumenge, 1 és Dilluns, 2 és Dimarts, etcètera.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getDay" name="Example:_Using_getDay">Exemple: Utilitzar <code>getDay()</code></h3> + +<p>La segona sentència que trobareu a continuació asigna el valor 1 a la variable <code>diaSetmana</code>, basat en el valor de l'objecte {{jsxref("Global_Objects/Date", "Date")}}<code> nadal95</code>, que està inicialitzat amb la data d 25 de Desembre de 1995, és un Dilluns.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var diaSetmana = nadal95.getDay(); + +console.log(diaSetmana); // 1 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.16', 'Date.prototype.getDay')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getday', 'Date.prototype.getDay')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCDate()")}}</li> + <li>{{jsxref("Date.prototype.getUTCDay()")}}</li> + <li>{{jsxref("Date.prototype.setDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getfullyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getfullyear/index.html new file mode 100644 index 0000000000..94f14f4332 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getfullyear/index.html @@ -0,0 +1,121 @@ +--- +title: Date.prototype.getFullYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getFullYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getFullYear()</code></strong> retorna l'any de la data especificada, en temps local.</p> + +<p>Utilitzeu aquest mètode en comptes de {{jsxref("Date.prototype.getYear()", "getYear()")}}.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getFullYear()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getFullYear()</code> és un nombre absolut. Per a dates entre els anys 1000 i 9999, <code>getFullYear()</code> retorna un nombre de 4 dígits (1995, per exemple). Utilitzeu aquesta funció per a assegurar-vos d'obtindre un any compatible amb l'efecte 2000.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getFullYear" name="Example:_Using_getFullYear">Exemple: Utilitzar <code>getFullYear()</code></h3> + +<p>L'exemple següent assigna el valor de 4 dígits de l'any actual a la variable <code>any</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var any = avui.getFullYear(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.10', 'Date.prototype.getFullYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getfullyear', 'Date.prototype.getFullYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setFullYear()")}}</li> + <li>{{jsxref("Date.prototype.getYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/gethours/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/gethours/index.html new file mode 100644 index 0000000000..3848e96339 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/gethours/index.html @@ -0,0 +1,120 @@ +--- +title: Date.prototype.getHours() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getHours +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getHours()</code></strong> retorna l'hora per a la data especificada, en temps local.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getHours()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getHours()</code> és un nombre sencer entre 0 i 23.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getHours" name="Example:_Using_getHours">Exemple: Utilitzar <code>getHours()</code></h3> + +<p>La segona sentència que trobareu a continuació assigna el valor 23 a la variable <code>hora</code>, basant-se en l'objecte {{jsxref("Global_Objects/Date", "Date")}} <code>nadal95</code>.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var hora = nadal95.getHours(); + +console.log(hora); // 23 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.18', 'Date.prototype.getHours')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCHours()")}}</li> + <li>{{jsxref("Date.prototype.setHours()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getmilliseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getmilliseconds/index.html new file mode 100644 index 0000000000..d438cf8cad --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getmilliseconds/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.getMilliseconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getMilliseconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getMilliseconds()</code></strong> retorna els milisegons de la data especificada d'acord a l'hora local.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getMilliseconds()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getMilliseconds()</code> és un nombre entre 0 i 999.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getMilliseconds" name="Example:_Using_getMilliseconds">Exemple: Utilitzar <code>getMilliseconds()</code></h3> + +<p>L'exemple següent assigna la part de milisegons de l'hora actual a la variable <code>milisegons</code>:</p> + +<pre class="brush: js">var avui = new Date(); +var milisegonds = avui.getMilliseconds(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.24', 'Date.prototype.getMilliseconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMilliseconds()")}}</li> + <li>{{jsxref("Date.prototype.setMilliseconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getminutes/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getminutes/index.html new file mode 100644 index 0000000000..3ae466d56d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getminutes/index.html @@ -0,0 +1,120 @@ +--- +title: Date.prototype.getMinutes() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getMinutes +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getMinutes()</code></strong> retorna els minuts de la data especificada segons el temps local.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getMinutes()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retorna per <code>getMinutes()</code> és un nombre sencer entre 0 i 59.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getMinutes" name="Example:_Using_getMinutes">Exemple: Utilitzar <code>getMinutes()</code></h3> + +<p>La segona sentència de sota assigna el valor 15 a la variable <code>minuts</code>, prenent el valor de l'objecte <code>nadal95</code> de tipus {{jsxref("Global_Objects/Date", "Date")}}.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var minuts = nadal95.getMinutes(); + +console.log(minuts); // 15 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.20', 'Date.prototype.getMinutes')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getminutes', 'Date.prototype.getMinutes')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMinutes()")}}</li> + <li>{{jsxref("Date.prototype.setMinutes()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getmonth/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getmonth/index.html new file mode 100644 index 0000000000..2631ebef9a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getmonth/index.html @@ -0,0 +1,120 @@ +--- +title: Date.prototype.getMonth() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getMonth +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>El mètode <strong><code>getMonth()</code></strong> retorna el mes de la data especificada d'acord al temps local, representat per un nombre a partir de zero (on zero indica el primer mes de l'any).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getMonth()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Retorna">Retorna</h3> + +<p>El valor retornat per <code>getMonth()</code> és un nombre sencer entre 0 i 11. 0 correspon a gener, 1 a febrer, etcètera.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Example:_Using_getMonth" name="Example:_Using_getMonth">Exemple: Utilitzar <code>getMonth()</code></h3> + +<p>La segona sentència de sota assigna el valor 11 a la variable <code>mes</code>, basada en el valor de l'objecte <code>nadal95</code> de tipus {{jsxref("Global_Objects/Date", "Date")}}.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var mes = nadal95.getMonth(); + +console.log(mes); // 11 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.12', 'Date.prototype.getMonth')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getmonth', 'Date.prototype.getMonth')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMonth()")}}</li> + <li>{{jsxref("Date.prototype.setMonth()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getseconds/index.html new file mode 100644 index 0000000000..790c62e3e9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getseconds/index.html @@ -0,0 +1,120 @@ +--- +title: Date.prototype.getSeconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getSeconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getSeconds()</code></strong> retorna els segons de la data especficada d'acord al temps local.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getSeconds()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getSeconds()</code> és un sencer entre 0 i 59.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getSeconds" name="Example:_Using_getSeconds">Exemple: Utilitzar <code>getSeconds()</code></h3> + +<p>La segona sentència de sota assigna el valor 30 a la variable <code>segons</code>, basat en el valor de l'objecte <code>nadal95</code>, de tipus {{jsxref("Global_Objects/Date", "Date")}}.</p> + +<pre class="brush: js">var nadal95 = new Date('December 25, 1995 23:15:30'); +var segons = nadal95.getSeconds(); + +console.log(segons); // 30 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.22', 'Date.prototype.getSeconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCSeconds()")}}</li> + <li>{{jsxref("Date.prototype.setSeconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/gettime/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/gettime/index.html new file mode 100644 index 0000000000..20c45f31c5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/gettime/index.html @@ -0,0 +1,135 @@ +--- +title: Date.prototype.getTime() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getTime +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>getTime()</code></strong> retorna el valor numèric corresponent a l'hora per a la data especificada, d'acord al temps universal.</p> + +<p>Es pot emprar aquest mètode com a ajuda per a proporcionar una data i hora per a un altre objecte de tipus {{jsxref("Global_Objects/Date", "Date")}}. Aquest mètode és funcionalment equivalnet al mètode {{jsxref("Date.valueof", "valueOf()")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getTime()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Retorn">Retorn</h3> + +<p>El valor retornat pel mètode <code>getTime()</code> és el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_getTime()_per_a_obtindre_dates">Utilitzar <code>getTime()</code> per a obtindre dates</h3> + +<p>Construïr un objecte date que representi el mateix moment.</p> + +<pre class="brush: js">var aniversari = new Date(1994, 12, 10); +var copia= new Date(); +copia.setTime(aniversari.getTime()); +</pre> + +<h3 id="Mesurar_el_temps_d'execució">Mesurar el temps d'execució</h3> + +<p>Restar dos crides seguides de <code>getTime()</code> en objectes {{jsxref("Date")}} acabats de generar dóne el temps transcorregut entre les dues crides. Això pot ser emprat per a calcular el temps d'execució d'algunes operacions. Vegeu també {{jsxref("Date.now()")}} per a prevenir l'instanciació d'objectes {{jsxref("Date")}} innecesaris.</p> + +<pre class="brush: js">var fi, inici; + +inici= new Date(); +for (var i = 0; i < 1000; i++) { + Math.sqrt(i); +} +fi = new Date(); + +console.log("L'operació ha trigat " + (fi.getTime() - inici.getTime()) + ' ms'); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.9', 'Date.prototype.getTime')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.gettime', 'Date.prototype.getTime')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.setTime()")}}</li> + <li>{{jsxref("Date.prototype.valueOf()")}}</li> + <li>{{jsxref("Date.now()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/gettimezoneoffset/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/gettimezoneoffset/index.html new file mode 100644 index 0000000000..8af4d6e9e8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/gettimezoneoffset/index.html @@ -0,0 +1,109 @@ +--- +title: Date.prototype.getTimezoneOffset() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getTimezoneOffset +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getTimezoneOffset()</code></strong> retorna la desviació de la zona horària a l'hora UTC, en minuts, per a la localizació en ús.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getTimezoneOffset()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorn</h3> + +<p>La desviació de la zona horària és la diferència, en minuts, entre UTC i l'hora local. Això comporta que la desviació serà positiva si l'hora local està per darrere de la UTC i negativa si està endevant. Per exemple, si la vostra zona horària és UTC+10 (Australian Eastern Standard Time), el mètode retornarà -600. L'horari d'estalvi d'energia (d'estiu) fa que aquest valor no sigui una constant, per a qualsevol localització.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getTimezoneOffset" name="Example:_Using_getTimezoneOffset">Exemple: Utilitzar <code>getTimezoneOffset()</code></h3> + +<pre class="brush: js">var x = new Date(); +var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.26', 'Date.prototype.getTimezoneOffset')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.gettimezoneoffset', 'Date.prototype.getTimezoneOffset')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcdate/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcdate/index.html new file mode 100644 index 0000000000..ee3a8b881f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcdate/index.html @@ -0,0 +1,119 @@ +--- +title: Date.prototype.getUTCDate() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCDate +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getUTCDate()</code></strong>retorna el dia del mes per a la data especificada, segons l'hora universal.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getUTCDate()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorn</h3> + +<p>El valor retornat per <code>getUTCDate()</code> és un nombre sencer entre 1 i 31.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getUTCDate" name="Example:_Using_getUTCDate">Exemple: Utilitzar <code>getUTCDate()</code></h3> + +<p>L'exemple següent assigna la part del dia de la data actual a la variable <code>dia</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var dia = avui.getUTCDate(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.15', 'Date.prototype.getUTCDate')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcdate', 'Date.prototype.getUTCDate')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getDate()")}}</li> + <li>{{jsxref("Date.prototype.getUTCDay()")}}</li> + <li>{{jsxref("Date.prototype.setUTCDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcday/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcday/index.html new file mode 100644 index 0000000000..b6f992f9a1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcday/index.html @@ -0,0 +1,119 @@ +--- +title: Date.prototype.getUTCDay() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCDay +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getUTCDay()</code></strong> retorna el dia de la setmana de la data especificada segons l'hora universal, on 0 representa Diumenge.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getUTCDay()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorn</h3> + +<p>El valor retornat per <code>getUTCDay()</code> és un nombre sencer que correspón al dia de la setmana: 0 per a Diumenge, 1 per a dilluns, 2 per a Dimarts, etcètera.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getUTCDay" name="Example:_Using_getUTCDay">Exemple: Utilitzar <code>getUTCDay()</code></h3> + +<p>L'exemple següent assigna el dia de la setmana de la data actual a la variable <code>diaSetmana</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var diaSetmana = avui.getUTCDay(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.17', 'Date.prototype.getUTCDay')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcday', 'Date.prototype.getUTCDay')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCDate()")}}</li> + <li>{{jsxref("Date.prototype.getDay()")}}</li> + <li>{{jsxref("Date.prototype.setUTCDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcfullyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcfullyear/index.html new file mode 100644 index 0000000000..3ca1526e28 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcfullyear/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.getUTCFullYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCFullYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getUTCFullYear()</code></strong> retorna l'any de la data especificada, segons el temps universal.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getUTCFullYear()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorn</h3> + +<p>El valor retornat per <code>getUTCFullYear()</code> és un nombre absolut que compleix amb any-2000, per exemple, 1995.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getUTCFullYear" name="Example:_Using_getUTCFullYear">Exemple: Utilitzar <code>getUTCFullYear()</code></h3> + +<p>L'exemple següent assigna el valor de 4 dígits de l'any actual a la variable <code>any</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var any = avui.getUTCFullYear(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.11', 'Date.prototype.getUTCFullYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setFullYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutchours/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutchours/index.html new file mode 100644 index 0000000000..f575df92a1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutchours/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.getUTCHours() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCHours +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>getUTCHours()</code></strong> retorna les hores especificades a la data, d'acord l'hora universal.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getUTCHours()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorn</h3> + +<p>El valor retornat per <code>getUTCHours()</code> és un nombre sencer entre 0 i 23.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getUTCHours" name="Example:_Using_getUTCHours">Exemple: Utilitzar <code>getUTCHours()</code></h3> + +<p>L'exemple següent assigna la part de les hores de la data actual a la variable <code>hora</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var hora = avui.getUTCHours(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.19', 'Date.prototype.getUTCHours')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutchours', 'Date.prototype.getUTCHours')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getHours()")}}</li> + <li>{{jsxref("Date.prototype.setUTCHours()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcmilliseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcmilliseconds/index.html new file mode 100644 index 0000000000..d09ac5bded --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcmilliseconds/index.html @@ -0,0 +1,116 @@ +--- +title: Date.prototype.getUTCMilliseconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMilliseconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>getUTCMilliseconds()</code></strong> retorna els milisegons de la data especificada, d'acord al temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.getUTCMilliseconds()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>El valor retorna per <code>getUTCMilliseconds()</code> és un nombre sencer entre 0 i 999.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_getUTCMilliseconds()">Utilitzar <code>getUTCMilliseconds()</code></h3> + +<p>L'exemple següent assigna la porció de milisegons del temps actual a la variable <code>milisegons</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var milisegons = avui.getUTCMilliseconds(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.25', 'Date.prototype.getUTCMilliseconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcmilliseconds', 'Date.prototype.getUTCMilliseconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMilliseconds()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMilliseconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcminutes/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcminutes/index.html new file mode 100644 index 0000000000..e18a13c52f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcminutes/index.html @@ -0,0 +1,116 @@ +--- +title: Date.prototype.getUTCMinutes() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMinutes +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>getUTCMinutes()</code></strong> retorna els minuts de la data especificada en temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.getUTCMinutes()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Valor_a_retornar">Valor a retornar</h3> + +<p>El valor retornat per <code>getUTCMinutes()</code> és un nombre sencer entre 0 i 59.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_getUTCMinutes()">Utilitzar <code>getUTCMinutes()</code></h3> + +<p>L'exemple següent assigna la part de minuts del temps actual a la variable <code>minuts</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var minuts = avui.getUTCMinutes(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.21', 'Date.prototype.getUTCMinutes')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcminutes', 'Date.prototype.getUTCMinutes')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMinutes()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMinutes()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcmonth/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcmonth/index.html new file mode 100644 index 0000000000..48ba78349b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcmonth/index.html @@ -0,0 +1,116 @@ +--- +title: Date.prototype.getUTCMonth() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCMonth +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>getUTCMonth()</code></strong> retorna el mes de la data especificada d'acord al temps universal, com a valor basat en zero (on zero indica el primer mes de l'any.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.getUTCMonth()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>El valor retornat per <code>getUTCMonth()</code> és un nombre sencer entre 0 i 11 corresponent al mes. 0 per al gener, 1 per al febrer, 2 per al març, etcètera.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_getUTCMonth()">Utilitzar <code>getUTCMonth()</code></h3> + +<p>L'exemple següent assigna la part de la data actual corresponent al mes a la variable <code>mes</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var mes = mes.getUTCMonth(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.13', 'Date.prototype.getUTCMonth')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcmonth', 'Date.prototype.getUTCMonth')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMonth()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMonth()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getutcseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getutcseconds/index.html new file mode 100644 index 0000000000..1f69ca8199 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getutcseconds/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.getUTCSeconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getUTCSeconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode<strong> <code>getUTCSeconds()</code></strong> retorna els segons a la data especificada, segons l'hora universal.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getUTCSeconds()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El valor retornat per <code>getUTCSeconds()</code> és un nombre sencer entre 0 i 59.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_getUTCSeconds" name="Example:_Using_getUTCSeconds">Exemple: <code>Utilitzar getUTCSeconds()</code></h3> + +<p>L'exemple següent assigna la porció de segons del temps actual a la variable <code>segons</code>.</p> + +<pre class="brush: js">var avui = new Date(); +var segons = avui.getUTCSeconds(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.23', 'Date.prototype.getUTCSeconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getutcseconds', 'Date.prototype.getUTCSeconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getSeconds()")}}</li> + <li>{{jsxref("Date.prototype.setUTCSeconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/getyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/getyear/index.html new file mode 100644 index 0000000000..8724b2e03b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/getyear/index.html @@ -0,0 +1,162 @@ +--- +title: Date.prototype.getYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/getYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/getYear +--- +<div>{{JSRef("Global_Objects", "Date")}} {{deprecated_header}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode<strong><code> getYear()</code></strong> retorna l'any de la data especificada segons l'hora local. Com que <code>getYear()</code> no retorna anys sencers ("el problema de l'any 2000"), no s'utilitza més i s'ha substituït pel mètode {{jsxref("Date.prototype.getFullYear", "getFullYear()")}}.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.getYear()</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h3 id="Returns" name="Returns">Retorna</h3> + +<p>El mètode <code>getYear()</code> retorna l'any menys el valor 1900; és a dir:</p> + +<ul> + <li>Per a anys majors o iguals a 2000, el valor retornat per <code>getYear()</code> és 100 o major. Per exemple, si l'any és el 2026, <code>getYear()</code> retorna 126.</li> + <li>Per a anys entre 1900 i 1999 (ambdós inclosos), el valor retornat per <code>getYear()</code> roman entre 0 i 99. Per exemple, per a l'any 1976 <code>getYear()</code> retorna 76.</li> + <li>Per a anys menors que 1900, el valor retornat per <code>getYear()</code> és menor que zero. Per exemple, per a l'any 1800, <code>getYear()</code> retorna -100.</li> +</ul> + +<p>Per a tenir en compte anys abans o deprés del 2000 es recomana utilitzar {{jsxref("Date.prototype.getFullYear", "getFullYear()")}} en comptes de <code>getYear()</code> ja que retorna l'any sencer.</p> + +<h2 id="Backward_compatibility" name="Backward_compatibility">Compatibilitat amb versions anteriors</h2> + +<h3 id="JavaScript_1.2_and_earlier" name="JavaScript_1.2_and_earlier">Comportament en JavaScript 1.2 i anteriors</h3> + +<p>El mètode <code>getYear()</code> retorna o bé un any amb dos dígits o bé un any amb 4 dígits:</p> + +<ul> + <li>Per a anys entre 1900 i 1999 (ambdos inclosos) el valor retornat és l'any menys 1900. Per exemple, per a l'any 1976 el valor retornat és 76.</li> + <li>Per a anys menors que 1900 o majors que 1999 el valor retornat per <code>getYear()</code> és l'any amb 4 dígits. Per exemple, per a l'any 1856 el valor retornat és 1856. Per a l'any 2026 el valor retornat és 2026.</li> +</ul> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Years_between_1900_and_1999" name="Example:_Years_between_1900_and_1999">Exemple: Anys entre1900 i 1999</h3> + +<p>La segona sentència assigna el valor 95 a la variable <code>any</code>.</p> + +<pre class="brush: js">var nadal = new Date('December 25, 1995 23:15:00'); +var any = nadal.getYear(); // retorna 95 +</pre> + +<h3 id="Example:_Years_above_1999" name="Example:_Years_above_1999">Exemple: Anys majors que 1999</h3> + +<p>La segona sentència assigna el valor 100 a la variable <code>any</code>.</p> + +<pre class="brush: js">var nadal = new Date('December 25, 2000 23:15:00'); +var any = Xmas.getYear(); // retorna 100 +</pre> + +<h3 id="Example:_Years_below_1900" name="Example:_Years_below_1900">Exemple: Anys menors que 1900</h3> + +<p>La segona sentència assigna el valor -100 a la variable <code>any</code>.</p> + +<pre class="brush: js">var nadal = new Date('December 25, 1800 23:15:00'); +var any = nadal.getYear(); // retorna -100 +</pre> + +<h3 id="Example:_Setting_and_getting_a_year_between_1900_and_1999" name="Example:_Setting_and_getting_a_year_between_1900_and_1999">Exemple: Assignar i obtenir un any entre1900 i 1999</h3> + +<p>La segona sentència assigna el valor 95 a la variable <code>any</code>, que representa l'any 1995.</p> + +<pre class="brush: js">var nadal.setYear(95); +var any = nadal.getYear(); // retorna 95 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-B.2.4', 'Date.prototype.getYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit a l'annex de compatibilitat (amb caràcter informatiu).</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.getyear', 'Date.prototype.getYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit a l'annex de característiques adicionals per a navegadors web (amb caràcter normatiu).</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getFullYear()")}}</li> + <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/index.html new file mode 100644 index 0000000000..3fb5a9368d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/index.html @@ -0,0 +1,250 @@ +--- +title: Date +slug: Web/JavaScript/Referencia/Objectes_globals/Date +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>Crea una instància de tipus <strong><code>Date</code></strong> de JavaScript, que representa un únic moment en el temps. Els objectes de tipus <code>Date</code> es basen en un valor de temps que mesura el nombre de milisegons que han passat des de l'u de gener de 1970 UTC.</p> + +<h2 id="Syntax" name="Syntax">Constructor</h2> + +<pre class="syntaxbox"><code>new Date(); +new Date(<var>valor</var>); +new Date(<var>dataString</var>); +new Date(any, mes[, dia[, hora[, minuts[, segons[, <var>milisegons</var>]]]]]); +</code></pre> + +<div class="note"> +<p><strong>Nota:</strong> Els objectes Date de JavaScript només poden ser instanciats cridant Date com a constructor: Si es crida la funció com una funció normal (és a dir, sense l'operador {{jsxref("Operators/new", "new")}}), aquesta retornarà una string en comptes d'un objecte de tipus Date; al contrari que altres tipus d'objectes JavaScript, els objectes de JavaScript de tipus Date no poden ser representats com a literals.</p> +</div> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<div class="note"> +<p><strong>Nota:</strong> Quan es crida <code>Date</code> com a constructor amb més d'un argument, si els valors són més grans que el seu rang lògic (per exemple, si es passa 13 com a valor pel mes o 70 com a valor de minuts), <code>Date</code> ajusta el valor adjacent. Per exemple, <code>new Date(2013, 13, 1)</code> és equivalent a <code>new Date(2014, 1, 1)</code>, ambdós creen un objecte de tipus <code>Date</code> que representa <code>2014-02-01</code> (cal destacar que els mesos es comencen a contar des de zero). El mateix s'aplica per a altres valors: <code>new Date(2013, 2, 1, 0, 70)</code> és equivalent a <code>new Date(2013, 2, 1, 1, 10)</code> i ambdós representen <code>2013-03-01T01:10:00</code>.</p> +</div> + +<div class="note"> +<p><strong>Nota:</strong> Quan es crida Date com a constructor amb més d'un argument, els arguments especificats representen l'hora local. Si es pretèn passar valors UTC, utilitzeu <code>new Date({{jsxref("Date.UTC()", "Date.UTC(...)")}})</code> amb aquests arguments.</p> +</div> + +<dl> + <dt><code>valor</code></dt> + <dd>Nombre sencer que representa el nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC (Època UNIX).</dd> + <dt><code>dataString</code></dt> + <dd>Valor String que representa una data. La String ha d'estar en un format reconegut pel mètode {{jsxref("Date.parse()")}} (<a href="http://tools.ietf.org/html/rfc2822#page-14">Marques de temps RFC 2822 compatibles amb el IETF</a> o bé una <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15">versió de la ISO8601</a>).</dd> + <dt><code>any</code></dt> + <dd>Valor sencer que representa un any. Els valors des de 0 a 99 representen els anys des de 1900 a 1999. Vegeu l'{{anch("Example:_Two_digit_years_map_to_1900_-_1999", "exemple a continuació")}}.</dd> + <dt><code>mes</code></dt> + <dd>Valor sencer que representa un mes, començant per zero com a gener i acabant amb 11 com a desembre.</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Valor sencer que representa el dia del mes.</dd> + <dt><code>hora</code></dt> + <dd>Opcional. Valor sencer que representa l'hora del dia.</dd> + <dt><code>minut</code></dt> + <dd>Opcional. Valor sencer que representa els minuts d'un segment de temps.</dd> + <dt><code>segon</code></dt> + <dd>Opcional. Valor sencer que representa els segons d'un segment de temps.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Valor sencer que representa els milisegons d'un segment de temps.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<ul> + <li>Si no es proporciona cap argument, el constructor crea un objecte de JavaScript de tipus <code>Date</code> i l'inicialitza amb l'hora actual proporcionada pel sistema.</li> + <li>Si es proporcionen al menys dos arguments, els arguments no proporcionats es consideren o bé 1 (si no s'especifica el dia) o bé 0 per a tots els altres.</li> + <li>L'hora de JavaScript es basa en els milisegons que han passat des de la mitja nit de l'1 de gener de 1970 UTC. Un dia té 86.400.000 milisegons. El rang de l'objecte de JavaScript <code>Date</code> és de -100.000.000 dies a 100.000.000 dies relatius a l'1 de gener de 1970 UTC.</li> + <li>L'objecte de JavaScript <code>Date</code> proporciona el mateix comportament a totes les plataformes on s'utilitzi. El valor de temps es pot passar entre sistemes per a representar el mateix moment del temps i si s'utilitza per a crear un objecte que contingui l'hora local, aquest objecte representarà l'equivalent al temps local.</li> + <li>Alguns dels mètodes de l'objecte de JavaScript <code>Date</code> soporten temps en UTC (universal) i temps local. UTC, també conegut com a Greenwhich Mean Time (GMT), fa referència al temps marcat pel World Time Standard. El temps local és el temps proporcionat per l'ordinador on s'executa el JavaScript.</li> + <li>Si s'invoca la funció de JavaScript <code>Date</code> com una funció (és a dir, sense l'operador {{jsxref("Operators/new", "new")}}), aquesta retornarà una string representant la data i hora actual.</li> +</ul> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("Date.prototype")}}</dt> + <dd>Permet afegir propietats a l'objecte de JavaScript <code>Date</code>.</dd> + <dt><code>Date.length</code></dt> + <dd>El valor de <code>Date.length</code> és 7. Aquest és el nombre de arguments que el constructor accepta.</dd> +</dl> + +<div>{{jsOverrides("Function", "properties", "prototype")}}</div> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>{{jsxref("Date.now()")}}</dt> + <dd>Retorna el valor numèric corresponent al temps actual - el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC.</dd> + <dt>{{jsxref("Date.parse()")}}</dt> + <dd>Interpreta un string que representa una data i retorna el nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC.</dd> + <dt>{{jsxref("Date.UTC()")}}</dt> + <dd>Accepta els mateixos paràmetres que el constructor (és a dir, de 2 a 7) i retorna le nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC.</dd> +</dl> + +<div>{{jsOverrides("Function", "Methods", "now", "parse", "UTC")}}</div> + +<h2 id="Date_instances" name="Date_instances">Instàncies de JavaScript <code>Date</code></h2> + +<p>Totes les instàncies de <code>Date</code> hereten de {{jsxref("Date.prototype")}}. L'objecte prototipus del constructor <code>Date</code> pot ser modificat per a afectar a totes les instàncies de <code>Date</code>.</p> + +<h3 id="Mètodes_de_Date.prototype">Mètodes de Date.prototype</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/Date/prototype', 'Methods')}}</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Several_ways_to_assign_dates" name="Example:_Several_ways_to_assign_dates">Exemple: Vàries formes de crear un objecte de tipus <code>Date</code></h3> + +<p>Els següents exemples mostren diverses maneres de crear dates a JavaScript:</p> + +<pre class="brush: js">var today = new Date(); +var birthday = new Date('December 17, 1995 03:24:00'); +var birthday = new Date('1995-12-17T03:24:00'); +var birthday = new Date(1995, 11, 17); +var birthday = new Date(1995, 11, 17, 3, 24, 0); +</pre> + +<h3 id="Example:_Two_digit_years_map_to_1900_-_1999" name="Example:_Two_digit_years_map_to_1900_-_1999">Exemple: Dos dígits per representar els anys 1900 a 1999</h3> + +<p>Per a crear i obtindre dates entre els anys 0 i 99 es recomana emprar els mètodes {{jsxref("Date.prototype.setFullYear()")}} i {{jsxref("Date.prototype.getFullYear()")}}.</p> + +<pre class="brush: js">var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) + +// Deprecated method, 98 maps to 1998 here as well +date.setYear(98); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) + +date.setFullYear(98); // Sat Feb 01 0098 00:00:00 GMT+0000 (BST) +</pre> + +<h3 id="Example:_Calculating_elapsed_time" name="Example:_Calculating_elapsed_time">Exemple: Calcular el temps passat</h3> + +<p>Els exemples següents mostren com determinar el temps passat entre dues dates a JavaScript:</p> + +<pre class="brush: js">// utilitzant objectes Date +var start = Date.now(); + +// L'event a cronometra va aquí: +doSomethingForALongTime(); +var end = Date.now(); +var elapsed = end - start; // temps transcorregut en milisegons +</pre> + +<pre class="brush: js">// utilitzant mètodes que formen part del sistema +var start = new Date(); + +// the event to time goes here: +doSomethingForALongTime(); +var end = new Date(); +var elapsed = end.getTime() - start.getTime(); // temps transcorregut en milisegons +</pre> + +<pre class="brush: js">// cronometra una funció i retorna el que retorni +function printElapsedTime(fTest) { + var nStartTime = Date.now(), + vReturn = fTest(), + nEndTime = Date.now(); + + console.log('Temps transcorregut: ' + String(nEndTime - nStartTime) + ' miliseconds'); + return vReturn; +} + +yourFunctionReturn = printElapsedTime(yourFunction); +</pre> + +<div class="note"> +<p><strong>Nota:</strong> En navegadors que suporten la característica de temps en alta resolució de la {{domxref("window.performance", "API d'Alt Rendiment Web", "", 1)}}, {{domxref("Performance.now()")}} pot proporcionar mesures de temps més concises i fiables pel temps transcorregut que {{jsxref("Date.now()")}}.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9', 'Date')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date-objects', 'Date')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Informes_de_compatiblitat_amb_navegadors">Informes de compatiblitat amb navegadors</h3> + +<ul> + <li><a href="https://gist.github.com/2312309">4/2012 punts essencials de Yaffle sobre problemes de compatibilitat amb navegadors dels mètodes <code>toISOString</code>/<code>fromISOString</code>/Native <code>Date.parse</code></a></li> + <li><a href="http://dygraphs.com/date-formats.html">3/14/2012 blog de danvk Comparant FF/IE/Chrome en l'interpretació de dates com a strings</a></li> +</ul> + +<h3 id="Notes_específiques_de_Internet_Explorer">Notes específiques de Internet Explorer</h3> + +<p>Internet Explorer 8 <a href="https://msdn.microsoft.com/en-us//library/ie/ff743760(v=vs.94).aspx">no suporta el format de dates ISO8601</a>.</p> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/now/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/now/index.html new file mode 100644 index 0000000000..c3ef05fa86 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/now/index.html @@ -0,0 +1,126 @@ +--- +title: Date.now() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/now +translation_of: Web/JavaScript/Reference/Global_Objects/Date/now +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <strong><code>Date.now()</code></strong> retorna el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>var timeInMs = Date.now();</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>now()</code> retorna el nombre de method returns el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC fins al moment actual representat en un {{jsxref("Global_Objects/Number", "Nombre")}}.</p> + +<p>Com que <code>now()</code> és un mètode estàtic de {{jsxref("Global_Objects/Date", "Date")}}, sempre es crida com a <code>Date.now()</code>.</p> + +<h2 id="Polyfill" name="Polyfill">Polyfill</h2> + +<p>Aquest mètode va ser estandaritzat a la cinquena edició de l'ECMA-262. Els motors que encara no hagin sigut actualitzats per a suportar aquest mètode poden utilitzar el bocí de codi següent per a paliar l'absència d'aquest mètode:</p> + +<pre class="brush: js">if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.4.4', 'Date.now')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.now', 'Date.now')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característiques</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("5")}}</td> + <td>{{CompatGeckoDesktop("1.9")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("10.50")}}</td> + <td>{{CompatSafari("4")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característiques</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td> + <table class="compat-table"> + <tbody> + <tr> + <td>Suport bàsic</td> + </tr> + </tbody> + </table> + </td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>Basat en la <a href="http://kangax.github.com/es5-compat-table/">taula de compatibilitat de Kangax</a>.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{domxref("Performance.now()")}} — proporciona marques de temps amb una resolució submilimètrica per a utilitzar al mesurar el rendiment de pàgines web</li> + <li>{{domxref("console.time()")}} / {{domxref("console.timeEnd()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/prototype/index.html new file mode 100644 index 0000000000..3ed17045fb --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/prototype/index.html @@ -0,0 +1,221 @@ +--- +title: Date.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Date/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +<div>{{JSRef("Global_Objects", "Date")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Date.prototype</code></strong> representa el prototipus per al constructor {{jsxref("Global_Objects/Date", "Date")}}.</p> + +<div>{{js_property_attributes(0, 0, 1)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Les instàncies de JavaScript de {{jsxref("Global_Objects/Date", "Date")}} hereten de<code> Date.prototype</code>. L'objecte prototipus del constructor pot modificar-se per a afectar a les propietats i mètodes heretats per les instàncies de {{jsxref("Global_Objects/Date", "Date")}}.</p> + +<p>Per a compatibilitat amb càlculs amb milenis (en altres paraules, per a tindre en compte l'any 2000), sempre s'hauria d'especificar l'any sencer, per exemple, 1998, en comptes de 98. Per a ajudar a proveïr l'any sencer JavaScript inclou els mètodes {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}}, {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}}, {{jsxref("Date.prototype.getUTCFullYear()", "getUTCFullYear()")}} i {{jsxref("Date.prototype.setUTCFullYear()", "setUTCFullYear()")}}.</p> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt><code>Date.prototype.constructor</code></dt> + <dd>Retorna la funció que va crear la instància. És a dir, per defecte el constructor {{jsxref("Global_Objects/Date", "Date")}}.</dd> +</dl> + +<div>{{jsOverrides("Object", "properties", "constructor")}}</div> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<h3 id="Getter">Getter</h3> + +<dl> + <dt>{{jsxref("Date.prototype.getDate()")}}</dt> + <dd>Retorna el dia del mes (1-31) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getDay()")}}</dt> + <dd>Retorna el dia de la setmana (0-6) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getFullYear()")}}</dt> + <dd>Retorna l'any (4 digits per a anys de 4 digits) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getHours()")}}</dt> + <dd>Retorna l'hora (0-23) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getMilliseconds()")}}</dt> + <dd>Retorna els milisegons (0-999) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getMinutes()")}}</dt> + <dd>Retorna els minuts (0-59) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getMonth()")}}</dt> + <dd>Retorna el mes (0-11) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getSeconds()")}}</dt> + <dd>Retorna els segons (0-59) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.getTime()")}}</dt> + <dd>Retorna un valor numèric per a la data especificada que representa la data especificada com al nombre de milisegons que han passat des de l'1 de gener de 1970, 00:00:00 UTC (negatiu per a dates anteriors).</dd> + <dt>{{jsxref("Date.prototype.getTimezoneOffset()")}}</dt> + <dd>Retorna la diferència d'ús horari en minuts del temps local.</dd> + <dt>{{jsxref("Date.prototype.getUTCDate()")}}</dt> + <dd>Retorna el dia del mes (1-31) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCDay()")}}</dt> + <dd>Retorna el dia de la setmana (0-6) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCFullYear()")}}</dt> + <dd>Retorna l'any (4 digits per a anys de 4 digits) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCHours()")}}</dt> + <dd>Retorna l'hora (0-23) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCMilliseconds()")}}</dt> + <dd>Retorna els milisegons (0-999) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCMinutes()")}}</dt> + <dd>Retorna els minuts (0-59) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCMonth()")}}</dt> + <dd>Retorna el mes (0-11) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getUTCSeconds()")}}</dt> + <dd>Retorna els segons (0-59) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.getYear()")}} {{deprecated_inline}}</dt> + <dd>Retorna l'any (normalment 2-3 digits) per a la data especificada, en temps local. En comptes d'aquest mètode, utilitzeu {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}}.</dd> +</dl> + +<h3 id="Setter">Setter</h3> + +<dl> + <dt>{{jsxref("Date.prototype.setDate()")}}</dt> + <dd>Assigna el dia del mes per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setFullYear()")}}</dt> + <dd>Assigna l'any sencer (és a dir, de 4 digits per a un any amb 4 digits) per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setHours()")}}</dt> + <dd>Assigna l'hora per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setMilliseconds()")}}</dt> + <dd>Assigna els milisegons per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setMinutes()")}}</dt> + <dd>Assigna els minuts per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setMonth()")}}</dt> + <dd>Assigna el mes per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setSeconds()")}}</dt> + <dd>Assigna els segons per a la data especificada, en temps local.</dd> + <dt>{{jsxref("Date.prototype.setTime()")}}</dt> + <dd>Assigna la data que representarà la instància de l'objecte {{jsxref("Global_Objects/Date", "Date")}} al temps representat pel nombre de milisegons passats des de l'1 de gener de 1970, 00:00:00 UTC. Permet nombres negatius per a temps anteriors a aquesta data.</dd> + <dt>{{jsxref("Date.prototype.setUTCDate()")}}</dt> + <dd>Assigna el dia del mes per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCFullYear()")}}</dt> + <dd>Assigna l'any sencer (és a dir, 4 digits per a anys de 4 digits) per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCHours()")}}</dt> + <dd>Assigna l'hora per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCMilliseconds()")}}</dt> + <dd>Assigna els milisegons per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCMinutes()")}}</dt> + <dd>Assigna els minuts per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCMonth()")}}</dt> + <dd>Assigna el mes per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setUTCSeconds()")}}</dt> + <dd>Assigna els segons per a la data especificada en temps universal (UTC).</dd> + <dt>{{jsxref("Date.prototype.setYear()")}} {{deprecated_inline}}</dt> + <dd>Assigna l'any (normalment 2-3 digits) per a la data especificada en temps local. Utilitzeu {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}} en comptes d'aquest mètode.</dd> +</dl> + +<h3 id="Getters_amb_conversió">Getters amb conversió</h3> + +<dl> + <dt>{{jsxref("Date.prototype.toDateString()")}}</dt> + <dd>Retorna la part part de data de {{jsxref("Global_Objects/Date", "Date")}} com a string inteligible per humans.</dd> + <dt>{{jsxref("Date.prototype.toISOString()")}}</dt> + <dd>Converteix una data a un string seguint el Format Extés del ISO 8601.</dd> + <dt>{{jsxref("Date.prototype.toJSON()")}}</dt> + <dd>Retorna un string que representa l'objecte {{jsxref("Global_Objects/Date", "Date")}} utilitzant {{jsxref("Date.prototype.toISOString()", "toISOString()")}}. Ideat per a ser usat per {{jsxref("JSON.stringify()")}}.</dd> + <dt>{{jsxref("Date.prototype.toGMTString()")}} {{deprecated_inline}}</dt> + <dd>Retorna un string que representa l'objecte {{jsxref("Global_Objects/Date", "Date")}} basat en la zona horària GMT (UT). Utilitzeu {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}} en comptes d'aquest mètode.</dd> + <dt>{{jsxref("Date.prototype.toLocaleDateString()")}}</dt> + <dd>Retorna un string que representa la part de la data amb temps local, basat en la configuració del sistema.</dd> + <dt>{{jsxref("Date.prototype.toLocaleFormat()")}} {{non-standard_inline}}</dt> + <dd>Converteix una data a string tot utilitzant un format string.</dd> + <dt>{{jsxref("Date.prototype.toLocaleString()")}}</dt> + <dd>Retorna un string que representa la data tenint en compte el temps local. Sobreescriu el mètode {{jsxref("Object.prototype.toLocaleString()")}}.</dd> + <dt>{{jsxref("Date.prototype.toLocaleTimeString()")}}</dt> + <dd>Retorna un string que representa la part de temps de la data local basada en la configuració del sistema.</dd> + <dt>{{jsxref("Date.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna un string que representa el codi font per a un objecte {{jsxref("Global_Objects/Date", "Date")}} equivalent; aquest valor pot emprar-se per a crear un nou objecte. Sobreescriu el mètode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Date.prototype.toString()")}}</dt> + <dd>Retorna un string que representa l'objecte {{jsxref("Global_Objects/Date", "Date")}} especificat. Sobreescriu el mètode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Date.prototype.toTimeString()")}}</dt> + <dd>Retorna la part de temps de l'objecte {{jsxref("Global_Objects/Date", "Date")}} com a string comprensible per humans.</dd> + <dt>{{jsxref("Date.prototype.toUTCString()")}}</dt> + <dd>Converteix una data a un string utilitzant la zona horària UTC.</dd> + <dt>{{jsxref("Date.prototype.valueOf()")}}</dt> + <dd>Retorna el valor primitiu d'un objecte {{jsxref("Global_Objects/Date", "Date")}}. Sobreescriu el mètode {{jsxref("Object.prototype.valueOf()")}}.</dd> +</dl> + +<div>{{jsOverrides("Object", "methods", "getDate", "getDay", "getFullYear", "getHours", "getMilliseconds", "getMinutes", "getMonth", "getSeconds", "getTime", "getTimezoneOffset", "getUTCDate", "getUTCDay", "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes", "getUTCMonth", "getUTCSeconds", "getYear", "setdate", "setFullYear", "setHours", "setMilliseconds", "setMinutes", "setMontth", "setSeconds", "setTime", "setUTCDate", "setUTCFullYear", "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth", "setUTCSeconds", "setYear", "toDateString", "toGMTString", "toLocaleDateString", "toLocaleFormat", "toLocaleString", "toLocaleTimeString", "toSource", "toString", "toTimeString", "toUTCString", "valueOf")}}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5', 'Date.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-properties-of-the-date-prototype-object', 'Date.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setdate/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setdate/index.html new file mode 100644 index 0000000000..746de134fe --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setdate/index.html @@ -0,0 +1,122 @@ +--- +title: Date.prototype.setDate() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setDate +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setDate +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setDate()</code></strong> assigna el dia de l'objecte {{jsxref("Date")}} relatiu al principi del mes assignat en aquell moment.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setDate(dia)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>dia</code></dt> + <dd>Un nombre sencer que representa el dia del mes.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>El valor retornat per <code>setDate()</code> és el nombre de milisegons que han passat des de l'ú de gener de 1970 00:00:00 UTC de la data resultant (l'objecte {{jsxref("Date")}} també canvia).</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setDate()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 0 com a <code>dia</code>, la data representarà l'últim dia del mes anterior.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setDate()">Utilitzar <code>setDate()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(1962, 6, 7); // 1962-07-07 +elGranDia.setDate(24); // 1962-07-24 +elGranDia.setDate(32); // 1962-08-01 +elGranDia.setDate(22); // 1962-08-22</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.36', 'Date.prototype.setDate')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setdate', 'Date.prototype.setDate')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getDate()")}}</li> + <li>{{jsxref("Date.prototype.setUTCDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setfullyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setfullyear/index.html new file mode 100644 index 0000000000..c29d56ca4e --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setfullyear/index.html @@ -0,0 +1,128 @@ +--- +title: Date.prototype.setFullYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setFullYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setFullYear +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setFullYear()</code></strong> assigna l'any sencerr per a la data especificada, d'acord a l'hora local. Retorna una nova marca de temps.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setFullYear(any[, mes[, dia]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>any</code></dt> + <dd>Un nombre sencer que representa el valor numèric de l'any, per exemple, 1995.</dd> + <dt><code>mes</code></dt> + <dd>Un nombre sencer entre 0 i 11 que representa el mes.</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Un nombre sencer entre 1 i 31 que representa el dia del mes.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Una nova marca de temps amb el valor de l'objecte actual.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica el paràmetre <code>dia</code> s'utilitza el valor retornat pels mètodes {{jsxref("Date.prototype.getMonth()", "getMonth()")}} i {{jsxref("Date.prototype.getDate()", "getDate()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>UTC()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 15 com a <code>mes</code>, l'any serà incrementat en 1 (<code>any + 1</code>), i s'emprarà 3 com a <code>mes</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setFullYear()">Utilitzar <code>setFullYear()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setFullYear(1997); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.40', 'Date.prototype.setFullYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/sethours/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/sethours/index.html new file mode 100644 index 0000000000..7f660ba344 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/sethours/index.html @@ -0,0 +1,129 @@ +--- +title: Date.prototype.setHours() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setHours +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setHours +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setHours()</code></strong> assigna l'hora per a una data especificada d'acord a l'hora local, i retorna el nombre de milisegons que han passat des de l'u de gener de 1970 00:00:00 UTC fins al temps representat per la instància de {{jsxref("Date")}} actualitzada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setHours(hores[, minuts[, segons[, milisegons]]])</code></pre> + +<h3 id="Versions_anteriors_a_JavaScript_1.3">Versions anteriors a JavaScript 1.3</h3> + +<pre class="syntaxbox"><code><var>objecteData</var>.setHours(hores)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>hores</code></dt> + <dd>Un nombre sencer entre 0 i 23, que representa l'hora.</dd> + <dt><code>minuts</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els minuts.</dd> + <dt><code>segons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els segons.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifiquen els paràmetres <code>minuts</code>, <code>segons</code> i <code>milisegons</code> s'utilitzen els valors retornats per {{jsxref("Date.prototype.getMinutes()", "getMinutes()")}}, {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} i {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setHours()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setHours()">Utilitzar <code>setHours()</code></h3> + +<pre class="brush:js">var elGranDia = new Date(); +elGranDia.setHours(7); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.34', 'Date.prototype.setHours')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.sethours', 'Date.prototype.setHours')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getHours()")}}</li> + <li>{{jsxref("Date.prototype.setUTCHours()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setmilliseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setmilliseconds/index.html new file mode 100644 index 0000000000..53dc451ad4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setmilliseconds/index.html @@ -0,0 +1,117 @@ +--- +title: Date.prototype.setMilliseconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setMilliseconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setMilliseconds()</code></strong> assigna els milisegons per a una data especificada d'acord a l'hora local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setMilliseconds(milisegons)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>milisegons</code></dt> + <dd>Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setMilliseconds()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 1005 com a <code>milisegons</code>, els segonsseran incrementats en 1 (<code>segons + 1</code>), i s'emprarà 5 com a <code>milisegons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setMilliseconds()">Utilitzar <code>setMilliseconds()</code></h3> + +<pre class="brush: js">var elGranDia= new Date(); +elGranDia.setMilliseconds(100); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comenataris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.28', 'Date.prototype.setMilliseconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setmilliseconds', 'Date.prototype.setMilliseconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMilliseconds()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMilliseconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setminutes/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setminutes/index.html new file mode 100644 index 0000000000..7dba61cade --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setminutes/index.html @@ -0,0 +1,127 @@ +--- +title: Date.prototype.setMinutes() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setMinutes +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMinutes +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setMinutes()</code></strong> assigna els minuts a una data especificada, d'acord a l'hora local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setMinutes(minuts[, segons[, milisegons]])</code></pre> + +<h3 id="Versions_anteriors_a_JavaScript_1.3">Versions anteriors a JavaScript 1.3</h3> + +<pre class="syntaxbox"><code><var>objecteData</var>.setMinutes(minuts)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>minuts</code></dt> + <dd>Un nombre sencer entre 0 i 59 que representa els minuts.</dd> + <dt><code>segons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els segons.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifiquen els paràmetres <code>minuts</code>, <code>segons</code> i <code>milisegons</code> s'utilitzen els valors retornats per {{jsxref("Date.prototype.getSeconds()", "getSeconds()")}} i {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setMinutes()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setMinutes()"><code>Utilitzar setMinutes()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setMinutes(45); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.32', 'Date.prototype.setMinutes')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setminutes', 'Date.prototype.setMinutes')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMinutes()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMinutes()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setmonth/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setmonth/index.html new file mode 100644 index 0000000000..a84f51df7c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setmonth/index.html @@ -0,0 +1,126 @@ +--- +title: Date.prototype.setMonth() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setMonth +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMonth +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setMonth()</code></strong> assigna el mes per a una data especificada d'acord a l'any assignat previament.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setMonth(mes[, dia])</code></pre> + +<h3 id="Versions_anteriors_a_JavaScript_1.3">Versions anteriors a JavaScript 1.3</h3> + +<pre class="syntaxbox"><code><var>objecteData</var>.setMonth(mes)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>mes</code></dt> + <dd>Un nombre sencer entre 0 i 11 que representa els mesos des de gener fins a desembre</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Un nombre sencer entre 1 i 31 que representa el dia del mes.</dd> + <dd> </dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica el paràmetre <code>dia</code> s'utilitza el valor retornat pel mètode {{jsxref("Date.prototype.getDate()", "getDate()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setMonth()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 15 com a mes, l'any serà incrementat en 1 (<code>any + 1</code>), i s'emprarà 3 com a mes.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setMonth()">Utilitzar <code>setMonth()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setMonth(6); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.38', 'Date.prototype.setMonth')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setmonth', 'Date.prototype.setMonth')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getMonth()")}}</li> + <li>{{jsxref("Date.prototype.setUTCMonth()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setseconds/index.html new file mode 100644 index 0000000000..60ea2c0ae3 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setseconds/index.html @@ -0,0 +1,125 @@ +--- +title: Date.prototype.setSeconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setSeconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setSeconds +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setSeconds()</code></strong> assigna els segons per a una data especificada, en temps local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setSeconds(segons[, milisegons])</code></pre> + +<h3 id="Versions_anteriors_a_JavaScript_1.3">Versions anteriors a JavaScript 1.3</h3> + +<pre class="syntaxbox"><code><var>objecteData</var>.setSeconds(<var>segons</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>segons</code></dt> + <dd>Un nombre sencer entre 0 i 59 que representa els segons.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica el paràmetre <code>milisegons</code> s'utilitza el valor retornat pel mètode {{jsxref("Date.prototype.getMilliseconds()", "getMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setSeconds()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setSeconds()"><code>Utilitzar setSeconds()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setSeconds(30); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.30', 'Date.prototype.setSeconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setseconds', 'Date.prototype.setSeconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getSeconds()")}}</li> + <li>{{jsxref("Date.prototype.setUTCSeconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/settime/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/settime/index.html new file mode 100644 index 0000000000..9774f3ee4c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/settime/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.setTime() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setTime +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setTime +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setTime()</code></strong> configura l'objecte {{jsxref("Date")}} amb un nombre que representa un temps en milisegons que han passat des de la mitjanit de l'ú de gener de 1970, en temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setTime(temps)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>temps</code></dt> + <dd>Un nombre sencer que representa el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Utilitzeu el mètode <code>setTime()</code> per a assignar una data i hora a un objecte de tipus {{jsxref("Date")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setTime()">Utilitzar <code>setTime()</code></h3> + +<pre class="brush: js">var elGranDia = new Date('July 1, 1999'); +var elMateixGranDia = new Date(); +elMateixGranDia.setTime(elGranDia.getTime()); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.27', 'Date.prototype.setTime')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.settime', 'Date.prototype.setTime')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getTime()")}}</li> + <li>{{jsxref("Date.prototype.setUTCHours()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcdate/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcdate/index.html new file mode 100644 index 0000000000..109178f66a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcdate/index.html @@ -0,0 +1,119 @@ +--- +title: Date.prototype.setUTCDate() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCDate +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCDate()</code></strong> assigna el dia del mes per a una data especificada, en temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCDate(dia)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>dia</code></dt> + <dd>Un nombre sencer de 1 a 31, que representa el dia del mes.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>If a parameter you specify is outside of the expected range, <code>setUTCDate()</code> attempts to update the date information in the {{jsxref("Date")}} object accordingly. For example, if you use 40 for <code>dayValue</code>, and the month stored in the {{jsxref("Date")}} object is June, the day will be changed to 10 and the month will be incremented to July.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCDate()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 40 com a <code>dia</code>, i el mes especificat a l'objecte {{jsxref("Date")}} és juny, el dia es canviarà a 10 i el mes serà incrementat a juliol.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCDate()">Utilitzar <code>setUTCDate()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCDate(20); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.37', 'Date.prototype.setUTCDate')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcdate', 'Date.prototype.setUTCDate')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCDate()")}}</li> + <li>{{jsxref("Date.prototype.setDate()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcfullyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcfullyear/index.html new file mode 100644 index 0000000000..55185a431b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcfullyear/index.html @@ -0,0 +1,123 @@ +--- +title: Date.prototype.setUTCFullYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCFullYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCFullYear()</code></strong> assigna l'any sencer a la data especificada d'acord amb el temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCFullYear(any[, mes[, dia]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>any</code></dt> + <dd>Un nombre sencer que representa el valor numèric de l'any, per exemple, 1995.</dd> + <dt><code>mes</code></dt> + <dd>Un nombre sencer entre 0 i 11 que representa el mes.</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Un nombre sencer entre 1 i 31 que representa el dia del mes. Si s'especifica el paràmetre <code>dia</code>, també s'ha d'especificar el paràmetre <code>mes</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica els paràmetres <code>mes</code> o <code>dia</code> s'utilitza el valor retornat pels mètodes <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getMonth" title="El mètode getMonth() retorna el mes de la data especificada d'acord al temps local, representat per un nombre a partir de zero (on zero indica el primer mes de l'any)."><code>getMonth()</code></a> i <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/getDate" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>getDate()</code></a>.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCFullYear()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 15 com a <code>mes</code>, l'any serà incrementat en 1 (<code>any + 1</code>), i s'emprarà 3 com a <code>mes</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCFullYear()">Utilitzar <code>setUTCFullYear()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCFullYear(1997); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.41', 'Date.prototype.setUTCFullYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcfullyear', 'Date.prototype.setUTCFullYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setFullYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutchours/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutchours/index.html new file mode 100644 index 0000000000..3c75ea903c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutchours/index.html @@ -0,0 +1,125 @@ +--- +title: Date.prototype.setUTCHours() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCHours +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCHours()</code></strong> assigna l'hora per a una data especificada d'acord al temps universal, i retorna el nombre de milisegons que han passat des de l'ú de gener de 1970 00:00:00 UTC fins al temps representat per l'instància {{jsxref("Date")}} actualitzada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCHours(hores[, minuts[, segons[, milisegons]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>hores</code></dt> + <dd>Un nombre sencer entre 0 i 23, que representa l'hora.</dd> + <dt><code>minuts</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els minuts.</dd> + <dt><code>segons</code></dt> + <dd>Oppcional. Un nombre sencer entre 0 i 59 que representa els segons. Si s'especifica <code>segons</code> també s'ha d'expecificar <code>minuts</code>.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons. Si s'especifica <code>milisegons</code> també s'han d'especificar <code>minuts</code> i <code>segons</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica els paràmetres <code>minuts</code>, <code>segons</code> o <code>milisegons</code> s'utilitza el valor retornat pels mètodes {{jsxref("Date.prototype.getUTCMinutes()", "getUTCMinutes()")}}, {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}}, i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCHours()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCHours()">Utilitzar <code>setUTCHours()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCHours(8); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.35', 'Date.prototype.setUTCHours')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutchours', 'Date.prototype.setUTCHours')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCHours()")}}</li> + <li>{{jsxref("Date.prototype.setHours()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcmilliseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcmilliseconds/index.html new file mode 100644 index 0000000000..e3265e247f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcmilliseconds/index.html @@ -0,0 +1,117 @@ +--- +title: Date.prototype.setUTCMilliseconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMilliseconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCMilliseconds()</code></strong> assigna els milisegons a la data sepecificada d'acord l'hora local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCMilliseconds(<em>milisegons</em>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>milisegons</code></dt> + <dd>Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCMilliseconds()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 1100 com a <code>milisegons</code>, els segons seran incrementats en 1 (<code>segons + 1</code>), i s'emprarà 100 com a <code>milisegons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCMilliseconds()">Utilitzar <code>setUTCMilliseconds()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCMilliseconds(500); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.29', 'Date.prototype.setUTCMilliseconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcmilliseconds', 'Date.prototype.setUTCMilliseconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMilliseconds()")}}</li> + <li>{{jsxref("Date.prototype.setMilliseconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcminutes/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcminutes/index.html new file mode 100644 index 0000000000..5551364e52 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcminutes/index.html @@ -0,0 +1,123 @@ +--- +title: Date.prototype.setUTCMinutes() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMinutes +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCMinutes()</code></strong> assigna els minuts per a la data especificada, segons l'hora local.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCMinutes(<em>minuts</em>[, <em>segons</em>[, <em>milisegons</em>]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>minuts</code></dt> + <dd>Un nombre sencer entre 0 i 59, que representa els minuts.</dd> + <dt><code>segons</code></dt> + <dd>Oppcional. Un nombre sencer entre 0 i 59 que representa els segons. Si s'especifica <code>segons</code> també s'ha d'expecificar <code>minuts</code>.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons. Si s'especifica <code>milisegons</code> també s'han d'especificar <code>minuts</code> i <code>segons</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica els paràmetres <code>segons</code> o <code>milisegons</code> s'utilitza el valor retornat pels mètodes {{jsxref("Date.prototype.getUTCSeconds()", "getUTCSeconds()")}} i {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCMinutes()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCMinutes()">Utilitzar <code>setUTCMinutes()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCMinutes(43); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.33', 'Date.prototype.setUTCMinutes')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcminutes', 'Date.prototype.setUTCMinutes')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMinutes()")}}</li> + <li>{{jsxref("Date.prototype.setMinutes()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcmonth/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcmonth/index.html new file mode 100644 index 0000000000..e06f0fba64 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcmonth/index.html @@ -0,0 +1,121 @@ +--- +title: Date.prototype.setUTCMonth() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCMonth +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCMonth()</code></strong> assigna el mes per a la data especificada segons el temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCMonth(mes[, dia])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>mes</code></dt> + <dd>Un nombre sencer entre 0 i 11 que representa els mesos des de gener fins a desembre</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Un nombre sencer entre 1 i 31 que representa el dia del mes.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica el paràmetre <code>dia</code> s'utilitza el valor retornat pel mètode.{{jsxref("Date.prototype.getUTCDate()", "getUTCDate()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCMonth()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 15 com a mes, l'any serà incrementat en 1 (<code>any + 1</code>), i s'emprarà 3 com a mes.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCMonth()">Utilitzar <code>setUTCMonth()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCMonth(11); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.39', 'Date.prototype.setUTCMonth')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcmonth', 'Date.prototype.setUTCMonth')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCMonth()")}}</li> + <li>{{jsxref("Date.prototype.setMonth()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setutcseconds/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setutcseconds/index.html new file mode 100644 index 0000000000..66f33a9e1b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setutcseconds/index.html @@ -0,0 +1,121 @@ +--- +title: Date.prototype.setUTCSeconds() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setUTCSeconds +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>setUTCSeconds()</code></strong> assigna els segons a la data especificada, segons el temps universal.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setUTCSeconds(<em>segons</em>[, <em>milisegons</em>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>segons</code></dt> + <dd>Un nombre sencer entre 0 i 59 que representa els segons.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si no s'especifica el paràmetre <code>milisegons</code> s'utilitza el valor retornat pel mètode {{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}}.</p> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>setUTCSeconds()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 100 com a <code>segons</code>, els minuts seran incrementats en 1 (<code>minuts + 1</code>), i s'emprarà 40 com a <code>segons</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setUTCSeconds()">Utilitzar <code>setUTCSeconds()</code></h3> + +<pre class="brush: js">var elGranDia = new Date(); +elGranDia.setUTCSeconds(20); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.3.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.31', 'Date.prototype.setUTCSeconds')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setutcseconds', 'Date.prototype.setUTCSeconds')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getUTCSeconds()")}}</li> + <li>{{jsxref("Date.prototype.setSeconds()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/setyear/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/setyear/index.html new file mode 100644 index 0000000000..ead16f2d21 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/setyear/index.html @@ -0,0 +1,124 @@ +--- +title: Date.prototype.setYear() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/setYear +translation_of: Web/JavaScript/Reference/Global_Objects/Date/setYear +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>setYear()</code></strong> assigna l'any per a una data especificada, d'acord a l'hora local. Com que <code>setYear()</code> no utilitza anys complerts ("el problema de l'any 2000"), aquest mètode està en desús i s'ha reemplaçat pel mètode {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.setYear(any)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>any</code></dt> + <dd>Un nombre sencer.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si <code>any</code> és un nombre entre 0 i 99 (inclòs), llavors s'assigna <code>1900 + any</code> a <code>objecteData</code>. En cas contrari, s'assigna <code>any</code> a <code>objecteData</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_setYear()">Utilitzar <code>setYear()</code></h3> + +<p>Les dues primeres línies assignen el valor 1996 a l'any. La tercera línia assigna el valor 2000 a l'any.</p> + +<pre class="brush: js">var elGranDia = new Date(); + +elGranDia.setYear(96); +elGranDia.setYear(1996); +elGranDia.setYear(2000); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-B.2.5', 'Date.prototype.getYear')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit a l'annex de compatibilitat (informatiu).</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.setyear', 'Date.prototype.getYear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit a l'annex de característiques adicionals per a navegadors web (normatiu).</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.getFullYear()")}}</li> + <li>{{jsxref("Date.prototype.getUTCFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setFullYear()")}}</li> + <li>{{jsxref("Date.prototype.setUTCFullYear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/todatestring/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/todatestring/index.html new file mode 100644 index 0000000000..9548215179 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/todatestring/index.html @@ -0,0 +1,115 @@ +--- +title: Date.prototype.toDateString() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toDateString +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toDateString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toDateString()</code></strong> retorna la part de la data d'un objecte {{jsxref("Date")}} en un format entenible per persones en anglés amerià.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.toDateString()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies de <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date" title="Crea una instància de tipus Date de JavaScript, que representa un únic moment en el temps. Els objectes de tipus Date es basen en un valor de temps que mesura el nombre de milisegons que han passat des de l'u de gener de 1970 UTC."><code>Date</code></a> representen un punt específic en el temps. Una crida al mètode <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/toString" title="El mètode toString() retorna un string que representa l'objecte Date especificat."><code>toString()</code></a> retornarà la dada en un format entenible per persones, en anglés americà. Al motor <a href="https://developer.mozilla.org/en-US/docs/SpiderMonkey">SpiderMonkey</a>, aquest format consisteix en la part de la data (dia, mes i any) seguida de la part de l'hora (hores, minuts, segons i zona horària). De vegades és convenient obtenir un string només de la part de l'hora; aquesta és la raó de ser del mètode <code>toDateString()</code>.</p> + +<p>El mètode <code>toDateString()</code> resulta especialment útil perquè els motors que compleixen amb el standard <a href="https://developer.mozilla.org/en-US/docs/ECMAScript">ECMA-262</a> poden retornar resultats diferents al string obtingut mitjançant el mètode <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date/toString" title="El mètode toString() retorna un string que representa l'objecte Date especificat."><code>toString()</code></a> en objectes <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Date" title="Crea una instància de tipus Date de JavaScript, que representa un únic moment en el temps. Els objectes de tipus Date es basen en un valor de temps que mesura el nombre de milisegons que han passat des de l'u de gener de 1970 UTC."><code>Date</code></a>, ja que el format depèn totalment de la implementació; això implica que partir el string per a obtenir només la part de temps pot no produïr un resultat consistent en tots els motors.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Ús_bàsic_de_toDateString()">Ús bàsic de <code>toDateString()</code></h3> + +<pre class="brush: js">var d = new Date(1993, 6, 28, 14, 39, 7); + +console.log(d.toString()); // imprimeix Wed Jul 28 1993 14:39:07 GMT-0600 (PDT) +console.log(d.toDateString()); // imprimeix Wed Jul 28 1993 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.3', 'Date.prototype.toDateString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/togmtstring/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/togmtstring/index.html new file mode 100644 index 0000000000..08e63be739 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/togmtstring/index.html @@ -0,0 +1,115 @@ +--- +title: Date.prototype.toGMTString() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toGMTString +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toGMTString +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>toGMTString()</code></strong> converteix una data a un string, utilitzant les convencions del Greenwich Mean Time (GMT). El format exacte del valor retornat per <code>toGMTString()</code> és depenent de la plataforma i el navegador, per norma general hauria de representar la data en una forma entenible per persones.</p> + +<div class="note"> +<p><strong>Nota:</strong> <code>toGMTString()</code> està en desús i no es recomana fer-lo servir més. Es mantè només per a compatibilitat amb codi vell que l'utilitzi; en comptes d'aquest mètode utilitzeu {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}}.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.toGMTString()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_senzill">Exemple senzill</h3> + +<p>En aquest exemple el mètode <code>toGMTString()</code> converteix la data a GMT (UTC) utilitzant el desplaçament de zona horaria donat pel sistema operatiu i retorna un valor string que té aproximadament la forma que trobareu a continuació. El format exacte dependrà de la plataforma.</p> + +<pre class="brush: js">var avui = new Date(); +var str = avui.toGMTString(); // en desús! utilitzeu toUTCString() + +console.log(str); // Mon, 18 Dec 1995 17:28:35 GMT +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial, però ja marcat com a en desús. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-B.2.6', 'Date.prototype.toGMTString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit a l'annex de compatibilitat (informatiu).</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.togmtstring', 'Date.prototype.toGMTString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit a l'annex per a característiques adicionals per a navegadors web (normatiu).</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toUTCString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/toisostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/toisostring/index.html new file mode 100644 index 0000000000..759e53225c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/toisostring/index.html @@ -0,0 +1,134 @@ +--- +title: Date.prototype.toISOString() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toISOString +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toISOString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toISOString()</code></strong> retorna una cadena en un format ISO extès<em> simplificat </em>(<a href="http://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a>), el qual sempre té 24 caràcters de llargària: <strong><code>YYYY-MM-DDTHH:mm:ss.sssZ</code></strong>. La zona horària és sempre UTC, tal i com indica el sufix <code>"Z"</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.toISOString()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toISOString()">Utilitzar <code>toISOString()</code></h3> + +<pre class="brush: js">var today = new Date('05 October 2011 14:48 UTC'); + +console.log(today.toISOString()); // Retorna 2011-10-05T14:48:00.000Z +</pre> + +<p>L'exemple anterior interpreta una cadena no estàndard que pot no ser interpretada correctament per navegadors que no siguin mozilla.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode es va estandaritzar en la 5a edició d'ECMA-262. Els motors que no s'hagin actualitzat per suportar aquest mètode poden evitar al mancança d'aquest mètode utilitzant les següents accions:</p> + +<pre class="brush: js">if (!Date.prototype.toISOString) { + (function() { + + function pad(number) { + if (number < 10) { + return '0' + number; + } + return number; + } + + Date.prototype.toISOString = function() { + return this.getUTCFullYear() + + '-' + pad(this.getUTCMonth() + 1) + + '-' + pad(this.getUTCDate()) + + 'T' + pad(this.getUTCHours()) + + ':' + pad(this.getUTCMinutes()) + + ':' + pad(this.getUTCSeconds()) + + '.' + (this.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + + 'Z'; + }; + + }()); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.43', 'Date.prototype.toISOString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.8.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.toisostring', 'Date.prototype.toISOString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toUTCString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/tojson/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/tojson/index.html new file mode 100644 index 0000000000..8b583470bf --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/tojson/index.html @@ -0,0 +1,108 @@ +--- +title: Date.prototype.toJSON() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toJSON +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toJSON +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toJSON()</code></strong> retorna una representació de tipus cadena de l'objecte {{jsxref("Date")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.toJSON()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies {{jsxref("Date")}} referencien a un punt concret en el temps. La crida <code>toJSON()</code> retorna una cadena (usant {{jsxref("Date.prototype.toISOString()", "toISOString()")}}) en representació del valor de l'objecte {{jsxref("Date")}}. Generalment aquest mètode s'utilitza, per defecte, per serialitzar eficaçment objectes {{jsxref("Date")}} durant la serialització {{Glossary("JSON")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toJSON()">Utilitzar <code>toJSON()</code></h3> + +<pre class="brush:js">var jsonDate = (new Date()).toJSON(); +var backToDate = new Date(jsonDate); + +console.log(jsonDate); //2015-10-26T07:46:36.611Z +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.44', 'Date.prototype.toJSON')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.8.5.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.tojson', 'Date.prototype.toJSON')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toUTCString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/tostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/tostring/index.html new file mode 100644 index 0000000000..8482fe5298 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/tostring/index.html @@ -0,0 +1,142 @@ +--- +title: Date.prototype.toString() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toString +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toString()</code></strong> retorna un string que representa l'objecte {{jsxref("Date")}} especificat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteDate</var>.toString()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>L'objecte {{jsxref("Date")}} sobreescriu el mètode <code>toString()</code> de l'objecte {{jsxref("Object")}}; no hereta {{jsxref("Object.prototype.toString()")}}. Per a objectes {{jsxref("Date")}}, el mètode <code>toString()</code> retorna un string que representa l'objecte.</p> + +<p>El mètode <code>toString()</code> sempre retorna una representació en forma de string de la data en anglés americà.</p> + +<p>JavaScript cridarà el mètode <code>toString()</code> de manera automàtica quan una data requereix ser representada com a text o bé quan una data formi part d'una concatenació de strings.</p> + +<p>El mètode <code>toString()</code> és genèric. Si <code>this</code> no fa referència a una instància de {{jsxref("Date")}}, retornarà "Invalid Date".</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toString()">Utilitzar <code>toString()</code></h3> + +<p>L'exemple següent assigna el valor de <code>toString()</code> d'un objecte {{jsxref("Date")}} a <code>myVar</code>:</p> + +<pre class="brush: js">var x = new Date(); +myVar = x.toString(); // assigna un valor a myVar simimlar a: +// Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.2', 'Date.prototype.toLocaleTimeString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.tostring', 'Date.prototype.toString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Mètode genèric</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("41")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>Mètode genèric</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("41")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.toString()")}}</li> + <li>{{jsxref("Date.prototype.toDateString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleString()")}}</li> + <li>{{jsxref("Date.prototype.toTimeString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/totimestring/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/totimestring/index.html new file mode 100644 index 0000000000..aac8de7a85 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/totimestring/index.html @@ -0,0 +1,115 @@ +--- +title: Date.prototype.toTimeString() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/toTimeString +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toTimeString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toTimeString()</code></strong> retorna la part de temps d'un objecte de tipus {{jsxref("Date")}} formatada de tal forma que és entenible per les persones, utilitzan anglés americà.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteData</var>.toTimeString()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies de {{jsxref("Date")}} representen un punt específic en el temps. Una crida al mètode {{jsxref("Date.prototype.toString()", "toString()")}} retornarà la dada en un format entenible per persones, en anglés americà. Al motor <a href="/en-US/docs/SpiderMonkey">SpiderMonkey</a>, aquest format consisteix en la part de la data (dia, mes i any) seguida de la part de l'hora (hores, minuts, segons i zona horària). De vegades és convenient obtenir un string només de la part de l'hora; aquesta és la raó de ser del mètode <code>toTimeString()</code>.</p> + +<p>El mètode <code>toTimeString()</code> resulta especialment útil perquè els motors que compleixen amb el standard <a href="/en-US/docs/ECMAScript">ECMA-262</a> poden retornar resultats diferents al string obtingut mitjançant el mètode {{jsxref("Date.prototype.toString()", "toString()")}} en objectes {{jsxref("Date")}}, ja que el format depèn totalment de la implementació; això implica que partir el string per a obtenir només la part de temps pot no produïr un resultat consistent en tots els motors.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilització_bàsica_de_toTimeString()">Utilització bàsica de <code>toTimeString()</code></h3> + +<pre class="brush: js">var d = new Date(1993, 6, 28, 14, 39, 7); + +console.log(d.toString()); // escriu Wed Jul 28 1993 14:39:07 GMT-0600 (PDT) +console.log(d.toTimeString()); // escriu 14:39:07 GMT-0600 (PDT) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.4', 'Date.prototype.toTimeString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.totimestring', 'Date.prototype.toTimeString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toDateString()")}}</li> + <li>{{jsxref("Date.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/utc/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/utc/index.html new file mode 100644 index 0000000000..37bb2bc369 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/utc/index.html @@ -0,0 +1,142 @@ +--- +title: Date.UTC() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/UTC +translation_of: Web/JavaScript/Reference/Global_Objects/Date/UTC +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Date.UTC()</code></strong> accepta els mateixos paràmetres que la forma més llarga del constructor, i retorna en un objecte de tipus {{jsxref("Date")}} el nombre de milisegons que han passat des de l'u de gener de 1970 a les 00:00:00, temps universal.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Date.UTC(any, mes[, dia[, hora[, minuts[, segons[, <var>milisegons</var>]]]]])</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>any</code></dt> + <dd>Un any major que 1900.</dd> + <dt><code>mes</code></dt> + <dd>Un nombre sencer entre 0 i 11 que representa el mes.</dd> + <dt><code>dia</code></dt> + <dd>Opcional. Un nombre sencer entre 1 i 31 que representa el dia del mes.</dd> + <dt><code>hora</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 23 que representa l'hora.</dd> + <dt><code>minuts</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els minuts.</dd> + <dt><code>segons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 59 que representa els segons.</dd> + <dt><code>milisegons</code></dt> + <dd>Opcional. Un nombre sencer entre 0 i 999 que representa els milisegons.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p><code>UTC()</code> accepta una data en forma de paràmetres separats per comes i retorna el nombre de milisegons que han passat entre l'u de gener de 1970 a les 00:00:00 en temps universal, i el temps especificat pels paràmetres.</p> + +<p>L'any ha de ser especificat plenament; per exemple, 1998. Si s'especifica un any entre 0 i 99, el mètode el converteix a un any del segle 20 (<code>1900 + any</code>); per exemple, si s'especifica 95, s'emprarà l'any 1995.</p> + +<p>El mètode <code>UTC()</code> es diferencia del constructor {{jsxref("Date")}} en dues coses.</p> + +<ul> + <li><code>Date.UTC()</code> utilitza el temps universal en comptes del temps local.</li> + <li><code>Date.UTC()</code> retorna el temps com a nombre en comptes de crear un objecte de tipus {{jsxref("Date")}}.</li> +</ul> + +<p>Si es passa un paràmetre que està fora del rang esperat, el mètode <code>UTC()</code> actualitza els altres paràmetres per a acceptar el nombre. Per exemple, si es passa 15 com a mes, l'any serà incrementat en 1 (<code>any + 1</code>), i s'emprarà 3 com a mes.</p> + +<p>Com que <code>UTC()</code> és un mètode estàtic de {{jsxref("Date")}}, sempre es crida com a <code>Date.UTC()</code> en comptes de com un mètode d'una instància de {{jsxref("Date")}}.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Date.UTC" name="Example:_Using_Date.UTC">Utilitzar <code>Date.UTC()</code></h3> + +<p>La instrucció següent crea un objecte {{jsxref("Date")}} utilitzant temps UTC en comptes del temps local:</p> + +<pre class="brush:js">var dataUTC = new Date(Date.UTC(96, 11, 1, 0, 0, 0)); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.utc', 'Date.UTC')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.4.3', 'Date.UTC')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Caracterísica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Caracterísica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.parse()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/date/valueof/index.html b/files/ca/web/javascript/referencia/objectes_globals/date/valueof/index.html new file mode 100644 index 0000000000..6c5f810ead --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/date/valueof/index.html @@ -0,0 +1,118 @@ +--- +title: Date.prototype.valueOf() +slug: Web/JavaScript/Referencia/Objectes_globals/Date/valueOf +translation_of: Web/JavaScript/Reference/Global_Objects/Date/valueOf +--- +<div>{{JSRef}}</div> + +<p>El mètode<strong> <code>valueOf()</code></strong> retorna el valor primitiu d'un objecte de tipus {{jsxref("Date")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>dateObj</var>.valueOf()</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p>Cap.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>valueOf()</code> retorna el valor primitiu d'un objecte de tipus {{jsxref("Date")}} en forma de nombre, el nombre de milisegons des de la mitjanit de l'ú de gener de 1970 UTC.</p> + +<p>Aquest mètode és funcionalment equivalent al mètode {{jsxref("Date.prototype.getTime()")}}.</p> + +<p>Aquest mètode és tot sovint emprat internament per JavaScript i no explícitament en codi.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_valueOf()"><code>Utilitzar valueOf()</code></h3> + +<pre class="brush: js">var x = new Date(56, 6, 17); +var myVar = x.valueOf(); // assigna -424713600000 a myVar +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.9.5.8', 'Date.prototype.valueOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-date.prototype.valueof', 'Date.prototype.valueOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.valueOf()")}}</li> + <li>{{jsxref("Date.prototype.getTime()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/columnnumber/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/columnnumber/index.html new file mode 100644 index 0000000000..377c797cd3 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/columnnumber/index.html @@ -0,0 +1,83 @@ +--- +title: Error.prototype.columnNumber +slug: Web/JavaScript/Referencia/Objectes_globals/Error/columnNumber +translation_of: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>columnNumber</strong></code> conté el nombre de la columna dins la línia del fitxer on s'ha produit l'error.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_custom_error" name="Example:_Throwing_a_custom_error">Exemple: Utilitzar <code>columnNumber</code></h3> + +<pre class="brush: js">var e = new Error('Error interpretant les dades'); +throw e; +console.log(e.columnNumber) // 0 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. No és standard.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.stack")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.lineNumber")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.fileName")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/filename/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/filename/index.html new file mode 100644 index 0000000000..dcca532f86 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/filename/index.html @@ -0,0 +1,87 @@ +--- +title: Error.prototype.fileName +slug: Web/JavaScript/Referencia/Objectes_globals/Error/fileName +translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>fileName</strong></code> conté la ruta al fitxer que ha provocat aquest error.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Aquesta propietat no standard conté la ruta al fitxer que ha provocat l'error. Si es crida des d'un contexte de depuració, com ara des de Firefox Developer Tools, retorna "debugger eval code".</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_custom_error" name="Example:_Throwing_a_custom_error">Exemple: Utilitzar <code>fileName</code></h3> + +<pre class="brush: js">var e = new Error('Dades no tractades'); +throw e; +// e.fileName podria contrindre quelcom semblant a "file:///C:/example.html" +</pre> + +<h2 id="Especificacions.">Especificacions.</h2> + +<p>No format part de cap especificació. No és standard.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.stack")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.columnNumber")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.lineNumber")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/index.html new file mode 100644 index 0000000000..2e1592edc5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/index.html @@ -0,0 +1,224 @@ +--- +title: Error +slug: Web/JavaScript/Referencia/Objectes_globals/Error +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +<div>{{JSRef}}</div> + +<h2 id="Resum">Resum</h2> + +<p>El constructor <strong><code>Error</code></strong> crea un objecte que representa un error. Quan succeeix un error en temps d'execució JavaScript llença una instància de tipus <code>Error</code>. L'objecte <code>Error</code> també es pot emprar com a objecte base per a excepcions definides per l'usuari. Vegeu més abaix per a tipus d'errors standard que forment part del nucli.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">new Error([missatge[, fitxer[, numeroLinia]]])</pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>missatge</code></dt> + <dd>Opcional. Descripció entenible per persones de l'error.</dd> + <dt><code>fitxer</code> {{non-standard_inline}}</dt> + <dd>Opcional. El valor de la propietat <code>fitxer</code> a l'objecte <code>Error</code> creat. Per defecte pren el valor del nom del fitxer que conté el codi que ha cridat el constructor <code>Error()</code>.</dd> + <dt><code>numeroLinia</code> {{non-standard_inline}}</dt> + <dd>Opcional. El valor de la propietat <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">numeroLinia</span></font> de l'objecte <code>Error</code> creat. Per defecte rep el valor del número de línia que conté la invocació al constructor <code>Error()</code>.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Els errors en temps d'execució esdevenen objectes <code>Error</code> nous que són creats i llençats.</p> + +<p>Aquesta pàgina documenta l'ús de l'objecte <code>Error</code> en si mateix, així com el seu ús com funció constructora. Per a un llistat de les propietats i mètodes heretats per les instàncies de <code>Error</code>, vegeu {{jsxref("Error.prototype")}}.</p> + +<h3 id="Error_types" name="Error_types">Tipus d'errors</h3> + +<p>A més del construtor genèric <code>Error</code> hi ha altres sis constructors d'errors que formen part del nucli de JavaScript. Per a excepcions al cantó del client vegeu <a href="/en-US/docs/Web/JavaScript/Guide/Statements#Exception_Handling_Statements">Sentències manegadores d'excepcions</a>.</p> + +<dl> + <dt>{{jsxref("Global_Objects/EvalError", "EvalError")}}</dt> + <dd>Crea una instància que representa un error que succeeix a l'emprar la funció global {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("Global_Objects/InternalError", "InternalError")}} {{non-standard_inline}}</dt> + <dd>Crea una instància que representa un error que succeeix quan es llença un error intern des del motor de JavaScript. Per exemple: "massa recursivitat".</dd> + <dt>{{jsxref("Global_Objects/RangeError", "RangeError")}}</dt> + <dd>Crea una instància que representa un error que succeeix quan una variable numèrica o paràmetre està fora del seu rang vàlid.</dd> + <dt>{{jsxref("Global_Objects/ReferenceError", "ReferenceError")}}</dt> + <dd>Crea una instància que representa un error que succeeix quan es deixa de referenciar una referència invàlida.</dd> + <dt>{{jsxref("Global_Objects/SyntaxError", "SyntaxError")}}</dt> + <dd>Crea una instància que representa un error de sintaxi que succeeix a l'interpretar codi dins {{jsxref("Global_Objects/eval", "eval()")}}.</dd> + <dt>{{jsxref("Global_Objects/TypeError", "TypeError")}}</dt> + <dd>Crea una instància que representa un error que succeeix quan una variable o paràmetre és d'un tipus no vàlid.</dd> + <dt>{{jsxref("Global_Objects/URIError", "URIError")}}</dt> + <dd>Crea un error que representa un error que succeeix quan {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} o {{jsxref("Global_Objects/decodeURI", "decodeURl()")}} reben paràmetres invàlids.</dd> +</dl> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("Error.prototype")}}</dt> + <dd>Permet afegir propietats a instàncies <code>Error</code>.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<p>L'objecte global Error no contè mètodes propis. Tot i així, hereta alguns mètodes a través de la cadena de prototipus.</p> + +<h2 id="Error_instances" name="Error_instances"><code>Instàncies Error</code></h2> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Descripció')}}</div> + +<h3 id="Propietats">Propietats</h3> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Propietats')}}</div> + +<h3 id="Mètodes">Mètodes</h3> + +<div>{{page('ca/docs/JavaScript/Reference/Global_Objects/Error/prototype', 'Mètodes')}}</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_generic_error" name="Example:_Throwing_a_generic_error">Exemple: Llençar un error genèric</h3> + +<p>Normalment hom crea un objecte Error amb la intenció de llençar-lo tot emprant la paraula clau {{jsxref("Statements/throw", "throw")}}. Els errors es poden manegar utilitzant la construcció {{jsxref("Statements/try...catch", "try...catch")}}:</p> + +<pre class="brush: js">try { + throw new Error('Oooops!'); +} catch (e) { + alert(e.name + ': ' + e.message); +} +</pre> + +<h3 id="Example:_Handling_a_specific_error" name="Example:_Handling_a_specific_error">Exemple: Manegar un error específic</h3> + +<p><span class="comment">this should probably be removed</span>Es pot escollir fer-se càrrec només de tipus d'errors específics comparant el tipus d'error amb la propietat {{jsxref("Object.prototype.constructor", "constructor")}} de l'error o bé, si s'està escrivint el codi per a motors JavaScript moderns, mitjançant la paraula clau {{jsxref("Operators/instanceof", "instanceof")}}:</p> + +<pre class="brush: js">try { + foo.bar(); +} catch (e) { + if (e instanceof EvalError) { + alert(e.name + ': ' + e.message); + } else if (e instanceof RangeError) { + alert(e.name + ': ' + e.message); + } + // ... etc +} +</pre> + +<h3 id="Exemple_Tipus_d'errors_personalitzats">Exemple: Tipus d'errors personalitzats</h3> + +<p>És possible definir tipus d'errors propis derivats de Error, llençar-los mitjançant <code>throw new MyError()</code> i utilitzar <code>instanceof MyError</code> per a comprovarel tipus d'error al manegador d'excepcions. A sota trobareu la forma més comuna de fer això.</p> + +<div class="warning"> +<p>Advertim que la instància <code>MyError</code> llençada reportarà <code>lineNumber</code> i <code>fileName</code> invàlids, com a mínim a Firefox.</p> +</div> + +<p>Vegeu també <a href="http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript">la discussió a StackOverflow "Quina és una bona forma d'extrendre Error a JavaScript?"</a>.</p> + +<pre class="brush: js">// Crea un nou objecte, que hereta del prototipus constructor Error. +function MyError(message) { + this.name = 'MyError'; + this.message = message || 'Missatge per defecte'; +} +MyError.prototype = Object.create(Error.prototype); +MyError.prototype.constructor = MyError; + +try { + throw new MyError(); +} catch (e) { + console.log(e.name); // 'MyError' + console.log(e.message); // 'Missatge per defecte' +} + +try { + throw new MyError('custom message'); +} catch (e) { + console.log(e.name); // 'MyError' + console.log(e.message); // 'Missatge per defecte' +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11', 'Error')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error-objects', 'Error')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype")}}</li> + <li>{{jsxref("Statements/throw", "throw")}}</li> + <li>{{jsxref("Statements/try...catch", "try...catch")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/linenumber/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/linenumber/index.html new file mode 100644 index 0000000000..7b85f29c19 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/linenumber/index.html @@ -0,0 +1,94 @@ +--- +title: Error.prototype.lineNumber +slug: Web/JavaScript/Referencia/Objectes_globals/Error/lineNumber +translation_of: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>lineNumber</strong></code> conté el nombre de la línia del fitxer que ha llençat aquest erro.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_custom_error" name="Example:_Throwing_a_custom_error">Exemple: Utilitzar <code>lineNumber</code></h3> + +<pre class="brush: js">var e = new Error('No he pogut interpretar l\'entrada'); +throw e; +console.log(e.lineNumber) // 2 +</pre> + +<h3 id="Example:_Alternative_example_using_error_event" name="Example:_Alternative_example_using_error_event">Exemple: Exemple alternatiu usant l'event <code>error</code></h3> + +<pre class="brush: js">window.addEventListener('error', function(e) { + console.log(e.lineno); // 5 +}); +var e = new Error('No he pogut interpretar l\'entrada'); +throw e; +</pre> + +<p>Això és standard i suportat per Chrome, Firefox i provablement altres.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. No és standard.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>On <code>error</code> object in handled errors</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.stack")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.columnNumber")}} {{non-standard_inline}}</li> + <li>{{jsxref("Error.prototype.fileName")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/message/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/message/index.html new file mode 100644 index 0000000000..4aa07268fa --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/message/index.html @@ -0,0 +1,110 @@ +--- +title: Error.prototype.message +slug: Web/JavaScript/Referencia/Objectes_globals/Error/message +translation_of: Web/JavaScript/Reference/Global_Objects/Error/message +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>message</strong></code> és una descripció en un format amigable pels humans de l'error.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Aquesta propietat conté una breu descripció de l'error sempre i quan estigui disponible o hagi sigut assignada. <a href="/ca/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> fa un ús extensiu de la propietat <code>message</code> per a excepcions. El mètode {{jsxref("Error.prototype.toString()")}} utilitza la propietat <code>message</code> combinada amb la propietat {{jsxref("Error.prototype.name", "name")}} per a crear una representació de l'error.</p> + +<p>Per defecte la propietat <code>message</code> és un string buit, però aquest comportament pot ser sobreescrit per una instàcia simplement passant un missatge com a primer argument del {{jsxref("Error", "constructor Error")}}.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_custom_error" name="Example:_Throwing_a_custom_error">Exemple: Llençar un error personalitzat</h3> + +<pre class="brush: js">var e = new Error('No he pogut interpretar l\'entrada'); // e.message valdrà 'No he pogut interpretar l\'entrada' +throw e; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.name")}}</li> + <li>{{jsxref("Error.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/name/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/name/index.html new file mode 100644 index 0000000000..995ecafd5f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/name/index.html @@ -0,0 +1,111 @@ +--- +title: Error.prototype.name +slug: Web/JavaScript/Referencia/Objectes_globals/Error/name +translation_of: Web/JavaScript/Reference/Global_Objects/Error/name +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>name</strong></code> representa un nom per al tipus de error. El valor que rep inicialment aquesta propietat és "Error".</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Per defecte, les instàncies de {{jsxref("Error")}} reben el nom "Error". El mètode <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/toString" title="Aquesta pàgina encara no ha estat traduïda. Si us plau consideri contribuir-hi!"><code>Error.prototype.toString()</code></a> utilitza la propietat <code>name</code> combinada amb la propietat <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_standard/Error/message" title="Aquesta pàgina encara no ha estat traduïda. Si us plau consideri contribuir-hi!"><code>message</code></a> per a crear una representació de l'error.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Throwing_a_custom_error" name="Example:_Throwing_a_custom_error">Exemple: Llençar un error personalitzat</h3> + +<pre class="brush: js">var e = new Error('Entrada no vàlida'); // e.name is 'Error' + +e.name = 'ParseError'; +throw e; +// e.toString() would return 'ParseError: Entrada no vàlida' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.4.2', 'Error.prototype.name')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error.prototype.name', 'Error.prototype.name')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.message")}}</li> + <li>{{jsxref("Error.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/prototype/index.html new file mode 100644 index 0000000000..a4dee42923 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/prototype/index.html @@ -0,0 +1,150 @@ +--- +title: Error.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Error/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Error +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <code><strong>Error.prototype</strong></code> representa el prototipus per al constructor {{jsxref("Global_Objects/Error", "Error")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Totes les instàncies de {{jsxref("Global_Objects/Error", "Error")}} i les instàncies de {{jsxref("Global_Objects/Error", "non-generic errors", "#Error_types", 1)}} heretèn de <code>Error.prototype</code>. Com totes les funcions constructores, es pot utilitzar el prototipus del constructor per a afegir propietats o mètodes a totes les instànces creades amb aquest constructor.</p> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<h3 id="Standard_properties" name="Standard_properties">Propietats standard</h3> + +<dl> + <dt><code>Error.prototype.constructor</code></dt> + <dd>Especifica la funció que ha creat la instància del prototipus.</dd> + <dt>{{jsxref("Error.prototype.message")}}</dt> + <dd>Missatge d'error.</dd> + <dt>{{jsxref("Error.prototype.name")}}</dt> + <dd>Nom de l'error.</dd> +</dl> + +<h3 id="Vendor-specific_extensions" name="Vendor-specific_extensions">Extensions específiques del venedor</h3> + +<div>{{non-standard_header}}</div> + +<h4 id="Microsoft" name="Microsoft">Microsoft</h4> + +<dl> + <dt>{{jsxref("Error.prototype.description")}}</dt> + <dd>Descripció de l'error. Similar a {{jsxref("Error.prototype.message", "message")}}.</dd> + <dt>{{jsxref("Error.prototype.number")}}</dt> + <dd>Nombre de l'error.</dd> +</dl> + +<h4 id="Mozilla" name="Mozilla">Mozilla</h4> + +<dl> + <dt>{{jsxref("Error.prototype.fileName")}}</dt> + <dd>Ruta al fitxer que ha llençat l'error.</dd> + <dt>{{jsxref("Error.prototype.lineNumber")}}</dt> + <dd>Línia del fitxer que ha llençat l'error.</dd> + <dt>{{jsxref("Error.prototype.columnNumber")}}</dt> + <dd>Nombre de columna de la línia que ha llençat l'error.</dd> + <dt>{{jsxref("Error.prototype.stack")}}</dt> + <dd>Conté la traça de l'error.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>{{jsxref("Error.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna un string que conté el codi font de l'objecte {{jsxref("Global_Objects/Error", "Error")}} especificat; es pot emprar aquest valor per a crear un objecte nou. Sobreescriu el mètode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Error.prototype.toString()")}}</dt> + <dd>Retorna un string que representa l'objecte especificat. Sobreescriu el mètode {{jsxref("Object.prototype.toString()")}}.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.3.1', 'Error')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error.prototype', 'Error')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error")}}</li> + <li>{{jsxref("Object.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/stack/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/stack/index.html new file mode 100644 index 0000000000..aa41949423 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/stack/index.html @@ -0,0 +1,161 @@ +--- +title: Error.prototype.stack +slug: Web/JavaScript/Referencia/Objectes_globals/Error/Stack +translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}} {{non-standard_header}}</div> + +<h2 id="Resum">Resum</h2> + +<p>La propietat no standard <strong><code>stack</code></strong> dels objectes {{jsxref("Error")}} ofereix una traça de quines funcions han estat cridades, en quin ordre, des de quina línia i fitxer, i amb quins arguments. La stack, en forma de string, va de les crides més recent a les més antigues, fins a arribar a la crida original del context global.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Cada pas estarà separat per una nova línia, on la primera part de cada línia és el nom de la funció (si no es tracta d'una crida des del context global), seguit per pel símbol arroba (@), la ruta del fitxer (excepte quan la funció és la funció constructora de l'error mentre s'està llençant l'error), un punt i coma, i, si hi ha una ruta de fitxer, el nombre de línia. Fixeu-vos que l'objecte {{jsxref("Error")}} també disposa de les propietats <code>filename</code>, <code>lineNumber</code> i <code>columnNumber</code> de l'error llençat (però no de la traça).</p> + +<p>Cal remarcar que aquest és el format utilitzat per Firefox. No hi ha un formateig standard. Tot i així, Safari 6+ i Opera 12- utilitzen un format molt similar. Els navegadors que utilitzen el motor de JavaScript V8 (com ara Chrome, Opera 15+ i el navegador de Android), així com IE10+, d'altra banda, utilitzen un format diferent (vegeu el document de la MSDN <a class="external" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh699850.aspx">error.stack</a>).</p> + +<p><strong>Valors dels arguments a la pila</strong>: Abans del ({{bug("744842")}}) de Firefox 14, el nom de la funció anava seguit dels valors dels arguments convertits a string entre parèntesi immediatament abans de l'arroba (@). Un objecte (o un array, etc) apareixeria en la forma convertida <code>"[object Object]"</code>, i en conseqüència no podria ser evaluada de nou en objectes. Si que es poden obtenir els valors escalars (tot i que resulta més senzill utilitzar <code>arguments.callee.caller.arguments</code>, així com es pot trobar el nom de la funció a <code>arguments.callee.caller.name</code>). <code>"undefined"</code> apareix com a <code>"(void 0)"</code>. Cal tenir en compte que si s'han passat arguments de tipus string que continguin caracters com ara <code>"@"</code>, <code>"("</code>, <code>")"</code> (o bé noms de fitxers), resulta força complicat utiltizar-los per a trencar la línia en les diferents parts que la composen. Degut a això, a partir de Firefox 14 això deixa de ser un problema.</p> + +<h2 id="Exemple">Exemple</h2> + +<p>El següent codi HTML mostra l'ús de la propietat <code>stack</code>.</p> + +<pre class="brush: html"><!DOCTYPE HTML> +<meta charset="UTF-8"> +<title>Exemple de pila de traça</title> +<body> +<script> +function trace() { + try { + throw new Error('myError'); + } + catch(e) { + alert(e.stack); + } +} +function b() { + trace(); +} +function a() { + b(3, 4, '\n\n', undefined, {}); +} +a('primera crida, primerArgument'); +</script> +</pre> + +<p>Assumint que el codi resideix al fitxer <code>C:\exemple.html</code> en un sistema de fitxers de Windows, aquest generarà un missatge d'alerta amb el text següent:</p> + +<p>A partir de Firefox 30 contindrà el nombre de la columna ({{bug("762556")}}):</p> + +<pre><samp>trace@file:///C:/exemple.html:9:17 +b@file:///C:/exemple.html:16:13 +a@file:///C:/exemple.html:19:13 +@file:///C:/exemple.html:21:9</samp></pre> + +<p>Firefox 14 a Firefox 29:</p> + +<pre><samp>trace@file:///C:/exemple.html:9 +b@file:///C:/exemple.html:16 +a@file:///C:/exemple.html:19 +@file:///C:/exemple.html:21</samp></pre> + +<p>Per contra, Firefox 13 i versions prèvies produian el següent text:</p> + +<pre><samp>Error("myError")@:0 +trace()@file:///C:/exemple.html:9 +b(3,4,"\n\n",(void 0),[object Object])@file:///C:/exemple.html:16 +a("primera crida, primerArgument")@file:///C:/exemple.html:19 +@file:///C:/exemple.html:21</samp></pre> + +<h3 id="Pila_de_codi_evaluat">Pila de codi evaluat</h3> + +<p>A partir de Firefox 30 {{geckoRelease("30")}}, la pila d'error pertanyent a codi dins de crides a <code>Function()</code> i <code>eval()</code> conté informació més detallada sobre la línia i la columna que ha produït l'error dins aquestes crides. Les crides a funcions s'indiquen amb <code>"> Function"</code> i les crides a eval amb <code>"> eval"</code>. Vegeu {{bug("332176")}}.</p> + +<pre class="brush: js">try { + new Function('throw new Error()')(); +} catch (e) { + console.log(e.stack); +} + +// anonymous@file:///C:/exemple.html line 7 > Function:1:1 +// @file:///C:/example.html:7:6 + + +try { + eval("eval('FAIL')"); +} catch (x) { + console.log(x.stack); +} + +// @file:///C:/exemple.html line 7 > eval line 1 > eval:1:1 +// @file:///C:/exemple.html line 7 > eval:1:1 +// @file:///C:/exemple.html:7:6 +</pre> + +<p>També podeu utilitzar la directiva <code>//# sourceURL</code> per a donar nom a codi eval. Vegeu també <a href="/en-US/docs/Tools/Debugger/How_to/Debug_eval_sources">Depurar codi eval</a> als documents de <a href="/en-US/docs/Tools/Debugger">Depurar</a> així com en aquesta <a href="http://fitzgeraldnick.com/weblog/59/">entrada d'un bloc</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap especificació. No és standard.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatIE("10")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatSafari("6")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>Android 4 (potser Android 3, però en cap cas Android 2)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatSafari("6")}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Components.stack">Components.stack</a></li> + <li>Projectes externs: <a class="link-https" href="https://github.com/csnover/TraceKit/">TraceKit</a> i<a class="link-https" href="https://github.com/eriwen/javascript-stacktrace">javascript-stacktrace</a></li> + <li>MSDN: documents <a class="external" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh699850.aspx" title="http://msdn.microsoft.com/en-us/library/windows/apps/hh699850.aspx">error.stack</a></li> + <li><a href="https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi">Un cop d'ull a la API de traça de pila del motor JavaScript V8</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/tosource/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/tosource/index.html new file mode 100644 index 0000000000..c766aa312b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/tosource/index.html @@ -0,0 +1,91 @@ +--- +title: Error.prototype.toSource() +slug: Web/JavaScript/Referencia/Objectes_globals/Error/toSource +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource +--- +<div>{{JSRef}} {{non-standard_header}}</div> + +<p>El mètode <code><strong>toSource()</strong></code> reotrna codi capaç de generar el mateix error en case de ser evaluat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>e</var>.toSource()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>La crida al mètode <code>toSource</code> d'una instància d'{{jsxref("Error")}}(incloent <em><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types">NativeErrors</a></em>) retorna un string que conté el codi font de l'error. Aquest string pot ser evaluat per a crear un objecte (aproximadament) igual. Per defecte la string contenint el codi font segueix l'estructura del construtor {{jsxref("Error")}}. Per exemple:</p> + +<pre class="brush: js">(new<em>name</em>(<em>message</em> ,<em>fileName</em>,<em>lineNumber</em>)) +</pre> + +<p>on aquests atributs corresponen a les propietats de la instància de l'error, respectivament.</p> + +<div class="note"> +<p><strong>Advertència:</strong> Cal tenir en compte que les propietats utilitzades pel mètode <code>toSource</code> a l'hora de crear l'string són mutables i per tant poden no representar de forma acurada la funció utilitzada per a crear la instància de l'error, el nom del fitxer o el nombre de la línia on l'error real ha tingut lloc.</p> +</div> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap standard. Implementat a JavaScript 1.3.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.fileName")}}</li> + <li>{{jsxref("Error.prototype.lineNumber")}}</li> + <li>{{jsxref("Error.prototype.message")}}</li> + <li>{{jsxref("Error.prototype.name")}}</li> + <li>{{jsxref("Object.prototype.toSource()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/error/tostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/error/tostring/index.html new file mode 100644 index 0000000000..79fd20f77f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/error/tostring/index.html @@ -0,0 +1,146 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Referencia/Objectes_globals/Error/toString +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString +--- +<div>{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El mètode <code><strong>toString()</strong></code> retorna un string que representa l'error especificat per l'objecte {{jsxref("Error")}}.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>e</var>.toString()</code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>L'objecte {{jsxref("Error")}} sobreescriu el mètode {{jsxref("Object.prototype.toString()")}} heretat per tots els objectes. La seva semàntica és la següent (suposant que {{jsxref("Object")}} i {{jsxref("String")}} tenen els seus valors originals):</p> + +<pre class="brush: js">Error.prototype.toString = function() { + 'use strict'; + + var obj = Object(this); + if (obj !== this) { + throw new TypeError(); + } + + var name = this.name; + name = (name === undefined) ? 'Error' : String(name); + + var msg = this.message; + msg = (msg === undefined) ? '' : String(msg); + + if (name === '') { + return msg; + } + if (msg === '') { + return name; + } + + return name + ': ' + msg; +}; +</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: js">var e = new Error('fatal error'); +print(e.toString()); // 'Error: fatal error' + +e.name = undefined; +print(e.toString()); // 'Error: fatal error' + +e.name = ''; +print(e.toString()); // 'fatal error' + +e.message = undefined; +print(e.toString()); // 'Error' + +e.name = 'hello'; +print(e.toString()); // 'hello' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.4.4', 'Error.prototype.toString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype.toSource()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/index.html b/files/ca/web/javascript/referencia/objectes_globals/index.html new file mode 100644 index 0000000000..60bd0333f7 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/index.html @@ -0,0 +1,167 @@ +--- +title: Objectes Standard +slug: Web/JavaScript/Referencia/Objectes_globals +translation_of: Web/JavaScript/Reference/Global_Objects +--- +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>Aquest capítol llista tots els objectes que Javascript proporciona per defecte, així com els seus mètodes i propietats.</p> + +<div class="onlyinclude"> +<p>És important no confondre el terme "objectes globals" (també anomenats objectes <em>standard</em> o <em>built-in</em>) amb <em>objecte global</em>. En aquesta pàgina <em>objecte global</em> es refereix a <em>objectes en l'àmbit global</em> (però només si no s'utilitza el mode estricte de ECMAScript 5! En qualsevol altre cas retorna <code>undefined</code>). Es pot accedir a l'<em>objecte global</em> en si mateix mitjançant l'operador {{jsxref("Referencia/Objectes_standard/this", "this")}} en l'àmbit global. De fet l'àmbit global <em>consisteix </em>en les propietats de l'objecte global (propietats heredades incloses, si s'escau).</p> + +<p>Altres objectes en l'àmbit global són o bé <a href="/ca/docs/Web/JavaScript/Guide/Working_with_Objects#Creating_new_objects">creats per l'script de l'usuari</a> o bé proporcionats per l'aplicació del <em>host</em>. Els objectes proporcionats pel <em>host </em>disponibles en els àmbits del navegador estan documentats a la <a href="/ca/docs/Web/API/Reference">referència de la API</a>.</p> + +<h2 id="Objectes_standard_(per_categoria)">Objectes standard (per categoria)</h2> + +<h3 id="Propietats_de_valor">Propietats de valor</h3> + +<p>Propietats globals que retornen un valor simple.</p> + +<ul> + <li>{{jsxref("Infinity")}}</li> + <li>{{jsxref("NaN")}}</li> + <li>{{jsxref("undefined")}}</li> + <li>El literal {{jsxref("null")}}</li> +</ul> + +<h3 id="Funcions_globals">Funcions globals</h3> + +<p>Funcions globals que retornen el resultat d'una rutina específica.</p> + +<ul> + <li>{{jsxref("eval", "eval()")}}</li> + <li>{{jsxref("uneval", "uneval()")}} {{non-standard_inline()}}</li> + <li>{{jsxref("isFinite", "isFinite()")}}</li> + <li>{{jsxref("isNaN", "isNaN()")}}</li> + <li>{{jsxref("parseFloat", "parseFloat()")}}</li> + <li>{{jsxref("parseInt", "parseInt()")}}</li> + <li>{{jsxref("decodeURI", "decodeURI()")}}</li> + <li>{{jsxref("decodeURIComponent", "decodeURIComponent()")}}</li> + <li>{{jsxref("encodeURI", "encodeURI()")}}</li> + <li>{{jsxref("encodeURIComponent", "encodeURIComponent()")}}</li> + <li>{{jsxref("escape", "escape()")}} {{deprecated_inline()}}</li> + <li>{{jsxref("unescape", "unescape()")}} {{deprecated_inline()}}</li> +</ul> + +<h3 id="Objectes_fonamentals">Objectes fonamentals</h3> + +<p>Objectes generals del llenguatge, funcions i errors.</p> + +<ul> + <li>{{jsxref("Object")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Boolean")}}</li> + <li>{{jsxref("Symbol")}} {{experimental_inline()}}</li> + <li>{{jsxref("Error")}}</li> + <li>{{jsxref("EvalError")}}</li> + <li>{{jsxref("InternalError")}}</li> + <li>{{jsxref("RangeError")}}</li> + <li>{{jsxref("ReferenceError")}}</li> + <li>{{jsxref("SyntaxError")}}</li> + <li>{{jsxref("TypeError")}}</li> + <li>{{jsxref("URIError")}}</li> +</ul> + +<h3 id="Nombres_i_dates">Nombres i dates</h3> + +<p>Objectes que emmagatzemen nombres, dades i càlculs matemàtics.</p> + +<ul> + <li>{{jsxref("Number")}}</li> + <li>{{jsxref("Math")}}</li> + <li>{{jsxref("Date")}}</li> +</ul> + +<h3 id="Processament_de_text">Processament de text</h3> + +<p>Objectes per manipular text.</p> + +<ul> + <li>{{jsxref("String")}}</li> + <li>{{jsxref("RegExp")}}</li> +</ul> + +<h3 id="Col·leccions_indexades">Col·leccions indexades</h3> + +<p>Col·leccions ordenades per un índex. Objectes de tipus array.</p> + +<ul> + <li>{{jsxref("Array")}}</li> + <li>{{jsxref("Int8Array")}}</li> + <li>{{jsxref("Uint8Array")}}</li> + <li>{{jsxref("Uint8ClampedArray")}}</li> + <li>{{jsxref("Int16Array")}}</li> + <li>{{jsxref("Uint16Array")}}</li> + <li>{{jsxref("Int32Array")}}</li> + <li>{{jsxref("Uint32Array")}}</li> + <li>{{jsxref("Float32Array")}}</li> + <li>{{jsxref("Float64Array")}}</li> +</ul> + +<h3 id="Diccionaris_(mapes)">Diccionaris (mapes)</h3> + +<p>Col·leccions d'objectes de tipus diccionari (també coneguts com a mapes o col·leccions d'entrades clau-valor). Els elements són iterables per ordre d'inserció.</p> + +<ul> + <li>{{jsxref("Map")}} {{experimental_inline()}}</li> + <li>{{jsxref("Set")}} {{experimental_inline()}}</li> + <li>{{jsxref("WeakMap")}} {{experimental_inline()}}</li> + <li>{{jsxref("WeakSet")}} {{experimental_inline()}}</li> +</ul> + +<h3 id="Dades_estructurades">Dades estructurades</h3> + +<p>Buffers de dades i <strong>J</strong>ava<strong>S</strong>cript <strong>O</strong>bject <strong>N</strong>otation.</p> + +<ul> + <li>{{jsxref("ArrayBuffer")}}</li> + <li>{{jsxref("DataView")}}</li> + <li>{{jsxref("JSON")}}</li> +</ul> + +<h3 id="Objectes_d'abstracció_de_control">Objectes d'abstracció de control</h3> + +<ul> + <li>{{jsxref("Promise")}} {{experimental_inline()}}</li> +</ul> + +<h3 id="Reflexió">Reflexió</h3> + +<ul> + <li>{{jsxref("Reflect")}} {{experimental_inline()}}</li> + <li>{{jsxref("Proxy")}} {{experimental_inline()}}</li> +</ul> + +<h3 id="Internacionalització">Internacionalització</h3> + +<p>Adicions al nucli de ECMAScript per a funcionalitats sensibles a l'idioma.</p> + +<ul> + <li>{{jsxref("Intl")}}</li> + <li>{{jsxref("Collator", "Intl.Collator")}}</li> + <li>{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}</li> + <li>{{jsxref("NumberFormat", "Intl.NumberFormat")}}</li> +</ul> + +<h3 id="Objectes_no-standard">Objectes no-standard</h3> + +<ul> + <li>{{jsxref("Generator")}} {{non-standard_inline()}}</li> + <li>{{jsxref("Iterator")}} {{non-standard_inline()}}</li> + <li>{{jsxref("ParallelArray")}} {{non-standard_inline()}}</li> + <li>{{jsxref("StopIteration")}} {{non-standard_inline()}}</li> +</ul> + +<h3 id="Altres">Altres</h3> + +<ul> + <li><code><a href="/ca/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a></code></li> +</ul> +</div> + +<p> </p> diff --git a/files/ca/web/javascript/referencia/objectes_globals/infinity/index.html b/files/ca/web/javascript/referencia/objectes_globals/infinity/index.html new file mode 100644 index 0000000000..409609bfd2 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/infinity/index.html @@ -0,0 +1,114 @@ +--- +title: Infinity +slug: Web/JavaScript/Referencia/Objectes_globals/Infinity +translation_of: Web/JavaScript/Reference/Global_Objects/Infinity +--- +<div> +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat global <code><strong>Infinity</strong></code> és un valor numèric que representa l'infinit.</p> + +<p>{{js_property_attributes(0,0,0)}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Infinity </code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p><code>Infinity</code> és una propietat de l'<em>objecte global</em>, és a dir, és una variable dins l'àmbit global.</p> + +<p>El valor inical de <code>Infinity</code> és {{jsxref("Number.POSITIVE_INFINITY")}}. El valor <code>Infinity</code> (infinit positiu) és major que qualsevol altre nombre. Aquest valor es comporta matemàticament com l'infinit; per exemple, qualsevol nombre positiu multiplicat per<code> Infinity</code> dóna com a resultat <code>Infinity</code>, qualsevol valor dividit per <code>Infinity</code> dóna 0.</p> + +<p>Tal i com la especificació ECMAScript 5 defineix, <code>Infinity</code> no pot ser sobreescrit (implementat a JavaScript 1.8.5 / Firefox 4).</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.1.1.2', 'Infinity')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.NEGATIVE_INFINITY")}}</li> + <li>{{jsxref("Number.POSITIVE_INFINITY")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/json/index.html b/files/ca/web/javascript/referencia/objectes_globals/json/index.html new file mode 100644 index 0000000000..efc86409e6 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/json/index.html @@ -0,0 +1,242 @@ +--- +title: JSON +slug: Web/JavaScript/Referencia/Objectes_globals/JSON +translation_of: Web/JavaScript/Reference/Global_Objects/JSON +--- +<div>{{JSRef("Global_Objects", "JSON")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'objecte <strong><code>JSON</code></strong> conté mètodes per a interpretar <a class="external" href="http://json.org/">JavaScript Object Notation</a> ({{glossary("JSON")}}) i convertir valors a JSON. Aquest objecte no pot ser cridat o construit, i a banda dels seus dos mètodes no té cap més funcionalitat o interès.</p> + +<p>and converting values to JSON. It can't be called or constructed, and aside from its two method properties it has no interesting functionality of its own.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<h3 id="JavaScript_Object_Notation" name="JavaScript_Object_Notation">JavaScript Object Notation</h3> + +<p>JSON és una sintaxi que permet serialitzar objectes, arrays, nombres, strings, booleans i {{jsxref("null")}}. Està basada en la sintaxi de JavaScript però és diferent: algunes parts de JavaScript no són convertibles a JSON i algunes de JSON no ho són a JavaScript. Vegeu també <a href="http://timelessrepo.com/json-isnt-a-javascript-subset">JSON: El subconjunt de JavaScript que no ho és</a>.</p> + +<table> + <caption>Diferències entre JavaScript i JSON</caption> + <thead> + <tr> + <th scope="col">Tipus a JavaScript</th> + <th scope="col">Diferències a JSON</th> + </tr> + </thead> + <tbody> + <tr> + <td>Objectes i Arrays</td> + <td>Els noms de les propietats han de estar embolcallats per cometes dobles; les cometes simples estan prohibides</td> + </tr> + <tr> + <td>Nombres</td> + <td>No són permesos zeros a l'esquerra; els nombres decimals separent la part sencera amb un punt i han de tindre al menys un digit decimal.</td> + </tr> + <tr> + <td>Strings</td> + <td> + <p>Només es pot escapar un grup limitat de caràcters; alguns caràcters de control no són permesos; el separador de línies Unicode (<a href="http://unicode-table.com/en/2028/">U+2028</a>) i el separador de paràgrafs (<a href="http://unicode-table.com/en/2029/">U+2029</a>) són permesos; les strings han d'estar embolcallades per cometes dobles. Vegeu l'exemple següent on {{jsxref("JSON.parse()")}} funciona correctament i es llença un {{jsxref("SyntaxError")}} a l'avaluar el codi com a JavaScript:</p> + + <pre class="brush: js"> +var code = '"\u2028\u2029"'; +JSON.parse(code); // funciona correctament +eval(code); // falla +</pre> + </td> + </tr> + </tbody> +</table> + +<p>La sintaxi completa de JSON és la següent:</p> + +<pre><var>JSON</var> = <strong>null</strong> + <em>o</em> <strong>true</strong> <em>o</em> <strong>false</strong> + <em>o</em> <var>JSONNumber</var> + <em>o</em> <var>JSONString</var> + <em>o</em> <var>JSONObject</var> + <em>o</em> <var>JSONArray</var> + +<var>JSONNumber</var> = <strong>-</strong> <var>PositiveNumber</var> + <em>o</em> <var>PositiveNumber</var> +<var>PositiveNumber</var> = DecimalNumber + <em>o</em> <var>DecimalNumber</var> <strong>.</strong> <var>Digits</var> + <em>o</em> <var>DecimalNumber</var> <strong>.</strong> <var>Digits</var> <var>ExponentPart</var> + <em>o</em> <var>DecimalNumber</var> <var>ExponentPart</var> +<var>DecimalNumber</var> = <strong>0</strong> + <em>o</em> <var>OneToNine</var> <var>Digits</var> +<var>ExponentPart</var> = <strong>e</strong> <var>Exponent</var> + <em>o</em> <strong>E</strong> <var>Exponent</var> +<var>Exponent</var> = <var>Digits</var> + <em>o</em> <strong>+</strong> <var>Digits</var> + <em>o</em> <strong>-</strong> <var>Digits</var> +<var>Digits</var> = <var>Digit</var> + <em>o</em> <var>Digits</var> <var>Digit</var> +<var>Digit</var> = <strong>0</strong> through <strong>9</strong> +<var>OneToNine</var> = <strong>1</strong> through <strong>9</strong> + +<var>JSONString</var> = <strong>""</strong> + <em>o</em> <strong>"</strong> <var>StringCharacters</var> <strong>"</strong> +<var>StringCharacters</var> = <var>StringCharacter</var> + <em>o</em> <var>StringCharacters</var> <var>StringCharacter</var> +<var>StringCharacter</var> = qualsevol caràcter excepte + <strong>"</strong> <em>o</em> <strong>\</strong> <em>o</em> U+0000 fins a U+001F + <em>o</em> <var>EscapeSequence</var> +<var>EscapeSequence</var> = <strong>\"</strong> <em>o</em> <strong>\/</strong> <em>o</em> <strong>\\</strong> <em>o</em> <strong>\b</strong> <em>o</em> <strong>\f</strong> <em>o</em> <strong>\n</strong> <em>o</em> <strong>\r</strong> <em>o</em> <strong>\t</strong> + <em>o</em> <strong>\u</strong> <var>HexDigit</var> <var>HexDigit</var> <var>HexDigit</var> <var>HexDigit</var> +<var>HexDigit</var> = <strong>0</strong> fins a <strong>9</strong> + <em>o</em> <strong>A</strong> fins a <strong>F</strong> + <em>o</em> <strong>a</strong> fins a <strong>f</strong> + +<var>JSONObject</var> = <strong>{</strong> <strong>}</strong> + <em>o</em> <strong>{</strong> <var>Members</var> <strong>}</strong> +<var>Members</var> = <var>JSONString</var> <strong>:</strong> <var>JSON</var> + <em>o</em> <var>Members</var> <strong>,</strong> <var>JSONString</var> <strong>:</strong> <var>JSON</var> + +<var>JSONArray</var> = <strong>[</strong> <strong>]</strong> + <em>o</em> <strong>[</strong> <var>ArrayElements</var> <strong>]</strong> +<var>ArrayElements</var> = <var>JSON</var> + <em>o</em> <var>ArrayElements</var> <strong>,</strong> <var>JSON</var> +</pre> + +<p>Pot haver-hi espais en blanc sense significat a qualsevol lloc excepte dins un<code><var> JSONNumber</var></code> (el nombres no poden contenir espais) o <code><var>JSONString</var></code> (on s'interpreta com el caràcter corrsponen dins l'string, o causaria un error). Els caràcters tabulador (<a href="http://unicode-table.com/en/0009/">U+0009</a>), retorn de carro (<a href="http://unicode-table.com/en/000D/">U+000D</a>), nova línia (<a href="http://unicode-table.com/en/000A/">U+000A</a>), i l'espai (<a href="http://unicode-table.com/en/0020/">U+0020</a>) són els únics caràcters d'espai en blanc acceptats.</p> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>{{jsxref("JSON.parse()")}}</dt> + <dd>Interpreta una string com a JSON, opcionalment transforma el valor produït i les seves propietats, i retorna el valor.</dd> + <dt>{{jsxref("JSON.stringify()")}}</dt> + <dd>Retorna un JSON string corresponent al valor especificat, opcionalment només inclou determinades propietats o reemplaça el valor de propietats tal i com defineixi l'usuari.</dd> +</dl> + +<h2 id="Polyfill" name="Polyfill">Polyfill</h2> + +<p>L'objecte <code>JSON</code> no és suportat a navegadors antics. Aquest problema pot solventar-se insertant el codi següent al principi dels scripts, permetent l'ús de l'objecte <code>JSON</code> en implementacions on no hi ha suport natiu (com ara Internet Explorer 6).</p> + +<p>El següent algorisme emula l'objecte <code>JSON</code> natiu:</p> + +<pre class="brush: js">if (!window.JSON) { + window.JSON = { + parse: function(sJSON) { return eval('(' + sJSON + ')'); }, + stringify: (function () { + var toString = Object.prototype.toString; + var isArray = Array.isArray || function (a) { return toString.call(a) === '[object Array]'; }; + var escMap = {'"': '\\"', '\\': '\\\\', '\b': '\\b', '\f': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t'}; + var escFunc = function (m) { return escMap[m] || '\\u' + (m.charCodeAt(0) + 0x10000).toString(16).substr(1); }; + var escRE = /[\\"\u0000-\u001F\u2028\u2029]/g; + return function stringify(value) { + if (value == null) { + return 'null'; + } else if (typeof value === 'number') { + return isFinite(value) ? value.toString() : 'null'; + } else if (typeof value === 'boolean') { + return value.toString(); + } else if (typeof value === 'object') { + if (typeof value.toJSON === 'function') { + return stringify(value.toJSON()); + } else if (isArray(value)) { + var res = '['; + for (var i = 0; i < value.length; i++) + res += (i ? ', ' : '') + stringify(value[i]); + return res + ']'; + } else if (toString.call(value) === '[object Object]') { + var tmp = []; + for (var k in value) { + if (value.hasOwnProperty(k)) + tmp.push(stringify(k) + ': ' + stringify(value[k])); + } + return '{' + tmp.join(', ') + '}'; + } + } + return '"' + value.toString().replace(escRE, escFunc) + '"'; + }; + })() + }; +} +</pre> + +<p>Dos <a class="external" href="http://remysharp.com/2010/10/08/what-is-a-polyfill/">polyfills</a> complexos coneguts per a l'objecte <code>JSON</code> són <a class="link-https" href="https://github.com/douglascrockford/JSON-js">JSON2</a> i <a class="external" href="http://bestiejs.github.com/json3">JSON3</a>.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-json-object', 'JSON')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatIE("8.0")}}</td> + <td>{{CompatOpera("10.5")}}</td> + <td>{{CompatSafari("4.0")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>Basat en la <a class="external" href="http://kangax.github.com/es5-compat-table/">taula de compatibilitat de Kangax</a>.</p> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Date.prototype.toJSON()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/clear/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/clear/index.html new file mode 100644 index 0000000000..f29cc93eef --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/clear/index.html @@ -0,0 +1,104 @@ +--- +title: Map.prototype.clear() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/clear +translation_of: Web/JavaScript/Reference/Global_Objects/Map/clear +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>clear()</strong></code> esborra tots els elements d'un objecte de tipus <code>Map</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.clear();</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_clear">Utilitzar el mètode <code>clear</code></h3> + +<pre class="brush: js">var myMap = new Map(); +myMap.set("bar", "baz"); +myMap.set(1, "foo"); + +myMap.size; // 2 +myMap.has("bar"); // true + +myMap.clear(); + +myMap.size; // 0 +myMap.has("bar") // false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.clear', 'Map.prototype.clear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("19.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("19.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/delete/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/delete/index.html new file mode 100644 index 0000000000..01c1b2cf28 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/delete/index.html @@ -0,0 +1,109 @@ +--- +title: Map.prototype.delete() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/delete +translation_of: Web/JavaScript/Reference/Global_Objects/Map/delete +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>delete()</strong></code> elimina l'element especificat de l'objecte <code>Map.</code></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="brush: js">myMap.delete(clau);</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>clau</dt> + <dd>Necessari. La clau de l'element a eliminar de l'objecte <code>Map.</code></dd> +</dl> + +<h3 id="valor_Return">valor Return</h3> + +<p>Retorna <code>true</code> si un element de l'objecte <code>Map </code>s'ha eleminat amb èxit.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_delete">Utilitzar el mètode <code>delete</code></h3> + +<pre class="brush: js">var myMap = new Map(); +myMap.set("bar", "foo"); + +myMap.delete("bar"); // Retorna true. Eliminat satisfactòriament. +myMap.has("bar"); // Retorna false. L'element "bar" ja no és present. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.delete', 'Map.prototype.delete')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/entries/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/entries/index.html new file mode 100644 index 0000000000..d5f6942695 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/entries/index.html @@ -0,0 +1,104 @@ +--- +title: Map.prototype.entries() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/entries +translation_of: Web/JavaScript/Reference/Global_Objects/Map/entries +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>entries()</strong></code>retorna un nou objecte <code><strong>Iterator</strong></code> que conté la parella <code>[clau, valor]</code> per cadascun dels elements de l'objecte <code>Map</code> en l'ordre d'inserció.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.entries()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_entries()">Utilitzar <code>entries()</code></h3> + +<pre class="brush:js">var myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +var mapIter = myMap.entries(); + +console.log(mapIter.next().value); // ["0", "foo"] +console.log(mapIter.next().value); // [1, "bar"] +console.log(mapIter.next().value); // [Object, "baz"] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.entries', 'Map.prototype.entries')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("20") }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("20")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype.keys()")}}</li> + <li>{{jsxref("Map.prototype.values()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/foreach/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/foreach/index.html new file mode 100644 index 0000000000..7097bbee3d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/foreach/index.html @@ -0,0 +1,136 @@ +--- +title: Map.prototype.forEach() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/forEach +translation_of: Web/JavaScript/Reference/Global_Objects/Map/forEach +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>forEach()</strong></code> executa la funció proporcionada un cop epr cada parell clau/valor dins l'objecte <code>Map</code>, seguint l'ordre en el que han estat inserits.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.forEach(<em>callback</em>[, <em>thisArg</em>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>callback</code></dt> + <dd>Funció a executar per a cada element.</dd> + <dt><code>thisArg</code></dt> + <dd>Valor a utilitzar com a <code>this</code> mentre s'estigui executant executing <code>callback</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>forEach</code> executa la funció <code>callback</code> proporcionada un cop per a cada clau que existeixi dins el mapa. No s'invocarà la funció per a claus que hagin estat esborrades. Tanmateix si que s'executarà per a valors amb clau present però que el seu valor sigui <code>undefined</code>.</p> + +<p><code>callback</code> s'invocarà amb <strong>tres</strong><strong> arguments</strong>:</p> + +<ul> + <li>el <strong>valor de l'element</strong></li> + <li>la <strong>clau de l'element</strong></li> + <li>l'<strong>objecte </strong><strong><code>Map</code> que s'està recorrent</strong></li> +</ul> + +<p>Si es proporciona el paràmetre <code>thisArg</code> a la crida de <code>forEach</code>, aquest es passarà a <code>callback</code> quan s'invoqui per a ser utilitzat com a <code>this</code> dins la funció. En qualsevol altre cas el valor que rebrà <code>this</code> dins la funció <code>callback</code> serà <code>undefined</code>. El valor de <code>this</code> que serà finalment observable dins de <code>callback</code> és determinat d'acord a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this">les regles habituals per a determinar el valor de <code>this</code> observat dins d'una funció</a>.</p> + +<p>Cada valor serà visitat un cop, a no ser que hagi estat eliminat o tornar a afegir abans que el mètode <code>forEach</code> acabi. No s'invocarà <code>callback</code> per a valors eliminats abans de ser visitats. Si que es visitaran, però, valors nous afegits abans <code>forEach</code> no hagi acabat.</p> + +<p><code>forEach</code> executa la funció <code>callback</code> un cop per cada element de l'objecte <code>Map</code>; no retorna cap valor.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Mostrar_els_continguts_d'un_objecte_Map">Mostrar els continguts d'un objecte <code>Map</code></h3> + +<p>El codi següent mostra una línia per cada element d'un objecte <code>Map</code>:</p> + +<pre class="brush:js">function logMapElements(value, key, map) { + console.log("m[" + key + "] = " + value); +} +Map([["foo", 3], ["bar", {}], ["baz", undefined]]).forEach(logMapElements); +// mostra: +// "m[foo] = 3" +// "m[bar] = [object Object]" +// "m[baz] = undefined" +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-map.prototype.foreach', 'Map.prototype.forEach')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("25.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.forEach()")}}</li> + <li>{{jsxref("Set.prototype.forEach()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/get/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/get/index.html new file mode 100644 index 0000000000..ec345df059 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/get/index.html @@ -0,0 +1,116 @@ +--- +title: Map.prototype.get() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/get +translation_of: Web/JavaScript/Reference/Global_Objects/Map/get +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>get()</strong></code> retorna l'element especifciat d'un objecte <code>Map</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.get(clau);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>clau</dt> + <dd>Obligatori. La clau de l'element a retorna de l'objecte <code>Map</code>.</dd> +</dl> + +<h3 id="Valor_a_retornar">Valor a retornar</h3> + +<p>Retorna l'element associat a la clau especificada o bé <code>undefined</code> si no s'ha pogut trobar la clau dins l'objecte <code>Map</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_get">Utilitzar el mètode <code>get</code></h3> + +<pre class="brush: js">var myMap = new Map(); +myMap.set("bar", "foo"); + +myMap.get("bar"); // Retorna "foo". +myMap.get("baz"); // Retorna undefined. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.get', 'Map.prototype.get')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-map.prototype.get', 'Map.prototype.get')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("Map.prototype.set()")}}</li> + <li>{{jsxref("Map.prototype.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/has/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/has/index.html new file mode 100644 index 0000000000..d0ce1bec54 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/has/index.html @@ -0,0 +1,114 @@ +--- +title: Map.prototype.has() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/has +translation_of: Web/JavaScript/Reference/Global_Objects/Map/has +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>has()</strong></code> retorna un booleà que indica si existeix un element amb la clau especificada o no.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.has(clau);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>clau</dt> + <dd>Obligatori. La clau de l'element que es comprovarà si existeix o no dins l'objecte <code>Map</code>.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<dl> + <dt>Booleà</dt> + <dd>Retorna <code>true</code> si existeix un element amb la clau proporcionada dins l'objecte <code>Map</code>; retorna <code>false</code> en qualsevol altre cas.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_has">Utilitzar el mètode <code>has</code></h3> + +<pre class="brush: js">var myMap = new Map(); +myMap.set("bar", "foo"); + +myMap.has("bar"); // retorn true +myMap.has("baz"); // retorn false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.has', 'Map.prototype.has')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("Map.prototype.set()")}}</li> + <li>{{jsxref("Map.prototype.get()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/index.html new file mode 100644 index 0000000000..8e2bb647bd --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/index.html @@ -0,0 +1,385 @@ +--- +title: Map +slug: Web/JavaScript/Referencia/Objectes_globals/Map +translation_of: Web/JavaScript/Reference/Global_Objects/Map +--- +<div>{{JSRef("Global_Objects", "Map")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>L'objecte <strong><code>Map</code></strong> és un simple mapa de parelles clau/valor. Qualsevol valor (tant objectes com {{Glossary("Primitive", "primitive values")}}) poden fer-se servir tant com a clau com a valor.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>new Map([iterable]) +</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>iterable</code></dt> + <dd>Iterable és un Array o un altre objecte iterable els quals els seus elements són parelles clau/valor (Arrays de 2 elements). Cada parella clau/valor serà afegida al nou mapa. nul és tracta com a indefinit.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Un objecte Map pot iterar els seus elements en ordre d'inserció - un bucle <code>for..of</code> retornarà un array de <code>[key, value]</code> per cada iteració.</p> + +<h3 id="Igualtat_de_claus">Igualtat de claus</h3> + +<p>La igualtat de claus es basa en l'algorisme "mateix valor": <code>NaN</code> es considera igual a <code>NaN</code> (tot i que <code>NaN !== NaN</code>) i tots els altres valors es consideren iguals d'acord amb la semàntica de l'operador <code>===</code>. En versions anteriors a l'esborrany de l'ECMAScript 6 <code>-0</code> i <code>+0</code> es consideraven diferents (tot i que <code>-0 === +0</code>), aquest comportament s'ha canviat en versions posteriors i ha sigut adaptat al {{geckoRelease("29")}} ({{bug("952870")}}) i una <a href="https://code.google.com/p/v8/issues/detail?id=3069">versió diària de Chrome</a>.</p> + +<h3 id="Comparació_d'objectes_amb_mapes">Comparació d'objectes amb mapes</h3> + +<p>Els {{jsxref("Object", "Objects")}} son similars als <code>Maps</code> en el sentit que tots dos permeten assignar valors a claus, obtenir aquests valors, esborrar claus i detectar si una clau té un valor assignat o no. Degut a això, històricament s'han fet anar <code>Objects</code> com a <code>Maps</code>; tot i això existeixen diferències importants entre <code>Objects</code> i <code>Maps</code> que fan que l'ús de <code>Map</code> sigui millor.</p> + +<ul> + <li>Un <code>Object</code> té un prototipus, això implica que hi haurà algunes claus definides inicialment. Aquest problem es pot adreçar utilitzant <code>map = Object.create(null)</code>.</li> + <li>Les claus d'un <code>Object</code> són {{jsxref("String", "Strings")}}, mentre que les claus d'un <code>Map</code> poden ser de qualsevol tipus.</li> + <li>És fàcil obtindre el tamany d'un <code>Map</code> mentre que el tamany d'un <code>Object</code> ha de ser calculat manualment.</li> +</ul> + +<p>Utilitzeu mapes en comptes d'objejctes quan les claus no se sàpiguin en temps d'execució, o bé quan totes les claus o els valors siguin del mateix tipus.</p> + +<p>Utilitzeu objectes quan hi hagi una lògica que operi els elements individualment.</p> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt><code>Map.length</code></dt> + <dd>El valor de la propietat <code>length</code> és 1.</dd> + <dt>{{jsxref("Map.prototype")}}</dt> + <dd>Representa el prototipus pel constructor <code>Map</code>. Permet afegir propietats a tots els objectes de tipus <code>Map</code>.</dd> +</dl> + +<h2 id="Boolean_instances" name="Boolean_instances">Instàncies de <code>Map</code></h2> + +<p>Totes les instàncies de <code>Map</code> hereten de {{jsxref("Map.prototype")}}.</p> + +<h3 id="Propietats">Propietats</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/Map/prototype','Propietats')}}</p> + +<h3 id="Mètodes">Mètodes</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/Map/prototype','Mètodes')}}</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Utilitzar_l'objecte_Map">Exemple: Utilitzar l'objecte <code>Map</code></h3> + +<pre class="brush: js">var myMap = new Map(); + +var keyObj = {}, + keyFunc = function () {}, + keyString = "a string"; + +// preparar els valors +myMap.set(keyString, "valor associat a amb 'un string'"); +myMap.set(keyObj, "valor associat amb keyObj"); +myMap.set(keyFunc, "valor associat amb with keyFunc"); + +myMap.size; // 3 + +// obtenir els valors +myMap.get(keyString); // "valor associat amb 'un string'" +myMap.get(keyObj); // "valor associat amb keyObj" +myMap.get(keyFunc); // "valor associat amb keyFunc" + +myMap.get("a string"); // "valor associat amb 'un string'" + // com que keyString === 'un string' +myMap.get({}); // undefined, perquè keyObj !== {} +myMap.get(function() {}) // undefined, perquè keyFunc !== function () {} +</pre> + +<h3 id="Exemple_Utilitzar_NaN_com_a_claus_en_un_Map">Exemple: Utilitzar <code>NaN</code> com a claus en un <code>Map</code></h3> + +<p><code>NaN</code> també pot emprar-se com a clau. Tot i que <code>NaN</code> no és igual a si mateix (<code>NaN !== NaN</code> és cert), l'exemple següent funciona perquè els <code>NaN</code>s són indistinguibles entre ells:</p> + +<pre class="brush: js">var myMap = new Map(); +myMap.set(NaN, "no un nombre"); + +myMap.get(NaN); // "no un nombre" + +var altreNaN = Number("foo"); +myMap.get(altreNaN); // "no un nombre" +</pre> + +<h3 id="Exemple_Iterar_Maps_amb_for..of">Exemple: Iterar <code>Maps</code> amb <code>for..of</code></h3> + +<p>Els mapes es poden iterar fent servir un bucle <code>for..of</code> :</p> + +<pre class="brush: js">var myMap = new Map(); +myMap.set(0, "zero"); +myMap.set(1, "un"); +for (var [key, value] of myMap) { + alert(key + " = " + value); +} +// Mostrarà 2 alertes; el primer amb "0 = zero" i el segon amb "1 = one" + +for (var key of myMap.keys()) { + alert(key); +} +// Mostrarà 2 alertes; el primer amb "0" i el segon amb "1" + +for (var value of myMap.values()) { + alert(value); +} +// Mostrarà 2 alertes; el primer amb "zero" i el segon amb "un" + +for (var [key, value] of myMap.entries()) { + alert(key + " = " + value); +} +// Mostrarà 2 alertes; el primer amb "0 = zero" i el segon amb "1 = un" + +myMap.forEach(function(value, key) { + alert(key + " = " + value); +}, myMap) +// Mostrarà 2 alertes; el primer amb "0 = zero" i el segon amb "1 = un" +</pre> + +<h3 id="Exemple_Relació_amb_els_objectes_Array">Exemple: Relació amb els objectes <code>Array</code></h3> + +<pre class="brush: js">var kvArray = [["clau1", "valor1"], ["clau2", "valor2"]]; + +// Utilitzeu el constructor de Map normal per a transformar un Array 2D clau-valor en un mapa +var myMap = new Map(kvArray); + +myMap.get("valor1"); // retorna "valor1" + +// Utilitzeu l'operador spread per a transformar un mapa en un Array 2D clau-valor. +alert(uneval([...myMap])); // Mostrarà exactament el mateix Array que kvArray + +// O bé utilitzeu l'operador spread a l'iterador de les claus o els valor per a obtenir +// un array de només les claus o els valors +alert(uneval([...myMap.keys()])); // Mostrarà ["clau1", "clau2"] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map-objects', 'Map')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td> + <p>{{ CompatChrome(31) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</p> + </td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Map(iterable)</code></td> + <td>{{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>{{ CompatNo() }}</td> + <td>25</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td>iterable</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoDesktop("17") }}</td> + <td>{{ CompatNo() }}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Map.clear()</code></td> + <td>{{ CompatChrome(31) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("19")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Map.keys(), Map.values(), Map.entries()</code></td> + <td>{{ CompatChrome(37) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("20")}}</td> + <td>{{ CompatNo() }}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Map.forEach()</code></td> + <td>{{ CompatChrome(36) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td>Igualtat de claus per a -0 i 0</td> + <td>{{ CompatChrome(34) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{ CompatNo() }}</td> + <td>25</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Map(null)</code></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>Monkey-patched <code>set()</code> al Constructor</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(31) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoMobile("13") }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>iOS 8</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Map(iterable)</code></td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoMobile("13") }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo }}</td> + </tr> + <tr> + <td>iterable</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatGeckoMobile("17") }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>iOS 8</td> + </tr> + <tr> + <td><code>Map.clear()</code></td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(31) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("19")}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>iOS 8</td> + </tr> + <tr> + <td><code>Map.keys(), Map.values(), Map.entries()</code></td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(37) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("20")}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>iOS 8</td> + </tr> + <tr> + <td><code>Map.forEach()</code></td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(36) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>iOS 8</td> + </tr> + <tr> + <td>Igualtat per a -0 i 0</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatChrome(34) }} <a href="#chrome-specific-note-1">[1]</a><br> + {{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("29")}}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatNo() }}</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Map(null)</code></td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>Monkey-patched <code>set()</code> al Constructor</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<p><a name="chrome-specific-note-1">[1]</a> The feature is available behind a preference. In <code>chrome://flags</code>, activate the entry “Enable Experimental JavaScript”.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=697479">Bug a Map i Set a Mozilla</a></li> + <li><a class="external" href="http://wiki.ecmascript.org/doku.php?id=harmony:simple_maps_and_sets">Proposta de ECMAScript Harmony</a></li> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("WeakMap")}}</li> + <li>{{jsxref("WeakSet")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/keys/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/keys/index.html new file mode 100644 index 0000000000..47c975a891 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/keys/index.html @@ -0,0 +1,104 @@ +--- +title: Map.prototype.keys() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/keys +translation_of: Web/JavaScript/Reference/Global_Objects/Map/keys +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>keys()</strong></code> retorna un nou objecte <code><strong>Iterator</strong></code> que conté les claus per cadascún dels elements de l'objecte <code>Map</code> en l'ordre d'insersió.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.keys()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_keys()">Utilitzar <code>keys()</code></h3> + +<pre class="brush:js">var myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +var mapIter = myMap.keys(); + +console.log(mapIter.next().value); // "0" +console.log(mapIter.next().value); // 1 +console.log(mapIter.next().value); // Objecte +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.keys', 'Map.prototype.keys')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("20")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("20") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype.entries()")}}</li> + <li>{{jsxref("Map.prototype.values()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/prototype/index.html new file mode 100644 index 0000000000..86d4a18c50 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/prototype/index.html @@ -0,0 +1,125 @@ +--- +title: Map.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Map/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Map +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>Map</strong></code><strong><code>.prototype</code></strong> representa el prototipus per al constructor de {{jsxref("Map")}}.</p> + +<div>{{js_property_attributes(0,0,0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies de {{jsxref("Map")}} hereten de {{jsxref("Map.prototype")}}. Es pot utilitzar el prototipus de l'objecte constructor per a afegir propietats o mètodes a totes les instàncies de <code>Map</code>.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Map.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat el una instància del prototipus. Per defecte és la funció {{jsxref("Map")}}.</dd> + <dt>{{jsxref("Map.prototype.size")}}</dt> + <dd>Retorna el nombre de parells clau-valor que conté l'objecte <code>Map</code>.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Map.prototype.clear()")}}</dt> + <dd>Elimina tots els parells clau-valor de l'objecte <code>Map</code>.</dd> + <dt>{{jsxref("Map.delete", "Map.prototype.delete(clau)")}}</dt> + <dd>Elimina el valor associat a la clau especificada i retorna el valor que el mètode <code>Map.prototype.has(valor)</code> hagués retornat abans d'eliminar-lo. <code>Map.prototype.has(clau)</code> retornarà <code>false</code> després de cridar aquest mètode.</dd> + <dt>{{jsxref("Map.prototype.entries()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté<strong> un array de <code>[clau, valor]</code></strong> per a cada element dins l'objecte <code>Map</code>, en estricte ordre d'inserció.</dd> + <dt>{{jsxref("Map.forEach", "Map.prototype.forEach(callbackFn[, thisArg])")}}</dt> + <dd>Crida <code>callbackFn</code> per a cada parell clau-valor present a l'objecte <code>Map</code>, recorreguts per ordre d'inserció. Si es proporciona el paràmetre <code>thisArg</code>, aquest s'utilitzarà com a valor de <em>this</em> per a cada crida a <code>callbackFn</code>.</dd> + <dt>{{jsxref("Map.get", "Map.prototype.get(clau)")}}</dt> + <dd>Retorna el valor associat a la clau, o bé <code>undefined</code> si aquesta clau no té cap valor associat.</dd> + <dt>{{jsxref("Map.has", "Map.prototype.has(clau)")}}</dt> + <dd>Retorna un booleà que especifica si la clau té un valor associat en aquest objecte <code>Map</code> o no.</dd> + <dt>{{jsxref("Map.prototype.keys()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté les <strong>claus</strong> de cada element de l'objecte <code>Map</code>, en ordre d'inserció.</dd> + <dt>{{jsxref("Map.set", "Map.prototype.set(clau, valor)")}}</dt> + <dd>Assigna <code>valor</code> a la <code>clau</code> a l'objecte <code>Map</code>. Retorna l'objecte <code>Map</code>.</dd> + <dt>{{jsxref("Map.prototype.values()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté els <code>valors</code> de cada element de l'objecte <code>Map</code>, en ordre d'inserció.</dd> + <dt>{{jsxref("Map.@@iterator", "Map.prototype[@@iterator]()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté <strong>un array de <code>[clau, valor]</code></strong> per a cada element de l'objecte <code>Map</code>, en ordre d'inserció.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype', 'Map.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td> + <p>8</p> + </td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/set/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/set/index.html new file mode 100644 index 0000000000..3b77060831 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/set/index.html @@ -0,0 +1,122 @@ +--- +title: Map.prototype.set() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/set +translation_of: Web/JavaScript/Reference/Global_Objects/Map/set +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>set()</strong></code> afegeig un nou element amb la <code>clau</code> i el <code>valor</code> especificats a un objecte de tipus <code>Map</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.set(clau, valor);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>clau</dt> + <dd>Obligatori. La clau de l'element a afegir a l'objecte <code>Map</code>.</dd> + <dt>valor</dt> + <dd>Obligatori. El valor de l'element a afegir a l'objecte <code>Map</code>.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>L'objecte <code>Map</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_set">Utilitzar el mètode <code>set</code></h3> + +<pre class="brush: js">var myMap = new Map(); + +// Afegim nous elements al mapa +myMap.set("bar", "foo"); +myMap.set(1, "foobar"); + +// Actualitzem un element amb una clau ja existent al mapa +myMap.set("bar", "fuuu"); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.set', 'Map.prototype.set')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_sobre_compatibilitat">Notes sobre compatibilitat</h2> + +<ul> + <li>Abans del Firefox 33 {{geckoRelease("33")}}, <code>Map.prototype.set</code> retornava <code>undefined</code> i en conseqüència no permitia la crida encadenada. Aquest problema va ser solucionat ({{bug(1031632)}}). Aquest comportament també es pot observar al Chrome/v8 (<a href="https://code.google.com/p/v8/issues/detail?id=3410">problema</a>).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("Map.prototype.get()")}}</li> + <li>{{jsxref("Map.prototype.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/size/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/size/index.html new file mode 100644 index 0000000000..aa70c7d84b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/size/index.html @@ -0,0 +1,105 @@ +--- +title: Map.prototype.size +slug: Web/JavaScript/Referencia/Objectes_globals/Map/size +translation_of: Web/JavaScript/Reference/Global_Objects/Map/size +--- +<div>{{JSRef}}</div> + +<p>La propietat d'accés <code><strong>size</strong></code> retorna el número d'elements en un objecte {{jsxref("Map")}}.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>El valor de <code>size</code> és un nombre sencer que representa quantes entrades té l'objecte <code>Map.</code> Una funció d'accés establerta per <code>size</code> és <code>undefined</code>; aquesta propietat no es pot canviar.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_size">Utilitzar <code>size</code></h3> + +<pre class="brush:js">var myMap = new Map(); +myMap.set("a", "alpha"); +myMap.set("b", "beta"); +myMap.set("g", "gamma"); + +myMap.size // 3 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-get-map.prototype.size', 'Map.prototype.size')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("19") }}</td> + <td>{{ CompatIE("11") }}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("19")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_de_Gecko">Notes específiques de Gecko</h2> + +<ul> + <li>A partir de Gecko 13 {{geckoRelease("13")}} fins Gecko 18 {{geckoRelease("18")}} la propietat size era implementada com un mètode <strong><code>Map.prototype.size()</code></strong>, aquesta s'ha canviat a una propietat en versions posteriors conforme l'especificació d'ECMAScript 6 ({{bug("807001")}}).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/map/values/index.html b/files/ca/web/javascript/referencia/objectes_globals/map/values/index.html new file mode 100644 index 0000000000..f1b23be7e7 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/map/values/index.html @@ -0,0 +1,103 @@ +--- +title: Map.prototype.values() +slug: Web/JavaScript/Referencia/Objectes_globals/Map/values +translation_of: Web/JavaScript/Reference/Global_Objects/Map/values +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>values()</strong></code> retorna un nou objecte <strong><a href="/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators">Iterator</a></strong> que conté els valor per cadascún dels elements de l'objecte <code>Map</code> en l'ordre d'inserció.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>myMap</em>.values()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_values()">Utilitzar <code>values()</code></h3> + +<pre class="brush:js">var myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +var mapIter = myMap.values(); + +console.log(mapIter.next().value); // "foo" +console.log(mapIter.next().value); // "bar" +console.log(mapIter.next().value); // "baz"</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-map.prototype.values', 'Map.prototype.values')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("20") }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{ CompatGeckoMobile("20") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype.entries()")}}</li> + <li>{{jsxref("Map.prototype.keys()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/abs/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/abs/index.html new file mode 100644 index 0000000000..34d3e5beb9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/abs/index.html @@ -0,0 +1,129 @@ +--- +title: Math.abs() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/abs +translation_of: Web/JavaScript/Reference/Global_Objects/Math/abs +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.abs()</code></strong> retorna el valor absolut d'un nombre. És a dir:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.abs</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mrow><mo stretchy="false">|</mo><mi>x</mi><mo stretchy="false">|</mo></mrow><mo>=</mo><mrow><mo>{</mo><mtable columnalign="left left"><mtr><mtd><mi>x</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo>></mo><mn>0</mn></mtd></mtr><mtr><mtd><mi>0</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo>=</mo><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>x</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo><</mo><mn>0</mn></mtd></mtr></mtable></mrow></mrow><annotation encoding="TeX">{\mathtt{\operatorname{Math.abs}(x)}} = {|x|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ -x & \text{if} \quad x < 0 \end{cases} </annotation></semantics></math></p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.abs(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>abs()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.abs()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Math.abs_behavior" name="Example:_Math.abs_behavior">Exemple: Comportament de <code>Math.abs()</code></h3> + +<p>Si li passem una string no numèric o bé una variable {{jsxref("undefined")}}/buida retorna {{jsxref("NaN")}}. Passar {{jsxref("null")}} retorna 0.</p> + +<pre class="brush: js">Math.abs('-1'); // 1 +Math.abs(-2); // 2 +Math.abs(null); // 0 +Math.abs('string'); // NaN +Math.abs(); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.1', 'Math.abs')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.abs', 'Math.abs')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.trunc()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/acos/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/acos/index.html new file mode 100644 index 0000000000..fdf781a4e2 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/acos/index.html @@ -0,0 +1,131 @@ +--- +title: Math.acos() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/acos +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.acos()</code></strong> retorna l'arccosinus (mesurat en radians) d'un nombre, és a dir:<math display="block"><semantics><mrow><mo></mo><mi>x</mi><mo>∊</mo><mo stretchy="false">[</mo><mrow><mo>-</mo><mn>1</mn></mrow><mo>;</mo><mn>1</mn><mo stretchy="false">]</mo><mo>,</mo><mspace width="thickmathspace"></mspace><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.acos</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arccos</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'únic </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mo stretchy="false">[</mo><mn>0</mn><mo>;</mo><mi>π</mi><mo stretchy="false">]</mo><mspace width="thinmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">cos</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x</annotation></semantics></math></p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.acos(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.acos()</code> retorna un valor numèric entre 0 i π radians per a <code>x</code> entre -1 i 1. Si el valor de <code>x</code> està fora d'aquest rang, retorna {{jsxref("NaN")}}.</p> + +<p>Degut a que <code>acos()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.acos()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.acos" name="Example:_Using_Math.acos">Exemple: Utilitzar <code>Math.acos()</code></h3> + +<pre class="brush: js">Math.acos(-2); // NaN +Math.acos(-1); // 3.141592653589793 +Math.acos(0); // 1.5707963267948966 +Math.acos(0.5); // 1.0471975511965979 +Math.acos(1); // 0 +Math.acos(2); // NaN +</pre> + +<p>Per a valors menors que -1 o majors que 1, <code>Math.acos()</code> retorna {{jsxref("NaN")}}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.2', 'Math.acos')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.acos', 'Math.acos')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/acosh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/acosh/index.html new file mode 100644 index 0000000000..edfe1dd8c0 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/acosh/index.html @@ -0,0 +1,126 @@ +--- +title: Math.acosh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/acosh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acosh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.acosh()</code></strong> retorna l'accosinus hiperbòlic d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>≥</mo><mn>1</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.acosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arcosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'única </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>≥</mo><mn>0</mn><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">cosh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \geq 1, \mathtt{\operatorname{Math.acosh}(x)} = \operatorname{arcosh}(x) = \text{ the unique } \; y \geq 0 \; \text{such that} \; \cosh(y) = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.acosh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>acosh()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.acosh()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.acosh()">Utilitzar <code>Math.acosh()</code></h3> + +<pre class="brush: js">Math.acosh(-1); // NaN +Math.acosh(0); // NaN +Math.acosh(0.5) // NaN +Math.acosh(1); // 0 +Math.acosh(2); // 1.3169578969248166 +</pre> + +<p><code>Math.acosh()</code> retorna {{jsxref("NaN")}} per a valors menors que 1.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Per a tot <math><semantics><mrow><mi>x</mi><mo>≥</mo><mn>1</mn></mrow><annotation encoding="TeX">x \geq 1</annotation></semantics></math>, tenim que <math><semantics><mrow><mo lspace="0em" rspace="thinmathspace">arcosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mrow><mo>(</mo><mrow><mi>x</mi><mo>+</mo><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mn>1</mn></mrow></msqrt></mrow><mo>)</mo></mrow></mrow><annotation encoding="TeX">\operatorname {arcosh} (x) = \ln \left(x + \sqrt{x^{2} - 1} \right)</annotation></semantics></math> i, per tant, es pot emular mitjançant la funció següent:</p> + +<pre class="brush: js">Math.acosh = Math.acosh || function(x) { + return Math.log(x + Math.sqrt(x * x - 1)); +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.acosh', 'Math.acosh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.asinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.atanh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.cosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.sinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.tanh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/asin/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/asin/index.html new file mode 100644 index 0000000000..81288af5b6 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/asin/index.html @@ -0,0 +1,133 @@ +--- +title: Math.asin() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/asin +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.asin()</code></strong> retorna l'arcsinus (en radians) d'un nombre, és a dir:</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>∊</mo><mo stretchy="false">[</mo><mrow><mo>-</mo><mn>1</mn></mrow><mo>;</mo><mn>1</mn><mo stretchy="false">]</mo><mo>,</mo><mspace width="thickmathspace"></mspace><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.asin</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arcsin</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'únic </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mrow><mo>[</mo><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>;</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><mo>]</mo></mrow><mspace width="thinmathspace"></mspace><mtext>tal que </mtext><mo lspace="0em" rspace="0em">sin</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x</annotation></semantics></math></p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.asin(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.asin()</code> retorna un valor numèric entre <math><semantics><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding="TeX">-\frac{\pi}{2}</annotation></semantics></math> i <math><semantics><mfrac><mi>π</mi><mn>2</mn></mfrac><annotation encoding="TeX">\frac{\pi}{2}</annotation></semantics></math> radians per a <code>x</code> entre -1 i 1. Si el valor de <code>x</code> està fora d'aquest rang la funció retorna {{jsxref("NaN")}}.</p> + +<p>Degut a que <code>asin()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.asin()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.asin" name="Example:_Using_Math.asin">Exemple: Ús de <code>Math.asin()</code></h3> + +<pre class="brush: js">Math.asin(-2); // NaN +Math.asin(-1); // -1.5707963267948966 (-pi/2) +Math.asin(0); // 0 +Math.asin(0.5); // 0.5235987755982989 +Math.asin(1); // 1.570796326794897 (pi/2) +Math.asin(2); // NaN +</pre> + +<p>Per a valors menors que -1 o majors que 1, <code>Math.asin()</code> retorna {{jsxref("NaN")}}.</p> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.3', 'Math.asin')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.asin', 'Math.asin')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/asinh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/asinh/index.html new file mode 100644 index 0000000000..9a249bb202 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/asinh/index.html @@ -0,0 +1,125 @@ +--- +title: Math.asinh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/asinh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asinh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.asinh()</code></strong> retorna l'arcsinus hiperbòlic d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.asinh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arsinh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'única </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">sinh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.asinh}(x)} = \operatorname{arsinh}(x) = \text{ the unique } \; y \; \text{such that} \; \sinh(y) = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.asinh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>asinh</code>() és un mètode estàtic de Math, sempre s'utilitza com a Math.<code>asinh</code>(), en comptes de com a mètode d'una instància de Math (Math no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.asinh()">Utilitzar <code>Math.asinh()</code></h3> + +<pre class="brush: js">Math.asinh(1); // 0.881373587019543 +Math.asinh(0); // 0 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Tenim que <math><semantics><mrow><mo lspace="0em" rspace="thinmathspace">arsinh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mrow><mo>(</mo><mrow><mi>x</mi><mo>+</mo><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mn>1</mn></mrow></msqrt></mrow><mo>)</mo></mrow></mrow><annotation encoding="TeX">\operatorname {arsinh} (x) = \ln \left(x + \sqrt{x^{2} + 1} \right)</annotation></semantics></math> amb el que podem emular el comportament amb la funció següent:</p> + +<pre class="brush: js">Math.asinh = Math.asinh || function(x) { + if (x === -Infinity) { + return x; + } else { + return Math.log(x + Math.sqrt(x * x + 1)); + } +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.asinh', 'Math.asinh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.atanh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.cosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.sinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.tanh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/atan/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/atan/index.html new file mode 100644 index 0000000000..034578fd54 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/atan/index.html @@ -0,0 +1,127 @@ +--- +title: Math.atan() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/atan +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.atan()</code></strong> retorna l'arctangent (en radians) d'un nombre, és a dir:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.atan</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arctan</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'unic </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mrow><mo>[</mo><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>;</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><mo>]</mo></mrow><mspace width="thinmathspace"></mspace>tal que<mtext></mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">tan</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x</annotation></semantics></math></p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.atan(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.atan()</code> retorna un valor numèric entre <math><semantics><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding="TeX">-\frac{\pi}{2}</annotation></semantics></math> i <math><semantics><mfrac><mi>π</mi><mn>2</mn></mfrac><annotation encoding="TeX">\frac{\pi}{2}</annotation></semantics></math> radians.</p> + +<p>Degut a que <code>atan()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.atan()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.atan" name="Example:_Using_Math.atan">Exemple: Utilitzar <code>Math.atan()</code></h3> + +<pre class="brush: js">Math.atan(1); // 0.7853981633974483 +Math.atan(0); // 0 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.4', 'Math.atan')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.atan', 'Math.atan')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/atan2/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/atan2/index.html new file mode 100644 index 0000000000..2816bb40b8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/atan2/index.html @@ -0,0 +1,139 @@ +--- +title: Math.atan2() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/atan2 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.atan2()</code></strong> retorna l'arctangent del quocient dels arguments passats.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.atan2(<var>y</var>, <var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>y</code></dt> + <dd>Primer nombre.</dd> + <dt><code>x</code></dt> + <dd>Segon nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>Math.atan2()</code> retorn aun valor numèric entre -π i π que representa l'angle theta d'un punt <code>(x, y)</code>. Aquest angle es representa en radiants, en sentit contrari a les agulles del rellotge, entre l'eix positiu X i el punt <code>(x, y)</code>. Cal destacar que els arguments d'aquesta funció representen les coordenades del punt, on el primer argument representa la coordenada <code>y</code> i el segon argument representa la coordenada <code>x</code>.</p> + +<p><code>Math.atan2()</code> rep els arguments <code>x</code> i <code>y</code> de forma separada mentre que <code>Math.atan()</code> rep la relació (ratio) entre aquests dos arguments.</p> + +<p>Com que que <code>atan2()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.atan2()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.atan2()">Utilitzar <code>Math.atan2()</code></h3> + +<pre class="brush: js">Math.atan2(90, 15); // 1.4056476493802699 +Math.atan2(15, 90); // 0.16514867741462683 + +Math.atan2(±0, -0); // ±PI. +Math.atan2(±0, +0); // ±0. +Math.atan2(±0, -x); // ±PI for x > 0. +Math.atan2(±0, x); // ±0 for x > 0. +Math.atan2(-y, ±0); // -PI/2 for y > 0. +Math.atan2(y, ±0); // PI/2 for y > 0. +Math.atan2(±y, -Infinity); // ±PI for finite y > 0. +Math.atan2(±y, +Infinity); // ±0 for finite y > 0. +Math.atan2(±Infinity, x); // ±PI/2 for finite x. +Math.atan2(±Infinity, -Infinity); // ±3*PI/4. +Math.atan2(±Infinity, +Infinity); // ±PI/4. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.5', 'Math.atan2')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.atan2', 'Math.atan2')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/atanh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/atanh/index.html new file mode 100644 index 0000000000..8a6b7cc2c8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/atanh/index.html @@ -0,0 +1,127 @@ +--- +title: Math.atanh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/atanh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atanh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.atanh()</code></strong> retorna l'arctangent hiperbòlica d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>∊</mo><mrow><mo>(</mo><mrow><mo>-</mo><mn>1</mn><mo>,</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.atanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arctanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> l'única </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">tanh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in \left( -1, 1 \right), \mathtt{\operatorname{Math.atanh}(x)} = \operatorname{arctanh}(x) = \text{ the unique } \; y \; \text{such that} \; \tanh(y) = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.atanh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>atanh</code>() és un mètode estàtic de Math, sempre s'utilitza com a <code>Math.atanh</code>(), en comptes de com a mètode d'una instància de <code>Math </code>(<code>Math </code>no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.atanh()">Utilitzar <code>Math.atanh()</code></h3> + +<pre class="brush: js">Math.atanh(-2); // NaN +Math.atanh(-1); // -Infinity +Math.atanh(0); // 0 +Math.atanh(0.5); // 0.5493061443340548 +Math.atanh(1); // Infinity +Math.atanh(2); // NaN +</pre> + +<p>Es retorna {{jsxref("NaN")}} per a valors més grans que 1 o més petits que -1.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Per a <math><semantics><mrow><mrow><mo>|</mo><mi>x</mi><mo>|</mo></mrow><mo><</mo><mn>1</mn></mrow><annotation encoding="TeX">\left|x\right| < 1</annotation></semantics></math>, tenim que <math><semantics><mrow><mo lspace="0em" rspace="thinmathspace">artanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo lspace="0em" rspace="0em">ln</mo><mrow><mo>(</mo><mfrac><mrow><mn>1</mn><mo>+</mo><mi>x</mi></mrow><mrow><mn>1</mn><mo>-</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow></mrow><annotation encoding="TeX">\operatorname {artanh} (x) = \frac{1}{2}\ln \left( \frac{1 + x}{1 - x} \right)</annotation></semantics></math> , que podem emular amb la funció següent:</p> + +<pre class="brush: js">Math.atanh = Math.atanh || function(x) { + return Math.log((1+x)/(1-x)) / 2; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.atanh', 'Math.atanh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.asinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.cosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.sinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.tanh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/cbrt/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/cbrt/index.html new file mode 100644 index 0000000000..70d6767183 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/cbrt/index.html @@ -0,0 +1,122 @@ +--- +title: Math.cbrt() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/cbrt +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cbrt +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.cbrt()</code></strong> retorna la rel cúbica d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mi>M</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>.</mo><mi>c</mi><mi>b</mi><mi>r</mi><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mroot><mi>x</mi><mn>3</mn></mroot><mo>=</mo><mtext>la única</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><msup><mi>y</mi><mn>3</mn></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{Math.cbrt(x)} = \sqrt[3]{x} = \text{the unique} \; y \; \text{such that} \; y^3 = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.cbrt(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Degut a que <code>cbrt()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.cbrt()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.cbrt()">Utilitzar <code>Math.cbrt()</code></h3> + +<pre class="brush: js">Math.cbrt(-1); // -1 +Math.cbrt(0); // 0 +Math.cbrt(1); // 1 + +Math.cbrt(2); // 1.2599210498948734 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Per a tot <math><semantics><mrow><mi>x</mi><mo>≥</mo><mn>0</mn></mrow><annotation encoding="TeX">x \geq 0</annotation></semantics></math>, tenim que <math><semantics><mrow><mroot><mi>x</mi><mn>3</mn></mroot><mo>=</mo><msup><mi>x</mi><mrow><mn>1</mn><mo>/</mo><mn>3</mn></mrow></msup></mrow><annotation encoding="TeX">\sqrt[3]{x} = x^{1/3}</annotation></semantics></math> , podem llavors emular aquest comportament amb la funció següent:</p> + +<pre class="brush: js">Math.cbrt = Math.cbrt || function(x) { + var y = Math.pow(Math.abs(x), 1/3); + return x < 0 ? -y : y; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.cbrt', 'Math.cbrt')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/ceil/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/ceil/index.html new file mode 100644 index 0000000000..a96880eecd --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/ceil/index.html @@ -0,0 +1,197 @@ +--- +title: Math.ceil() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/ceil +translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.ceil()</code></strong> retorna el més petit dels nombres sencers més grans o iguals a un nombre donat.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.ceil(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>ceil()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.ceil()</code>, ren comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.ceil" name="Example:_Using_Math.ceil">Exemple: Ús de <code>Math.ceil()</code></h3> + +<p>L'exemple següent mostra l'ús de <code>Math.ceil()</code>.</p> + +<pre class="brush: js">Math.ceil(.95); // 1 +Math.ceil(4); // 4 +Math.ceil(7.004); // 8 +</pre> + +<h3 id="Example:_Decimal_adjustment" name="Example:_Decimal_adjustment">Exemple: Ajust decimal</h3> + +<pre class="brush: js">// Closure +(function() { + /** + * Decimal adjustment of a number. + * + * @param {String} type The type of adjustment. + * @param {Number} value The number. + * @param {Integer} exp The exponent (the 10 logarithm of the adjustment base). + * @returns {Number} The adjusted value. + */ + function decimalAdjust(type, value, exp) { + // If the exp is undefined or zero... + if (typeof exp === 'undefined' || +exp === 0) { + return Math[type](value); + } + value = +value; + exp = +exp; + // If the value is not a number or the exp is not an integer... + if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { + return NaN; + } + // Shift + value = value.toString().split('e'); + value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); + // Shift back + value = value.toString().split('e'); + return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); + } + + // Decimal round + if (!Math.round10) { + Math.round10 = function(value, exp) { + return decimalAdjust('round', value, exp); + }; + } + // Decimal floor + if (!Math.floor10) { + Math.floor10 = function(value, exp) { + return decimalAdjust('floor', value, exp); + }; + } + // Decimal ceil + if (!Math.ceil10) { + Math.ceil10 = function(value, exp) { + return decimalAdjust('ceil', value, exp); + }; + } +})(); + +// Round +Math.round10(55.55, -1); // 55.6 +Math.round10(55.549, -1); // 55.5 +Math.round10(55, 1); // 60 +Math.round10(54.9, 1); // 50 +Math.round10(-55.55, -1); // -55.5 +Math.round10(-55.551, -1); // -55.6 +Math.round10(-55, 1); // -50 +Math.round10(-55.1, 1); // -60 +// Floor +Math.floor10(55.59, -1); // 55.5 +Math.floor10(59, 1); // 50 +Math.floor10(-55.51, -1); // -55.6 +Math.floor10(-51, 1); // -60 +// Ceil +Math.ceil10(55.51, -1); // 55.6 +Math.ceil10(51, 1); // 60 +Math.ceil10(-55.59, -1); // -55.5 +Math.ceil10(-59, 1); // -50 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.6', 'Math.ceil')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.ceil', 'Math.ceil')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.trunc()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/clz32/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/clz32/index.html new file mode 100644 index 0000000000..5cde08c7a8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/clz32/index.html @@ -0,0 +1,155 @@ +--- +title: Math.clz32() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/clz32 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/clz32 +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.clz32()</code></strong> retorna el nombre de zeros a l'esquerra que apareixen en una representació binària de 32 bits per a un nombre.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.clz32(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>"<code>clz32</code>" és una abreviació de <code>CountLeadingZeroes32</code>.</p> + +<p>Si <code>x</code> no és un nombre, primer es convertirà a un nombre, i després es convertirà a un nombre sencer de 32 bits sense signe.</p> + +<p>Si el nombre sencer sense signe de 32 bits és <code>0</code>, la funció retornarà <code>32</code> ja que tots els bits són <code>0</code>.</p> + +<p>Aquesta funció és particulament útil per a sistemes que compilin en JavaScript, com ara <a href="/en-US/docs/Emscripten">Emscripten</a>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.clz32()">Utilitzar <code>Math.clz32()</code></h3> + +<pre class="brush: js">Math.clz32(1); // 31 +Math.clz32(1000); // 22 +Math.clz32(); // 32 + +[NaN, Infinity, -Infinity, 0, -0, null, undefined, 'foo', {}, []].filter( +function(n) { + return Math.clz32(n) !== 32 +}); // [] + +Math.clz32(true); // 31 +Math.clz32(3.5); // 30 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció polyfill utilitza {{jsxref("Math.imul")}}.</p> + +<pre class="brush: js">Math.clz32 = Math.clz32 || (function () { + 'use strict'; + + var table = [ + 32, 31, 0, 16, 0, 30, 3, 0, 15, 0, 0, 0, 29, 10, 2, 0, + 0, 0, 12, 14, 21, 0, 19, 0, 0, 28, 0, 25, 0, 9, 1, 0, + 17, 0, 4, , 0, 0, 11, 0, 13, 22, 20, 0, 26, 0, 0, 18, + 5, 0, 0, 23, 0, 27, 0, 6, 0, 24, 7, 0, 8, 0, 0, 0] + + // Adaptat d'un algorisme trobat a Hacker's Delight, pàgina 103. + return function (x) { + // Tingueu en compte que les variables no tenen perquè ser les mateixes. + + // 1. On n = ToUint32(x). + var v = Number(x) >>> 0 + + // 2. On p és el nombre de zeros a l'esquerra en la representació binària de 32 bits de n. + v |= v >>> 1 + v |= v >>> 2 + v |= v >>> 4 + v |= v >>> 8 + v |= v >>> 16 + v = table[Math.imul(v, 0x06EB14F9) >>> 26] + + // Retorna p. + return v + } +})(); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.clz32', 'Math.clz32')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/cos/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/cos/index.html new file mode 100644 index 0000000000..0236b38c9c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/cos/index.html @@ -0,0 +1,128 @@ +--- +title: Math.cos() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/cos +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cos +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.cos()</code></strong> retorna el cosinus d'un nombre.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.cos(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre, mesurat en radians.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.cos()</code> retorna un valor numèric entre -1 i 1, que representa el cosinus d'un angle.</p> + +<p>Degut a que <code>cos()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.cos()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.cos" name="Example:_Using_Math.cos">Exemple: Utilitzar <code>Math.cos()</code></h3> + +<pre class="brush: js">Math.cos(0); // 1 +Math.cos(1); // 0.5403023058681398 + +Math.cos(Math.PI); // -1 +Math.cos(2 * Math.PI); // 1 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.7', 'Math.cos')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.cos', 'Math.cos')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/cosh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/cosh/index.html new file mode 100644 index 0000000000..00ebc259b9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/cosh/index.html @@ -0,0 +1,130 @@ +--- +title: Math.cosh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/cosh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cosh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.cosh()</code></strong> retorna el cosinus hiperbòlic d'un nombre, això es pot expressar utilitzant la {{jsxref("Math.E", "constant e", "", 1)}}:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mo lspace="0em" rspace="thinmathspace">Math.cosh(x)</mo></mstyle><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mn>2</mn></mfrac></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.cosh(x)}} = \frac{e^x + e^{-x}}{2}</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.cosh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>cosh()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.cosh()</code>, en comptes de com a mètode d'una instància de <code>Math </code>(<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.cosh()">Utilitzar <code>Math.cosh()</code></h3> + +<pre class="brush: js">Math.cosh(0); // 1 +Math.cosh(1); // 1.5430806348152437 +Math.cosh(-1); // 1.5430806348152437 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció es pot emular amb l'ajuda de la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.cosh = Math.cosh || function(x) { + return (Math.exp(x) + Math.exp(-x)) / 2; +} +</pre> + +<p>o bé utilitzant només una crida a la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.cosh = Math.cosh || function(x) { + var y = Math.exp(x); + return (y + 1 / y) / 2; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.cosh', 'Math.cosh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.asinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.atanh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.sinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.tanh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/e/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/e/index.html new file mode 100644 index 0000000000..efe7476396 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/e/index.html @@ -0,0 +1,118 @@ +--- +title: Math.E +slug: Web/JavaScript/Referencia/Objectes_globals/Math/E +translation_of: Web/JavaScript/Reference/Global_Objects/Math/E +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.E</code></strong> representa la base dels logaritmes naturals, e, el seu valor aproximat és de 2.718.</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.E</mi></mstyle><mo>=</mo><mi>e</mi><mo>≈</mo><mn>2.718</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.E}} = e \approx 2.718</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Com que <code>E</code> és una propietat estàtica de <code>Math</code>, sempre s'utilitza com<code> Math.E</code> en comptes de com una propietat d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.E" name="Example:_Using_Math.E">Exemple: Utilitzar <code>Math.E</code></h3> + +<p>La funció que trobareu a continuació retorna e:</p> + +<pre class="brush: js">function getNapier() { + return Math.E; +} + +getNapier(); // 2.718281828459045 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat en JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.1', 'Math.E')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.e', 'Math.E')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/exp/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/exp/index.html new file mode 100644 index 0000000000..c6d6c6c098 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/exp/index.html @@ -0,0 +1,123 @@ +--- +title: Math.exp() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/exp +translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.exp()</code></strong> retorna <code>e<sup>x</sup></code>, on <code>x</code> és l'argument, i <code>e</code> és {{jsxref("Math.E", "la constant d'Euler", "", 1)}}, la base dels logaritmes naturals.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.exp(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Deguat a que <code>exp()</code> és un mètode estàtic de <code>Math</code>, aquest pot emprar-se com a <code>Math.exp()</code>, en comptes de cridar-lo com un mètode d'un objecte de tipus <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.exp()"><code>Utilitzar Math.exp()</code></h3> + +<pre class="brush: js">Math.exp(-1); // 0.36787944117144233 +Math.exp(0); // 1 +Math.exp(1); // 2.718281828459045 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.8', 'Math.exp')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.exp', 'Math.exp')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.E")}}</li> + <li>{{jsxref("Math.expm1()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/expm1/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/expm1/index.html new file mode 100644 index 0000000000..b8055fba45 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/expm1/index.html @@ -0,0 +1,122 @@ +--- +title: Math.expm1() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/expm1 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/expm1 +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.expm1()</code></strong> retorna <code>e<sup>x</sup> - 1</code>, on <code>x</code> és l'argument i {{jsxref("Math.E", "e", "", 1)}} és la base dels logaritmes naturals.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.expm1(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que <code>expm1()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.expm1()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.expm1()">Utilitzar <code>Math.expm1()</code></h3> + +<pre class="brush: js">Math.expm1(-1); // -0.6321205588285577 +Math.expm1(0); // 0 +Math.expm1(1); // 1.718281828459045 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció pot ser emulada amb l'ajuda de la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.expm1 = Math.expm1 || function(x) { + return Math.exp(x) - 1; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.expm1', 'Math.expm1')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.E")}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/floor/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/floor/index.html new file mode 100644 index 0000000000..4a83b8d0e8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/floor/index.html @@ -0,0 +1,194 @@ +--- +title: Math.floor() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/floor +translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.floor()</code></strong> retorna el nombre més gran dels nombres més petits o iguals a un nombre donat.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.floor(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>floor()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.floor()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.floor" name="Example:_Using_Math.floor">Exemple: Utilitzar <code>Math.floor()</code></h3> + +<pre class="brush: js">Math.floor( 45.95); // 45 +Math.floor(-45.95); // -46 +</pre> + +<h3 id="Example:_Decimal_adjustment" name="Example:_Decimal_adjustment">Exemple: Ajust decimal</h3> + +<pre class="brush: js">// Closure +(function() { + /** + * Ajust decimal d'un nombre. + * + * @param {String} type El tipus d'ajust. + * @param {Number} value El nombre. + * @param {Integer} exp L'exponent (L'algoritme en base 10 de la base d'ajust + * @returns {Number} El valor ajustat. + */ + function decimalAdjust(type, value, exp) { + // Si exp és undefined o zero... + if (typeof exp === 'undefined' || +exp === 0) { + return Math[type](value); + } + value = +value; + exp = +exp; + // Si value no és un nombre o exp no és un nombre sencer... + if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { + return NaN; + } + // Desplaçament + value = value.toString().split('e'); + value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); + // Desfer el desplaçament + value = value.toString().split('e'); + return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); + } + + // Arrodoniment decimal + if (!Math.round10) { + Math.round10 = function(value, exp) { + return decimalAdjust('round', value, exp); + }; + } + // Arrodoniment decimal a la baixa + if (!Math.floor10) { + Math.floor10 = function(value, exp) { + return decimalAdjust('floor', value, exp); + }; + } + // Arrodoniment decimal a l'alça + if (!Math.ceil10) { + Math.ceil10 = function(value, exp) { + return decimalAdjust('ceil', value, exp); + }; + } +})(); + +// Arrodoniments +Math.round10(55.55, -1); // 55.6 +Math.round10(55.549, -1); // 55.5 +Math.round10(55, 1); // 60 +Math.round10(54.9, 1); // 50 +Math.round10(-55.55, -1); // -55.5 +Math.round10(-55.551, -1); // -55.6 +Math.round10(-55, 1); // -50 +Math.round10(-55.1, 1); // -60 +// Arrodoniments a la baixa +Math.floor10(55.59, -1); // 55.5 +Math.floor10(59, 1); // 50 +Math.floor10(-55.51, -1); // -55.6 +Math.floor10(-51, 1); // -60 +// Arrodoniments a l'alça +Math.ceil10(55.51, -1); // 55.6 +Math.ceil10(51, 1); // 60 +Math.ceil10(-55.59, -1); // -55.5 +Math.ceil10(-59, 1); // -50 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.9', 'Math.floor')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.floor', 'Math.floor')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.trunc()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/fround/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/fround/index.html new file mode 100644 index 0000000000..7411993dbc --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/fround/index.html @@ -0,0 +1,118 @@ +--- +title: Math.fround() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/fround +translation_of: Web/JavaScript/Reference/Global_Objects/Math/fround +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.fround()</code></strong> retorna la representació en coma flotant de <a class="external" href="https://en.wikipedia.org/wiki/Single-precision_floating-point_format" title="link to the wikipedia page on single-precision floating-point format">precisió simple</a> més propera d'un nombre.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.fround(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que <code>fround()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.fround()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.fround()"><code>Utilitzar Math.fround()</code></h3> + +<pre class="brush: js">Math.fround(0); // 0 +Math.fround(1); // 1 +Math.fround(1.337); // 1.3370000123977661 +Math.fround(1.5); // 1.5 +Math.fround(NaN); // NaN +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>El comportament d'aquesta funció pot ser emulat amb la funció següent, si {{jsxref("Float32Array")}} està suportat:</p> + +<pre class="brush: js">Math.fround = Math.fround || function(x) { + return new Float32Array([x])[0]; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.fround', 'Math.fround')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("26")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.round()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/hypot/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/hypot/index.html new file mode 100644 index 0000000000..e29bb754f1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/hypot/index.html @@ -0,0 +1,139 @@ +--- +title: Math.hypot() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/hypot +translation_of: Web/JavaScript/Reference/Global_Objects/Math/hypot +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.hypot()</code></strong> retorna la rel quadrada de la suma dels quadrats dels seus arguments, és a dir:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.hypot</mo><mo stretchy="false">(</mo><msub><mi>v</mi><mn>1</mn></msub><mo>,</mo><msub><mi>v</mi><mn>2</mn></msub><mo>,</mo><mo>…</mo><mo>,</mo><msub><mi>v</mi><mi>n</mi></msub><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msqrt><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msubsup><mi>v</mi><mi>i</mi><mn>2</mn></msubsup></mrow></msqrt><mo>=</mo><msqrt><mrow><msubsup><mi>v</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>v</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><mo>…</mo><mo>+</mo><msubsup><mi>v</mi><mi>n</mi><mn>2</mn></msubsup></mrow></msqrt></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.hypot}(v_1, v_2, \dots, v_n)} = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.hypot([<var>valor1</var>[, <var>valor2</var>[, ...]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor1, valor2, ...</code></dt> + <dd>Nombres.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>hypot()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.hypot()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<p>Si no es passa cap argument, el resultat és +0.</p> + +<p>Si al menys un dels arguments no pot ser convertit a nombre el resultat és {{jsxref("Global_Objects/NaN", "NaN")}}.</p> + +<p>Quan se li passa només un argument, <code>Math.hypot()</code> retorna el mateix valor que retornaria <code>Math.abs()</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.hypot()">Utilitzar <code>Math.hypot()</code></h3> + +<pre class="brush: js">Math.hypot(3, 4); // 5 +Math.hypot(3, 4, 5); // 7.0710678118654755 +Math.hypot(); // 0 +Math.hypot(NaN); // NaN +Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN +Math.hypot(3, 4, '5'); // 7.0710678118654755, +'5' => 5 +Math.hypot(-3); // 3, el mateix que Math.abs(-3) +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode pot emular-se mitjançant la funció següent:</p> + +<pre class="brush: js">Math.hypot = Math.hypot || function() { + var y = 0; + var length = arguments.length; + + for (var i = 0; i < length; i++) { + if (arguments[i] === Infinity || arguments[i] === -Infinity) { + return Infinity; + } + y += arguments[i] * arguments[i]; + } + return Math.sqrt(y); +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.hypot', 'Math.hypot')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("27")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("27")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/imul/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/imul/index.html new file mode 100644 index 0000000000..53050a9cd6 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/imul/index.html @@ -0,0 +1,120 @@ +--- +title: Math.imul() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/imul +translation_of: Web/JavaScript/Reference/Global_Objects/Math/imul +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.imul()</code></strong> retorna el resultat de la multiplicació de 32 bits similar a la de C dels dos paràmetres.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.imul(<var>a</var>, <var>b</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>a</code></dt> + <dd>Primer nombre.</dd> + <dt><code>b</code></dt> + <dd>Segon nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>Math.imul()</code> permet una multiplicació ràpida de nombres sencers de 32 bits amb una semàtica similar a la de C. Aquesta característica esdevé útil per a projectes com <a href="http://en.wikipedia.org/wiki/Emscripten">Emscripten</a>. Com que <code>imul()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.imul()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.imul()">Utilitzar <code>Math.imul()</code></h3> + +<pre class="brush: js">Math.imul(2, 4); // 8 +Math.imul(-1, 8); // -8 +Math.imul(-2, -2); // 4 +Math.imul(0xffffffff, 5); // -5 +Math.imul(0xfffffffe, 5); // -10 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció pot ser emulada mitjançant la següent funció:</p> + +<pre class="brush: js">Math.imul = Math.imul || function(a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + // el desplaçament de zero posicions solventa el signe a la part més significativa + // el |0 del final converteix el valor sense signe en un valor amb signe + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0); +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.imul', 'Math.imul')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("28")}}</td> + <td>{{CompatGeckoDesktop("20")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOpera("16")}}</td> + <td>{{CompatSafari("7")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("20")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>7</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/index.html new file mode 100644 index 0000000000..d493f51b40 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/index.html @@ -0,0 +1,205 @@ +--- +title: Math +slug: Web/JavaScript/Referencia/Objectes_globals/Math +translation_of: Web/JavaScript/Reference/Global_Objects/Math +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p><strong><code>Math</code></strong> és un objecte proporcionat pel llenguatge que té propietats i mètodes que pretenen ajudar en càlculs matemàtics. L'objecte conté constants i funcions matemàtiques.</p> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>A diferència d'altres objectes globals, <code>Math</code> no és un constructor. Totes les propietats i mètodes de <code>Math</code> són estàtics. Per a utilitzar la constant pi es fa anar <code>Math.PI</code> i la funció sinus es crida <code>Math.sin(x)</code>, on <code>x</code> és l'argument que rebrà el mètode. Les constants tenen la presició d'un nombre real de JavaScript.</p> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("Math.E")}}</dt> + <dd>La constant de Euler (també coneguda com a nombre E) i la base dels logaritmes naturals, el seu valor aproximat és de 2.718.</dd> + <dt>{{jsxref("Math.LN2")}}</dt> + <dd>El logaritme natural de 2, el seu valor aproximat és de 0.693.</dd> + <dt>{{jsxref("Math.LN10")}}</dt> + <dd>El logaritme natural de 10, el seu valor aproximat és de 2.303.</dd> + <dt>{{jsxref("Math.LOG2E")}}</dt> + <dd>El logaritme de E en base 2, el seu valor aproximat és de 1.443.</dd> + <dt>{{jsxref("Math.LOG10E")}}</dt> + <dd>El logaritme de E en base 10, el seu valor aproximat és de 0.434.</dd> + <dt>{{jsxref("Math.PI")}}</dt> + <dd>La proporció entre la circumferència d'un cercle i el seu diàmetre, el seu valor aproximat és de 3.14159.</dd> + <dt>{{jsxref("Math.SQRT1_2")}}</dt> + <dd>La rel quadrada de un mig (1/2); tanmateix 1 dividit per la rel quadrada de 2, el seu valor aproximat és de 0.707.</dd> + <dt>{{jsxref("Math.SQRT2")}}</dt> + <dd>La rel quadrada de 2, el seu valor aproximat és de 1.414.</dd> +</dl> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<div class="note"> +<p>Fixeu-vos que les funcions (<code>sin()</code>, <code>cos()</code>, <code>tan()</code>, <code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>) reben i retornen angles en radians. Per a convertir radians a graus cal dividir per <code>(Math.PI / 180)</code>, o bé multiplicar si el que es pretèn es transformar graus a radians.</p> +</div> + +<div class="note"> +<p>Cal destacar que la precisió de moltes de les funcions matemàtiques és depenent de la implementació. Això vol dir que el mateix codi pot donar resultats diferent en diferents navegadors, i fins i tot sota el mateix navegador o motor JS si es prova en diferents sistemes operatius or arquitectures.</p> +</div> + +<dl> + <dt>{{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}</dt> + <dd>Retorna el valor absolut d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}</dt> + <dd>Retorna l'arccosinus d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna l'arccosinus hiperbòlic d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}</dt> + <dd>Tetorna l'arcsinus d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna l'arcsinus hiperbòlic d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}</dt> + <dd>Retorna l'arctangent d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna l'arctangent hiperbòlic d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}</dt> + <dd>Retorna l'arctangent del cocient dels paràmetres donats.</dd> + <dt>{{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}} {{experimental_inline}}</dt> + <dd>Retorna la rel cúbica d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}</dt> + <dd>Retorna el nombre sencer més petit que és més gran o igual al nombre donat.</dd> + <dt>{{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el nombre de zeros a l'esquerra que el nombre donat tindria si fós emmagatzemat en 32 bits.</dd> + <dt>{{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}</dt> + <dd>Retorna el cosinus d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el cosinus hiperbòlic d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}</dt> + <dd>Retorna E<sup>x</sup>, on <var>x</var> és el paràmetre i E és la constant de Euler (2.718 aproximadament).</dd> + <dt>{{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}} {{experimental_inline}}</dt> + <dd>Retorna <code>exp(x) - 1</code>.</dd> + <dt>{{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}</dt> + <dd>Retorna el nombre sencer més gran que és igual o menor que el nombre donat.</dd> + <dt>{{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el nombre en coma float de <a href="http://en.wikipedia.org/wiki/Single-precision_floating-point_format" title="link to the wikipedia page on single precision">precisió simple</a> més proper al nombre donat.</dd> + <dt>{{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[, y[, …]]])")}} {{experimental_inline}}</dt> + <dd>Retorna la rel quadrada del quadrat dels dos paràmetres donats.</dd> + <dt>{{jsxref("Global_Objects/Math/imul", "Math.imul(x, y)")}} {{experimental_inline}}</dt> + <dd>Retorna el resultat de multiplicar els dos paràmetres com a nombres sencers de 32 bits.</dd> + <dt>{{jsxref("Global_Objects/Math/log", "Math.log(x)")}}</dt> + <dd>Retorna el logaritme natural (log<sub>e</sub>, també ln) d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el logaritme natural de <code>1 + x</code> (log<sub>e</sub>, també ln) del nombre donat.</dd> + <dt>{{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el logaritme en base 10 d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el logaritme en base 2 d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/max", "Math.max([x[, y[, …]]])")}}</dt> + <dd>Retorna el major de zero o més nombres donats.</dd> + <dt>{{jsxref("Global_Objects/Math/min", "Math.min([x[, y[, …]]])")}}</dt> + <dd>Retorna el menor de zero o més nombres donats.</dd> + <dt>{{jsxref("Global_Objects/Math/pow", "Math.pow(base, exponent)")}}</dt> + <dd>Retorna la base elevada a l'exponent, és a dir, <code>base<sup>exponent</sup></code>.</dd> + <dt>{{jsxref("Global_Objects/Math/random", "Math.random()")}}</dt> + <dd>Retorna un nombre pseudo aleatori comprés entre 0 i 1.</dd> + <dt>{{jsxref("Global_Objects/Math/round", "Math.round(x)")}}</dt> + <dd>Retorna el nombre sencer més proper al nombre donat.</dd> + <dt>{{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el signe de x, indicant si x és positiu, negatiu o zero.</dd> + <dt>{{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}</dt> + <dd>Retorna el sinus d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna el sinus hiperbòlic d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}</dt> + <dd>Retorna el resultat positiu de la rel quadrada d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}</dt> + <dd>Retorna la tangent d'un nombre.</dd> + <dt>{{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}} {{experimental_inline}}</dt> + <dd>Retorna la tangent hiperbòlica d'un nombre.</dd> + <dt><code>Math.toSource()</code> {{non-standard_inline}}</dt> + <dd>Retorna la cadena de caràcters <code>"Math"</code>.</dd> + <dt>{{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}} {{experimental_inline}}</dt> + <dd>Retorna la part sencera del nombre donat.</dd> +</dl> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementada a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8', 'Math')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math-object', 'Math')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Nous mètodes afegits: {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} i {{jsxref("Math.clz32()", "clz32()")}}.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/Number", "Number")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/ln10/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/ln10/index.html new file mode 100644 index 0000000000..42107c85f5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/ln10/index.html @@ -0,0 +1,118 @@ +--- +title: Math.LN10 +slug: Web/JavaScript/Referencia/Objectes_globals/Math/LN10 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.LN10</code></strong> representa el logaritme natural de 10, aproximadament 2.302:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LN10</mi></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>10</mn><mo stretchy="false">)</mo><mo>≈</mo><mn>2.302</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>LN10</code> és una propietat estàtica de <code>Math</code>, aquesta sempre s'accedeix mitjançant el codi <code>Math.LN10</code>, en comptes de com una propietat d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.LN10" name="Example:_Using_Math.LN10">Exemple: Utilitzar <code>Math.LN10</code></h3> + +<p>La funció següent retorna el logaritme natural de 10:</p> + +<pre class="brush:js">function getNatLog10() { + return Math.LN10; +} + +getNatLog10(); // 2.302585092994046 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.2', 'Math.LN10')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.ln10', 'Math.LN10')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característiques</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característiques</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/ln2/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/ln2/index.html new file mode 100644 index 0000000000..92cf2693f2 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/ln2/index.html @@ -0,0 +1,118 @@ +--- +title: Math.LN2 +slug: Web/JavaScript/Referencia/Objectes_globals/Math/LN2 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.LN2</code></strong> representa el logaritme natural de 2, aproximadament 0.693:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LN2</mi></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo><mo>≈</mo><mn>0.693</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>LN2</code> és una propietat estàtica de <code>Math</code>, sempre s'accedeix a aquesta mitjançant el codi <code>Math.LN2</code> en comptes d'accedir a la propietat d'un objecte de <code>Math</code> ja creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.LN2" name="Example:_Using_Math.LN2">Exemple: Utilitzar <code>Math.LN2</code></h3> + +<p>La següent funció retorna el logaritme natural de 2:</p> + +<pre class="brush:js">function getNatLog2() { + return Math.LN2; +} + +getNatLog2(); // 0.6931471805599453 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.3', 'Math.LN2')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.ln2', 'Math.LN2')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log/index.html new file mode 100644 index 0000000000..a3d8467ae5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log/index.html @@ -0,0 +1,137 @@ +--- +title: Math.log() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/log +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.log()</code></strong> retorna el logaritme natural (base {{jsxref("Math.E", "e")}}) d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext>la única</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><msup><mi>e</mi><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.log(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor de <code>x</code> és negatiu, el valor retornat sempre serà {{jsxref("NaN")}}.</p> + +<p>Degut a que <code>log()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.log()</code>, en comptes de com a mètode d'una instància de <code>Math </code>(<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.log()">Utilitzar <code>Math.log()</code></h3> + +<pre class="brush: js">Math.log(-1); // NaN, fora de rang +Math.log(0); // -Infinit +Math.log(1); // 0 +Math.log(10); // 2.302585092994046 +</pre> + +<h3 id="Utilitzar_Math.log()_amb_una_base_diferent">Utilitzar <code>Math.log()</code> amb una base diferent</h3> + +<p>La funció següent retorna el logaritme de <code>y</code> amb base <code>x</code> (és a dir, <math><semantics><mrow><msub><mo>log</mo><mi>x</mi></msub><mi>y</mi></mrow><annotation encoding="TeX">\log_x y</annotation></semantics></math>):</p> + +<pre class="brush: js">function getBaseLog(x, y) { + return Math.log(y) / Math.log(x); +} +</pre> + +<p>Si es crida <code>getBaseLog(10, 1000)</code> retornarà <code>2.9999999999999996</code> degut a l'arrodoniment de punt flotant, el qual és molt proper a la resposta real: 3.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.10', 'Math.log')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log', 'Math.log')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log10/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log10/index.html new file mode 100644 index 0000000000..1a82f34848 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log10/index.html @@ -0,0 +1,126 @@ +--- +title: Math.log10() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/log10 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log10 +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.log10()</code></strong> retorna el logaritme en base 10 d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log10</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>10</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=la única</mo><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><msup><mn>10</mn><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log10}(x)} = \log_10(x) = \text{the unique} \; y \; \text{such that} \; 10^y = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.log10(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor de <code>x</code> és menor que 0, el valor retornat sempre és {{jsxref("NaN")}}.</p> + +<p>Com que <code>log10()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.log10()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.log10()">Utilitzar <code>Math.log10()</code></h3> + +<pre class="brush: js">Math.log10(2); // 0.3010299956639812 +Math.log10(1); // 0 +Math.log10(0); // -Infinit +Math.log10(-2); // NaN +Math.log10(100000); // 5 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció pot ser emulada mitjançant el següent codi:</p> + +<pre class="brush: js">Math.log10 = Math.log10 || function(x) { + return Math.log(x) / Math.LN10; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log10', 'Math.log10')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log10e/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log10e/index.html new file mode 100644 index 0000000000..299c8d12ed --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log10e/index.html @@ -0,0 +1,118 @@ +--- +title: Math.LOG10E +slug: Web/JavaScript/Referencia/Objectes_globals/Math/LOG10E +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.LOG10E</code></strong> representa el logaritme en base 10 de e, el valor del qual és aproximadament 0.434:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LOG10E</mi></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>10</mn></msub><mo stretchy="false">(</mo><mi>e</mi><mo stretchy="false">)</mo><mo>≈</mo><mn>0.434</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>LOG10E</code> és una propietat estàtica de l'objecte <code>Math</code>, sempre s'obté el seu valor mitjançant <code>Math.LOG10E</code> en comptes d'accedir a la propietat d'un objecte instanciat de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.LOG10E" name="Example:_Using_Math.LOG10E">Exemple: Utilitzar <code>Math.LOG10E</code></h3> + +<p>La funció següent retorna el logaritme en base 10 de e:</p> + +<pre class="brush:js">function getLog10e() { + return Math.LOG10E; +} + +getLog10e(); // 0.4342944819032518 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.5', 'Math.LOG10E')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log10e', 'Math.LOG10E')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log1p/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log1p/index.html new file mode 100644 index 0000000000..1a0eb32cd5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log1p/index.html @@ -0,0 +1,125 @@ +--- +title: Math.log1p() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/log1p +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log1p +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.log1p()</code></strong> retorna el logaritme natural (base {{jsxref("Math.E", "e")}}) de 1 + un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mo>-</mo><mn>1</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log1p</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="TeX">\forall x > -1, \mathtt{\operatorname{Math.log1p}(x)} = \ln(1 + x)</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.log1p(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor de <code>x</code> és menor que -1, el valor retornat sempre serà {{jsxref("NaN")}}.</p> + +<p>Com que <code>log1p()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.log1p()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.log1p()">Utilitzar <code>Math.log1p()</code></h3> + +<pre class="brush: js">Math.log1p(1); // 0.6931471805599453 +Math.log1p(0); // 0 +Math.log1p(-1); // -Infinit +Math.log1p(-2); // NaN +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquesta funció pot ser emulada mitjançant la funció següent:</p> + +<pre class="brush: js">Math.log1p = Math.log1p || function(x) { + return Math.log(1 + x); +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log1p', 'Math.log1p')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log2/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log2/index.html new file mode 100644 index 0000000000..0806bd75ff --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log2/index.html @@ -0,0 +1,127 @@ +--- +title: Math.log2() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/log2 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log2 +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.log2()</code></strong> retorna el logaritme en base 2 d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log2</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>2</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext>la única</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><msup><mn>2</mn><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.log2(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor de <code>x</code> és menor que 0, el valor retornat sempre serà {{jsxref("NaN")}}.</p> + +<p>Com que <code>log2()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.log2()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.log2()">Utilitzar <code>Math.log2()</code></h3> + +<pre class="brush: js">Math.log2(3); // 1.584962500721156 +Math.log2(2); // 1 +Math.log2(1); // 0 +Math.log2(0); // -Infinit +Math.log2(-2); // NaN +Math.log2(1024); // 10 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest Polyfill emula la funció <code>Math.log2</code>. Cal destacar que retorna valors imprecisos per a algunes entrades (com ara 1 << 29), embolcalleu-la amb {{jsxref("Math.round()")}} si esteu treballant amb màscares de bits.</p> + +<pre class="brush: js">Math.log2 = Math.log2 || function(x) { + return Math.log(x) / Math.LN2; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log2', 'Math.log2')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.log1p()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/log2e/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/log2e/index.html new file mode 100644 index 0000000000..2f37ae44c1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/log2e/index.html @@ -0,0 +1,118 @@ +--- +title: Math.LOG2E +slug: Web/JavaScript/Referencia/Objectes_globals/Math/LOG2E +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.LOG2E</code></strong> representa el logaritme de e en base 2, el valor del qual és aproximadament 1.442:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LOG2E</mi></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>2</mn></msub><mo stretchy="false">(</mo><mi>e</mi><mo stretchy="false">)</mo><mo>≈</mo><mn>1.442</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LOG2E}} = \log_2(e) \approx 1.442</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Com que <code>LOG2E</code> és una propietat estàtica de <code>Math</code>, sempre s'utilitza mitjançant la forma <code>Math.LOG2E</code>, en comptes d'accedir a la propietat d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.LOG2E" name="Example:_Using_Math.LOG2E">Exemple: Utilitzar <code>Math.LOG2E</code></h3> + +<p>La següent funció retorna el logaritme de e en base 2:</p> + +<pre class="brush: js">function getLog2e() { + return Math.LOG2E; +} + +getLog2e(); // 1.4426950408889634 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.4', 'Math.LOG2E')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.log2e', 'Math.LOG2E')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log2()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/max/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/max/index.html new file mode 100644 index 0000000000..791b5dfdfe --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/max/index.html @@ -0,0 +1,134 @@ +--- +title: Math.max() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/max +translation_of: Web/JavaScript/Reference/Global_Objects/Math/max +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.max()</code></strong> retorna el nombre més gran de zero o més nombres.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.max([<var>valor1</var>[, <var>valor2</var>[, ...]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor1, valor2, ...</code></dt> + <dd>Nombres.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que <code>max()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com<code> Math.max()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<p>Si no es proporciona cap argument, el resultat és -{{jsxref("Infinity")}}.</p> + +<p>Si al menys un dels arguments no pot convertir-se a un nombre, el resultat és {{jsxref("NaN")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.max()">Utilitzar <code>Math.max()</code></h3> + +<pre class="brush: js">Math.max(10, 20); // 20 +Math.max(-10, -20); // -10 +Math.max(-10, 20); // 20 +</pre> + +<p>La següent funció utilitza {{jsxref("Function.prototype.apply()")}} per a trobar l'element màxim d'un array numèric. <code>getMaxOfArray([1, 2, 3])</code> és equivalent a <code>Math.max(1, 2, 3)</code>, però <code>getMaxOfArray()</code> pot emprar-se en arrays de qualsevol mida construits programàticament.</p> + +<pre class="brush: js">function getMaxOfArray(numArray) { + return Math.max.apply(null, numArray); +} +</pre> + +<p>O bé amb el nou {{jsxref("Operators/Spread_operator", "operador spread")}}, obtenir el nombre màxim d'un array és molt més simple.</p> + +<pre class="brush: js">var arr = [1, 2, 3]; +var max = Math.max(...arr); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.11', 'Math.max')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.max', 'Math.max')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.min()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/min/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/min/index.html new file mode 100644 index 0000000000..909e6ff2ee --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/min/index.html @@ -0,0 +1,140 @@ +--- +title: Math.min() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/min +translation_of: Web/JavaScript/Reference/Global_Objects/Math/min +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.min()</code></strong> retorna el més petit de zero o més nombres.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.min([<var>valor1</var>[, <var>valor2</var>[, ...]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor1, valor2, ...</code></dt> + <dd>Nombres.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Degut a que <code>min()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.min()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<p>Si no es proporciona cap argument, el resultat és {{jsxref("Infinity")}}.</p> + +<p>Si al menys un dels arguments no pot ser convertit a nombre, el resultat és {{jsxref("NaN")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.min()">Utilitzar <code>Math.min()</code></h3> + +<p>Aquest codi troba el valor mínim de <code>x</code> i <code>y</code> i l'assigna a <code>z</code>:</p> + +<pre class="brush: js">var x = 10, y = -20; +var z = Math.min(x, y); +</pre> + +<h3 id="Limitar_un_nombre_amb_Math.min()">Limitar un nombre amb <code>Math.min()</code></h3> + +<p>Sovint s'utilitza <code>Math.min()</code> per a limitar un valor de manera que sempre sigui igual o menor que un límit. Per exemple, aquest codi</p> + +<pre class="brush: js">var x = f(foo); + +if (x > limit) { + x = limit; +} +</pre> + +<p>es podria escriure de la següent manera:</p> + +<pre class="brush: js">var x = Math.min(f(foo), limit); +</pre> + +<p>{{jsxref("Math.max()")}} es pot emprar d'una manera similar per a limitar un valor a l'altre límit.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.12', 'Math.min')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.min', 'Math.min')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.max()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/pi/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/pi/index.html new file mode 100644 index 0000000000..b867c953df --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/pi/index.html @@ -0,0 +1,116 @@ +--- +title: Math.PI +slug: Web/JavaScript/Referencia/Objectes_globals/Math/PI +translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.PI</code></strong> representa el ratio entre la circumferència d'un crecle i el seu diàmetre, el seu valor aproximat és de 3.14159:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.PI</mi></mstyle><mo>=</mo><mi>π</mi><mo>≈</mo><mn>3.14159</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.PI}} = \pi \approx 3.14159</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Com que <code>PI</code> és una propietat estàtica de <code>Math</code>, sempre s'utilitza amb la forma <code>Math.PI</code>, ren comptes de com una propietat d'un objecte <code>Math</code> ja creat (<code>Math</code> on és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.PI" name="Example:_Using_Math.PI">Exemple: Utilitzar <code>Math.PI</code></h3> + +<p>La funció següent utilitza <code>Math.PI</code> per a calcular la circumferència d'un cercle a partir del radi que rep.</p> + +<pre class="brush: js">function calculateCircumference(radius) { + return 2 * Math.PI * radius; +} + +calculateCircumference(1); // 6.283185307179586 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.6', 'Math.PI')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.pi', 'Math.PI')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/Math", "Math")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/pow/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/pow/index.html new file mode 100644 index 0000000000..efe89000e9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/pow/index.html @@ -0,0 +1,140 @@ +--- +title: Math.pow() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/pow +translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.pow()</code></strong> retorna la <code>base</code> elevada a <code>exponent</code>, és a dir, <code>base<sup>exponent</sup></code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.pow(<var>base</var>, <var>exponent</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>base</code></dt> + <dd>El nombre base.</dd> + <dt><code>exponent</code></dt> + <dd>L'exponent que s'usarà per a elevar la base.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que <code>pow()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.pow()</code> en comptes de com un mètode d'un objecte <code>Math </code>creat (<code>Math </code>no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.pow()">Utilitzar <code>Math.pow()</code></h3> + +<pre class="brush: js">// simple +Math.pow(7, 2); // 49 +Math.pow(7, 3); // 343 +Math.pow(2, 10); // 1024 +// exponents fractionals +Math.pow(4, 0.5); // 2 (rel quadrada de 4) +Math.pow(8, 1/3); // 2 (rel cúbica de 8) +Math.pow(2, 0.5); // 1.412135623730951 (rel quadrada de 2) +Math.pow(2, 1/3); // 1.2599210498948732 (rel cúbica de 2) +// exponents amb signe +Math.pow(7, -2); // 0.02040816326530612 (1/49) +Math.pow(8, -1/3); // 0.5 +// bases amb signe +Math.pow(-7, 2); // 49 (qualsevol nombre elevat al quadrat és positiu) +Math.pow(-7, 3); // -343 (nombres elevats al cub poden ser negatius) +Math.pow(-7, 0.5); // NaN (els nombres negatius no tenen una rel quadrada real) +// degut a rels "parells" i "senars" estan aprox l'una de l'altra +// i a límits en la precisió dels nombres de punt flotant, +// bases negatives amb exponents fraccionals sempre retornen NaN +Math.pow(-7, 1/3); // NaN +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.13', 'Math.pow')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.pow', 'Math.pow')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.cbrt()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Exponentiation" title="Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value. The standard arithmetic operators are addition (+), subtraction (-), multiplication (*), and division (/).">Operador Exponencial</a> {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/random/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/random/index.html new file mode 100644 index 0000000000..d70169efd4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/random/index.html @@ -0,0 +1,126 @@ +--- +title: Math.random() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/random +translation_of: Web/JavaScript/Reference/Global_Objects/Math/random +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.random()</code></strong> retorna un nombre decimal de punt flotant pseudo-aleatori que roman dins el rang <code>[0, 1)</code>, és a dir, des de 0 (inclòs) fins a 1 (exclòs), que després pot ser escalat al rang dessitjat. La implementació selecciona la llavor inicial per a l'algoritme generador de nombres aleatoris; aquesta llavor no pot ser resetejada o escollida per l'usuari.</p> + +<div class="note"> +<p><strong>Nota:</strong> <code>Math.random()</code> <strong>no</strong> proporciona nombres aleatoris criptogràficament segurs. No l'utilitzeu per a cap tasca relacionada amb la seguretat. Per a aquest ús utilitzeu la API Web Crypto, i més concretament el mètode {{domxref("RandomSource.getRandomValues()", "window.crypto.getRandomValues()")}}.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.random()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.random()">Utilitzar <code>Math.random()</code></h3> + +<p>Cal destacar que com que els nombres a JavaScript són nombres de punt flotant IEEE 754 amb comportament d'arrodoniment al parell més proper, els rangs proclamats per les funcions de sota (a excepció de <code>Math.random()</code>) no són exactes. Si s'escullen límits extremadament grans (2<sup>53</sup> o majors), és possible en casos <em>extremadament</em> rars, obtindre el límit superior que normalment és exclòs.</p> + +<pre class="brush: js">// Retorna un nombre aleatori entre 0 (inclòs) i 1 (exclòs) +function getRandom() { + return Math.random(); +} +</pre> + +<pre class="brush: js">// Retorna un nombre aleatori entre min (inclòs) i max (exclòs) +function getRandomArbitrary(min, max) { + return Math.random() * (max - min) + min; +} +</pre> + +<pre class="brush: js">// Retorna un nombre sencer aleatori entre min (inclòs) i max (exclòs) +// Utilitzar Math.round() proporciona una distribució no uniforme! +function getRandomInt(min, max) { + return Math.floor(Math.random() * (max - min)) + min; +} +</pre> + +<pre class="brush: js">// Returns a random integer between min (included) and max (included) +// Using Math.round() will give you a non-uniform distribution! +function getRandomIntInclusive(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. JavaScript 1.0 (Només UNIX) / JavaScript 1.1 (Totes les plataformes).</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.14', 'Math.random')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.random', 'Math.random')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/round/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/round/index.html new file mode 100644 index 0000000000..2510799381 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/round/index.html @@ -0,0 +1,207 @@ +--- +title: Math.round() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/round +translation_of: Web/JavaScript/Reference/Global_Objects/Math/round +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.round()</code></strong> retorna el valor d'un nombre arrodonit al nombre sencer més proper.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.round(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si la porció fraccional del nombre és 0.5 o major, l'argument s'arrodoneix al següent nombre sencer més gran. Si la porció fraccional del nombre és menor de 0.5 l'argument és arrodonit al següent nombre sencer més petit.</p> + +<p>Com que <code>round()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.round()</code> en comptes de com un mètode d'un objecte <code>Math </code>creat (<code>Math </code>no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.round()">Utilitzar <code>Math.round()</code></h3> + +<pre class="brush: js">// Retorna el valor 20 +x = Math.round(20.49); + +// Retorna el valor 21 +x = Math.round(20.5); + +// Retorna el valor -20 +x = Math.round(-20.5); + +// Retorna el valor -21 +x = Math.round(-20.51); + +// Retorna el valor 1 (!) +// Fixeu-vos en l'error d'arrodoniment degut a la poc precisa aritmètica de punt flotant +// Compareu això amb Math.round10(1.005, -2) de l'exemple de sota +x = Math.round(1.005*100)/100; +</pre> + +<h3 id="Arrodoniment_decimal">Arrodoniment decimal</h3> + +<pre class="brush: js">// Closure +(function() { + /** + * Ajustament decimal d'un nombre + * + * @param {String} type El tipus d'ajustament. + * @param {Number} value El nombre. + * @param {Integer} exp L'exponent (el logaritme en base 10 de la base a ajustar). + * @returns {Number} El valor ajustat. + */ + function decimalAdjust(type, value, exp) { + // Si l'exponent és undefined o zero... + if (typeof exp === 'undefined' || +exp === 0) { + return Math[type](value); + } + value = +value; + exp = +exp; + // Si el valor no és un nombre o l'exponent no és un nombre sencer... + if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { + return NaN; + } + // Desplaçament + value = value.toString().split('e'); + value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); + // Desfer el desplaçament + value = value.toString().split('e'); + return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); + } + + // Arrodoniment decimal + if (!Math.round10) { + Math.round10 = function(value, exp) { + return decimalAdjust('round', value, exp); + }; + } + // Floor decimal + if (!Math.floor10) { + Math.floor10 = function(value, exp) { + return decimalAdjust('floor', value, exp); + }; + } + // Ceiling decimal + if (!Math.ceil10) { + Math.ceil10 = function(value, exp) { + return decimalAdjust('ceil', value, exp); + }; + } +})(); + +// Arrodoniment +Math.round10(55.55, -1); // 55.6 +Math.round10(55.549, -1); // 55.5 +Math.round10(55, 1); // 60 +Math.round10(54.9, 1); // 50 +Math.round10(-55.55, -1); // -55.5 +Math.round10(-55.551, -1); // -55.6 +Math.round10(-55, 1); // -50 +Math.round10(-55.1, 1); // -60 +Math.round10(1.005, -2); // 1.01 -- compareu aquest resultat amb Math.round(1.005*100)/100 de l'exemple de sobre +// Floor +Math.floor10(55.59, -1); // 55.5 +Math.floor10(59, 1); // 50 +Math.floor10(-55.51, -1); // -55.6 +Math.floor10(-51, 1); // -60 +// Ceil +Math.ceil10(55.51, -1); // 55.6 +Math.ceil10(51, 1); // 60 +Math.ceil10(-55.59, -1); // -55.5 +Math.ceil10(-59, 1); // -50 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.15', 'Math.round')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.round', 'Math.round')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.sign()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.trunc()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sign/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sign/index.html new file mode 100644 index 0000000000..520ff27dc4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sign/index.html @@ -0,0 +1,131 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/sign +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.sign()</code></strong> retorna el signe d'un nombre, indicant si el nombre donat és positiu, negatiu o zero.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.sign(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que <code>sign()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.sign()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<p>Aquesta funció pot retornar 5 valors diferents,<code> 1</code>, <code>-1</code>, <code>0</code>, <code>-0</code>, <code>NaN</code>, que representen "nombre positiu", "nombre negatiu", "zero positiu", "zero negatiu" i {{jsxref("NaN")}} respectivament.</p> + +<p>L'argument passat a aquesta funció serà convertit al tipus de <code>x</code> implícitament.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.sign()">Utilitzar <code>Math.sign()</code></h3> + +<pre class="brush: js">Math.sign(3); // 1 +Math.sign(-3); // -1 +Math.sign('-3'); // -1 +Math.sign(0); // 0 +Math.sign(-0); // -0 +Math.sign(NaN); // NaN +Math.sign('foo'); // NaN +Math.sign(); // NaN +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Math.sign = Math.sign || function(x) { + x = +x; // converteix a un nombre + if (x === 0 || isNaN(x)) { + return x; + } + return x > 0 ? 1 : -1; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.trunc()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sin/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sin/index.html new file mode 100644 index 0000000000..7f1faf9a98 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sin/index.html @@ -0,0 +1,127 @@ +--- +title: Math.sin() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/sin +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.sin()</code></strong> retorna el sinus d'un nombre.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.sin(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre (donat en radians).</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.sin()</code> retorna un valor numèric entre -1 i 1, que representa el sinus de l'angle donat en radiants.</p> + +<p>Degut a que <code>sin()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.sin()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.sin" name="Example:_Using_Math.sin">Exemple: Utilitzar <code>Math.sin()</code></h3> + +<pre class="brush: js">Math.sin(0); // 0 +Math.sin(1); // 0.8414709848078965 + +Math.sin(Math.PI / 2); // 1 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.16', 'Math.sin')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sin', 'Math.sin')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sinh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sinh/index.html new file mode 100644 index 0000000000..a1cc1f446a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sinh/index.html @@ -0,0 +1,129 @@ +--- +title: Math.sinh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/sinh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sinh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.sinh()</code></strong> retorna el sinus hiperbòlic d'un nombre, que es pot expressar utilitzant la {{jsxref("Math.E", "constant e", "", 1)}}:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mo lspace="0em" rspace="thinmathspace">Math.sinh(x)</mo></mstyle><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>-</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mn>2</mn></mfrac></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.sinh(x)}} = \frac{e^x - e^{-x}}{2}</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.sinh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>sinh()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.sinh()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.sinh()">Utilitzar <code>Math.sinh()</code></h3> + +<pre class="brush: js">Math.sinh(0); // 0 +Math.sinh(1); // 1.1752011936438014 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest comportament es pot emular amb l'ajut de la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.sinh = Math.sinh || function(x) { + return (Math.exp(x) - Math.exp(-x)) / 2; +} +</pre> + +<p>O bé utilitzant només una crida a la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.sinh = Math.sinh || function(x) { + var y = Math.exp(x); + return (y - 1 / y) / 2; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sinh', 'Math.sinh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.asinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.atanh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.cosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.tanh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sqrt/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt/index.html new file mode 100644 index 0000000000..b726db8a31 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt/index.html @@ -0,0 +1,127 @@ +--- +title: Math.sqrt() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/sqrt +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.sqrt()</code></strong> retorna la rel quadrada d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>≥</mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mi>M</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>.</mo><mi>s</mi><mi>q</mi><mi>r</mi><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msqrt><mi>x</mi></msqrt><mo>=</mo><mtext>la única</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>≥</mo><mn>0</mn><mspace width="thickmathspace"></mspace><mtext>tal que</mtext><mspace width="thickmathspace"></mspace><msup><mi>y</mi><mn>2</mn></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.sqrt(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor de <code>x</code> és negatiu, <code>Math.sqrt()</code> retorna {{jsxref("NaN")}}.</p> + +<p>Degut a que <code>sqrt()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.sqrt()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.sqrt()">Utilitzar <code>Math.sqrt()</code></h3> + +<pre class="brush: js">Math.sqrt(9); // 3 +Math.sqrt(2); // 1.414213562373095 + +Math.sqrt(1); // 1 +Math.sqrt(0); // 0 +Math.sqrt(-1); // NaN +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.17', 'Math.sqrt')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sqrt', 'Math.sqrt')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.cbrt()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sqrt1_2/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt1_2/index.html new file mode 100644 index 0000000000..3d7d3a1370 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt1_2/index.html @@ -0,0 +1,117 @@ +--- +title: Math.SQRT1_2 +slug: Web/JavaScript/Referencia/Objectes_globals/Math/SQRT1_2 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.SQRT1_2</code></strong> representa la rel quadrada de 1/2, que equival aproximadament a 0.707:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.SQRT1_2</mi></mstyle><mo>=</mo><msqrt><mfrac><mn>1</mn><mn>2</mn></mfrac></msqrt><mo>=</mo><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>≈</mo><mn>0.707</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>SQRT1_2</code> éss una propietat estàtica de <code>Math</code>, sempre s'utilitza com a <code>Math.SQRT1_2</code> en comptes de com a la propietat d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.SQRT1_2" name="Example:_Using_Math.SQRT1_2">Exemple: Utilitzar <code>Math.SQRT1_2</code></h3> + +<p>La següent funció retorna 1 dividit per la rel quadrada de 2:</p> + +<pre class="brush:js">function getRoot1_2() { + return Math.SQRT1_2; +} + +getRoot1_2(); // 0.7071067811865476 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat aJavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.7', 'Math.SQRT1_2')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/sqrt2/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt2/index.html new file mode 100644 index 0000000000..3d049f228c --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/sqrt2/index.html @@ -0,0 +1,117 @@ +--- +title: Math.SQRT2 +slug: Web/JavaScript/Referencia/Objectes_globals/Math/SQRT2 +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Math.SQRT2</code></strong> representa la rel quadrada de 2, que és aproximadament 1.414:</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.SQRT2</mi></mstyle><mo>=</mo><msqrt><mn>2</mn></msqrt><mo>≈</mo><mn>1.414</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414</annotation></semantics></math></p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Degut a que <code>SQRT2</code> és una propietat estàtica de <code>Math</code>, sempre s'utilitza com a <code>Math.SQRT2</code>, en comptes de com la propietat d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.SQRT2" name="Example:_Using_Math.SQRT2">Exemple: Utilitzar <code>Math.SQRT2</code></h3> + +<p>La funció següent retorna la rel quadrada de 2:</p> + +<pre class="brush: js">function getRoot2() { + return Math.SQRT2; +} + +getRoot2(); // 1.4142135623730951 +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.1.8', 'Math.SQRT2')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sqrt2', 'Math.SQRT2')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/tan/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/tan/index.html new file mode 100644 index 0000000000..590e1f5fc8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/tan/index.html @@ -0,0 +1,140 @@ +--- +title: Math.tan() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/tan +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tan +--- +<div>{{JSRef("Global_Objects", "Math")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La funció <strong><code>Math.tan()</code></strong> retorna la tangent d'un nombre.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.tan(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre que representa un angle, mesurat en radians.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El mètode <code>Math.tan()</code> retorna un valor numèric que representa la tangent d'un angle.</p> + +<p>Degut a que <code>tan()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.tan()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_Math.tan" name="Example:_Using_Math.tan">Exemple: Utilitzar <code>Math.tan()</code></h3> + +<pre class="brush: js">Math.tan(1); // 1.5574077246549023 +</pre> + +<p>Com que la funció <code>Math.tan()</code> accepta radians però sovint és més fàcil treballar amb graus, a funció següent accepta un valor en graus, el converteix a radians i retorna la tangent.</p> + +<pre class="brush: js">function getTanDeg(deg) { + var rad = deg * Math.PI/180; + return Math.tan(rad); +} +</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.8.2.18', 'Math.tan')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.tan', 'Math.tan')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th> + <table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + </tr> + </tbody> + </table> + </th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/tanh/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/tanh/index.html new file mode 100644 index 0000000000..ada19d17e0 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/tanh/index.html @@ -0,0 +1,142 @@ +--- +title: Math.tanh() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/tanh +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tanh +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.tanh()</code></strong> retorna la tangent hiperbòlica d'un nombre, és a dir</p> + +<p><math display="block"><semantics><mrow><mo lspace="0em" rspace="0em">tanh</mo><mi>x</mi><mo>=</mo><mfrac><mrow><mo lspace="0em" rspace="0em">sinh</mo><mi>x</mi></mrow><mrow><mo lspace="0em" rspace="0em">cosh</mo><mi>x</mi></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>-</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mrow><mn>2</mn><mi>x</mi></mrow></msup><mo>-</mo><mn>1</mn></mrow><mrow><msup><mi>e</mi><mrow><mn>2</mn><mi>x</mi></mrow></msup><mo>+</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding="TeX">\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1}</annotation></semantics></math></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.tanh(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Com que que <code>tanh()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com a <code>Math.tanh()</code>, en comptes de com a mètode d'una instància de <code>Math</code> (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.tanh()">Utilitzar <code>Math.tanh()</code></h3> + +<pre class="brush: js">Math.tanh(0); // 0 +Math.tanh(Infinity); // 1 +Math.tanh(1); // 0.7615941559557649 +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest comportament pot emular-se amb l'ajuda de la funció {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.tanh = Math.tanh || function(x) { + if (x === Infinity) { + return 1; + } else if (x === -Infinity) { + return -1; + } else { + return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x)); + } +} +</pre> + +<p>o bé utilitzant només una crida a {{jsxref("Math.exp()")}}:</p> + +<pre class="brush: js">Math.tanh = Math.tanh || function(x) { + if (x === Infinity) { + return 1; + } else if (x === -Infinity) { + return -1; + } else { + var y = Math.exp(2 * x); + return (y - 1) / (y + 1); + } +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.tanh', 'Math.tanh')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.asinh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.atanh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.cosh()")}} {{experimental_inline}}</li> + <li>{{jsxref("Math.sinh()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/math/trunc/index.html b/files/ca/web/javascript/referencia/objectes_globals/math/trunc/index.html new file mode 100644 index 0000000000..4f76502d69 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/math/trunc/index.html @@ -0,0 +1,129 @@ +--- +title: Math.trunc() +slug: Web/JavaScript/Referencia/Objectes_globals/Math/trunc +translation_of: Web/JavaScript/Reference/Global_Objects/Math/trunc +--- +<div>{{JSRef}}</div> + +<p>La funció <strong><code>Math.trunc()</code></strong> retorna la part integral d'un nombre, tot descartant els dígits decimals.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Math.trunc(<var>x</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>x</code></dt> + <dd>Un nombre.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Al contrari que altres mètodes de <code>Math</code> : {{jsxref("Math.floor()")}}, {{jsxref("Math.ceil()")}} and {{jsxref("Math.round()")}}, la forma en la que <code>Math.trunc()</code> funciona és molt simple, simplement trunca el punt i els dígits que queden a la dreta, sense importa si l'argument és un nombre positiu o negatiu.</p> + +<p>Així que, si l'argument és un nombre positiu, <code>Math.trunc()</code> és equivalent a <code>Math.floor()</code>, en cas contrari, <code>Math.trunc()</code> és equivalent a <code>Math.ceil()</code>.</p> + +<p>Cal destacar que l'argument passat a aquest mètode serà convertit a un nombre de forma implícita.</p> + +<p>Com que <code>trunc()</code> és un mètode estàtic de <code>Math</code>, sempre s'utilitza com <code>Math.trunc()</code> en comptes de com un mètode d'un objecte <code>Math</code> creat (<code>Math</code> no és un constructor).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_Math.trunc()"><code>Utilitzar Math.trunc()</code></h3> + +<pre class="brush: js">Math.trunc(13.37); // 13 +Math.trunc(42.84); // 42 +Math.trunc(0.123); // 0 +Math.trunc(-0.123); // -0 +Math.trunc('-1.123'); // -1 +Math.trunc(NaN); // NaN +Math.trunc('foo'); // NaN +Math.trunc(); // NaN +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Math.trunc = Math.trunc || function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.trunc', 'Math.trunc')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("38")}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("25")}}</td> + <td>{{CompatSafari("7.1")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}} {{experimental_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/nan/index.html b/files/ca/web/javascript/referencia/objectes_globals/nan/index.html new file mode 100644 index 0000000000..1d6f4a4dc8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/nan/index.html @@ -0,0 +1,125 @@ +--- +title: NaN +slug: Web/JavaScript/Referencia/Objectes_globals/NaN +translation_of: Web/JavaScript/Reference/Global_Objects/NaN +--- +<div> +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>La propietat global <code><strong>NaN</strong></code> és un valor que representa Not-A-Number.</p> + +<p>{{js_property_attributes(0,0,0)}}</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>NaN</code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p><code>NaN</code> és una propietat de l'<em>objecte global</em>.</p> + +<p>El valor inicial de <code>NaN</code> és Not-A-Number — el mateix que el valor de <code>Number.NaN</code>. En navegadors moderns <code>NaN</code> és una propietat no configurable que no pot ser escrita. En cas contrari es recomana no sobreescriure el seu valor.</p> + +<p>L'ús directe de <code>NaN</code> és poc freqüent. Apareix tot sovint però com va valor retornat quan una funció matemàtica falla (<code>Math.sqrt(-1)</code>) o quan s'intenta convertir una cadena de text a nombre sense èxit (<code>parseInt("blabla")</code>).</p> + +<h2 id="Comparant_NaN">Comparant <code>NaN</code></h2> + +<p>L'operador d'igualtat (<code>==</code> i <code>===</code>) no pot ésser emprat per comparar un resultat amb <code>NaN</code>. Es fa necessari l'ús de {{jsxref("Number.isNaN()")}} o bé {{jsxref("Global_Objects/isNaN", "isNaN()")}}.</p> + +<pre class="brush: js">NaN === NaN; // false +Number.NaN === NaN; // false +isNaN(NaN); // true +isNaN(Number.NaN); // true +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.3</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.1.1.1', 'NaN')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-value-properties-of-the-global-object-nan', 'NaN')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.NaN")}}</li> + <li>{{jsxref("Number.isNaN()")}}</li> + <li>{{jsxref("Global_Objects/isNaN", "isNaN()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/null/index.html b/files/ca/web/javascript/referencia/objectes_globals/null/index.html new file mode 100644 index 0000000000..97506ddeb5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/null/index.html @@ -0,0 +1,125 @@ +--- +title: 'null' +slug: Web/JavaScript/Referencia/Objectes_globals/null +translation_of: Web/JavaScript/Reference/Global_Objects/null +--- +<div> +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>El valor <code>null</code> és un literal de JavaScript que representa un valor nul o "buit", per exemple, quan no s'ha asignat cap valor previ. És un dels {{Glossary("Primitive", "valors primitius")}} de JavaScript.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>null </code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El valor <code>null</code> és un literal (i no una propietat de l'objecte global, com ho és <a href="/ca/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="/en-US/docs/JavaScript/Reference/Global_Objects/undefined"><code>undefined</code></a>). A l'utilitzar les APIs, <code>null</code> s'obté sovint en comptes de l'objecte esperat quan no hi ha cap objecte relevant. Quan es vol comprovar si un valor és null o be undefined és important recordar les <a href="/ca/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">diferències entre els operadors d'igualtat (==) i d'identitat (===)</a> (ja que amb el primer s'aplica una conversió de tipus).</p> + +<pre class="brush: js">// foo no existeix, no està definit i no s'ha inicialitzat mai +> foo +"ReferenceError: foo is not defined" + +// Es sap que foo existeix ara però no té tipus ni cap valor assignat: +> var foo = null; foo +"null" +</pre> + +<h3 id="Diferència_entre_null_i_undefined">Diferència entre <code>null</code> i <code>undefined</code></h3> + +<pre class="brush: js">typeof null // objecte (degut a un bug a ECMAScript, hauria de ser null) +typeof undefined // undefined +null === undefined // false +null == undefined // true +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-null-value', 'null value')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/undefined", "undefined")}}</li> + <li>{{jsxref("Global_Objects/NaN", "NaN")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/epsilon/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/epsilon/index.html new file mode 100644 index 0000000000..5e3f602703 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/epsilon/index.html @@ -0,0 +1,102 @@ +--- +title: Number.EPSILON +slug: Web/JavaScript/Referencia/Objectes_globals/Number/EPSILON +translation_of: Web/JavaScript/Reference/Global_Objects/Number/EPSILON +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Number.EPSILON</code></strong> representa la diferència entre el nombre 1 i el valor més petit major que 1 que pot ser representat com un {{jsxref("Global_Objects/Number", "Number")}}.</p> + +<p>Per tal d'accedir a la propietat no es fa necessari crear un objecte {{jsxref("Global_Objects/Number", "Number")}} ja que és una propietat estàtica i n'hi ha prou amb fer servir <code>Number.EPSILON</code> per a obtindre el valor.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>La propietat <code>EPSILON</code> té un valor aproximat de <code>2.2204460492503130808472633361816E-16</code>, és a dir, <code>2<sup>-52</sup></code>.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Exemple_Comprovant_l'igualtat">Exemple: Comprovant l'igualtat</h3> + +<pre class="brush: js">x = 0.2; +y = 0.3; +equal = (Math.abs(x - y) < Number.EPSILON); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-15.7.3.7', 'Number.EPSILON')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Global_Objects/Number", "Number")}} al qual pertany.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/index.html new file mode 100644 index 0000000000..5f4b7a0bb2 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/index.html @@ -0,0 +1,214 @@ +--- +title: Number +slug: Web/JavaScript/Referencia/Objectes_globals/Number +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'objecte de JavaScript <strong><code>Number</code></strong> és un objecte embolcall que permet treballar amb valors numèrics. Un objecte de tipus <code>Number</code> és creat quan es crida el constructor <code>Number()</code>.</p> + +<h2 id="Syntax" name="Syntax">Constructor</h2> + +<pre class="syntaxbox">new Number(valor);</pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>El valor numèric de l'objecte que es pretèn crear.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Els usos pricipals de l'objecte <code>Number</code> són:</p> + +<ul> + <li>Si l'argument dona al constructor no es pot convertir en un nombre aquest retorna {{jsxref("Global_Objects/NaN", "NaN")}}.</li> + <li><code>Number</code> pot ser emprat per a realitzar conversions de tipus sense necesitat de crear un nou objecte.</li> +</ul> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("Number.EPSILON")}} {{experimental_inline}}</dt> + <dd>L'interval més petit entre dos nombres que es pot representar.</dd> + <dt>{{jsxref("Number.MAX_SAFE_INTEGER")}} {{experimental_inline}}</dt> + <dd>El nombre sencer més gran que JavaScript pot representar de forma segura (<code>2<sup>53</sup> - 1</code>).</dd> + <dt>{{jsxref("Number.MAX_VALUE")}}</dt> + <dd>El nombre positiu més gran que pot ésser representat.</dd> + <dt>{{jsxref("Number.MIN_SAFE_INTEGER")}} {{experimental_inline}}</dt> + <dd>El nombre més petit que JavaScript pot representar de forma segura (<code>-(2<sup>53</sup> - 1)</code>).</dd> + <dt>{{jsxref("Number.MIN_VALUE")}}</dt> + <dd>El nombre positiu més petit que pot ésser representat. És a dir, el nombre positiu més proper a zero sense arribar a ser zero.</dd> + <dt>{{jsxref("Number.NaN")}}</dt> + <dd>El valor especial "not a number".</dd> + <dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt> + <dd>El valor especial que representa l'infinit negatiu. És retornat quan es produeix un <em>overflow</em>.</dd> + <dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt> + <dd>El valor especial que representa l'infinit positiu. És retornat quan es produeix un <em>overflow</em>.</dd> + <dt>{{jsxref("Number.prototype")}}</dt> + <dd>Permet l'adició de propietats a l'objecte <code>Number</code>.</dd> +</dl> + +<div>{{jsOverrides("Function", "properties", "MAX_VALUE", "MIN_VALUE", "NaN", "NEGATIVE_INFINITY", "POSITIVE_INFINITY", "protoype")}}</div> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>{{jsxref("Number.isNaN()")}} {{experimental_inline}}</dt> + <dd>Determina si el valor proporcionat és NaN.</dd> + <dt>{{jsxref("Number.isFinite()")}} {{experimental_inline}}</dt> + <dd>Determina si el valor que representa és un valor finit.</dd> + <dt>{{jsxref("Number.isInteger()")}} {{experimental_inline}}</dt> + <dd>Determina si el valor que representa és un nombre i si es tracta d'un nombre sencer.</dd> + <dt>{{jsxref("Number.isSafeInteger()")}} {{experimental_inline}}</dt> + <dd>Determina si el tipus del valor proporcionat així com el valor en sí mateix és un nombre sencer segur (nombre entre <code>-(2<sup>53</sup> - 1)</code> i <code>2<sup>53</sup> - 1</code>).</dd> + <dt><s class="obsoleteElement">{{jsxref("Number.toInteger()")}} {{obsolete_inline}}</s></dt> + <dd><s class="obsoleteElement">Utilitzat per evaluar el valor passat i convertir-lo a sencer (o bé {{jsxref("Global_Objects/Infinity", "Infinity")}}), però s'ha eliminat.</s></dd> + <dt>{{jsxref("Number.parseFloat()")}} {{experimental_inline}}</dt> + <dd>Fa la mateixa funció que el mètode {{jsxref("Global_Objects/parseFloat", "parseFloat")}} de l'objecte global.</dd> + <dt>{{jsxref("Number.parseInt()")}} {{experimental_inline}}</dt> + <dd>Fa la mateixa funció que el mètode {{jsxref("Global_Objects/parseInt", "parseInt")}} de l'objecte global.</dd> +</dl> + +<div>{{jsOverrides("Function", "Methods", "isNaN")}}</div> + +<h2 id="Number_instances" name="Number_instances"><code>Instàncies de Number</code></h2> + +<p>Totes les instàncies de <code>Number</code> hereten de {{jsxref("Number.prototype")}}. L'objecte prototype del constructor <code>Number</code> pot ser modificat per a afectar a totes les instàncies de <code>Number</code>.</p> + +<h3 id="Methods_of_Number_instance" name="Methods_of_Number_instance">Mètodes</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}</div> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_the_Number_object_to_assign_values_to_numeric_variables" name="Example:_Using_the_Number_object_to_assign_values_to_numeric_variables">Exemple: Utilitzar l'objecte <code>Number</code> per a assignar valors numèrics a variables</h3> + +<p>L'exemple que trobareu a continuació utilitza les propietats de l'objecte <code>Number</code> per a assignar valors a diferents variables numèriques:</p> + +<pre class="brush: js">var biggestNum = Number.MAX_VALUE; +var smallestNum = Number.MIN_VALUE; +var infiniteNum = Number.POSITIVE_INFINITY; +var negInfiniteNum = Number.NEGATIVE_INFINITY; +var notANum = Number.NaN; +</pre> + +<h3 id="Example:_Using_Number_to_convert_a_Date_object" name="Example:_Using_Number_to_convert_a_Date_object">Exemple: Rang de sencers de <code>Number</code></h3> + +<p>El següent exemple mostra el valor sencer mínim i màxim que pot ésser representat per un objecte de tipus <code>Number</code> (per a més detalls, referiu-vos a l'standard EcmaScript, capítol <em>8.5 El tipus Number</em>):</p> + +<pre class="brush: js">var biggestInt = 9007199254740992; +var smallestInt = -9007199254740992; +</pre> + +<p>A l'interpretar dades que han sigut serialitzades amb JSON, els valors que queden fora d'aquest rang poden esdevenir corruptes quan l'intèrpret de JSON els forci esdevenir de tipus <code>Number</code>. Una forma d'evitar aquesta limitació és utilitzar una {{jsxref("Global_Objects/String", "String")}} per representar el nombre.</p> + +<h3 id="Example:_Using_Number_to_convert_a_Date_object" name="Example:_Using_Number_to_convert_a_Date_object">Exemple: Utilitzar <code>Number</code> per a convertir un objecte de tipus <code>Date</code></h3> + +<p>L'exemple que trobareu a continuació converteix un objecte de tipus {{jsxref("Global_Objects/Date", "Date")}} a un tipus numèric tot utilitzant <code>Number</code> com una funció:</p> + +<pre class="brush: js">var d = new Date('December 17, 1995 03:24:00'); +print(Number(d)); +</pre> + +<p>Aquest exemple mostrarà "819199440000".</p> + +<h3 id="Exemple_Convertir_cadenes_de_caràcters_numèriques_a_nombres">Exemple: Convertir cadenes de caràcters numèriques a nombres</h3> + +<pre class="brush: js">Number("123") // 123 +Number("") // 0 +Number("0x11") // 17 +Number("0b11") // 3 +Number("0o11") // 9 +Number("foo") // NaN +Number("100a") // NaN +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7', 'Number')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number-objects', 'Number')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Afegides nous mètodes i propietats: ({{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}})</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadores">Compatibilitat amb navegadores</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/NaN", "NaN")}}</li> + <li>L'objecte global {{jsxref("Global_Objects/Math", "Math")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/isfinite/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/isfinite/index.html new file mode 100644 index 0000000000..21d9493bf8 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/isfinite/index.html @@ -0,0 +1,118 @@ +--- +title: Number.isFinite() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/isFinite +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isFinite +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Number.isFinite()</code></strong> determina si el valor que se li passa com a argument és un nombre finit o no.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.isFinite(valor)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>El valor que es comprovarà si és finit.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>En comparació amb la funció global {{jsxref("Global_Objects/isFinite", "isFinite()")}}, aquest mètode no converteix el paràmetres a un nombre forçosament. Això implica que només valors de tipus number, que també siguin finits, retornaran <code>true</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">Number.isFinite(Infinity); // false +Number.isFinite(NaN); // false +Number.isFinite(-Infinity); // false + +Number.isFinite(0); // true +Number.isFinite(2e64); // true + +Number.isFinite('0'); // false, seria true si s'utilitzés la + // funció global isFinite('0') +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Number.isFinite = Number.isFinite || function(value) { + return typeof value === "number" && isFinite(value); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.isfinite', 'Number.isInteger')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("19")}}</td> + <td>{{CompatGeckoDesktop("16")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("16")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Global_Objects/Number", "Number")}} al que pertany.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/isinteger/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/isinteger/index.html new file mode 100644 index 0000000000..ee524e91c2 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/isinteger/index.html @@ -0,0 +1,118 @@ +--- +title: Number.isInteger() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/isInteger +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger +--- +<div>{{JSRef}}</div> + +<p>El mètode<strong> <code>Number.isInteger()</code></strong> determina si el valor que se li passa és un nombre sencer.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.isInteger(valor)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>El valor que serà comprovat si és sencer o no.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si el valor passat és un nombre sencer, la funció retornarà <code>true</code>, en cas contrari es retorna <code>false</code>. Si el valor és {{jsxref("Global_Objects/NaN", "NaN")}} o infinit, es retorna <code>false</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">Number.isInteger(0.1); // false +Number.isInteger(1); // true +Number.isInteger(Math.PI); // false +Number.isInteger(-100000); // true +Number.isInteger(NaN); // false +Number.isInteger(0); // true +Number.isInteger("10"); // false +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Number.isInteger = Number.isInteger || function(value) { + return typeof value === "number" && + isFinite(value) && + Math.floor(value) === value; +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("16")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("16")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Global_Objects/Number", "Number")}} al que pertany.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/isnan/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/isnan/index.html new file mode 100644 index 0000000000..f6ba247306 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/isnan/index.html @@ -0,0 +1,129 @@ +--- +title: Number.isNaN() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/isNaN +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Number.isNaN()</code></strong> determina si el valor passat com a argument és {{jsxref("Global_Objects/NaN", "NaN")}}. És una versió més robusta de la funció global {{jsxref("Global_Objects/isNaN", "isNaN()")}}.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.isNaN(valor)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>El valor que es comprovarà si és {{jsxref("Global_Objects/NaN", "NaN")}}.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Degut als dos operadors d'igualtat, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} i {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, retornen <code>false</code> quan es comprova si {{jsxref("Global_Objects/NaN", "NaN")}} <em>és</em> {{jsxref("Global_Objects/NaN", "NaN")}}, la funció <code>Number.isNaN()</code> esdevé necesària. Aquesta situació és diferent a totes les altres posibles comparacions a JavaScript.</p> + +<p>En comparació a la funció global {{jsxref("Global_Objects/isNaN", "isNaN()")}} function, <code>Number.isNaN()</code> no sofreix el problema de convertir forçosament el paràmetre donat a un nombre. Això implica que ara és segur passar valors que normalment serien convertits a {{jsxref("Global_Objects/NaN", "NaN")}} però en realitat no tenen el mateix valor que {{jsxref("Global_Objects/NaN", "NaN")}}. Això també implica que només valors de tipus number, que també siguin {{jsxref("Global_Objects/NaN", "NaN")}}, retornaran <code>true</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">Number.isNaN(NaN); // true +Number.isNaN(Number.NaN); // true +Number.isNaN(0 / 0) // true + +// exemples que esdevindrien true amb la funció global isNaN() +Number.isNaN("NaN"); // false +Number.isNaN(undefined); // false +Number.isNaN({}); // false +Number.isNaN("blabla"); // false + +// Tots els següents retornen false +Number.isNaN(true); +Number.isNaN(null); +Number.isNaN(37); +Number.isNaN("37"); +Number.isNaN("37.37"); +Number.isNaN(""); +Number.isNaN(" "); +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Number.isNaN = Number.isNaN || function(value) { + return typeof value === "number" && value !== value; +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.isnan', 'Number.isnan')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("25")}}</td> + <td>{{CompatGeckoDesktop("15")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>9</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("15")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>iOS 9+</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/Number", "Number")}}</li> + <li>{{jsxref("Global_Objects/isNaN", "isNaN()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/issafeinteger/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/issafeinteger/index.html new file mode 100644 index 0000000000..7570e7289d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/issafeinteger/index.html @@ -0,0 +1,117 @@ +--- +title: Number.isSafeInteger() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/isSafeInteger +translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Number.isSafeInteger()</code></strong> determina si el valor proporcionat és un nombre sencer segur. Un nombre sencer segur és aquell que</p> + +<ul> + <li>pot ser representat de forma exacta per un nombre de doble precisió IEEE-754, i</li> + <li>la seva representació IEEE-754 no pot ser el resultat de arrodonir cap altre nombre sencer per a encabir-lo a la representació IEEE-754.</li> +</ul> + +<p>Per exemple, <code>2<sup>53</sup> - 1</code> és un nombre sencer segur: pot ser representat de forma exacta i cap altre nombre sencer arrodonit coincideix amb ell sota cap mode d'arrodoniment IEEE-754. Per contra, <code>2<sup>53</sup></code> <em>no</em> és un nombre sencer segur: pot ser representat de manera exacta en IEEE-754, però el nombre sencer <code>2<sup>53</sup> + 1</code> no pot ser representat directament en IEEE-754 sino que s'arrodoniria a <code>2<sup>53</sup></code> mitjançant un arrodoniment al sencer més proper i un arrodoniment cap al zero.</p> + +<p>Els nombres sencers segurs consisteixen en tots els nombres sencers des de <code>-(2<sup>53</sup> - 1)</code> inclòs fins a <code>2<sup>53</sup> - 1</code> inclòs.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.isSafeInteger(valor)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valor</code></dt> + <dd>El valor a ser testat com a nombre sencer segur.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: js">Number.isSafeInteger(3); // true +Number.isSafeInteger(Math.pow(2, 53)); // false +Number.isSafeInteger(Math.pow(2, 53) - 1); // true +Number.isSafeInteger(NaN); // false +Number.isSafeInteger(Infinity); // false +Number.isSafeInteger('3'); // false +Number.isSafeInteger(3.1); // false +Number.isSafeInteger(3.0); // true +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("32")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <td>Característica</td> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("32")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Global_Objects/Number", "Number")}} al que pertany.</li> + <li>{{jsxref("Number.MIN_SAFE_INTEGER")}}</li> + <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/max_safe_integer/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/max_safe_integer/index.html new file mode 100644 index 0000000000..02483b41ac --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/max_safe_integer/index.html @@ -0,0 +1,100 @@ +--- +title: Number.MAX_SAFE_INTEGER +slug: Web/JavaScript/Referencia/Objectes_globals/Number/MAX_SAFE_INTEGER +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La constant <strong><code>Number.MAX_SAFE_INTEGER</code></strong> representa el valor màxim que JavaScript pot representar de forma segura (<code>2<sup>53</sup> - 1</code>).</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>La constant <code>MAX_SAFE_INTEGER</code> te un valor de <code>9007199254740991</code>. El raonament darrera d'aquest nombre és que JavaScript utilitza un <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format">format de nombres de coma flotant de doble precisió</a>, tal com s'especifica al <a href="http://en.wikipedia.org/wiki/IEEE_floating_point">IEEE 754</a> i en conseqüència només pot representar de forma segura els nombres entre <code>-(2<sup>53</sup> - 1)</code> i <code>2<sup>53</sup> - 1</code>.</p> + +<p>Degut a que <code>MAX_SAFE_INTEGER</code> és una propietat estàtica de {{jsxref("Global_Objects/Number", "Number")}}, sempre s'accedeix de mitjançant <code>Number.MAX_SAFE_INTEGER</code> en comptes de com una propietat d'un objecte {{jsxref("Global_Objects/Number", "Number")}} instanciat.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: js">Number.MAX_SAFE_INTEGER // 9007199254740991 +Math.pow(2, 53) - 1 // 9007199254740991 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.max_safe_integer', 'Number.MAX_SAFE_INTEGER')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("34")}}</td> + <td>{{CompatGeckoDesktop("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("32")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.MIN_SAFE_INTEGER")}}</li> + <li>{{jsxref("Number.isSafeInteger()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/max_value/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/max_value/index.html new file mode 100644 index 0000000000..453ad01c23 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/max_value/index.html @@ -0,0 +1,118 @@ +--- +title: Number.MAX_VALUE +slug: Web/JavaScript/Referencia/Objectes_globals/Number/MAX_VALUE +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +--- +<div> +<div>{{JSRef("Global_Objects", "Number")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Number.MAX_VALUE</code></strong> representa el valor numèric màxim representable en JavaScript.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>La propietat <code>MAX_VALUE</code> té un valor aproximadament de <code>1.79E+308</code>. Els valors més grans que <code>MAX_VALUE</code> són representats com a "<code>Infinity</code>".</p> + +<p>Ja que <code>MAX_VALUE</code> és una propietat estàtica de {{jsxref("Global_Objects/Number", "Number")}}, sempre es fa servir com a <code>Number.MAX_VALUE</code>, en comptes d'una propietat de l'objecte {{jsxref("Global_Objects/Number", "Number")}} que s'ha creat.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_MAX_VALUE" name="Example:_Using_MAX_VALUE">Exemple: Fer servir <code>MAX_VALUE</code></h3> + +<p>El codi següent multiplica dos valors numèrics. Si el resultat és menor o igual a <code>MAX_VALUE</code>, es crida la funció <code>func1</code>; del contrari, es crida la funció <code>func2</code>.</p> + +<pre class="brush: js">if (num1 * num2 <= Number.MAX_VALUE) { + func1(); +} else { + func2(); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.3.2', 'Number.MAX_VALUE')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.max_value', 'Number.MAX_VALUE')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Supor bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.MIN_VALUE")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/min_safe_integer/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/min_safe_integer/index.html new file mode 100644 index 0000000000..861ec666ec --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/min_safe_integer/index.html @@ -0,0 +1,100 @@ +--- +title: Number.MIN_SAFE_INTEGER +slug: Web/JavaScript/Referencia/Objectes_globals/Number/MIN_SAFE_INTEGER +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La constant <strong><code>Number.MIN_SAFE_INTEGER</code></strong> representa el nombre sencer segur més petit a JavaScript (<code>-(2<sup>53</sup> - 1)</code>).</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>La constant <code>MIN_SAFE_INTEGER</code> te un valor de<code> -9007199254740991</code>. El raonament darrera d'aquest nombre és que JavaScript utilitza un <a href="http://en.wikipedia.org/wiki/Double_precision_floating-point_format">format de nombres de coma flotant de doble precisió</a>, tal com s'especifica al <a href="http://en.wikipedia.org/wiki/IEEE_floating_point">IEEE 754</a> i en conseqüència només pot representar de forma segura els nombres entre <code>-(2<sup>53</sup> - 1)</code> i <code>2<sup>53</sup> - 1</code>.</p> + +<p>Degut a que <code>MIN_SAFE_INTEGER</code> és una propietat estàtica de {{jsxref("Global_Objects/Number", "Number")}}, sempre s'accedeix de mitjançant <code>Number.MIN_SAFE_INTEGER</code> en comptes de com una propietat d'un objecte {{jsxref("Global_Objects/Number", "Number")}} instanciat.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<pre class="brush: js">Number.MIN_SAFE_INTEGER // -9007199254740991 +-(Math.pow(2, 53) - 1) // -9007199254740991 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.min_safe_integer', 'Number.MIN_SAFE_INTEGER')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("34")}}</td> + <td>{{CompatGeckoDesktop("31")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("32")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}</li> + <li>{{jsxref("Number.isSafeInteger()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/min_value/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/min_value/index.html new file mode 100644 index 0000000000..42af185360 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/min_value/index.html @@ -0,0 +1,118 @@ +--- +title: Number.MIN_VALUE +slug: Web/JavaScript/Referencia/Objectes_globals/Number/MIN_VALUE +translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Number.MIN_VALUE</code></strong> representa el valor numèric positiu més petit representable en JavaScript.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>La propietat <code>MIN_VALUE</code> és el nombre més proper a 0, però no és el nombre més negatiu que es pot representar en JavaScript.</p> + +<p><code>MIN_VALUE</code> té un valor aproximat de <code>5e-324</code>. Els valors més petits que <code>MIN_VALUE</code> ("underflow values") són convertits a 0.</p> + +<p>Ja que <code>MIN_VALUE</code> és una propietat estàtica de {{jsxref("Global_Objects/Number", "Number")}}, sempre s'usa com a <code>Number.MIN_VALUE</code>, i no com una propietat de l'objecte {{jsxref("Global_Objects/Number", "Number")}} que heu creat.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_MIN_VALUE" name="Example:_Using_MIN_VALUE">Exemple: Fer servir <code>MIN_VALUE</code></h3> + +<p>El codi següent divideix dos valors numèrics. Si el valor és més gran o igual a <code>MIN_VALUE</code>, la funció <code>func1</code> és crida; del contrari, es crida la funció <code>func2</code>.</p> + +<pre class="brush: js">if (num1 / num2 >= Number.MIN_VALUE) { + func1(); +} else { + func2(); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.3.3', 'Number.MIN_VALUE')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.min_value', 'Number.MIN_VALUE')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característca</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.MAX_VALUE")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/nan/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/nan/index.html new file mode 100644 index 0000000000..7c6f3f1440 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/nan/index.html @@ -0,0 +1,100 @@ +--- +title: Number.NaN +slug: Web/JavaScript/Referencia/Objectes_globals/Number/NaN +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Number.NaN</code></strong> representa Not-A-Number (quelcom que no és un nombre). Equivalent a {{jsxref("Global_Objects/NaN", "NaN")}}.</p> + +<p>No és necesari crear un objecte de tipus {{jsxref("Global_Objects/Number", "Number")}} per a accedir a aquesta propietat estàtica (utilitzeu <code>Number.NaN</code>).</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.3.4', 'Number.NaN')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.nan', 'Number.NaN')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>L'objecte global {{jsxref("Global_Objects/NaN", "NaN")}}.</li> + <li>L'objecte {{jsxref("Global_Objects/Number", "Number")}} al qual pertany.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/negative_infinity/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/negative_infinity/index.html new file mode 100644 index 0000000000..3fb4c1d150 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/negative_infinity/index.html @@ -0,0 +1,134 @@ +--- +title: Number.NEGATIVE_INFINITY +slug: Web/JavaScript/Referencia/Objectes_globals/Number/NEGATIVE_INFINITY +translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>Number.NEGATIVE_INFINITY</code></strong> representa el valor infinit negatiu.</p> + +<p>No fa falta crear un objecte {{jsxref("Global_Objects/Number", "Number")}} per accedir a aquesta propietat estàtica (feu servir <code>Number.NEGATIVE_INFINITY</code>).</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>El valor de <code>Number.NEGATIVE_INFINITY</code> és el mateix que el valor negatiu de la propietat de l'objecte global {{jsxref("Global_Objects/Infinity", "Infinity")}}.</p> + +<p>Aquest valor es comporta de forma una mica diferent a l<u>'infinit matemàtic:</u></p> + +<ul> + <li>Qualsevol valor positiu, incloent {{jsxref("Number.POSITIVE_INFINITY", "POSITIVE_INFINITY")}}, multiplicat per <code>NEGATIVE_INFINITY</code> és <code>NEGATIVE_INFINITY</code>.</li> + <li>Qualsevol calor negatiu, incloent <code>NEGATIVE_INFINITY</code>, multiplicat per <code>NEGATIVE_INFINITY</code> és {{jsxref("Number.POSITIVE_INFINITY", "POSITIVE_INFINITY")}}.</li> + <li>Zero multiplicat per <code>NEGATIVE_INFINITY</code> és {{jsxref("Global_Objects/NaN", "NaN")}}.</li> + <li>{{jsxref("Global_Objects/NaN", "NaN")}} multiplicat per <code>NEGATIVE_INFINITY</code> és {{jsxref("Global_Objects/NaN", "NaN")}}.</li> + <li><code>NEGATIVE_INFINITY</code>, dividit per qualsevol valor negatiu excepte <code>NEGATIVE_INFINITY</code>, és {{jsxref("Number.POSITIVE_INFINITY", "POSITIVE_INFINITY")}}.</li> + <li><code>NEGATIVE_INFINITY</code>, dividit per qualsevol valor positiu excepte {{jsxref("Number.POSITIVE_INFINITY", "POSITIVE_INFINITY")}}, és <code>NEGATIVE_INFINITY</code>.</li> + <li><code>NEGATIVE_INFINITY</code>, dividit tant per <code>NEGATIVE_INFINITY</code> com per {{jsxref("Number.POSITIVE_INFINITY", "POSITIVE_INFINITY")}}, és {{jsxref("Global_Objects/NaN", "NaN")}}.</li> + <li>Qualsevol nombre dividit per <code>NEGATIVE_INFINITY</code> és zero.</li> +</ul> + +<p>Es pot fer serivir la propietat <code>Number.NEGATIVE_INFINITY</code> per indicar una condició d'error que retorna un nombre finit en cas d'èxit. Fixeu-vos, però, que {{jsxref("Global_Objects/isFinite", "isFinite")}} seria més apropiat en aquest cas.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Exemple_Fer_servir_NEGATIVE_INFINITY">Exemple: Fer servir <code>NEGATIVE_INFINITY</code></h3> + +<p><u>En l'exemple següent, a la variable <code>smallNumber</code> se li assigna un valor que és més petit que el valor mínim. Quan la delcaració {{jsxref("Statements/if...else", "if")}} s'executa, <code>smallNumber</code> té el valor <code>-Infinity</code>, així <code>smallNumber</code> s'estableix com a un valor més manegable abans de prosseguir.</u></p> + +<pre class="brush: js notranslate">var smallNumber = (-Number.MAX_VALUE) * 2; + +if (smallNumber == Number.NEGATIVE_INFINITY) { + smallNumber = returnFinite(); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.3.5', 'Number.NEGATIVE_INFINITY')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.POSITIVE_INFINITY")}}</li> + <li>{{jsxref("Number.isFinite()")}}</li> + <li>{{jsxref("Global_Objects/Infinity", "Infinity")}}</li> + <li>{{jsxref("Global_Objects/isFinite", "isFinite()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/parsefloat/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/parsefloat/index.html new file mode 100644 index 0000000000..cd3494b7ac --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/parsefloat/index.html @@ -0,0 +1,103 @@ +--- +title: Number.parseFloat() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/parseFloat +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseFloat +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Number.parseFloat()</code></strong> interpreta el string passat com a argument i retorna un nombre de punt flotant. Aquest mètode es comporta de la mateixa manera que la funció global {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} i és part del ECMAScript 6 (el seu motiu d'existència és la modularització dels globals).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.parseFloat(<var>string</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>string</code></dt> + <dd>Un string que representa el valor a interpretar.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Vegeu {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} per a més detalls i exemples.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Number.parseFloat = parseFloat;</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.parsefloat', 'Number.parseFloat')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Number")}} al que pertany.</li> + <li>La funció global {{jsxref("Global_Objects/parseFloat", "parseFloat()")}}.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/parseint/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/parseint/index.html new file mode 100644 index 0000000000..2ef9597d11 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/parseint/index.html @@ -0,0 +1,102 @@ +--- +title: Number.parseInt() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/parseInt +translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseInt +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>Number.parseInt()</code></strong> interpreta un argument string i retorna un nombre sencer de la base especificada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.parseInt(<var>string</var>[, <var>radix</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<div>{{page("ca/docs/Web/JavaScript/Reference/Global_Objects/parseInt", "Parameters")}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquest mètode és exactament la mateixa funció que la funció global {{jsxref("Global_Objects/parseInt", "parseInt()")}}:</p> + +<pre class="brush: js">Number.parseInt === parseInt; // true</pre> + +<p>i és part de l'ECMAScript 6 (el seu propòsit és la modularització de les globals). Vegeu jsxref("Global_Objects/parseInt", "parseInt()")}} per a més detalls i exemples.</p> + +<h2 id="Polyfill">Polyfill</h2> + +<pre class="brush: js">Number.parseInt = parseInt;</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.parseint', 'Number.parseInt')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>L'objecte {{jsxref("Number")}} al que pertany.</li> + <li>La funció global {{jsxref("Global_Objects/parseInt", "parseInt()")}}.</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/positive_infinity/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/positive_infinity/index.html new file mode 100644 index 0000000000..234a779fd1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/positive_infinity/index.html @@ -0,0 +1,137 @@ +--- +title: Number.POSITIVE_INFINITY +slug: Web/JavaScript/Referencia/Objectes_globals/Number/POSITIVE_INFINITY +translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +--- +<div>{{JSRef}}</div> + +<p>La propietat <strong><code>Number.POSITIVE_INFINITY</code></strong> representa el valor infinit negatiu.</p> + +<p>No fa falta crear un objecte {{jsxref("Global_Objects/Number", "Number")}} per accedir a aquesta propietat estàtica (feu servir <code>Number.POSITIVE_INFINITY</code>).</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>El valor de <code>Number.POSITIVE_INFINITY</code> és el mateix que el valor negatiu de la propietat de l'objecte global {{jsxref("Infinity")}}.</p> + +<p> </p> + +<p>Aquest valor es comporta de forma una mica diferent a l'infinit matemàtic<u>:</u></p> + +<p>Qualsevol valor positiu, incloent <code>POSITIVE_INFINITY</code>, multiplicat per <code>POSITIVE_INFINITY</code> és <code>POSITIVE_INFINITY</code>.</p> + +<ul> + <li>Qualsevol calor negatiu, incloent <code>NEGATIVE_INFINITY</code>, multiplicat per <code>POSITIVE_INFINITY</code> és {{jsxref("Number.<code>NEGATIVE</code>_INFINITY", "POSITIVE_INFINITY")}}.</li> + <li>Zero multiplicat per<code> POSITIVE_INFINITY</code> és {{jsxref("NaN")}}.</li> + <li>{{jsxref("Global_Objects/NaN", "NaN")}} multiplicat per<code>POSITIVE_INFINITY</code> és {{jsxref("NaN")}}.</li> + <li><code>POSITIVE_INFINITY</code>, dividit per quaulsevol valor negatiu execepte {{jsxref("Number.NEGATIVE_INFINITY", "NEGATIVE_INFINITY")}}, és {{jsxref("Number.NEGATIVE_INFINITY", "NEGATIVE_INFINITY")}}.</li> + <li><code>POSITIVE_INFINITY</code>, dividit per un valor positiu a excepció de<code> POSITIVE_INFINITY</code>, és <code>POSITIVE_INFINITY</code>.</li> + <li><code>POSITIVE_INFINITY</code>, dividit per {{jsxref("Number.NEGATIVE_INFINITY", "NEGATIVE_INFINITY")}} o bé per <code>POSITIVE_INFINITY</code>, és {{jsxref("NaN")}}.</li> + <li>Quasevol nombre dividit per<code> POSITIVE_INFINITY</code> és Zero.</li> +</ul> + +<p>Es pot fer serivir la propietat <code>Number.POSITIVE_INFINITY</code> per indicar una condició d'error que retorna un nombre finit en cas d'èxit. Fixeu-vos, però, que {{jsxref("isFinite")}} seria més apropiat en aquest cas.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_POSITIVE_INFINITY">Utilitzar <code>POSITIVE_INFINITY</code></h3> + +<p>In the following example, the variable <code>bigNumber</code> is assigned a value that is larger than the maximum value. When the {{jsxref("Statements/if...else", "if")}} statement executes, <code>bigNumber</code> has the value <code>Infinity</code>, so <code>bigNumber</code> is set to a more manageable value before continuing.</p> + +<p>A l'exemple següent, a la variable <code>nombrePetit</code> se li assigna un valor que és més gran que el valor màxim. Quan la declaració {{jsxref("Statements/if...else", "if")}} s'executa, <code>nombrePetit</code> té el valor <code>Infinity</code>, així <code>nombrePetit</code> s'estableix com a un valor més manegable abans de prosseguir.</p> + +<pre class="brush: js">var nombrePetit = Number.MAX_VALUE * 2; + +if (nombrePetit == Number.POSITIVE_INFINITY) { + nombrePetit= returnFinite(); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.3.6', 'Number.POSITIVE_INFINITY')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.NEGATIVE_INFINITY")}}</li> + <li>{{jsxref("Number.isFinite()")}}</li> + <li>{{jsxref("Infinity")}}</li> + <li>{{jsxref("Global_Objects/isFinite", "isFinite()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/prototype/index.html new file mode 100644 index 0000000000..3e5e679aaf --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/prototype/index.html @@ -0,0 +1,125 @@ +--- +title: Number.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Number/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number +--- +<div>{{JSRef}}</div> + +<p>La propietat <strong><code>Number.prototype</code></strong> representa el prototipus per al constructor {{jsxref("Number")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Totes les instàncies de {{jsxref("Number")}} hereten de <code>Number.prototype</code>. L'objecte prototipus del constructor de {{jsxref("Number")}} pot ser modificat per a afectar totes les instàncies de {{jsxref( "Number")}}.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Number.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat la instància d'aquest objecte. Per defecte aquesta és l'objecte {{jsxref("Number")}}.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Number.prototype.toExponential()")}}</dt> + <dd>Retorna un string que representa el nombre en notació exponencial.</dd> + <dt>{{jsxref("Number.prototype.toFixed()")}}</dt> + <dd>Retorna un string que representa el nombre en notació de punt fixe.</dd> + <dt>{{jsxref("Number.prototype.toLocaleString()")}}</dt> + <dd>Retorna un string amb una representació d'aquest nombbre sensible a la llengua. Sobreescriu el mètode {{jsxref("Object.prototype.toLocaleString()")}}.</dd> + <dt>{{jsxref("Number.prototype.toPrecision()")}}</dt> + <dd>Retorna un string amb una representació de precisió de punt fixe o notació exponencial del nombre.</dd> + <dt>{{jsxref("Number.prototype.toSource()")}} {{non-standard_inline}}</dt> + <dd>Retorna un objecte literal que representa l'objecte {{jsxref("Number")}} especificat; aquest valor pot ser emprat per a crear un nou objecte. Sobreescriu el mètode {{jsxref("Object.prototype.toSource()")}}.</dd> + <dt>{{jsxref("Number.prototype.toString()")}}</dt> + <dd>Retorna un string que representa l'objecte especificat en el radi (base) especificat. Sobreescriu el mètode {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Number.prototype.valueOf()")}}</dt> + <dd>Retorna el valor primitiu de l'objecte especificat. Sobreescriu el mètode {{jsxref("Object.prototype.valueOf()")}}.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4', 'Number')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-properties-of-the-number-prototype-object', 'Number')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/toexponential/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/toexponential/index.html new file mode 100644 index 0000000000..69ca3478ac --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/toexponential/index.html @@ -0,0 +1,136 @@ +--- +title: Number.prototype.toExponential() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/toExponential +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toExponential +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toExponential()</code></strong> retorna un string que representa l'objecte de tipus <code>Number</code> en notació exponencial.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>numObj</var>.toExponential([dígitsDecimals])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>dígitsDecimals</code></dt> + <dd>Opcional. Un nombre sencer que indica el nombre de dígits decimals que s'utilitzaran. Si no s'especifica s'utilitzaran per defecte tants dígits decimals com facin falta per a acomodar el nombre.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Un string que representa l'objecte {{jsxref("Number")}} en notació exponencial amb un dígit a l'esquerra del punt decimal, i arrodonit a <code>dígitsDecimals</code> després del punt decimal. Si s'omet el paràmetre <code>fractionDigits</code> s'utilitzaran tants dígits decimals com facin falta per a acomodar el nombre.</p> + +<p>Si s'utilitza el mètode <code>toExponential()</code> en un literal numèric i el literal numèric no té exponent ni punt decimal, deixeu un espai abans del punt que precedeix a la crida del mètode per a evitar que el punt s'interpreti com a punt decimal.</p> + +<p>Si un nombre té més dígits dels que s'especifiquen al paràmetre <code>dígitsDecimals</code> el nombre s'arrodoneix al nombre més proper representable pel nombre de dígits <code>dígitsDecimals</code>. Vegeu la discussió sobre arrodoniment a la descripció del mètode {{jsxref("Number.prototype.toFixed", "toFixed()")}}, que també s'aplica al mètode <code>toExponential()</code>.</p> + +<h3 id="Excepcions_llençades">Excepcions llençades</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Si el valor de <code>dígitsDecimals</code> és massa petit o massa gran. Els valors acceptats estan entre 0 i 20, ambdos inclusius, i no llençaran per tant l'excepció <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/RangeError" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>RangeError</code></a>. Les implementacions poden opcionalment donar suport per a valors més grans.</dd> + <dt>{{jsxref("TypeError")}}</dt> + <dd>Si es crida aquest mètode i se li passa un paràmetre que no és de tipus <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Number" title="L'objecte de JavaScript Number és un objecte embolcall que permet treballar amb valors numèrics. Un objecte de tipus Number és creat quan es crida el constructor Number()."><code>Number</code></a>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toExponential">Utilitzar <code>toExponential</code></h3> + +<pre class="brush: js">var numObj = 77.1234; + +console.log(numObj.toExponential()); // escriu 7.71234e+1 +console.log(numObj.toExponential(4)); // escriu 7.7123e+1 +console.log(numObj.toExponential(2)); // escriu 7.71e+1 +console.log(77.1234.toExponential()); // escriu 7.71234e+1 +console.log(77 .toExponential()); // escriu 7.7e+1 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a 1.5.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4.6', 'Number.prototype.toExponential')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.prototype.toexponential', 'Number.prototype.toExponential')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.prototype.toFixed()")}}</li> + <li>{{jsxref("Number.prototype.toPrecision()")}}</li> + <li>{{jsxref("Number.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/tofixed/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/tofixed/index.html new file mode 100644 index 0000000000..8df53aafe3 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/tofixed/index.html @@ -0,0 +1,135 @@ +--- +title: Number.prototype.toFixed() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/toFixed +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toFixed()</code></strong> formateja un nombre utilitzant notació de coma fixa.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>numObj</var>.toFixed([<var>dígits</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>dígits</code></dt> + <dd>Opcional. El nombre de dígits a utilitzar després del punt decimal; aquest paràmetre pot rebre valors entre 0 i 20, ambdós inclusius, i les implementacions poden opcionalment donar suport per a valors més grans. Si s'omet aquest argument s'utilitza un valor de 0 per defecte.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Una representació de <code>numObj</code> en forma de string que no utilitza notació exponencial i té exactament <code>dígits</code> digits després del punt decimal. El nombre s'arrodoneix en cas que sigui necesari, així com la part fraccionaria s'omple amb zeros en cas necesari. Si <code>numObj</code> és major que <code>1e+21</code>, aquest mètode retornarà un string en notació exponencial, proporcionat pel mètode {{jsxref("Number.prototype.toString()")}}.</p> + +<h3 id="Excepcions_llençades">Excepcions llençades</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Si el valor de <code>dígits</code> és massa petit o massa gran. Els valors acceptats estan entre 0 i 20, ambdos inclusius, i no llençaran per tant l'excepció {{jsxref("RangeError")}}. Les implementacions poden opcionalment donar suport per a valors més grans.</dd> + <dt>{{jsxref("TypeError")}}</dt> + <dd>Si es crida aquest mètode i se li passa un paràmetre que no és de tipus {{jsxref( "Number")}}.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toFixed">Utilitzar <code>toFixed</code></h3> + +<pre class="brush: js">var numObj = 12345.6789; + +numObj.toFixed(); // Retorna '12346': recalquem l'arrodoniment, no hi ha part decimal +numObj.toFixed(1); // Retorna '12345.7': recalquem l'arrodoniment +numObj.toFixed(6); // Retorna '12345.678900': recalquem els zeros afegits +(1.23e+20).toFixed(2); // Retorna '123000000000000000000.00' +(1.23e-10).toFixed(2); // Retorna '0.00' +2.34.toFixed(1); // Retorna '2.3' +-2.34.toFixed(1); // Retorna -2.3 (degut a la precedència d'operadors, nombres literals negatius no retornen un string...) +(-2.34).toFixed(1); // Retorna'-2.3' (...a no ser que s'utilitzin parèntesi) +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.5.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4.5', 'Number.prototype.toFixed')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.prototype.toExponential()")}}</li> + <li>{{jsxref("Number.prototype.toPrecision()")}}</li> + <li>{{jsxref("Number.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/tointeger/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/tointeger/index.html new file mode 100644 index 0000000000..b8fcd39443 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/tointeger/index.html @@ -0,0 +1,95 @@ +--- +title: Number.toInteger() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/toInteger +translation_of: Archive/Web/JavaScript/Number.toInteger +--- +<div>{{JSRef}} {{obsolete_header("33")}} {{non-standard_header}}</div> + +<p>El mètode <strong><code>Number.toInteger()</code></strong> evaluava el valor passat com a paràmetre i el convertia en un nombre sencer, aquest mètode, però, ha sigut eliminat.</p> + +<p>Si el valor és {{jsxref("NaN")}}, {{jsxref("null")}} o bé {{jsxref("undefined")}}, es retorna 0. Si el valor és <code>false</code>, es retorna 0 mentre que si el valor és <code>true</code>, es retorna 1.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>Number.toInteger(<em>nombre</em>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>nombre</code></dt> + <dd>El valor a convertir-se en un nombre sencer.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toInteger">Utilitzar <code>toInteger</code></h3> + +<pre class="brush: js">Number.toInteger(0.1); // 0 +Number.toInteger(1); // 1 +Number.toInteger(Math.PI); // 3 +Number.toInteger(null); // 0 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p><code>Number.toInteger()</code> era part de l'esborrany de l'especificació de l'ECMAScript 6, però el 23 d'agost de 2013 es va eliminar a la revisió 17 de l'esborrany.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}} [1]</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Aquesta característica va estar suportada des del Firefox 16 al 32.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/toprecision/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/toprecision/index.html new file mode 100644 index 0000000000..0af5875e7f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/toprecision/index.html @@ -0,0 +1,134 @@ +--- +title: Number.prototype.toPrecision() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/toPrecision +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toPrecision()</code></strong> retorna un string que representa l'objecte {{jsxref("Number")}} amb la precisió especificada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>numObj</var>.toPrecision([<em>precisió</em>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>precisió</code></dt> + <dd>Opional. Un nombre sencer que indica el nombre de dígits significatius.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Un string que representa un objecte {{jsxref("Number")}} en notació de punt fix o bé en notació exponencial, arrodonit a <code>precisió</code> dígits significatius. Vegeu la discussió sobre arrodoniment a la descripció del mètode {{jsxref("Number.prototype.toFixed()")}}, que també s'aplica a <code>toPrecision()</code>.</p> + +<p>Si s'omet l'argument <code>precisió</code>, es comporta com {{jsxref("Number.prototype.toString()")}}. Si l'argument <code>precisió</code> no és un nombre sencer, aquest s'arrodoneix al nombre sencer més proper.</p> + +<h3 id="Excepcions_llençades">Excepcions llençades</h3> + +<dl> + <dt>{{jsxref("Global_Objects/RangeError", "RangeError")}}</dt> + <dd>Si el valor de precisió no està entre 1 i 100 (ambdós inclusius), es llença un <a class="new" href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/RangeError" title="Aquesta pàgina encara no ha estat traduïda. Si us plau considera contribuir-hi!"><code>RangeError</code></a>. Les implementacions poden opcionalment donar suport per a valors més grans o petits. ECMA-262 tan sols requereix una precisió de fins a 21 dígits significatius.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toPrecision">Utilitzar <code>toPrecision</code></h3> + +<pre class="brush: js">var numObj = 5.123456; + +console.log(numObj.toPrecision()); // escriu 5.123456 +console.log(numObj.toPrecision(5)); // escriu 5.1235 +console.log(numObj.toPrecision(2)); // escriu 5.1 +console.log(numObj.toPrecision(1)); // escriu 5 + +// fixeu-vos que la notació exponencial pot retornar-se en algunes circumstàncies +console.log((1234.5).toPrecision(2)); // escriu 1.2e+3 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a 1.5.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4.7', 'Number.prototype.toPrecision')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.prototype.toFixed()")}}</li> + <li>{{jsxref("Number.prototype.toExponential()")}}</li> + <li>{{jsxref("Number.prototype.toString()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/number/tostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/number/tostring/index.html new file mode 100644 index 0000000000..7381fc97ac --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/number/tostring/index.html @@ -0,0 +1,141 @@ +--- +title: Number.prototype.toString() +slug: Web/JavaScript/Referencia/Objectes_globals/Number/toString +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toString()</code></strong> retorna un string que representa l'objecte {{jsxref("Number")}} especificat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>objecteNum</var>.toString([</code><em>base</em><code>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>base</code></dt> + <dd>Opcional. Un nombre sencer entre 2 i 36 que indica la base a utilitzar a l'hora de representar valors numèrics.</dd> +</dl> + +<h3 id="Errors_llençats">Errors llençats</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Si <code>toString()</code> rep una <code>base</code> que no estigui entre 2 i 36, es llença un {{jsxref("RangeError")}}.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>L'objecte {{jsxref("Number")}} sobreescriu el mètode <code>toString()</code> de l'objecte {{jsxref("Object")}}; no hereta {{jsxref("Object.prototype.toString()")}}. Per a objectes {{jsxref( "Number")}}, el mètode <code>toString()</code> retorna una representació en forma de string de l'objecte, utilitzant la base especificada.</p> + +<p>El mètode <code>toString()</code> interpreta el primer argument donat, i intenta retornar una representació en forma de string tot utilitzant la base proporcionada. Per a bases majors que 10, les lletres del alfabet indiquen numerals majors que 9. Per exemple, per a nombres hexadecimals (en base 16), s'utilitzen les lletres de la <code>a</code> a la <code>f</code>.</p> + +<p>Si no s'especifica la <code>base</code>, s'utilitza 10 com a base.</p> + +<p>Si <code>objecteNum</code> és negatiu, es conserva el signe. Això s'aplica fins i tot si la base és 2; el string retornat és la representació binària positiva de <code>objecteNum</code> precedida per un signe <code>-</code>, <strong>no</strong> s'utilitza el complement a dos de <code>objecteNum</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toString">Utilitzar <code>toString</code></h3> + +<pre class="brush: js">var count = 10; + +console.log(count.toString()); // mostra '10' +console.log((17).toString()); // mostra '17' + +var x = 6; + +console.log(x.toString(2)); // mostra '110' +console.log((254).toString(16)); // mostra 'fe' + +console.log((-10).toString(2)); // mostra '-1010' +console.log((-0xff).toString(2)); // mostra '-11111111' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4.2', 'Number.prototype.tostring')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.prototype.tostring', 'Number.prototype.tostring')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Number.prototype.toFixed()")}}</li> + <li>{{jsxref("Number.prototype.toExponential()")}}</li> + <li>{{jsxref("Number.prototype.toPrecision()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/parsefloat/index.html b/files/ca/web/javascript/referencia/objectes_globals/parsefloat/index.html new file mode 100644 index 0000000000..570fa6b63f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/parsefloat/index.html @@ -0,0 +1,166 @@ +--- +title: parseFloat() +slug: Web/JavaScript/Referencia/Objectes_globals/parseFloat +translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat +--- +<div> +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> +</div> + +<p>La funció <code><strong>parseFloat()</strong></code> interpreta un argument de tipus cadena i retorna un nombre decimal amb coma flotant</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">parseFloat(<em>cadena</em>)</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>cadena</code></dt> + <dd>Una cadena que representa el valor que es vol interpretar.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>parseFloat</code> és una funció de nivell superior que no està associada a cap objecte.</p> + +<p><code>parseFloat</code> interpreta el seu argument, una cadena, i retorna un nombre decimal amb coma flotant. Si es topa amb un caràcter que no sigui un signe (+ o -), un numeral (0-9), un punt decimal, o un exponent, retorna el valor fins a aquell punt i ignora aquell caràcter i la resta de caràcters que el succeeixen. Es permeten espais inicials i finals.</p> + +<p>Si el primer caràcter no es pot convertir en un nombre, <code>parseFloat</code> retorna <code>NaN</code>.</p> + +<p>Per propòstis aritmètics, el valor de <code>NaN</code> no és un nombre en qualsevol radix. Es pot cridar la funció {{jsxref("isNaN")}} per determinar si el resultat del <code>parseFloat</code> és <code>NaN</code>. Si es passa <code>NaN</code> en operacions aritmètiques, el resultat de l'operació també serà <code>NaN</code>.</p> + +<p><code>parseFloat</code> també pot interpretar i retornar el valor <code>Infinity</code>. Es pot utilitzar la funció {{jsxref("isFinite")}} per determinar si el resultat és un nombre finit i (no <code>Infinity</code>, <code>-Infinity</code>, o <code>NaN</code>).</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="parseFloat_retorna_un_nombre"><code>parseFloat</code> retorna un nombre</h3> + +<p>Tots els exemples següents retornen <strong>3.14</strong></p> + +<pre class="brush:js">parseFloat("3.14"); +parseFloat("314e-2"); +parseFloat("0.0314E+2"); +parseFloat("3.14more non-digit characters"); +</pre> + +<h3 id="parseFloat_retorna_NaN"><code>parseFloat</code> retorna NaN</h3> + +<p>L'exemple següent retorna <code>NaN</code></p> + +<pre class="brush: js">parseFloat("FF2"); +</pre> + +<h3 id="Una_interpretació_més_estricta">Una interpretació més estricta</h3> + +<p>Sovint és útil tenir una forma més estricta d'interpretar els valors flotants, expressions regulars poden ajudar:</p> + +<pre class="brush: js">var filterFloat = function (value) { + if(/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/ + .test(value)) + return Number(value); + return NaN; +} + +console.log(filterFloat('421')); // 421 +console.log(filterFloat('-421')); // -421 +console.log(filterFloat('+421')); // 421 +console.log(filterFloat('Infinity')); // Infinity +console.log(filterFloat('1.61803398875')); // 1.61803398875 +console.log(filterFloat('421e+0')); // NaN +console.log(filterFloat('421hop')); // NaN +console.log(filterFloat('hop1.61803398875')); // NaN + +</pre> + +<p>Vegeu que aquest codi és només a mode d'exemple, no accepta nombres vàlids com <code>1.</code> o <code>.5</code>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.1.2.3', 'parseFloat')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-parsefloat-string', 'parseFloat')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Global_Objects/parseInt", "parseInt()")}}</li> + <li>{{jsxref("Number.parseFloat()")}}</li> + <li>{{jsxref("Number.parseInt()")}}</li> + <li>{{jsxref("Global_Objects/isNaN", "isNaN()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/add/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/add/index.html new file mode 100644 index 0000000000..b93eaa3efb --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/add/index.html @@ -0,0 +1,119 @@ +--- +title: Set.prototype.add() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/add +translation_of: Web/JavaScript/Reference/Global_Objects/Set/add +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>add()</strong></code> afegeix un nou element al final de l'objecte <code>Set</code> amb el <code>valor</code> especificat pel paràmetre.</p> + +<h2 id="Sintax">Sintax</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.add(valor);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>valor</dt> + <dd>Obligatori. El valor de l'element que s'afegirà a l'objecte <code>Set</code>.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>L'objecte <code>Set</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_add">Utilitzar el mètode <code>add</code></h3> + +<pre class="brush: js">var mySet = new Set(); + +mySet.add(1); +mySet.add(5).add("some text"); // crida en cadena + +console.log(mySet); +// Set [1, 5, "some text"] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.add', 'Set.prototype.add')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_per_al_Firefox">Notes específiques per al Firefox</h2> + +<ul> + <li>En les versions anteriors al Firefox 33 {{geckoRelease("33")}}, <code>Set.prototype.add</code> retornava <code>undefined</code> i per tant no es podien realitzar crides encadenades. Aquest problem ha estat resolt ({{bug(1031632)}}). Aquest comportament també es pot trovar al Chrome/v8 (<a href="https://code.google.com/p/v8/issues/detail?id=3410">problema</a>).</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("Set.prototype.delete()")}}</li> + <li>{{jsxref("Set.prototype.has()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/clear/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/clear/index.html new file mode 100644 index 0000000000..6ef179daaa --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/clear/index.html @@ -0,0 +1,105 @@ +--- +title: Set.prototype.clear() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/clear +translation_of: Web/JavaScript/Reference/Global_Objects/Set/clear +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>clear()</strong></code> esborra tots els elements emmagatzemats dins l'objecte <code>Set</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.clear();</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_clear">Utilitzar el mètode <code>clear</code></h3> + +<pre class="brush: js">var mySet = new Set(); +mySet.add(1); +mySet.add("foo"); + +mySet.size; // 2 +mySet.has("foo"); // true + +mySet.clear(); + +mySet.size; // 0 +mySet.has("bar") // false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.clear', 'Set.prototype.clear')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("19.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>{{CompatGeckoMobile("19.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("Set.prototype.delete()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/delete/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/delete/index.html new file mode 100644 index 0000000000..ea66c1a723 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/delete/index.html @@ -0,0 +1,112 @@ +--- +title: Set.prototype.delete() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/delete +translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>delete()</strong></code> esborra l'element especificat emmagatzemat dins l'objecte <code>Set</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.delete(valor);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>valor</dt> + <dd>Obligatori. El valor de l'element a eliminar.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<p>Retorna <code>true</code> si s'ha pogut eliminar l'element de l'objecte <code>Set</code>; en cas contrari retorna <code>false</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_delete">Utilitzar el mètode <code>delete</code></h3> + +<pre class="brush: js">var mySet = new Set(); +mySet.add("foo"); + +mySet.delete("bar"); // Retorna false. No s'ha trobat l'element "bar". +mySet.delete("foo"); // Retorna true. S'ha pogut esborrar l'element "foo". + +mySet.has("foo"); // Retorna false. L'element "foo" ja no existeix dins el Set. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.delete', 'Set.prototype.delete')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("Set.prototype.clear()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/entries/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/entries/index.html new file mode 100644 index 0000000000..848e53ba8d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/entries/index.html @@ -0,0 +1,104 @@ +--- +title: Set.prototype.entries() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/entries +translation_of: Web/JavaScript/Reference/Global_Objects/Set/entries +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>entries()</strong></code> retorna un nou objecte <code>Iterator</code> que conté<strong> un array de <code>[valor, valor]</code></strong> per a cada element emmagatzemat dins l'objecte <code>Set</code>, ordenats per ordre d'inserció. Els elements de l'objecte <code>Set</code> no disposen de claus, a diferència dels objectes <code>Map</code>. Tot i així, per a oferir una API similar a la de l'objecte <code>Map</code> cada <em>entrada</em> té el mateix valor tant com per a la <em>clau</em> com per al <em>valor</em>. És per això que es retorna un array <code>[valor, valor]</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.entries()</code></pre> + +<h2 id="Examples">Examples</h2> + +<h3 id="Using_entries()">Using <code>entries()</code></h3> + +<pre class="brush:js">var mySet = new Set(); +mySet.add("foobar"); +mySet.add(1); +mySet.add("baz"); + +var setIter = mySet.entries(); + +console.log(setIter.next().value); // ["foobar", "foobar"] +console.log(setIter.next().value); // [1, 1] +console.log(setIter.next().value); // ["baz", "baz"] +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.entries', 'Set.prototype.entries')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("24") }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{ CompatGeckoMobile("24") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set.prototype.keys()")}}</li> + <li>{{jsxref("Set.prototype.values()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/has/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/has/index.html new file mode 100644 index 0000000000..ca9027b8a4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/has/index.html @@ -0,0 +1,114 @@ +--- +title: Set.prototype.has() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/has +translation_of: Web/JavaScript/Reference/Global_Objects/Set/has +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>has()</strong></code> retorna un booleà que indica si l'element amb el valor especificat existeix o no dins l'objecte <code>Set</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.has(valor);</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>valor</dt> + <dd>Obligatori. El valor a comprovar si pertany o no a l'objecte <code>Set</code>.</dd> +</dl> + +<h3 id="Valor_retornat">Valor retornat</h3> + +<dl> + <dt>Booleà</dt> + <dd>Retorna <code>true</code> si existex un element amb el valor especificat dins l'objecte <code>Set</code>; en cas contrari retorna <code>false</code>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_mètode_has">Utilitzar el mètode <code>has</code></h3> + +<pre class="brush: js">var mySet = new Set(); +mySet.add("foo"); + +mySet.has("foo"); // retorna true +mySet.has("bar"); // retorna false +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.has', 'Set.prototype.has')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("13.0")}}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{CompatGeckoMobile("13.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set")}}</li> + <li>{{jsxref("Set.prototype.add()")}}</li> + <li>{{jsxref("Set.prototype.delete()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/index.html new file mode 100644 index 0000000000..993d296324 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/index.html @@ -0,0 +1,380 @@ +--- +title: Set +slug: Web/JavaScript/Referencia/Objectes_globals/Set +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +<div>{{JSRef}}</div> + +<p>L'objecte <strong><code>Set</code></strong> permet emmagatzemar valors <em>únics </em>de qualsevol tipus, ja siguin {{Glossary("Primitive", "valors primitius")}} o bé referències a objectes.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">new Set([iterable]);</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt>iterable</dt> + <dd>Si rep un <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">objecte iterable</a>, tots els seus elements seran afegits al nou Set. null serà tractat com a undefined.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Els objectes <code>Set</code> són coleccions de valors, els seus elements poden ser iterats en ordre d'inserció. Un valor només pot aparèixer un cop dins el <code>Set</code>; és únic dins la col·lecció del <code>Set</code>.</p> + +<h3 id="Igualtat_de_valors">Igualtat de valors</h3> + +<p>Degut a que cada valor dins el <code>Set</code> ha de ser únic, la igualtat dels valors serà comprovada i aquesta no es basa en el mateix algoritme que l'emprat per l'operador<code> ===</code>. Concreatement, per a <code>Set</code>s, <code>+0</code> (que és estrictament igual a <code>-0</code>) i <code>-0</code> són valors diferents. Tot i així, aquest comportament s'ha canviat a la última especificació de l'ECMAScript 6. A partir de Gecko 29.0 {{geckoRelease("29")}} ({{bug("952870")}}) i una recent <a href="https://code.google.com/p/v8/issues/detail?id=3069">versió nightly del Chrome</a>, <code>+0</code> i <code>-0</code> són tractats com al mateix valor en objectes <code>Set</code>. Així mateix, <code>NaN</code> i <code>undefined</code> també poden ser emmagatzemats dins un Set. <code>NaN</code> és considerat igual a <code>NaN</code> (tot i que <code>NaN !== NaN</code>).</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Set.length</code></dt> + <dd>El valor de la propietat <code>length</code> és 0.</dd> + <dt>{{jsxref("Set.@@species", "get Set[@@species]")}}</dt> + <dd>La funció constructora que s'ha utilitzat per a crear objectes derivats.</dd> + <dt>{{jsxref("Set.prototype")}}</dt> + <dd>Representa el prototipus per al constructor <code>Set</code>. Permet afegir propietats a tots els objectes <code>Set</code>.</dd> +</dl> + +<h2 id="Instàncies_de_Set">Instàncies de <code>Set</code></h2> + +<p>Totes les instàncies de <code>Set</code> hereten de {{jsxref("Set.prototype")}}.</p> + +<h3 id="Propietats_2">Propietats</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/Set/prototype','Propietats')}}</p> + +<h3 id="Mètodes">Mètodes</h3> + +<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/Set/prototype','Mètodes')}}</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_l'objecte_Set">Utilitzar l'objecte <code>Set</code></h3> + +<pre class="brush: js">var mySet = new Set(); + +mySet.add(1); +mySet.add(5); +mySet.add("algun text"); + +mySet.has(1); // true +mySet.has(3); // false, 3 no ha estat afegit al set +mySet.has(5); // true +mySet.has(Math.sqrt(25)); // true +mySet.has("Some Text".toLowerCase()); // true + +mySet.size; // 3 + +mySet.delete(5); // esborra 5 del set +mySet.has(5); // false, 5 ha sigut esborrat + +mySet.size; // 2, acabem d'esborrar un valor +</pre> + +<h3 id="Iterarar_Sets">Iterarar Sets</h3> + +<pre class="brush: js">// iterar els elements d'un set +// imprimeix els elements en l'ordre: 1, "algun text" +for (let item of mySet) console.log(item); + +// imprimeix els elements en l'ordre: 1, "algun text" +for (let item of mySet.keys()) console.log(item); + +// imprimeix els elements en l'ordre: 1, "algun text" +for (let item of mySet.values()) console.log(item); + +// imprimeix els elements en l'ordre: 1, "algun text" +//(key i value són iguals en aquest exemple) +for (let [key, value] of mySet.entries()) console.log(key); + +// converteix el set en un Array (mitjançant <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions">Array comprehensions</a>) +var myArr = [v for (v of mySet)]; // [1, "algun text"] +// Alternativa (mitjançant <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from">Array.from</a>) +var myArr = Array.from(mySet); // [1, "algun text"] + +// el codi següent també funcionarà si s'executa dins un document HTML +mySet.add(document.body); +mySet.has(document.querySelector("body")); // true + +// conversió entre Set i Array +mySet2 = new Set([1,2,3,4]); +mySet2.size; // 4 +[...mySet2]; // [1,2,3,4] + +// la intersecció es pot simular via +var intersection = new Set([x for (x of set1) if (set2.has(x))]); + +// Iteració de les entrades del set mitjançant un forEach +mySet.forEach(function(value) { + console.log(value); +}); + +// 1 +// 2 +// 3 +// 4</pre> + +<h3 id="Relació_amb_objectes_Array">Relació amb objectes <code>Array</code></h3> + +<pre class="brush: js">var myArray = ["valor1", "valor2", "valor3"]; + +// Utilitzem el constructor normal del Set per a transformar un Array en un Set +var mySet = new Set(myArray); + +mySet.has("valor1"); // retorna true + +// Utilitzem l'operador spread per a transformar un Set en un Array. +console.log(uneval([...mySet])); // Mostrarà exactament el mateix Array que myArray</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set-objects', 'Set')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td> + <p>{{ CompatChrome(38) }} [1]</p> + </td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>{{ CompatIE("11") }}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td>Argument al constructor: <code>new Set(iterable)</code></td> + <td>{{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>iterable</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{ CompatGeckoDesktop("17") }}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Set.clear()</code></td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("19")}}</td> + <td>{{ CompatIE("11") }}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Set.keys(), Set.values(), Set.entries()</code></td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("24")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td><code>Set.forEach()</code></td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{ CompatIE("11") }}</td> + <td>25</td> + <td>7.1</td> + </tr> + <tr> + <td>Igualtat de valors per a -0 i 0</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Set(null)</code></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Monkey-patched <code>add()</code> al Constructor</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>Set[@@species]</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("41")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>Set()</code> sense <code>new</code> llença excepció</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("42")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(38)}} [1]</td> + <td>{{ CompatGeckoMobile("13") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td>Argument al constructor: <code>new Set(iterable)</code></td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(38)}}</td> + <td>{{ CompatGeckoMobile("13") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>iterable</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{ CompatGeckoMobile("17") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td><code>Set.clear()</code></td> + <td>{{CompatNo}}</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("19")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td><code>Set.keys(), Set.values(), Set.entries()</code></td> + <td>{{CompatNo}}</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("24")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td><code>Set.forEach()</code></td> + <td>{{CompatNo}}</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>8</td> + </tr> + <tr> + <td>Igualtat de valors per a -0 i 0</td> + <td>{{CompatNo}}</td> + <td>{{ CompatChrome(38) }}</td> + <td>{{CompatGeckoMobile("29")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + <tr> + <td>Argument del constructor: <code>new Set(null)</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Monkey-patched <code>add()</code> al Constructor</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("37")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>Set[@@species]</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("41")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td><code>Set()</code> sense <code>new</code> llença excepció</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("42")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] La característica estava disponible sota una preferència a partir de Chorem 31. Al <code>chrome://flags</code>, activeu l'entrada “Activa JavaScript Experimental”.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map")}}</li> + <li>{{jsxref("WeakMap")}}</li> + <li>{{jsxref("WeakSet")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/prototype/index.html new file mode 100644 index 0000000000..526a5e15b5 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/prototype/index.html @@ -0,0 +1,123 @@ +--- +title: Set.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/Set/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Set +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>Set</strong></code><strong><code>.prototype</code></strong> representa el prototipus per al constructor de {{jsxref("Set")}}.</p> + +<div>{{js_property_attributes(0,0,0)}}</div> + +<h2 id="Descripció">Descripció</h2> + +<p>Les instàncies de {{jsxref("Set")}} hereten de {{jsxref("Set.prototype")}}. Es pot utilitzar el l'objecte prototipus del constructor per a afegir propietats o mètodes a totes les instàncies de <code>Set</code>.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>Set.prototype.constructor</code></dt> + <dd>Retorna la funció que ha creat la instància del prototipus. Per defecte es tracta de la funció {{jsxref("Set")}}.</dd> + <dt>{{jsxref("Set.prototype.size")}}</dt> + <dd>Retorna el nombre de valors emmagatzemats dins l'objecte <code>Set</code>.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<dl> + <dt>{{jsxref("Set.add", "Set.prototype.add(valor)")}}</dt> + <dd>Afegeix un nou element a l'objecte <code>Set</code> amb el valor donat. Retorna l'objecte <code>Set</code>.</dd> + <dt>{{jsxref("Set.prototype.clear()")}}</dt> + <dd>Elimina tots els elements de l'objecte <code>Set</code>.</dd> + <dt>{{jsxref("Set.delete", "Set.prototype.delete(valor)")}}</dt> + <dd>Elimina l'element associat a <code>valor</code> i retorna el que el mètode <code>Set.prototype.has(valor)</code> hagués retornat prèviament a aquesta crida. Després d'aquesta crida <code>Set.prototype.has(valor)</code> retornarà <code>false</code>.</dd> + <dt>{{jsxref("Set.prototype.entries()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté <strong>un array de la forma <code>[valor, valor]</code></strong> per a cada element dins l'objecte <code>Set</code>, en ordre d'inserció. El array retornat manté similitud amb el comportament de l'objecte <code>Map</code>, de forma que cada entrada té el mateix valor per a la seva <em>clau</em> i <em>valor</em>.</dd> + <dt>{{jsxref("Set.forEach", "Set.prototype.forEach(callbackFn[, thisArg])")}}</dt> + <dd>Crida <code>callbackFn</code> per a cada valor present a l'objecte <code>Set</code>, recorreguts per ordre d'inserció. Si es proporciona el paràmetre <code>thisArg</code>, aquest s'utilitzarà com a valor de <em>this</em> per a cada crida a <code>callbackFn</code>.</dd> + <dt>{{jsxref("Set.has", "Set.prototype.has(value)")}}</dt> + <dd>Retorna un booleà que especifica si la clau té un valor associat en aquest objecte <code>Set</code> o no.</dd> + <dt>{{jsxref("Set.prototype.keys()")}}</dt> + <dd>Es tracta de la mateixa funció que la funció <strong><code>values()</code></strong> i retorna un nou objecte <code>Iterator</code> que conté els valors per a cada element de l'objecte <code>Set</code>, en ordre d'inserció.</dd> + <dt>{{jsxref("Set.prototype.values()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté els <strong>valors</strong><strong> </strong>de cada element de l'objecte <code>Set</code>, en ordre d'inserció.</dd> + <dt>{{jsxref("Set.prototype.@@iterator()", "Set.prototype[@@iterator]()")}}</dt> + <dd>Retorna un nou objecte <code>Iterator</code> que conté els <strong>valors</strong><strong> </strong>de cada element de l'objecte <code>Set</code>, en ordre d'inserció.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype', 'Set.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{ CompatGeckoDesktop("13") }}</td> + <td>11</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{ CompatGeckoMobile("13") }}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td> + <p>8</p> + </td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Map.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/set/values/index.html b/files/ca/web/javascript/referencia/objectes_globals/set/values/index.html new file mode 100644 index 0000000000..307fa78113 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/set/values/index.html @@ -0,0 +1,106 @@ +--- +title: Set.prototype.values() +slug: Web/JavaScript/Referencia/Objectes_globals/Set/values +translation_of: Web/JavaScript/Reference/Global_Objects/Set/values +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>values()</strong></code> retorna un nou objecte <code><strong>Iterator</strong></code> que conté els valors per a cada element de l'objecte <code>Set</code> en ordre d'inserció.</p> + +<p>El mètode <strong><code>keys()</code></strong> és un mètode sinònim d'aquest mètode (per a mantindre la similitud amb els objecte {{jsxref("Map")}}); es comporta exactament de la mateixa forma i retorna els <strong>valors</strong> dels elements de l'objecte <code>Set</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><em>mySet</em>.values(); +<code><em>mySet</em>.keys(); +</code></code></pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_values()">Utilitzar <code>values()</code></h3> + +<pre class="brush:js">var mySet = new Set(); +mySet.add("foo"); +mySet.add("bar"); +mySet.add("baz"); + +var setIter = mySet.values(); + +console.log(setIter.next().value); // "foo" +console.log(setIter.next().value); // "bar" +console.log(setIter.next().value); // "baz"</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-set.prototype.values', 'Set.prototype.values')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>38</td> + <td>{{CompatGeckoDesktop("24")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>38</td> + <td>{{ CompatGeckoMobile("24") }}</td> + <td>{{ CompatNo}}</td> + <td>{{ CompatNo}}</td> + <td>8</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Set.prototype.entries()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/anchor/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/anchor/index.html new file mode 100644 index 0000000000..15bd4db97b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/anchor/index.html @@ -0,0 +1,118 @@ +--- +title: String.prototype.anchor() +slug: Web/JavaScript/Referencia/Objectes_globals/String/anchor +translation_of: Web/JavaScript/Reference/Global_Objects/String/anchor +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>anchor()</code></strong> un element àncora HTML {{HTMLElement("a")}} que s'utilitza com a HTML un objectiu hypertext.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.anchor(<var>nom</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>nom</code></dt> + <dd>Una cadena que representa l'atribut <code>name</code> attribute of the a tag to be created.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Utilitzar el mètode <code>anchor()</code> per crear i mostrar una àncora en un document mitjançant programació.</p> + +<p>En la sintaxi, la cadena de text representa el text literal que es vol mostrar a l'usuari. La cadena paràmetre <code>name</code> representa l'atribut <code>name</code> de l'element {{HTMLElement("a")}}.</p> + +<p>Les àncores creades amb el mètode <code>anchor()</code> es tornen elements de l'array {{domxref("document.anchors")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_anchor()">Utilitzar<code> anchor()</code></h3> + +<pre class="brush: js">var myString = 'Taula de continguts'; + +document.body.innerHTML = myString.anchor('contents_anchor'); +</pre> + +<p>Mostrarà el següent HTML:</p> + +<pre class="brush: html"><a name="contents_anchor">Taula de continguts</a> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.anchor', 'String.prototype.anchor')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per característiques addiccionals d'ECMAScript per a navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome pdr Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}} [1]</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] Des de la versió Gecko 17, les <code>"</code> (cometes) són substituides pel caràcter de referència HTML <code>&quot;</code> en cadenes subministrades pel paràmetre <code>name.</code></p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.link()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/big/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/big/index.html new file mode 100644 index 0000000000..a3b8815f10 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/big/index.html @@ -0,0 +1,114 @@ +--- +title: String.prototype.big() +slug: Web/JavaScript/Referencia/Objectes_globals/String/big +translation_of: Web/JavaScript/Reference/Global_Objects/String/big +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>big()</code></strong> crea un element HTML {{HTMLElement("big")}} que causa que la cadena es mostri en una font de mida gran.</p> + +<div class="note"> +<p><strong>Nota d'ús:</strong> L'element <big> s'ha eliminat de l'<a href="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a> i no s'hauria de fer servir més. S'aconsella als desenvolupadors web utilitzar les propietats de <a href="/en-US/docs/Web/CSS">CSS.</a></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.big()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>big()</code> incrusta una cadena dins del tag <code><big></code>: <code>"<big>str</big>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_big()">Utilitzar <code>big()</code></h3> + +<p>L'exemple següent utilitza mètodes string per canviar la mida d'una cadena:</p> + +<pre class="brush: js">var worldString = 'Hello, world'; + +console.log(worldString.small()); // <small>Hello, world</small> +console.log(worldString.big()); // <big>Hello, world</big> +console.log(worldString.fontsize(7)); // <fontsize=7>Hello, world</fontsize> +</pre> + +<p>Amb l'objecte {{domxref("HTMLElement.style", "element.style")}} es pot obtenir l'atribut <code>style</code> de l'element i manipular-lo més genèricament, per exemple:</p> + +<pre class="brush: js">document.getElementById('yourElemId').style.fontSize = '2em'; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.big', 'String.prototype.big')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per característiques addicionals ECMAScript per navegadors web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.fontsize()")}}</li> + <li>{{jsxref("String.prototype.small()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/blink/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/blink/index.html new file mode 100644 index 0000000000..2378325897 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/blink/index.html @@ -0,0 +1,110 @@ +--- +title: String.prototype.blink() +slug: Web/JavaScript/Referencia/Objectes_globals/String/blink +translation_of: Web/JavaScript/Reference/Global_Objects/String/blink +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>blink()</code></strong> crea un elment HTML {{HTMLElement("blink")}} que fa mostrar una cadena de forma intermitent.</p> + +<div class="warning"> +<p><strong>Advertència:</strong> El text que es mostra de forma intermitent és mal vist per varis estàndards d'accessibilitat. L'element <code><blink></code> no és estàndard i és obsolet!</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.blink()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>blink()</code> incrusta una cadena dins l'etiqueta <code><blink></code>: <code>"<blink>cad</blink>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_blink()">Utilitzar <code>blink()</code></h3> + +<p>L'exemple següent utilitza mètodes string per canviar el format d'una cadena:</p> + +<pre class="brush: js">var worldString = 'Hello, world'; + +console.log(worldString.blink()); // <blink>Hello, world</blink> +console.log(worldString.bold()); // <b>Hello, world</b> +console.log(worldString.italics()); // <i>Hello, world</i> +console.log(worldString.strike()); // <strike>Hello, world</strike></pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.blink', 'String.prototype.blink')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per característiques addiccionals d'ECMAScrip per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.bold()")}}</li> + <li>{{jsxref("String.prototype.italics()")}}</li> + <li>{{jsxref("String.prototype.strike()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/bold/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/bold/index.html new file mode 100644 index 0000000000..502810bb45 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/bold/index.html @@ -0,0 +1,106 @@ +--- +title: String.prototype.bold() +slug: Web/JavaScript/Referencia/Objectes_globals/String/bold +translation_of: Web/JavaScript/Reference/Global_Objects/String/bold +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>bold()</code></strong> crea un element HTML {{HTMLElement("b")}} que causa que una cadena es mostri amb negreta.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.bold()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>bold()</code> incrusta una cadena en l'etiqueta <code><b></code>: <code>"<b>cad</b>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_bold()">Utilitzar <code>bold()</code></h3> + +<p>L'exemple següent utilitza mètodes string per canviar el format d'una cadena:</p> + +<pre class="brush: js">var worldString = 'Hello, world'; + +console.log(worldString.blink()); // <blink>Hello, world</blink> +console.log(worldString.bold()); // <b>Hello, world</b> +console.log(worldString.italics()); // <i>Hello, world</i> +console.log(worldString.strike()); // <strike>Hello, world</strike></pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.bold', 'String.prototype.bold')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques addiccionals ECMAScript per navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.blink()")}}</li> + <li>{{jsxref("String.prototype.italics()")}}</li> + <li>{{jsxref("String.prototype.strike()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/charat/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/charat/index.html new file mode 100644 index 0000000000..55a84ab7d0 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/charat/index.html @@ -0,0 +1,283 @@ +--- +title: String.prototype.charAt() +slug: Web/JavaScript/Referencia/Objectes_globals/String/charAt +translation_of: Web/JavaScript/Reference/Global_Objects/String/charAt +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>charAt()</code></strong> retorna el caràcter especificat d'una cadena.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.charAt(posicio)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>posicio</code></dt> + <dd>Un nombre sencer entre 0 i la longitud de la cadena menys 1.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Els caràcters d'una cadena reben un nombre per la seva posició d'esquerra a dreta. La posició del primer caràcter és el 0 i la posició de l'últim caràcter d'una cadena anomenada <code>stringName</code> és <code>stringName.length - 1</code>. Si la <code>posicio</code> proporcionada està fora del rang vàlid JavaScript retornarà una cadena buida.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Mostrar_caràcters_de_diferents_posicions_d'una_cadena">Mostrar caràcters de diferents posicions d'una cadena</h3> + +<p>L'exemple següent mostra alguns caràcters a diferents posicions de la cadena <code>"Brave new world"</code>:</p> + +<pre class="brush: js">var anyString = 'Brave new world'; + +console.log("El caràcter a la posició 0 és '" + anyString.charAt(0) + "'"); +console.log("El caràcter a la posició 1 és '" + anyString.charAt(1) + "'"); +console.log("El caràcter a la posició 2 és '" + anyString.charAt(2) + "'"); +console.log("El caràcter a la posició 3 és '" + anyString.charAt(3) + "'"); +console.log("El caràcter a la posició 4 és '" + anyString.charAt(4) + "'"); +console.log("El caràcter a la posició 999 és '" + anyString.charAt(999) + "'"); +</pre> + +<p>Les línies anteriors mostren la sortida següent:</p> + +<pre class="brush: js">El caràcter a la posició 0 és 'B' +El caràcter a la posició 1 és 'r' +El caràcter a la posició 2 és 'a' +El caràcter a la posició 3 és 'v' +El caràcter a la posició 4 és 'e' +El caràcter a la posició 999 és '' +</pre> + +<h3 id="Obtenir_caràcters_sencers">Obtenir caràcters sencers</h3> + +<p>El codi següent garanteix obtenir un caràcter sencer, fins i tot quan la cadena contingui caràcters que no formen part del pla bàsic multilingüístic.</p> + +<pre class="brush: js">var str = 'A \uD87E\uDC04 Z'; // We could also use a non-BMP character directly +for (var i = 0, chr; i < str.length; i++) { + if ((chr = getWholeChar(str, i)) === false) { + continue; + } + // Adapt this line at the top of each loop, passing in the whole string and + // the current iteration and returning a variable to represent the + // individual character + + console.log(chr); +} + +function getWholeChar(str, i) { + var code = str.charCodeAt(i); + + if (Number.isNaN(code)) { + return ''; // Position not found + } + if (code < 0xD800 || code > 0xDFFF) { + return str.charAt(i); + } + + // High surrogate (could change last hex to 0xDB7F to treat high private + // surrogates as single characters) + if (0xD800 <= code && code <= 0xDBFF) { + if (str.length <= (i + 1)) { + throw 'High surrogate without following low surrogate'; + } + var next = str.charCodeAt(i + 1); + if (0xDC00 > next || next > 0xDFFF) { + throw 'High surrogate without following low surrogate'; + } + return str.charAt(i) + str.charAt(i + 1); + } + // Low surrogate (0xDC00 <= code && code <= 0xDFFF) + if (i === 0) { + throw 'Low surrogate without preceding high surrogate'; + } + var prev = str.charCodeAt(i - 1); + + // (could change last hex to 0xDB7F to treat high private + // surrogates as single characters) + if (0xD800 > prev || prev > 0xDBFF) { + throw 'Low surrogate without preceding high surrogate'; + } + // We can pass over low surrogates now as the second component + // in a pair which we have already processed + return false; +} +</pre> + +<p>En l'entorn de l'ECMAScript 2016, que soporta assignació desestructurada, es pot utilitzar el codi següent com a versió alternativa més flexibleenvironment which allows destructured assignment, the following is a more succinct and somewhat more flexible alternative in that it does incrementing for an incrementing variable automatically (if the character warrants it in being a surrogate pair).</p> + +<pre class="brush: js">var str = 'A\uD87E\uDC04Z'; // We could also use a non-BMP character directly +for (var i = 0, chr; i < str.length; i++) { + [chr, i] = getWholeCharAndI(str, i); + // Adapt this line at the top of each loop, passing in the whole string and + // the current iteration and returning an array with the individual character + // and 'i' value (only changed if a surrogate pair) + + console.log(chr); +} + +function getWholeCharAndI(str, i) { + var code = str.charCodeAt(i); + + if (Number.isNaN(code)) { + return ''; // Position not found + } + if (code < 0xD800 || code > 0xDFFF) { + return [str.charAt(i), i]; // Normal character, keeping 'i' the same + } + + // High surrogate (could change last hex to 0xDB7F to treat high private + // surrogates as single characters) + if (0xD800 <= code && code <= 0xDBFF) { + if (str.length <= (i + 1)) { + throw 'High surrogate without following low surrogate'; + } + var next = str.charCodeAt(i + 1); + if (0xDC00 > next || next > 0xDFFF) { + throw 'High surrogate without following low surrogate'; + } + return [str.charAt(i) + str.charAt(i + 1), i + 1]; + } + // Low surrogate (0xDC00 <= code && code <= 0xDFFF) + if (i === 0) { + throw 'Low surrogate without preceding high surrogate'; + } + var prev = str.charCodeAt(i - 1); + + // (could change last hex to 0xDB7F to treat high private surrogates + // as single characters) + if (0xD800 > prev || prev > 0xDBFF) { + throw 'Low surrogate without preceding high surrogate'; + } + // Return the next character instead (and increment) + return [str.charAt(i + 1), i + 1]; +} +</pre> + +<h3 id="Fixing_charAt()_to_support_non-Basic-Multilingual-Plane_(BMP)_characters">Fixing <code>charAt()</code> to support non-Basic-Multilingual-Plane (BMP) characters</h3> + +<p>While the example above may be more frequently useful for those wishing to support non-BMP characters (since it does not require the caller to know where any non-BMP character might appear), in the event that one <em>does</em> wish, in choosing a character by index, to treat the surrogate pairs within a string as the single characters they represent, one can use the following:</p> + +<pre class="brush: js">function fixedCharAt(str, idx) { + var ret = ''; + str += ''; + var end = str.length; + + var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + while ((surrogatePairs.exec(str)) != null) { + var li = surrogatePairs.lastIndex; + if (li - 2 < idx) { + idx++; + } else { + break; + } + } + + if (idx >= end || idx < 0) { + return ''; + } + + ret += str.charAt(idx); + + if (/[\uD800-\uDBFF]/.test(ret) && /[\uDC00-\uDFFF]/.test(str.charAt(idx + 1))) { + // Go one further, since one of the "characters" is part of a surrogate pair + ret += str.charAt(idx + 1); + } + return ret; +} +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.4', 'String.prototype.charAt')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.charat', 'String.prototype.charAt')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-string.prototype.charat', 'String.prototype.charAt')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("String.prototype.indexOf()")}}</li> + <li>{{jsxref("String.prototype.lastIndexOf()")}}</li> + <li>{{jsxref("String.prototype.charCodeAt()")}}</li> + <li>{{jsxref("String.prototype.codePointAt()")}}</li> + <li>{{jsxref("String.prototype.split()")}}</li> + <li>{{jsxref("String.fromCodePoint()")}}</li> + <li><a href="https://mathiasbynens.be/notes/javascript-unicode">JavaScript has a Unicode problem – Mathias Bynens</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/concat/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/concat/index.html new file mode 100644 index 0000000000..87cdda3c5e --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/concat/index.html @@ -0,0 +1,125 @@ +--- +title: String.prototype.concat() +slug: Web/JavaScript/Referencia/Objectes_globals/String/concat +translation_of: Web/JavaScript/Reference/Global_Objects/String/concat +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>concat()</code></strong> combina el text de dos o més strings i retorna un nou string.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.concat(<var>string2</var>, <var>string3</var>[, ..., <var>stringN</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>string2...string<em>N</em></code></dt> + <dd>Strings que seran concatenats a aquest string.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>La funció <code>concat()</code> combina el text d'un o més strings i retorna un nou string. Canvis al text d'un string no afecten l'altre string.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_concat()">Utilitzar <code>concat()</code></h3> + +<p>L'exemple següent combina strings en un nou string.</p> + +<pre class="brush: js">var hola = 'Hola, '; +console.log(hola.concat('Kevin', ' tingueu un bon dia.')); + +/* Hola, Kevin tingueu un bon dia. */ +</pre> + +<h2 id="Rendiment">Rendiment</h2> + +<p>Es recomana altament utilitzar els {{jsxref("Operators/Assignment_Operators", "operadors d'assignació", "", 1)}} (<code>+</code>, <code>+=</code>) en comptes del mètode <code>concat()</code>. Vegeu aquest <a href="http://jsperf.com/concat-vs-plus-vs-join">test de rendiment</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.6', 'String.prototype.concat')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.concat', 'String.prototype.concat')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Array.prototype.concat()")}}</li> + <li>{{jsxref("Operators/Assignment_Operators", "Operadors d'asssignació", "", 1)}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/endswith/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/endswith/index.html new file mode 100644 index 0000000000..83a1201549 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/endswith/index.html @@ -0,0 +1,133 @@ +--- +title: String.prototype.endsWith() +slug: Web/JavaScript/Referencia/Objectes_globals/String/endsWith +translation_of: Web/JavaScript/Reference/Global_Objects/String/endsWith +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>endsWith()</code></strong> method determina si un string acaba amb els caràcters d'un altre string, retornant <code>true</code> o <code>false</code> depenent d'això.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.endsWith(stringAcercar[, posició])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>stringAcercar</code></dt> + <dd>Els caràcters a cercar al final d'aquest string.</dd> + <dt><code>posició</code></dt> + <dd>Opcional. Cerca dins aquest string considerant <code>posició</code> com la última posició del string; per defecte rep el valor del tamany total del string.</dd> + <dt> </dt> + <dt> </dt> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquest mètode us permet determinar si un string acaba en un altre string.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_endsWith()">Utilitzar <code>endsWith()</code></h3> + +<pre class="brush: js">var str = 'To be, or not to be, that is the question.'; + +console.log(str.endsWith('question.')); // true +console.log(str.endsWith('to be')); // false +console.log(str.endsWith('to be', 19)); // true +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode va ser afegit a l'especificació ECMAScript i pot no estar disponible encara a totes les implementacions de JavaScript. No obstant, la funció següent emula el comportament de <code>String.prototype.endsWith()</code>:</p> + +<pre class="brush: js">if (!String.prototype.endsWith) { + String.prototype.endsWith = function(searchString, position) { + var subjectString = this.toString(); + if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { + position = subjectString.length; + } + position -= searchString.length; + var lastIndex = subjectString.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.endswith', 'String.prototype.endsWith')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("41")}}</td> + <td>{{CompatGeckoDesktop("17")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("36")}}</td> + <td>{{CompatGeckoMobile("17")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.startsWith()")}} {{experimental_inline}}</li> + <li>{{jsxref("String.prototype.contains()")}} {{experimental_inline}}</li> + <li>{{jsxref("String.prototype.indexOf()")}}</li> + <li>{{jsxref("String.prototype.lastIndexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/fixed/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/fixed/index.html new file mode 100644 index 0000000000..069ab4243f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/fixed/index.html @@ -0,0 +1,103 @@ +--- +title: String.prototype.fixed() +slug: Web/JavaScript/Referencia/Objectes_globals/String/fixed +translation_of: Web/JavaScript/Reference/Global_Objects/String/fixed +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>fixed()</code></strong> crea un element HTML {{HTMLElement("tt")}} que fa que una cadena es mostri en una font fixed-pitch.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.fixed()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>fixed()</code> incrusta una cadena en una etiqueta <code><tt></code>: <code>"<tt>cad</tt>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_fixed()">Utilitzar <code>fixed()</code></h3> + +<p>L'exemple següent utilitza el mètode <code>fixed</code> per canviar el format d'una cadena:</p> + +<pre class="brush: js">var worldString = 'Hello, world'; +console.log(worldString.fixed()); // "<tt>Hello, world</tt>" +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.fixed', 'String.prototype.fixed')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.bold()")}}</li> + <li>{{jsxref("String.prototype.italics()")}}</li> + <li>{{jsxref("String.prototype.strike()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/fontcolor/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/fontcolor/index.html new file mode 100644 index 0000000000..be52cd576b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/fontcolor/index.html @@ -0,0 +1,122 @@ +--- +title: String.prototype.fontcolor() +slug: Web/JavaScript/Referencia/Objectes_globals/String/fontcolor +translation_of: Web/JavaScript/Reference/Global_Objects/String/fontcolor +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>fontcolor()</code></strong> crea un element HTML {{HTMLElement("font")}} que fa que una cadena es mostri amb el color font especificat.</p> + +<div class="note"> +<p><strong>Nota d'ús:</strong> L'element <font> s'ha eleminitat d'<a href="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a> i no s'ha de fer servir més. Els desenvolupadors web haurien d'utilitzar les propietats de <a href="/en-US/docs/Web/CSS">CSS</a> per aquesta finalitat<a href="/en-US/docs/Web/CSS">.</a></p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.fontcolor(<var>color</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>color</code></dt> + <dd>Una cadena que expressa el color com a un triplet RGB hexadecimal o com una cadena literal. Les cadenes literals de noms de colors es troben enllistades en la <a href="/en-US/docs/Web/CSS/color_value">referència de colors de CSS.</a></dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si expresseu el color com un triplet RGB hexadecimal, heu de fer servir el format <code>rrggbb</code>. Per example, els valors RGB hexadecimals pel color salmó són vermell=FA, verd=80, i blau=72, de forma que el triplet RGB pel color salmó és <code>"FA8072"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_fontcolor()">Utilitzar <code>fontcolor()</code></h3> + +<p>L'exemple següent utilitza el mètode <code>fontcolor()</code> per canviar el color d'una cadena mitjançant la creació d'una cadena amb l'etiqueta HTML <code><font></code>.</p> + +<pre class="brush: js">var worldString = 'Hola, món'; + +console.log(worldString.fontcolor('red') + ' és vermell en aquesta línia'); +// '<font color="red">Hola, món</font> 's vermell en aquesta línia' + +console.log(worldString.fontcolor('FF00') + ' és vermell en hexadecimal en aquesta línia'); +// '<font color="FF00">Hola, món</font> és vermell en hexadecimal en aquesta línia' +</pre> + +<p>Amb l'objecte {{domxref("HTMLElement.style", "element.style")}} es pot obtenir l'atribut <code>style</code> de l'element i manipular-lo més genèricament, per exemple:</p> + +<pre class="brush: js">document.getElementById('yourElemId').style.color = 'red'; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.fontcolor', 'String.prototype.fontcolor')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.fontsize()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/fontsize/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/fontsize/index.html new file mode 100644 index 0000000000..9f30d124aa --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/fontsize/index.html @@ -0,0 +1,121 @@ +--- +title: String.prototype.fontsize() +slug: Web/JavaScript/Referencia/Objectes_globals/String/fontsize +translation_of: Web/JavaScript/Reference/Global_Objects/String/fontsize +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>fontsize()</code></strong> crea un element HTML {{HTMLElement("font")}} que causa que una cadena es mostri en el tamany font especificat.</p> + +<div class="note"> +<p><strong>Nota d'ús:</strong> L'element <font> s'ha eliminat de l'<a href="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a> i no s'ha de fer servir més. Els desenvolupadors web haurien de fer servir les propietats de <a href="/en-US/docs/Web/CSS">CSS</a> per aquesta finalitat.</p> +</div> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.fontsize(<var>mida</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>mida</code></dt> + <dd>Un nombre sencer entre 1 i 7, una cadena que representi un nombre sencer amb signe entre 1 i 7.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Quan s'especifica la mida com a un nombre sencer, s'estableix la mida de la <code>str</code> a un de les 7 mides definides. Quan s'especifica la <code>mida</code> com una cadena com pot ser "-2", s'adjusta el tamany font de <code>str</code> en relació ambel tamany establert en l'etiqueta {{HTMLElement("basefont")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_fontsize()">Utilitzar <code>fontsize()</code></h3> + +<p>El següent exemple utilitza mètodes string per canviar la mida de la cadena:</p> + +<pre class="brush: js">var worldString = 'Hola, món'; + +console.log(worldString.small()); // <small>Hola, món</small> +console.log(worldString.big()); // <big>Hola, món</big> +console.log(worldString.fontsize(7)); // <font size="7">Hola, món</fontsize> +</pre> + +<p>Amb l'objecte {{domxref("HTMLElement.style", "element.style")}} es pot obtenir el atribut <code>style</code> de l'element i manipular-lo més genèricament, per exemple:</p> + +<pre class="brush: js">document.getElementById('yourElemId').style.fontSize = '0.7em'; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.fontsize', 'String.prototype.fontsize')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques Addiccionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.big()")}}</li> + <li>{{jsxref("String.prototype.small()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/fromcharcode/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/fromcharcode/index.html new file mode 100644 index 0000000000..f4e2308bf9 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/fromcharcode/index.html @@ -0,0 +1,126 @@ +--- +title: String.fromCharCode() +slug: Web/JavaScript/Referencia/Objectes_globals/String/fromCharCode +translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode +--- +<div>{{JSRef}}</div> + +<p>El mètode estàtic <strong><code>String.fromCharCode()</code></strong> retorna un string creat a partir de la seqüència de valors Unicode especificada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>String.fromCharCode(<var>num1</var>[, ...[, <var>numN</var>]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>num1, ..., num<em>N</em></code></dt> + <dd>Una seqüència de nombres que són valors Unicode.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquest mètode retorna un string i no un objecte de tipus {{jsxref("String")}}.</p> + +<p>Com que <code>fromCharCode()</code> és un mètode estàtic de {{jsxref("String")}}, sempre s'utilitza com <code>String.fromCharCode()</code> en comptes de com un mètode d'un objecte {{jsxref("String")}} creat.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_fromCharCode()">Utilitzar <code>fromCharCode()</code></h3> + +<p>L'exemple següent retorna el string "ABC".</p> + +<pre class="brush: js">String.fromCharCode(65, 66, 67); // "ABC" +</pre> + +<h2 id="Fer_que_funcioni_amb_valors_més_grans">Fer que funcioni amb valors més grans</h2> + +<p>Tot i que la majoria dels valors Unicode es poden representar amb un nombre de 16 bits (tal i com s'esperava mentre s'estava estandaritzant el JavaScript) i es pot emprar <code>fromCharCode()</code> per a retornar un sol caràcter per als valors més comuns (com ara valors UCS-2, que són un subconjunt de l'UTF-16 amb els caràcters més comuns), per a poder manegar TOTS els valors legals Unicode (els quals requereixen fins a 21 bits), l'ús de només <code>fromCharCode()</code> no és adequat ja que els caràcters de valor més alt utilitzen dos nombres "substituts" (de menor valor) per a formar un sol caràcter. Es pot emprar {{jsxref("String.fromCodePoint()")}} (que forma part de l'esborrant de l'ECMAScript 6) per a retornar el parell de nombres citat i, d'aquesta forma, representar de manera adequada aquests caràcters de valor més alt.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.3.2', 'StringfromCharCode')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.fromcharcodes', 'String.fromCharCode')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.fromCodePoint()")}}</li> + <li>{{jsxref("String.prototype.charAt()")}}</li> + <li>{{jsxref("String.prototype.charCodeAt()")}}</li> + <li>{{jsxref("String.prototype.codePointAt()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/index.html new file mode 100644 index 0000000000..136820a54d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/index.html @@ -0,0 +1,340 @@ +--- +title: String +slug: Web/JavaScript/Referencia/Objectes_globals/String +translation_of: Web/JavaScript/Reference/Global_Objects/String +--- +<div>{{JSRef("Global_Objects", "String")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'objecte global <strong><code>String</code></strong> és un constructor per a strings, també conegudes com a cadenes de caràcters.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<p>Els literals de tipus Stringpoden tenir les següents formes:</p> + +<pre class="syntaxbox"><code>'string text' +"string text" +"中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 </code><span style="color: #222222; font-family: Consolas,'Lucida Console',monospace; font-size: 12px; line-height: normal; white-space: pre-wrap;">தமிழ்</span><code>" +</code></pre> + +<p>A més dels caràcters imprimibles normals, es poden codificar caràcters especials mitjançant la notació d'escapament:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Codi</th> + <th scope="col">Sortida</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>\0</code></td> + <td>el caràcter NUL</td> + </tr> + <tr> + <td><code>\'</code></td> + <td>cometa simple</td> + </tr> + <tr> + <td><code>\"</code></td> + <td>cometa doble</td> + </tr> + <tr> + <td><code>\\</code></td> + <td>barra invertida</td> + </tr> + <tr> + <td><code>\n</code></td> + <td>línia nova</td> + </tr> + <tr> + <td><code>\r</code></td> + <td>retorn de carro</td> + </tr> + <tr> + <td><code>\v</code></td> + <td>barra vertical</td> + </tr> + <tr> + <td><code>\t</code></td> + <td>tabulador</td> + </tr> + <tr> + <td><code>\b</code></td> + <td>esborrar</td> + </tr> + <tr> + <td><code>\f</code></td> + <td>form feed</td> + </tr> + <tr> + <td><code>\uXXXX</code></td> + <td>caràcter amb codificació unicode</td> + </tr> + <tr> + <td><code>\xXX</code></td> + <td>caràcter amb codificació Latin-1</td> + </tr> + </tbody> +</table> + +<p>O bé utilitzant l'objecte global <code>String</code> de forma directa:</p> + +<pre class="syntaxbox"><code>String(quelcom) +new String(quelcom) +</code></pre> + +<h3 id="Parameters" name="Parameters">Paràmetres</h3> + +<dl> + <dt><code>quelcom</code></dt> + <dd>Qualsevol cosa que serà convertida a string.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Les Strings són útils per a emmagatzemar dades que poden ser representades en forma de texte. Algunes de les operacions més emprades en strings són per a obtindre la seva llargada {{jsxref("String.length", "length")}}, per a concatenar-les mitjançant els <a href="/ca/docs/Web/JavaScript/Reference/Operators/String_Operators">operadors de strings + i +=</a>, per a comprovar l'existència o localització de substrings amb el mètode {{jsxref("String.prototype.indexOf()", "indexOf()")}}, o bé per a extreure substrings amb el mètode {{jsxref("String.prototype.substring()", "substring()")}}.</p> + +<h3 id="Character_access" name="Character_access">Accés als caràcters</h3> + +<p>Hi ha dues formes d'accedir a un caràcter individual emmagatzemat dins un string. El primer és el mètode {{jsxref("String.prototype.charAt()", "charAt()")}}:</p> + +<pre class="brush: js">return 'cat'.charAt(1); // retorna "a" +</pre> + +<p>L'altra forma (introduida a ECMAScript 5) és fer anar l'string com si fós un objecte de tipus array, on els caràcters individuals es corresponen a un índex numèric:</p> + +<pre class="brush: js">return 'cat'[1]; // retorna "a" +</pre> + +<p>Utilitzar la notació de claus per a esborrar o bé assignar un valor a un caràcter no funcionarà. Les propietats involucrades no són de tipus no-escriptura i no són configurables. (Vegeu {{jsxref("Object.defineProperty()")}} per a més informació).</p> + +<h3 id="Comparing_strings" name="Comparing_strings">Comparar strings</h3> + +<p>Els desenvolupadors de C disposen de la funció <code>strcmp()</code> per a comparar strings. A JavaScript senzillament es poden utilitzar els <a href="/ca/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">operadors major-que i menor-que</a></p> + +<pre class="brush: js">var a = 'a'; +var b = 'b'; +if (a < b) { // true + print(a + ' és menor que ' + b); +} else if (a > b) { + print(a + ' és major que ' + b); +} else { + print(a + ' i ' + b + ' són iguals.'); +} +</pre> + +<p>Es pot obtindre un resultat similar mitjançant el mètode {{jsxref("String.prototype.localeCompare()", "localeCompare()")}}, heredat per les instàncies de <code>String</code>.</p> + +<h3 id="Distinció_entre_les_primitives_string_i_els_objectes_String">Distinció entre les primitives string i els objectes <code>String</code></h3> + +<p>Cal recalcar que JavaScript distingeix entre objectes de tipus <code>String</code> i valors primitius de tipus string (El mateix succeeix amb {{jsxref("Global_Objects/Boolean", "Boolean")}} i {{jsxref("Global_Objects/Number", "Numbers")}}</p> + +<p>Els literals de tipus string (englobats en cometes simples o dobles) així com strings retornats per crides a l'objecte <code>String</code> en un contexte no constructor (és a dir, sense utilitzar la paraula clau {{jsxref("Operators/new", "new")}}) són strings primitives. JavaScript automàticament converteix primitives a objectes String, de forma que és posible utilitzar mètodes de l'objecte <code>String</code> en strings primitives. En els contextes on s'ha d'invocar un mètode en una primitiva string o es demana la una propietat, JavaScript automàticament embolcallarà la primitiva string amb un objecte String i cridarà el mètode o la propietat corresponent.</p> + +<pre class="brush: js">var s_prim = 'foo'; +var s_obj = new String(s_prim); + +console.log(typeof s_prim); // Escriu "string" +console.log(typeof s_obj); // Escriu "object" +</pre> + +<p>Les primitives string i els objectes <code>String</code> també donen resultats diferents a l'utilitzar {{jsxref("Global_Objects/eval", "eval()")}}. Les primitives passades a <code>eval</code> són considerades codi font; els objectes <code>String</code> es tracten com qualsevol altre objecte, és a dir, retornan l'objecte. Per exemple:</p> + +<pre class="brush: js">var s1 = '2 + 2'; // crea una primitiva string +var s2 = new String('2 + 2'); // crea un objecte String +console.log(eval(s1)); // escriu el nombre 4 +console.log(eval(s2)); // escriu la string "2 + 2" +</pre> + +<p>És per aquestes raons que el codi pot produïr errors quan trobi objectes <code>String</code> però s'esperès una primitiva string, tot i que de forma general els autors no s'han de preocupar per la distinció.</p> + +<p>Un objecte <code>String</code> sempre es pot convertir en la seva representació primitiva mitjançant el mètode {{jsxref("String.prototype.valueOf()", "valueOf()")}}.</p> + +<pre class="brush: js">console.log(eval(s2.valueOf())); // escriu el nombre 4 +</pre> + +<div class="note"><strong>Nota:</strong> Per a una altra posible enfocament quant a string a JavaScript llegiu l'article sobre <a href="/ca/Add-ons/Code_snippets/StringView"><code>StringView</code> — una representació de strings basada en arrays de tipatge explícit similar a C</a>.</div> + +<h2 id="Properties" name="Properties">Propietats</h2> + +<dl> + <dt>{{jsxref("String.prototype")}}</dt> + <dd>Permet afegir propietats a un objecte <code>String</code>.</dd> +</dl> + +<div>{{jsOverrides("Function", "Properties", "prototype")}}</div> + +<h2 id="Methods" name="Methods">Mètodes</h2> + +<dl> + <dt>{{jsxref("String.fromCharCode()")}}</dt> + <dd>Retorna un string creat a partir de la seqüència de valors Unicode proporcionada.</dd> + <dt>{{jsxref("String.fromCodePoint()")}} {{experimental_inline}}</dt> + <dd>Retorna un string creat a partir de la seqüència de <u><em>code points</em> </u>proporcionada.</dd> + <dt>{{jsxref("String.raw()")}} {{experimental_inline}}</dt> + <dd>Retorna un string creat a partir de l'string proporcionat <u>sense tindre en compte la codificació.</u></dd> +</dl> + +<div>{{jsOverrides("Function", "Methods", "fromCharCode", "fromCodePoint", "raw")}}</div> + +<h2 id="Mètodes_genèrics_de_String"><code>Mètodes genèrics de String</code></h2> + +<p>Els mètodes de les instàncies de <code>String</code> també estan disponibles a Firefox a partir del JavaScript 1.6 (tot i que no formen part de l'standard ECMAScript) a l'objecte <code>String</code>, així es poden aplicar els mètodes de <code>String</code> a qualsevol objecte:</p> + +<pre class="brush: js">var num = 15; +console.log(String.replace(num, /5/, '2')); +</pre> + +<p>{{jsxref("Global_Objects/Array", "Generics", "#Array_generic_methods", 1)}} <u>també estàn disponibles als mètodes de</u> {{jsxref("Global_Objects/Array", "Array")}}.</p> + +<p>A continuació es mostra un <em>shim</em> per a donar suport als navegadors que no ho suporten:</p> + +<pre class="brush: js">/*globals define*/ +// Assumes all supplied String instance methods already present +// (one may use shims for these if not available) +(function() { + 'use strict'; + + var i, + // We could also build the array of methods with the following, but the + // getOwnPropertyNames() method is non-shimable: + // Object.getOwnPropertyNames(String).filter(function(methodName) { + // return typeof String[methodName] === 'function'; + // }); + methods = [ + 'quote', 'substring', 'toLowerCase', 'toUpperCase', 'charAt', + 'charCodeAt', 'indexOf', 'lastIndexOf', 'startsWith', 'endsWith', + 'trim', 'trimLeft', 'trimRight', 'toLocaleLowerCase', + 'toLocaleUpperCase', 'localeCompare', 'match', 'search', + 'replace', 'split', 'substr', 'concat', 'slice' + ], + methodCount = methods.length, + assignStringGeneric = function(methodName) { + var method = String.prototype[methodName]; + String[methodName] = function(arg1) { + return method.apply(arg1, Array.prototype.slice.call(arguments, 1)); + }; + }; + + for (i = 0; i < methodCount; i++) { + assignStringGeneric(methods[i]); + } +}()); +</pre> + +<h2 id="String_instances" name="String_instances"><code>Instàncies de String</code></h2> + +<h3 id="Propietats">Propietats</h3> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Properties')}}</div> + +<h3 id="Mètodes">Mètodes</h3> + +<h4 id="Methods_unrelated_to_HTML" name="Methods_unrelated_to_HTML">Mètodes no relacionats amb HTML</h4> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'Methods_unrelated_to_HTML')}}</div> + +<h4 id="HTML_wrapper_methods" name="HTML_wrapper_methods">Mètodes d'embolcall de HTML</h4> + +<div>{{page('/ca/docs/Web/JavaScript/Reference/Global_Objects/String/prototype', 'HTML_wrapper_methods')}}</div> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Conversió_de_strings">Exemple: Conversió de strings</h3> + +<p>És posible utilitzar <code>String</code> com a una alternativa "més segura" de {{jsxref("String.prototype.toString()","toString()")}}, ja que tot i que normalment també crida el mètode <code>toString()</code> subjacent, també funciona per a {{jsxref("Global_Objects/null", "null")}} i {{jsxref("Global_Objects/undefined", "undefined")}}. Per exemple:</p> + +<pre class="brush: js">var outputStrings = []; +for (var i = 0, n = inputValues.length; i < n; ++i) { + outputStrings.push(String(inputValues[i])); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>ECMAScript 1a Edició</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5', 'String')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string-objects', 'String')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("0.2")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{domxref("DOMString")}}</li> + <li><a href="/ca/Add-ons/Code_snippets/StringView"><code>StringView</code> — una representació de strings basada en arrays de tipatge explícit similar a C</a></li> + <li><a href="/ca/docs/Web/API/DOMString/Binary">Strings binàries</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/indexof/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/indexof/index.html new file mode 100644 index 0000000000..9b08b04ded --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/indexof/index.html @@ -0,0 +1,190 @@ +--- +title: String.prototype.indexOf() +slug: Web/JavaScript/Referencia/Objectes_globals/String/indexOf +translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf +--- +<div>{{JSRef}}</div> + +<p>El mètode <code><strong>indexOf()</strong></code> retorna la primera posició dins el {{jsxref("String")}} des del que es crida a la qual es troba el valor proporcionat. Retorna -1 si no es troba el valor donat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.indexOf(valorACercar[, posicioInicial]</code>)</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>valorACercar</code></dt> + <dd>Un string que representa el valor a cercar.</dd> + <dt><code>posicioInicial</code> {{optional_inline}}</dt> + <dd>La posició a partir de la qual es cercarà dins la cadena. Pot ser qualsevol nombre sencer. El valor per defecte és <code>0</code>, indicant que es cercarà a tota la cadena. Si <code>posicioInicial</code><code> < 0</code> es cercarà a tota la cadena. Si <code>posicioInicial >= str.length</code>, no es cercarà a la cadena i es retornarà <code>-1</code> automàticament. Si <code>valorACercar</code> és una cadena buida es retornarà<code> str.length</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Els caràcters de la cadena s'indexen d'esquerra a dreta. La posició del primer caràcter és <code>0</code>, i la posició de l'últim caràcter d'una cadena amb nom <code>stringName</code> és <code>stringName.length - 1</code>.</p> + +<pre class="brush: js">'Blue Whale'.indexOf('Blue'); // returns 0 +'Blue Whale'.indexOf('Blute'); // returns -1 +'Blue Whale'.indexOf('Whale', 0); // returns 5 +'Blue Whale'.indexOf('Whale', 5); // returns 5 +'Blue Whale'.indexOf('', 9); // returns 9 +'Blue Whale'.indexOf('', 10); // returns 10 +'Blue Whale'.indexOf('', 11); // returns 10 +</pre> + +<h3 id="Distinció_entre_majúscules_i_minúscules">Distinció entre majúscules i minúscules</h3> + +<p>El mètode <code>indexOf()</code> distingeix entre majúscules i minúscules. Per exemple, l'expressió següent retorna -1:</p> + +<pre class="brush: js">'Blue Whale'.indexOf('blue'); // retorna -1 +</pre> + +<h3 id="Comprovar_troballes">Comprovar troballes</h3> + +<p>Cal destacar que '0' no s'evalua a <code>true</code> i que '-1' no s'evalua a <code>false</code>. Tenim llavors que al comprovar si una cadena específica existeix dins una altra, la forma correcta de comprovar-ho seria:</p> + +<pre class="brush: js">'Blue Whale'.indexOf('Blue') !== -1; // true +'Blue Whale'.indexOf('Bloe') !== -1; // false +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_indexOf()_i_lastIndexOf()">Utilitzar <code>indexOf()</code> i <code>lastIndexOf()</code></h3> + +<p>L'exemple següent utilitza <code>indexOf()</code> i {{jsxref("String.prototype.lastIndexOf()", "lastIndexOf()")}} per a trobar valors dins la cadena <code>"Brave new world"</code>.</p> + +<pre class="brush: js">var anyString = 'Brave new world'; + +console.log('La posicó de la primera w des del principi és ' + anyString.indexOf('w')); +// mostra 8 +console.log('La posició de la primera w des del final és ' + anyString.lastIndexOf('w')); +// mostra 10 + +console.log('La posicó de "new" des del principi és ' + anyString.indexOf('new')); +// mostra 6 +console.log('La posició de "new" des del final és ' + anyString.lastIndexOf('new')); +// mostra 6 +</pre> + +<h3 id="indexOf()_i_distinció_entre_majúscules_i_minúscules"><code>indexOf()</code> i distinció entre majúscules i minúscules</h3> + +<p>L'exemple següent definteix dos variables de tipus cadena. The following example defines two string variables. The variables contain the same string except that the second string contains uppercase letters. The first {{domxref("console.log()")}} method displays 19. But because the <code>indexOf()</code> method is case sensitive, the string <code>"cheddar"</code> is not found in <code>myCapString</code>, so the second <code>console.log()</code> method displays -1.</p> + +<pre class="brush: js">var myString = 'brie, pepper jack, cheddar'; +var myCapString = 'Brie, Pepper Jack, Cheddar'; + +console.log('myString.indexOf("cheddar") is ' + myString.indexOf('cheddar')); +// logs 19 +console.log('myCapString.indexOf("cheddar") is ' + myCapString.indexOf('cheddar')); +// logs -1 +</pre> + +<h3 id="Using_indexOf()_to_count_occurrences_of_a_letter_in_a_string">Using <code>indexOf()</code> to count occurrences of a letter in a string</h3> + +<p>The following example sets <code>count</code> to the number of occurrences of the letter <code>e</code> in the string <code>str</code>:</p> + +<pre class="brush: js">var str = 'To be, or not to be, that is the question.'; +var count = 0; +var pos = str.indexOf('e'); + +while (pos !== -1) { + count++; + pos = str.indexOf('e', pos + 1); +} + +console.log(count); // displays 4 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.7', 'String.prototype.indexOf')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-string.prototype.indexof', 'String.prototype.indexOf')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{jsxref("String.prototype.charAt()")}}</li> + <li>{{jsxref("String.prototype.lastIndexOf()")}}</li> + <li>{{jsxref("String.prototype.split()")}}</li> + <li>{{jsxref("Array.prototype.indexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/italics/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/italics/index.html new file mode 100644 index 0000000000..f38a8f9579 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/italics/index.html @@ -0,0 +1,104 @@ +--- +title: String.prototype.italics() +slug: Web/JavaScript/Referencia/Objectes_globals/String/italics +translation_of: Web/JavaScript/Reference/Global_Objects/String/italics +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>italics()</code></strong> crea un element HTML {{HTMLElement("i")}} que converteix una cadena en format itàlic.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.italics()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>italics()</code> incrusta una cadena en una etiqueta <code><i></code>: <code>"<i>str</i>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_italics()">Utilitzar <code>italics()</code></h3> + +<p>L'exemple següent utilitza mètodes string per canviar el format de la cadena:</p> + +<pre class="brush: js">var worldString = 'Hola, món'; console.log(worldString.blink()); // Hello, world +console.log(worldString.bold()); // <strong>Hola, món</strong> +console.log(worldString.italics()); //<em>Hola, món</em> +console.log(worldString.strike()); // <s>Hola, món</s></pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.italics', 'String.prototype.italics')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implemtat en JavaScript 1.0. Definit en l'Annex B (normative) per Caracerístiques Adiccionals d'ECMAScript per navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.blink()")}}</li> + <li>{{jsxref("String.prototype.bold()")}}</li> + <li>{{jsxref("String.prototype.strike()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/length/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/length/index.html new file mode 100644 index 0000000000..63a3114d2d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/length/index.html @@ -0,0 +1,121 @@ +--- +title: String.length +slug: Web/JavaScript/Referencia/Objectes_globals/String/length +translation_of: Web/JavaScript/Reference/Global_Objects/String/length +--- +<div>{{JSRef("Global_Objects", "String")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La propietat <strong><code>length</code></strong> representa la longitud d'una cadena de caràcters.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.length</code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Aquesta propietat retorna el nombre d'unitats de codi en un string. {{interwiki("wikipedia", "UTF-16")}}, el format de string utilitzar a JavaScript, utilitza un únic codi de 16 bits per a representar els caràcters més comuns, però necessita dos unitats de codi per a caràcters menys comuns, així que és possible que el valor retornat per <code>length</code> no encaixi amb el nombre de caràcters reals a la cadena de caràcters.</p> + +<p>Per a una cadena buida, <code>length</code> és 0.</p> + +<p>La propietat estàtica <code>String.length</code> retorna el valor 1.</p> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Basic_usage" name="Example:_Basic_usage">Exemple: Ús bàsic</h3> + +<pre class="brush: js">var x = 'Mozilla'; +var empty = ''; + +console.log('Mozilla té ' + x.length + ' unitats de codi'); +/* "Mozilla té 7 unitats de codi" */ + +console.log('La string buida té una longitud de ' + empty.length); +/* "La string buida té una longitud de 0" */ +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.5.1', 'String.prototype.length')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a class="external" href="http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications"><code>String.length</code> a JavaScript i com internacionalitzar Aplicacions Web</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/link/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/link/index.html new file mode 100644 index 0000000000..efe1385ddc --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/link/index.html @@ -0,0 +1,119 @@ +--- +title: String.prototype.link() +slug: Web/JavaScript/Referencia/Objectes_globals/String/link +translation_of: Web/JavaScript/Reference/Global_Objects/String/link +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>link()</code></strong> crea un element HTML {{HTMLElement("a")}} que causa que una cadena es mostri com un enllaç hipertext a una altra URL.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.link(<var>url</var>)</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>url</code></dt> + <dd>Una cadena que especifica l'atribut <code>href</code> de l'etiqueta <code><a>:</code> hauria de ser una URL vàlida (relativa o absoluta), amb qualsevols caràcters escapats <code>&</code> com <code>&amp;</code>, i qualsevol caràcter <code>"</code> escapat com <code>&quot;</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Use the <code>link()</code> method to create an HTML snippet for a hypertext link. The returned string can then be added to the document via {{domxref("document.write()")}} or {{domxref("element.innerHTML")}}.</p> + +<p>Links created with the <code>link()</code> method become elements in the <code>links</code> array of the <code>document</code> object. See {{domxref("document.links")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_link()">Utilitzar <code>link()</code></h3> + +<p>L'exemple següent mostra la paraula "MDN" com a un enllaç hypertext lque retorna a l'usuari a la xarxa de Mozilla Developer.</p> + +<pre class="brush: js">var hotText = 'MDN'; +var URL = 'https://developer.mozilla.org/'; + +console.log('Click to return to ' + hotText.link(URL)); +// Click to return to <a href="https://developer.mozilla.org/">MDN</a> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.link', 'String.prototype.link')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques Addiccionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Notes_específiques_Gecko">Notes específiques Gecko</h2> + +<ul> + <li>Starting Gecko 17.0 {{geckoRelease("17")}} the <code>"</code> (quotation mark) is now automatically replaced by its HTML reference character <code>&quot;</code> in the <code>url</code> parameter.</li> +</ul> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.anchor()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/normalize/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/normalize/index.html new file mode 100644 index 0000000000..7a6bcef500 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/normalize/index.html @@ -0,0 +1,154 @@ +--- +title: String.prototype.normalize() +slug: Web/JavaScript/Referencia/Objectes_globals/String/normalize +translation_of: Web/JavaScript/Reference/Global_Objects/String/normalize +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>normalize()</code></strong> retorna la Forma Normalitzada en Unicode d'un string donat (si el valor passat no és un string, es convertirà a string primer).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.normalize([<var>forma</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>forma</code></dt> + <dd>Una de les opcions <code>"NFC"</code>, <code>"NFD"</code>, <code>"NFKC"</code>, o <code>"NFKD"</code>, que determina quina Forma de Normalització Unicode es farà anar. Si s'omet o es passa {{jsxref("undefined")}} com a paràmetre, s'utilitzarà <code>"NFC"</code> per defecte. + <ul> + <li><code>NFC</code> — Normalization Form Canonical Composition.</li> + <li><code>NFD</code> — Normalization Form Canonical Decomposition.</li> + <li><code>NFKC</code> — Normalization Form Compatibility Composition.</li> + <li><code>NFKD</code> — Normalization Form Compatibility Decomposition.</li> + </ul> + </dd> +</dl> + +<h3 id="Errors_llençats">Errors llençats</h3> + +<dl> + <dt>{{jsxref("RangeError")}}</dt> + <dd>Es llença un {{jsxref("RangeError")}} si <code>forma</code> no és un dels valors especificats adalt.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>normalize()</code> retorna la Forma Normalitzada Unicode d'un string. No afecta el propi valor del string passat sino que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_normalize()">Utilitzar <code>normalize()</code></h3> + +<pre class="brush: js">// String inicial + +// U+1E9B: LLETRA S PETITA DEL LLATÍ AMB UN PUNT A SOBRE +// U+0323: COMBINACIÓ AMB EL PUNT A SOTA +var str = '\u1E9B\u0323'; + + +// Canonically-composed form (NFC) + +// U+1E9B: LLETRA S PETITA DEL LLATÍ AMB UN PUNT A SOBRE +// U+0323: COMBINACIÓ AMB EL PUNT A SOTA +str.normalize('NFC'); // '\u1E9B\u0323' +str.normalize(); // el mateix que a sobre + + +// Canonically-decomposed form (NFD) + +// U+017F: LLETRA S PETITA DEL LLATÍ AMB UN PUNT A SOBRE +// U+0323: COMBINACIÓ AMB EL PUNT A SOTA +// U+0307: COMBINACIÓ AMB EL PUNT A SOBRE +str.normalize('NFD'); // '\u017F\u0323\u0307' + + +// Compatibly-composed (NFKC) + +// U+1E69: LLETRA S PETITA DEL LLATÍ AMB UN PUNT A SOBRE +str.normalize('NFKC'); // '\u1E69' + + +// Compatibly-decomposed (NFKD) + +// U+0073: LLETRA S PETITA DEL LLATÍ +// U+0323: COMBINACIÓ AMB EL PUNT A SOTA +// U+0307: COMBINACIÓ AMB EL PUNT A SOBRE +str.normalize('NFKD'); // '\u0073\u0323\u0307' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("34")}}</td> + <td>{{CompatGeckoDesktop("31")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("34")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="http://www.unicode.org/reports/tr15/">Annex del Standard Unicode #15, Formes Normalitzades del Unicode</a></li> + <li><a href="http://en.wikipedia.org/wiki/Unicode_equivalence">Equivalències al Unicode</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/quote/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/quote/index.html new file mode 100644 index 0000000000..f8027d070a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/quote/index.html @@ -0,0 +1,107 @@ +--- +title: String.prototype.quote() +slug: Web/JavaScript/Referencia/Objectes_globals/String/quote +translation_of: Archive/Web/JavaScript/String.quote +--- +<div>{{JSRef}} {{obsolete_header("37")}} {{non-standard_header}}</div> + +<p>El mètode no estàndard <strong><code>quote()</code></strong> retorna una còpia de la cadena, reemplaçant diferents caràcters especials de la cadena amb les seves seqüències d'escapament i embolcalla el resultat amb cometes dobles (<code>"</code>).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.quote()</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<p>A la taula següent, el mètode <code>quote()</code> reemplaça els caràcters especials i embolcalla les cadenes amb cometes dobles. Tingueu en compte que en la tercera on un {{jsxref("Global_Objects/eval", "eval()")}} embolcallat avalua la seqüència d'escapament novament.</p> + +<table class="fullwidth-table"> + <thead> + <tr> + <th class="header" scope="col"><code>str</code></th> + <th class="header" scope="col"><code>str.quote()</code></th> + <th class="header" scope="col"><code>eval(str.quote())</code></th> + </tr> + </thead> + <tbody> + <tr> + <td><code>Hello world!</code></td> + <td><code>"Hello world!"</code></td> + <td><code>Hello world!</code></td> + </tr> + <tr> + <td><code style="white-space: pre;">Hello<br> + world!</code></td> + <td><code>"Hello\n\tworld!"</code></td> + <td><code style="white-space: pre;">Hello<br> + world!</code></td> + </tr> + <tr> + <td><code>" \ — '</code></td> + <td><code>"\" \\ \u2014 '"</code></td> + <td><code>" \ — '</code></td> + </tr> + </tbody> +</table> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap estàndard. Implementant en JavaScript 1.3.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("JSON.stringify()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/small/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/small/index.html new file mode 100644 index 0000000000..761797bdda --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/small/index.html @@ -0,0 +1,110 @@ +--- +title: String.prototype.small() +slug: Web/JavaScript/Referencia/Objectes_globals/String/small +translation_of: Web/JavaScript/Reference/Global_Objects/String/small +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>small()</code></strong> crea un element HTML {{HTMLElement("small")}} que causa que una cadena es mostri amb una font petita.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.small()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>small()</code> incrusta una adena en una etiqueta <code><small>:</code> <code>"<small>str</small>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_small()">Utilitzar <code>small()</code></h3> + +<p>L'exemple següent utilitza mètodes string per canviar la mida d'una cadena:</p> + +<pre class="brush: js">var worldString = 'Hola, món'; + +console.log(worldString.small()); // <small>Hola, món</small> +console.log(worldString.big()); // <big>Hola, món</big> +console.log(worldString.fontsize(7)); // <font size="7">Hola, món</fontsize> +</pre> + +<p>Amb l'objecte {{domxref("HTMLElement.style", "element.style")}} es pot obtenir l'atribut <code>style</code> d'un element i manipular-lo més genèricament. Per exemple:</p> + +<pre class="brush: js">document.getElementById('yourElemId').style.fontSize = '0.7em'; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.small', 'String.prototype.small')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per Característiques Addiccionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.fontsize()")}}</li> + <li>{{jsxref("String.prototype.big()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/startswith/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/startswith/index.html new file mode 100644 index 0000000000..ca25398d51 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/startswith/index.html @@ -0,0 +1,128 @@ +--- +title: String.prototype.startsWith() +slug: Web/JavaScript/Referencia/Objectes_globals/String/startsWith +translation_of: Web/JavaScript/Reference/Global_Objects/String/startsWith +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>startsWith()</code></strong> determina si un string comença amb els caràcters d'un altre string, retornant <code>true</code> o <code>false</code> depenent d'això.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.startsWith(stringAcercar[, posició])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>stringAcercar</code></dt> + <dd>Els caràcters a cercar al començament d'aquest string.</dd> + <dt><code>posició</code></dt> + <dd>Opcional. La posició dins el string a la qual es començarà a cercar per a trobar <code>stringAcercar</code>; per defecte és 0.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquest mètode us permet determinar si un string comença amb un altre string.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_startsWith()">Utilitzar <code>startsWith()</code></h3> + +<pre class="brush: js">var str = 'To be, or not to be, that is the question.'; + +console.log(str.startsWith('To be')); // true +console.log(str.startsWith('not to be')); // false +console.log(str.startsWith('not to be', 10)); // true +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Aquest mètode va ser afegit a l'especificació ECMAScript i pot no estar disponible encara a totes les implementacions de JavaScript. No obstant, la funció següent emula el comportament de <code>String.prototype.startsWith()</code>:</p> + +<pre class="brush: js">if (!String.prototype.startsWith) { + String.prototype.startsWith = function(searchString, position) { + position = position || 0; + return this.indexOf(searchString, position) === position; + }; +} +</pre> + +<p>Trobareu una funció Polyfill més robusta i optimitzada <a href="https://github.com/mathiasbynens/String.prototype.startsWith">al GitHub de Mathias Bynens</a>.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.startswith', 'String.prototype.startsWith')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome("41")}}</td> + <td>{{CompatGeckoDesktop("17")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("41")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("36")}}</td> + <td>{{CompatGeckoMobile("17")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.endsWith()")}} {{experimental_inline}}</li> + <li>{{jsxref("String.prototype.includes()")}} {{experimental_inline}}</li> + <li>{{jsxref("String.prototype.indexOf()")}}</li> + <li>{{jsxref("String.prototype.lastIndexOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/sub/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/sub/index.html new file mode 100644 index 0000000000..0b512d038e --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/sub/index.html @@ -0,0 +1,109 @@ +--- +title: String.prototype.sub() +slug: Web/JavaScript/Referencia/Objectes_globals/String/sub +translation_of: Web/JavaScript/Reference/Global_Objects/String/sub +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>sub()</code></strong> crea un element HTML {{HTMLElement("sub")}} que fa que una cadena es mostri com a subíndex.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.sub()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>sub()</code> incrusta una cadena a una etiqueta <code><sub></code>: <code>"<sub>str</sub>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_els_mètodes_sub()_i_sup()">Utilitzar els mètodes <code>sub()</code> i <code>sup()</code></h3> + +<p>El codi següent utiltza els mètodes <code>sub()</code> i {{jsxref("String.prototype.sup()", "sup()")}} per donar format a una cadena:</p> + +<pre class="brush: js">var superText="superíndex"; +var subText="subíndex"; + +console.log("Així es com es veu un " + superText.sup()); +// Així es com es veu un <sup>superíndex</sup>. + +console.log("Així es com es veu un " + subText.sub()); +// Així es com es veu un <sub>subíndex</sub>. +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.sub', 'String.prototype.sub')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> + <p>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per a Característiques Addicicionals d'ECMAScript per Navegadors Web.</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.sup()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/substr/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/substr/index.html new file mode 100644 index 0000000000..5fdb1f03b4 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/substr/index.html @@ -0,0 +1,156 @@ +--- +title: String.prototype.substr() +slug: Web/JavaScript/Referencia/Objectes_globals/String/substr +translation_of: Web/JavaScript/Reference/Global_Objects/String/substr +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>substr()</code></strong> retorna els caràcters d'una cadena començant per la posició especificada fins al nombre especificat de caràcters.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.substr(<var>començament</var>[, <var>llargària</var>])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>començament</code></dt> + <dd>Lloc des d'on es comença a extraure els caràcters. Si es dóna un nombre negatiu, se'l tracta com <code>strLength + començament</code> on <code>strLength</code> és la llargària de al cadena (per exemple, si <code>començament</code> és -3 se'l tracta com <code>strLength - 3</code>.)</dd> + <dt><code>llargària</code></dt> + <dd>Opcional. El nombre de caràcter per extraure.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p><code>començament</code> is a character index. L'índex del primer caràcter és 0, i l'índex de l'últim caràcter és 1 menys que la llargària de la cadena. <code>substr()</code> comença extraient caràcters a <code>començament</code> i recull els caràcters <code>llargària</code> (llevat que primer s'arribi al final de la cadena, en aquest cas en retornaria menys).</p> + +<p>Si <code>començament</code> és positivu i més gran o igual que la llargària de la cadena, <code>substr()</code> retornarà una cadena buida.</p> + +<p>SI <code>començament</code> és negatiu, <code>substr()</code> l'utilitza com un índex de caràcter des del final de la cadena. Si <code>començament</code> és negatiu i <code>abs(comença,ent)</code> és més gran que la llargària de la cadena, <code>substr()</code> utilitza 0 com a índex d'inici. Nota: El maneig de valors negatius de l'argument <code>començament</code> no està suportat per Microsoft JScript.</p> + +<p>Si <code>llargària</code> és 0 o negatiu, <code>substr()</code> retorna una cadena buida. Si <code>llargària</code> s'omet, <code>substr()</code> extreu els caràcter fins al final de la cadena.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_substr()">Utilitzar <code>substr()</code></h3> + +<pre class="brush: js">var str = 'abcdefghij'; + +console.log('(1, 2): ' + str.substr(1, 2)); // '(1, 2): bc' +console.log('(-3, 2): ' + str.substr(-3, 2)); // '(-3, 2): hi' +console.log('(-3): ' + str.substr(-3)); // '(-3): hij' +console.log('(1): ' + str.substr(1)); // '(1): bcdefghij' +console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab' +console.log('(20, 2): ' + str.substr(20, 2)); // '(20, 2): ' +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Microsoft's JScript no suporta valors negatius per l'índex d'inici. Si desitjes utilitzar aquesta característica, pots utilitzar el codi de compatibilitat següent per evitar aquest error:</p> + +<pre class="brush: js">// només s'executa quan la funció substr() està trencada +if ('ab'.substr(-1) != 'b') { + /** + * Obtenir la subcadena d'una cadena + * @param {integer} start on comença la subcadena + * @param {integer} length quants caràcters s'han de retornar + * @return {string} + */ + String.prototype.substr = function(substr) { + return function(start, length) { + // crida el mètode original + return substr.call(this, + // Si ens dóna un començament negatiu, calcular quant es des de l'inici de la cadena + // adjustar el paràmetre start per valor negatiu + start < 0 ? this.length + start : start, + length) + } + }(String.prototype.substr); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definit en l'Annex B de Compatibilitat (informative). Implementat en JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit en l'Annex B de Compatibilitat (informative)</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit en l'Annex B (normative) per Característiques addiccionals d'ECMAScript per Navegadors Web</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.slice()")}}</li> + <li>{{jsxref("String.prototype.substring()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/sup/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/sup/index.html new file mode 100644 index 0000000000..24b46c88ce --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/sup/index.html @@ -0,0 +1,107 @@ +--- +title: String.prototype.sup() +slug: Web/JavaScript/Referencia/Objectes_globals/String/sup +translation_of: Web/JavaScript/Reference/Global_Objects/String/sup +--- +<div>{{JSRef}} {{deprecated_header}}</div> + +<p>El mètode <strong><code>sup()</code></strong> crea un element HTML {{HTMLElement("sup")}} que causa que la cadena es mostri com un superíndex.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.sup()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>sup()</code> incrusta una cadena en l'etiqueta <code><sup></code>:<code>"<sup>str</sup>"</code>.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_els_mètodes_sub()_i_sup()">Utilitzar els mètodes <code>sub()</code> i <code>sup()</code></h3> + +<p>L'exemple següent utilitza els mètodes {{jsxref("String.prototype.sub()", "sub()")}} i <code>sup()</code> per formatejar la cadena:</p> + +<pre class="brush: js">var superText = 'superíndex'; +var subText = 'subíndex'; + +console.log('This is what a ' + superText.sup()); +// "Així es com es veu un <sup>superíndex</sup>." + +console.log('This is what a ' + subText.sub()); +// "Així es com es veu un <sub>subíndex</sub>." +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.sup', 'String.prototype.sup')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.0. Definit en l'Annex B (normative) per a Característiques Addicicionals d'ECMAScript per Navegadors Web.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.sub()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/tolocalelowercase/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/tolocalelowercase/index.html new file mode 100644 index 0000000000..c138197bc1 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/tolocalelowercase/index.html @@ -0,0 +1,110 @@ +--- +title: String.prototype.toLocaleLowerCase() +slug: Web/JavaScript/Referencia/Objectes_globals/String/toLocaleLowerCase +translation_of: Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase +--- +<div>{{JSRef}}</div> + +<p>El mètode<strong> <code>toLocaleLowerCase()</code> </strong>retorna el valor del string que fa la crida convertit a minúscules , tot seguint les directrius locals específiques de conversió a minúscules.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.toLocaleLowerCase()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode<strong> <code>toLocaleLowerCase()</code> </strong>retorna el valor del string que fa la crida convertit a minúscules , tot seguint les directrius locals específiques de conversió a minúscules.El mètode<strong> <code>toLocaleLowerCase()</code> </strong>retorna el valor del string que fa la crida convertit a minúscules , tot seguint les directrius locals específiques de conversió a minúscules. En la majoria dels casos, la crida a aquest mètode produirà un resultat similar a la del mètode {{jsxref("String.prototype.toLowerCase()", "toLowerCase()")}}, però per a algunes localitzacions, com ara el Turc, en les quals el pas de majúscules a minúscules o de minúscules a majúscules no segueix les assignacions per defecte del Unicode, el resultat pot diferir.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toLocaleLowerCase()">Utilitzar <code>toLocaleLowerCase()</code></h3> + +<pre class="brush: js">console.log('ALFABET'.toLocaleLowerCase()); // 'alfabet' +</pre> + +<h2 id="Especifications">Especifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.17', 'String.prototype.toLocaleLowerCase')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.tolocalelowercase', 'String.prototype.toLocaleLowerCase')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.toLocaleUpperCase()")}}</li> + <li>{{jsxref("String.prototype.toLowerCase()")}}</li> + <li>{{jsxref("String.prototype.toUpperCase()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/tolocaleuppercase/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/tolocaleuppercase/index.html new file mode 100644 index 0000000000..8f7b2aa716 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/tolocaleuppercase/index.html @@ -0,0 +1,110 @@ +--- +title: String.prototype.toLocaleUpperCase() +slug: Web/JavaScript/Referencia/Objectes_globals/String/toLocaleUpperCase +translation_of: Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toLocaleUpperCase()</code></strong> retorna el valor del string que fa la crida convertit a majúscules, tot seguint les directrius locals específiques de conversió a majúscules.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.toLocaleUpperCase()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <strong><code>toLocaleUpperCase()</code></strong> retorna el valor del string que fa la crida convertit a majúscules, tot seguint les directrius locals específiques de conversió a majúscules. <code>toLocaleUpperCase()</code> no afecta el valor del string que fa la crida sino que en retorna un de nou. En la majoria dels casos, la crida a aquest mètode produirà un resultat similar a la del mètode {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}, però per a algunes localitzacions, com ara el Turc, en les quals el pas de majúscules a minúscules o de minúscules a majúscules no segueix les assignacions per defecte del Unicode, el resultat pot diferir.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toLocaleUpperCase()">Utilitzar <code>toLocaleUpperCase()</code></h3> + +<pre class="brush: js">console.log('alfabet'.toLocaleUpperCase()); // 'ALFABET' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.2.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.19', 'String.prototype.toLocaleUpperCase')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.toLocaleLowerCase()")}}</li> + <li>{{jsxref("String.prototype.toLowerCase()")}}</li> + <li>{{jsxref("String.prototype.toUpperCase()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/tolowercase/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/tolowercase/index.html new file mode 100644 index 0000000000..7147d0ea0d --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/tolowercase/index.html @@ -0,0 +1,111 @@ +--- +title: String.prototype.toLowerCase() +slug: Web/JavaScript/Referencia/Objectes_globals/String/toLowerCase +translation_of: Web/JavaScript/Reference/Global_Objects/String/toLowerCase +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toLowerCase()</code></strong> retorna el valor del string que fa la crida convertit a majúscules.<br> + </p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.toLowerCase()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>toLowerCase()</code> retorna el valor del string que fa la crida convertit a majúscules. <code>toLowerCase()</code> no afecta el valor del string que fa la crida sino que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toLowerCase()"><code>Utilitzar toLowerCase()</code></h3> + +<pre class="brush: js">console.log('ALFABET'.toLowerCase()); // 'alfabet' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.16', 'String.prototype.toLowerCase')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.tolowercase', 'String.prototype.toLowerCase')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.toLocaleLowerCase()")}}</li> + <li>{{jsxref("String.prototype.toLocaleUpperCase()")}}</li> + <li>{{jsxref("String.prototype.toUpperCase()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/tostring/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/tostring/index.html new file mode 100644 index 0000000000..11f2555a2f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/tostring/index.html @@ -0,0 +1,113 @@ +--- +title: String.prototype.toString() +slug: Web/JavaScript/Referencia/Objectes_globals/String/toString +translation_of: Web/JavaScript/Reference/Global_Objects/String/toString +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toString()</code></strong> retorna un string que representa l'objecte especificat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.toString()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>L'objecte {{jsxref("String")}} sobreescriu el mètode <code>toString()</code> de l'objecte {{jsxref("Object")}}; no hereta {{jsxref("Object.prototype.toString()")}}. Per a objectes {{jsxref("String")}}, el mètode <code>toString()</code> retorna un string que representa l'objecte i és el mateix que el que el retornat pel mètode {{jsxref("String.prototype.valueOf()")}}.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toString()">Utilitzar <code>toString()</code></h3> + +<p>L'exemple següent mostra el valor d'un objecte {{jsxref("String")}}:</p> + +<pre class="brush: js">var x = new String('Hello world'); + +console.log(x.toString()); // mostra 'Hello world' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.2', 'String.prototype.toString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.tostring', 'String.prototype.toString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Object.prototype.toSource()")}}</li> + <li>{{jsxref("String.prototype.valueOf()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/touppercase/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/touppercase/index.html new file mode 100644 index 0000000000..2a3b4fe56a --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/touppercase/index.html @@ -0,0 +1,110 @@ +--- +title: String.prototype.toUpperCase() +slug: Web/JavaScript/Referencia/Objectes_globals/String/toUpperCase +translation_of: Web/JavaScript/Reference/Global_Objects/String/toUpperCase +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>toUpperCase()</code></strong> retorna el valor del string que fa la crida convertit a majúscules.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.toUpperCase()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>toUpperCase()</code> retorna el valor del string que fa la crida convertit a majúscules. <code>toUpperCase()</code> no afecta el valor del string que fa la crida sino que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_toUpperCase()">Utilitzar <code>toUpperCase()</code></h3> + +<pre class="brush: js">console.log('alfabet'.toUpperCase()); // 'ALFABET' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.0.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.18', 'String.prototype.toUpperCase')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.touppercase', 'String.prototype.toUpperCase')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.toLocaleLowerCase()")}}</li> + <li>{{jsxref("String.prototype.toLocaleUpperCase()")}}</li> + <li>{{jsxref("String.prototype.toLowerCase()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/trim/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/trim/index.html new file mode 100644 index 0000000000..2dd955ea62 --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/trim/index.html @@ -0,0 +1,123 @@ +--- +title: String.prototype.trim() +slug: Web/JavaScript/Referencia/Objectes_globals/String/Trim +translation_of: Web/JavaScript/Reference/Global_Objects/String/Trim +--- +<div>{{JSRef}}</div> + +<p>El mètode <strong><code>trim()</code></strong> elimina els espais en blanc tant a l'inici com al final del string. En aquest contexte, s'entèn com a espais en blanc tots les caràcters que no imprimeixin res (espai, tabulador, espai sense salt de línia, etcètera) així com tots els caràcters terminadors de línia (LF, CR, etc.).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.trim()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>trim()</code> retorna un string sense espais en blanc tant a l'inici com al final. <code>trim()</code> no afecta el valor del string ja que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_trim()">Utilitzar <code>trim()</code></h3> + +<p>L'exemple següent mostra el string <code>'foo'</code>:</p> + +<pre class="brush: js">var orig = ' foo '; +console.log(orig.trim()); // 'foo' + +// Un altre exemple de .trim() eliminant espais en blanc només d'un cantó. + +var orig = 'foo '; +console.log(orig.trim()); // 'foo' +</pre> + +<h2 id="Polyfill">Polyfill</h2> + +<p>Executar el codi que es mostra a continuació abans d'executar cap altre codi crearà la funció <code>trim()</code> si aquesta no està disponible de forma nativa.</p> + +<pre class="brush: js">if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + }; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.20', 'String.prototype.trim')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial. Implementat a JavaScript 1.8.1.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.trim', 'String.prototype.trim')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatIE("9")}}</td> + <td>{{CompatOpera("10.5")}}</td> + <td>{{CompatSafari("5")}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.trimLeft()")}} {{non-standard_inline}}</li> + <li>{{jsxref("String.prototype.trimRight()")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/trimleft/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/trimleft/index.html new file mode 100644 index 0000000000..f16a5b89fa --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/trimleft/index.html @@ -0,0 +1,94 @@ +--- +title: String.prototype.trimLeft() +slug: Web/JavaScript/Referencia/Objectes_globals/String/TrimLeft +translation_of: Web/JavaScript/Reference/Global_Objects/String/trimStart +--- +<div>{{JSRef}} {{non-standard_header}}</div> + +<p>El mètode <strong><code>trimLeft()</code></strong> elimina els espais en blanc a l'esquerra del string.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.trimLeft()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>trimLeft()</code> retorna un string on els espais en blanc del començament s'han eliminat. <code>trimLeft()</code> no afecta al valor mateix del string sino que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_trimLeft()">Utilitzar <code>trimLeft()</code></h3> + +<p>L'exemple següent mostra el string <code>'foo '</code>:</p> + +<pre class="brush: js; highlight: [5]">var str = ' foo '; + +console.log(str.length); // 8 + +str = str.trimLeft(); +console.log(str.length); // 5 +console.log(str); // 'foo ' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No és part de cap standard. Implementat a JavaScript 1.8.1.</p> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.trim()")}}</li> + <li>{{jsxref("String.prototype.trimRight()")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/string/trimright/index.html b/files/ca/web/javascript/referencia/objectes_globals/string/trimright/index.html new file mode 100644 index 0000000000..41ab89e3ca --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/string/trimright/index.html @@ -0,0 +1,94 @@ +--- +title: String.prototype.trimRight() +slug: Web/JavaScript/Referencia/Objectes_globals/String/TrimRight +translation_of: Web/JavaScript/Reference/Global_Objects/String/trimEnd +--- +<div>{{JSRef}} {{non-standard_header}}</div> + +<p>El mètode <strong><code>trimRight()</code></strong> elimina els espais en blanc al final d'un string.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code><var>str</var>.trimRight()</code></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>El mètode <code>trimRight()</code> retorna el string sense espais en blanc al final del mateix. <code>trimRight()</code> no afecta el valor del string sino que en retorna un de nou.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_trimRight()">Utilitzar <code>trimRight()</code></h3> + +<p>L'exemple següent mostra el string <code>' foo'</code>:</p> + +<pre class="brush: js; highlight: [5]">var str = ' foo '; + +console.log(str.length); // 8 + +str = str.trimRight(); +console.log(str.length); // 5 +console.log(str); // ' foo' +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<p>No forma part de cap standard. Implementat a JavaScript 1.8.1.</p> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("String.prototype.trim()")}}</li> + <li>{{jsxref("String.prototype.trimLeft()")}} {{non-standard_inline}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/index.html b/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/index.html new file mode 100644 index 0000000000..2ad16e006f --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/index.html @@ -0,0 +1,166 @@ +--- +title: SyntaxError +slug: Web/JavaScript/Referencia/Objectes_globals/SyntaxError +translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError +--- +<div>{{JSRef}}</div> + +<p>L'objecte <code><strong>SyntaxError</strong></code> representa un error quan s'intenta interpretar un codi sintàcticament no vàlid.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Es llança un <code>SyntaxError</code> quan el motor JavaScript es troba amb tokens o un token que no s'adequa a la sintaxi del llenguatge quan s'interpreta el codi.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>new SyntaxError([<var>missatge</var>[, <var>nomFitxer</var>[, <var>numeroLinia</var>]]])</code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>missatge</code></dt> + <dd>Opcional. Descripció llegible per humans de l'error</dd> + <dt><code>nomFitxer</code> {{non-standard_inline}}</dt> + <dd>Opcional. El nom del fitxer que conté el codi que causa l'excepció</dd> + <dt><code>numeroLinia</code> {{non-standard_inline}}</dt> + <dd>Opcional. El número de linia del codi que causa l'excepció</dd> +</dl> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt>{{jsxref("SyntaxError.prototype")}}</dt> + <dd>Permet l'addició de propietats a un objecte <code>SyntaxError</code>.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<p>El <code>SyntaxError</code> global no conté cap mètode en si mateix, tanmateix, sí que hereta alguns mètodes a través de la cadena prototipus.</p> + +<h2 id="instànces_de_SyntaxError">instànces de <code>SyntaxError</code></h2> + +<h3 id="Propietats_2">Propietats</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype', 'Properties')}}</div> + +<h3 id="Mètodes_2">Mètodes</h3> + +<div>{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype', 'Methods')}}</div> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Capturar_un_SyntaxError">Capturar un <code>SyntaxError</code></h3> + +<pre class="brush: js">try { + eval('hoo bar'); +} catch (e) { + console.log(e instanceof SyntaxError); // true + console.log(e.message); // "missing ; before statement" + console.log(e.name); // "SyntaxError" + console.log(e.fileName); // "Scratchpad/1" + console.log(e.lineNumber); // 1 + console.log(e.columnNumber); // 4 + console.log(e.stack); // "@Scratchpad/1:2:3\n" +} +</pre> + +<h3 id="Crear_un_SyntaxError">Crear un <code>SyntaxError</code></h3> + +<pre class="brush: js">try { + throw new SyntaxError('Hello', 'someFile.js', 10); +} catch (e) { + console.log(e instanceof SyntaxError); // true + console.log(e.message); // "Hello" + console.log(e.name); // "SyntaxError" + console.log(e.fileName); // "someFile.js" + console.log(e.lineNumber); // 10 + console.log(e.columnNumber); // 0 + console.log(e.stack); // "@Scratchpad/2:11:9\n" +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.6.4', 'SyntaxError')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-syntaxerror', 'SyntaxError')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error")}}</li> + <li>{{jsxref("SyntaxError.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/prototype/index.html b/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/prototype/index.html new file mode 100644 index 0000000000..714990be7b --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/syntaxerror/prototype/index.html @@ -0,0 +1,121 @@ +--- +title: SyntaxError.prototype +slug: Web/JavaScript/Referencia/Objectes_globals/SyntaxError/prototype +translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError +--- +<div>{{JSRef}}</div> + +<p>La propietat <code><strong>SyntaxError.prototype</strong></code> representa el prototip pel constructor {{jsxref("SyntaxError")}}.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Totes les instàncies {{jsxref("SyntaxError")}} hereten de <code>SyntaxError.prototype</code>. Es pot utilitzar el prototipus per afegir propietats o mètodes a totes les instàncies.</p> + +<h2 id="Propietats">Propietats</h2> + +<dl> + <dt><code>SyntaxError.prototype.constructor</code></dt> + <dd>Especifica la funció que ha creat el prototip d'una instància.</dd> + <dt>{{jsxref("Error.prototype.message", "SyntaxError.prototype.message")}}</dt> + <dd>Missatge d'error. Tot i que l'ECMA-262 especifica que {{jsxref("SyntaxError")}} hauria de proveir la seva pròpia propietat <code>message,</code> en <a href="/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a>, hereta {{jsxref("Error.prototype.message")}}.</dd> + <dt>{{jsxref("Error.prototype.name", "SyntaxError.prototype.name")}}</dt> + <dd>Nom de l'herror. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.fileName", "SyntaxError.prototype.fileName")}}</dt> + <dd>Ruta a l'arxiu que llança aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.lineNumber", "SyntaxError.prototype.lineNumber")}}</dt> + <dd>Número de línia en el fitxa que llança aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.columnNumber", "SyntaxError.prototype.columnNumber")}}</dt> + <dd>Número de columna en línia que llança aquest error. Heretat de {{jsxref("Error")}}.</dd> + <dt>{{jsxref("Error.prototype.stack", "SyntaxError.prototype.stack")}}</dt> + <dd>Traça de l'error. Heretat de {{jsxref("Error")}}.</dd> +</dl> + +<h2 id="Mètodes">Mètodes</h2> + +<p>Tot i que l'objecte prototip {{jsxref("SyntaxError")}} no conté cap mètode per si mateix, instàncies de{{jsxref("SyntaxError")}} heretes alguns mètodes a través de la cadena prototip.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.11.7.6', 'NativeError.prototype')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definit com a <code><em>NativeError</em>.prototype</code>.</td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-nativeerror.prototype', 'NativeError.prototype')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definit com a <code><em>NativeError</em>.prototype</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Error.prototype")}}</li> + <li>{{jsxref("Function.prototype")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html b/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html new file mode 100644 index 0000000000..3dd30fbefe --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html @@ -0,0 +1,174 @@ +--- +title: undefined +slug: Web/JavaScript/Referencia/Objectes_globals/undefined +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +<div> +<div> +<div>{{jsSidebar("Objects")}}</div> +</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>El valor de la propietat global <code><strong>undefined</strong></code> representa el valor <code>undefined</code>. És un dels {{Glossary("Primitive", "tipus primitius")}} de JavaScript.</p> + +<p>{{js_property_attributes(0,0,0)}}</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox"><code>undefined</code></pre> + +<h2 id="Description" name="Description">Descripció</h2> + +<p><code>undefined</code> és una propietat de l'<em>objecte global</em>, és a dir, és una variable dins l'àmbit global.</p> + +<p>Als navegadors moderns (JavaScript 1.8.5 / Firefox 4+), <code>undefined</code> és una propietat no configurable i que no pot ser escrita, tal com denota la especificació ECMAScript 5. Encara que no sigui el cas, és convenient evitar sobreescriure el seu valor.</p> + +<p>Una variable a la que no s'ha assignat cap valor és de tipus <code>undefined</code>. Un mètode o sentència retornarà <code>undefined</code> si la variable que s'evalua no te assignat cap valor. Una funció retornarà <code>undefined</code> si no es {{jsxref("Statements/return", "retorna")}} un valor explícitament.</p> + +<p>Degut a que <code>undefined</code> no és una {{jsxref("Reserved_Words", "paraula reservada")}} es pot emprar com a <a href="/ca/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Variables">identificador</a> (nom de variable) a qualsvol àmbit que no sigui el global.</p> + +<pre class="brush: js">// mostra "foo string" +(function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })(); + +// mostra "foo string" +(function(undefined){ console.log(undefined, typeof undefined); })('foo'); +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Igualtat_estricta_i_undefined">Igualtat estricta i <code>undefined</code></h3> + +<p>Es pot emprar <code>undefined</code> en combinació amb els operadors de igualtat i no-igualtat per determinar si una variable té assignat un valor.</p> + +<pre class="brush: js">var x; +if (x === undefined) { + // sentències que s'executaran +} +else { + // sentències que no s'executaran +} +</pre> + +<div class="note">Nota: En aquest cas s'ha de fer servir l'operador d'igualtat estricta (<code>===</code>) en comptes de l'operador standard d'igualtat (<code>==</code>) ja que <code>x == undefined</code> també comprova si <code>x</code> és <code>null</code>, mentre que l'operador d'igualtat estricta no ho fa. <code>null</code> no és equivalent a <code>undefined</code>. Per més detalls vegeu {{jsxref("Operators/Comparison_Operators", "comparació d'operadors")}}.</div> + +<h3 id="L'operador_Typeof_i_undefined"><code>L'operador Typeof</code> i <code>undefined</code></h3> + +<p>De forma alternativa, es pot emprar {{jsxref("Operators/typeof", "typeof")}}:</p> + +<pre class="brush: js">var x; +if (typeof x === 'undefined') { + // sentències que s'executaran +} +</pre> + +<p>Una raó per utilitzar {{jsxref("Operators/typeof", "typeof")}} és que no provoca un error si la variable no ha estat definida prèviament.</p> + +<pre class="brush: js">// x no ha estat prèviament definida +if (typeof x === 'undefined') { // s'evalua a true sense errors + // sentències que s'executaran +} + +if(x === undefined){ // llença ReferenceError + +} +</pre> + +<p>De totes formes és recomanable evitar l'ús d'aquest tipus de tècniques. JavaScript és un llenguatge amb àmbits estàtics, de manera que per saber si una variable ha estat definida prèviament n'hi ha prou amb comprovar si ha estat definida dins l'àmbit immediat. L'única excepció és l'àmbit global. Aquest, però, està vinculat a l'objecte global, per la qual cosa comprovar si una variable existeix dins l'àmbit global és equivalent a comprovar l'existència d'una propietat dins l'objecte global (emprant l'operador {{jsxref("Operators/in", "in")}}, per exemple).</p> + +<h3 id="L'operador_Void_i_undefined"><code>L'operador Void</code> i <code>undefined</code></h3> + +<p>L'operador {{jsxref("Operators/void", "void")}} és una altra alternativa.</p> + +<pre class="brush: js">var x; +if (x === void 0) { + // sentències que s'executaran +} + +// y no ha estat definida prèviament +if (y === void 0) { + // llença ReferenceError (en oposició a `typeof`) +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1st Edition.</td> + <td>Standard</td> + <td>Definició inicial. Impementat a JavaScript 1.3</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-undefined', 'undefined')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<p> </p> diff --git a/files/ca/web/javascript/referencia/operadors/arithmetic_operators/index.html b/files/ca/web/javascript/referencia/operadors/arithmetic_operators/index.html new file mode 100644 index 0000000000..da169292cd --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/arithmetic_operators/index.html @@ -0,0 +1,286 @@ +--- +title: Operadors aritmètics +slug: Web/JavaScript/Referencia/Operadors/Arithmetic_Operators +translation_of: Web/JavaScript/Reference/Operators +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p><strong>Els operadors aritmètics</strong> prenen valors numèrics (poden ser tant literals com ser variables) com a operands seus i retornen un valor numèric únic. Els operadors aritmètics estàndards són la suma (+), la resta (-), la multiplicació (*), i la divisió (/).</p> + +<h2 id="Suma_()"><a name="Addition">Suma (+)</a></h2> + +<p>L'operador <em>Suma</em> produeix la suma dels operands numèrics o de la concatenació de cadenes.</p> + +<h3 id="Sintaxi">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x + y +</pre> + +<h3 id="Exemples">Exemples</h3> + +<pre class="brush: js">// Nombre + Nombre -> suma +1 + 2 // 3 + +// Booleà + Nombre -> suma +true + 1 // 2 + +// Booleà + Booleà -> suma +false + false // 0 + +// Nombre + String -> concatenació +5 + "foo" // "5foo" + +// String + Booleà -> concatenació +"foo" + false // "foofalse" + +// String + String -> concatenació +"foo" + "bar" // "foobar" +</pre> + +<h2 id="Resta_(-)"><a name="Subtraction">Resta (-)</a></h2> + +<p>L'operador <em>resta</em> produeix la resta de dos operands, produint la seva diferència.</p> + +<h3 id="Sintaxi_2">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x - y +</pre> + +<h3 id="Exemples_2">Exemples</h3> + +<pre class="brush: js">5 - 3 // 2 +3 - 5 // -2 +"foo" - 3 // NaN</pre> + +<h2 id="Divisió_()"><a name="Division">Divisió (/)</a></h2> + +<p>L'operador divisió produeix el quocient dels seus operands on el operand de l'esquerra és el dividend, i l'operand de la dreta és el divisor.</p> + +<h3 id="Sintaxi_3">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x / y +</pre> + +<h3 id="Exemples_3">Exemples</h3> + +<pre class="brush: js">1 / 2 // retorna 0.5 a JavaScript +1 / 2 // retorna 0 in Java +// (cap dels nombres és explícitament n nombre de coma flotant) + +1.0 / 2.0 // retorna 0.5 a JavaScript i Java + +2.0 / 0 // retorna Infinity a JavaScript +2.0 / 0.0 // també retorna Infinity +2.0 / -0.0 // retorna -Infinity a JavaScript</pre> + +<h2 id="Multiplicació_(*)"><a name="Multiplication">Multiplicació (*)</a></h2> + +<p>L'operador <em>multiplicació</em> produeix el producte dels operands.</p> + +<h3 id="Sintaxi_4">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x * y +</pre> + +<h3 id="Exemples_4">Exemples</h3> + +<pre class="brush: js">2 * 2 // 4 +-2 * 2 // -4 +Infinity * 0 // NaN +Infinity * Infinity // Infinity +"foo" * 2 // NaN +</pre> + +<h2 id="Mòdul_()"><a name="Remainder">Mòdul (%)</a></h2> + +<p>L'operador<em> mòdul </em>retorna el mòdul del primer operand amb el segon, això és, <code>var1</code> modulo <code>var2</code> en la sentència prèvia, on <code>var1</code> i <code>var2 </code>són variables. La funció mòdul és la resta entera de dividir <code>var1</code> <code>per var2</code>. <a href="http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator" title="http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator">Hi ha una proposta per a implementar un operador mòdul real en una futura versió de l'ECMAScript.</a></p> + +<h3 id="Sintaxi_5">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> var1 % var2 +</pre> + +<h3 id="Exemples_5">Exemples</h3> + +<pre class="brush: js">12 % 5 // 2 +-1 % 2 // -1 +NaN % 2 // NaN +</pre> + +<h2 id="Increment_()"><a name="Increment">Increment (++)</a></h2> + +<p>L'operador <em>increment</em> incrementa (afegeix un) al seu operand i retorna un valor.</p> + +<ul> + <li>Emprat com a sufix, és a dir, amb l'operador després de l'operand (per exemple: x++), retorna el valor de l'operand abans d'incrementar-lo.</li> + <li>Emprat com a prefix, és a dir, amb l'operador precedint l'operand (per exemple: ++x), retorna el valor de l'operand després d'incrementar-lo.</li> +</ul> + +<h3 id="Sintaxi_6">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x++ or ++x +</pre> + +<h3 id="Exemples_6">Exemples</h3> + +<pre class="brush: js">// Sufix +var x = 3; +y = x++; // y = 3, x = 4 + +// Prefix +var a = 2; +b = ++a; // a = 3, b = 3 +</pre> + +<h2 id="Decrement_(--)"><a name="Decrement">Decrement (--)</a></h2> + +<p>L'operador <em>decrement</em> decrementa (resta un) al seu operand i retorna el seu valor.</p> + +<ul> + <li>Emprat com a sufix, és a dir, amb l'operador després de l'operand (per exemple: x--), retorna el valor de l'operand abans de decrementar-lo.</li> + <li>Emprat com a prefix, és a dir, amb l'operador precedint l'operand (per exemple: --x), retorna el valor de l'operand després de decrementar-lo.</li> +</ul> + +<h3 id="Sintaxi_7">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> x-- or --x +</pre> + +<h3 id="Exemples_7">Exemples</h3> + +<pre class="brush: js">// Sufix +var x = 3; +y = x--; // y = 3, x = 2 + +// Prefix +var a = 2; +b = --a; // a = 1, b = 1 +</pre> + +<h2 id="Negació_unària_(-)"><a name="Unary_negation">Negació unària (-)</a></h2> + +<p>L'operador de negació unària precedeix el seu operand i el nega.</p> + +<h3 id="Sintaxi_8">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operator:</strong> -x +</pre> + +<h3 id="Exemples_8">Exemples</h3> + +<pre class="brush: js">var x = 3; +y = -x; // y = -3, x = 3 +</pre> + +<h2 id="Operador_unari_de_conversió_a_nombre_()"><a name="Unary_plus">Operador unari de conversió a nombre</a> (+)</h2> + +<p>L'operador unari de conversió a nombre precedeix el seu operand i intenta convertir-lo en un nombre si no ho és ja. Tot i que l'operand de negació unària també pot convertir no-nombres, l'operador de conversió és el mètode més ràpid i recomanat per a convertir quelcom a un nombre ja que no realitza cap altra operació al nombre. Pot convertir cadenes de caràcters representant sencers i nombres en coma flotant, així com els valors <code>true</code>, <code>false</code> i <code>null</code>. Quant a nombres sencers, tant la notació decimal com la hexadecimal (denotada amb el prefixe "0x") estàn suportades. Els nombres negatius també estàn suportats (tot i que no per a hexadecimals). Si no pot interpretar un valor determinat l'operador retornarà<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN"> NaN</a>.</p> + +<h3 id="Sintaxi_9">Sintaxi</h3> + +<pre class="syntaxbox"><strong>Operador:</strong> +x +</pre> + +<h3 id="Exemples_9">Exemples</h3> + +<pre class="brush: js">+3 // 3 ++"3" // 3 ++true // 1 ++false // 0 ++null // 0 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1st Edition.</td> + <td>Standard</td> + <td>Initial definition.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.6', 'Additive operators')}}<br> + {{SpecName('ES5.1', '#sec-11.5', 'Multiplicative operators')}}<br> + {{SpecName('ES5.1', '#sec-11.3', 'Postfix expressions')}}<br> + {{SpecName('ES5.1', '#sec-11.4', 'Unary operators')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-additive-operators', 'Additive operators')}}<br> + {{SpecName('ES6', '#sec-multiplicative-operators', 'Multiplicative operators')}}<br> + {{SpecName('ES6', '#sec-postfix-expressions', 'Postfix expressions')}}<br> + {{SpecName('ES6', '#sec-unary-operators', 'Unary operators')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">Operadors d'assignació</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/bitwise_operators/index.html b/files/ca/web/javascript/referencia/operadors/bitwise_operators/index.html new file mode 100644 index 0000000000..048a1eddf6 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/bitwise_operators/index.html @@ -0,0 +1,718 @@ +--- +title: Operadors de bits +slug: Web/JavaScript/Referencia/Operadors/Bitwise_Operators +translation_of: Web/JavaScript/Reference/Operators +--- +<div>{{jsSidebar("Operators")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p><strong>Els operadors de bits</strong> tracten els seus operands com una seqüència de 32 bits (uns i zeros), en comptes de operar-los com a <a href="/ca/docs/Web/JavaScript/Reference/Global_Objects/Number">nombres</a> decimals, hexadecimals o octals. Per exemple, la representació binària del és nombre decimal nou (9) 1001. Els operadors de bits treballen amb aquesta representació binària però el resultat que retorna l'operació sempre és un nombre standard de JavaScript.</p> + +<p>La taula que trobareu a continuació és un resum dels operadors de bits que es poden trobar a JavaScript:</p> + +<table class="standard-table"> + <tbody> + <tr> + <th>Operador</th> + <th>Ús</th> + <th>Descripció</th> + </tr> + <tr> + <td><a href="#Bitwise_AND">AND binari</a></td> + <td style="white-space: nowrap;"><code>a & b</code></td> + <td> + <p>Retorna un 1 a les posicions on el bit de <code>a</code> i el bit de <code>b</code> són 1 i un 0 en totes les altres.</p> + </td> + </tr> + <tr> + <td><a href="#Bitwise_OR">OR binari</a></td> + <td style="white-space: nowrap;"><code>a | b</code></td> + <td> + <p>Retorna un 1 a les posicions on al menys la posició de <code>a</code> o la de <code>b</code> són 1.</p> + </td> + </tr> + <tr> + <td><a href="#Bitwise_XOR">XOR binari</a></td> + <td style="white-space: nowrap;"><code>a ^ b</code></td> + <td> + <p>Retorna un 1 a cada posició on <code>a</code> és 1 i <code>b</code> és 0 o bé <code>a</code> és 0 i <code>b</code> és 1.</p> + </td> + </tr> + <tr> + <td><a href="#Bitwise_NOT">NOT binari</a></td> + <td style="white-space: nowrap;"><code>~ a</code></td> + <td>Inverteix els bits de l'operand donat.</td> + </tr> + <tr> + <td><a href="#Left_shift">Desplaçament a l'esquerra</a></td> + <td style="white-space: nowrap;"><code>a << b</code></td> + <td>Desplaça els bits de <code>a</code> <code>b</code> posicions a l'esquerra, tot omplint amb zeros les primeres b posicions.</td> + </tr> + <tr> + <td><a href="#Right_shift">Desplaçament a la dreta conservant el signe</a></td> + <td style="white-space: nowrap;"><code>a >> b</code></td> + <td>Desplaça els bits de <code>a</code> <code>b</code> posicions a la dreta, descartant els bits desplaçats fora.</td> + </tr> + <tr> + <td><a href="#Unsigned_right_shift">Desplaçament a la dreta omplint amb zeros</a></td> + <td style="white-space: nowrap;"><code>a >>> b</code></td> + <td>Desplaça els bits de <code>a</code> <code>b</code> posicions a la dreta, descartant els bits desplaçats fora. Els primers <code>b</code> bits s'omplen amb zeros.</td> + </tr> + </tbody> +</table> + +<h2 id="Enters_de_32_bits_amb_signe">Enters de 32 bits amb signe</h2> + +<p>Els operands de totes les operacions de bits es converteixen a enters amb signe de 32 bits utilitzant el format de complement a 2. Això vol dir que la versió negativa d'un nombre (per exemple 5 vs -5) és exactament la mateixa representació binària però amb els bits invertits (operació de bits NOT del nombre, també coneguda com a complement del nombre) més 1. Per exemple, seguidament es mostra la representació binària de 314:</p> + +<pre>00000000000000000000000100111010 +</pre> + +<p>I a continuació <code>~314</code>, és a dir, el complement de <code>314</code>:</p> + +<pre>11111111111111111111111011000101 +</pre> + +<p>Finalment es mostra <code>-314</code>, és a dir, el complement a dos de <code>314</code>:</p> + +<pre>11111111111111111111111011000110 +</pre> + +<p>El complement a dos garanteix que el bit de més a l'esquerra sempre serà un <code>0</code> quan el nombre és positiu i un <code>1</code> quan el nombre sigui negatiu. Aquest bit és doncs anomentat el <em>bit de signe</em> degut a això.</p> + +<p>El nombre <code>0</code> es representa com a l'enter composat íntegrament de zeros a tots els seus bits.</p> + +<pre>0 (base 10) = 00000000000000000000000000000000 (base 2) +</pre> + +<p>El nombre <code>-1</code> és l'enter composats completament per 1s a tots els seus bits.</p> + +<pre>-1 (base 10) = 11111111111111111111111111111111 (base 2) +</pre> + +<p>El nombre <code>-2147483648</code> (representació hexadecimal: <code>-0x80000000</code>) és l'enter composat per zeros a tots els seus bits a excepciò del bit de més a l'esquerra, que és un 1.</p> + +<pre>-2147483648 (base 10) = 10000000000000000000000000000000 (base 2) +</pre> + +<p>El nombre <code>2147483647</code> (representació hexadecimal: <code>0x7fffffff</code>) és el sencer composat per 1 a tots els seus bits a excepció del de més a l'esquerra.</p> + +<pre>2147483647 (base 10) = 01111111111111111111111111111111 (base 2) +</pre> + +<p>Els nombres <code>-2147483648</code> i <code>2147483647</code> són els enters més petit i més gran respectivament que poden ser representats mitjançant un nombre de 32 bits amb signe.</p> + +<h2 id="Operadors_lògics_de_bits">Operadors lògics de bits</h2> + +<p>Conceptualment els operadors lògics de bits funcionen de la següent forma:</p> + +<ul> + <li>Es converteixen els operans a enters de 32 bits amb signe, expressats com una sèrie de bits (zeros i uns).</li> + <li>Cada bit del primer operand s'emparella amb el corresponent bit del segon operand: el primer bit amb el primer bit, el segon amb el segon, etcètera.</li> + <li>L'operador s'aplica per cada parella de bits, tot construint el resultat bit a bit.</li> +</ul> + +<h3 id="(AND_binari)"><a name="Bitwise_AND">& (AND binari)</a></h3> + +<p>Realitza l'operació AND a cada parella de bits. <code>a</code> AND <code>b</code> esdevindrà 1 només si ambdós <code>a</code> i <code>b</code> són 1. La taula de la veritat per a l'operació AND és la següent:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">a</td> + <td class="header">b</td> + <td class="header">a AND b</td> + </tr> + <tr> + <td>0</td> + <td>0</td> + <td>0</td> + </tr> + <tr> + <td>0</td> + <td>1</td> + <td>0</td> + </tr> + <tr> + <td>1</td> + <td>0</td> + <td>0</td> + </tr> + <tr> + <td>1</td> + <td>1</td> + <td>1</td> + </tr> + </tbody> +</table> + +<pre> 9 (base 10) = 00000000000000000000000000001001 (base 2) + 14 (base 10) = 00000000000000000000000000001110 (base 2) + -------------------------------- +14 & 9 (base 10) = 00000000000000000000000000001000 (base 2) = 8 (base 10) +</pre> + +<p>Realitzar l'operació AND binària de qualsevol nombre amb el zero retornarà zero. Realitzar l'operació AND binària de qualsevol nombre amb -1 retornarà el mateix nombre.</p> + +<h3 id="(OR_binari)"><a name="Bitwise_OR">| (OR binari)</a></h3> + +<p>Realitza la operació OR a cada parella de bits. <code>a</code> OR <code>b</code> retornarà 1 si qualsevol de <code>a</code> o <code>b</code> és 1. La taula de la veritat per a l'operació OR és:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">a</td> + <td class="header">b</td> + <td class="header">a OR b</td> + </tr> + <tr> + <td>0</td> + <td>0</td> + <td>0</td> + </tr> + <tr> + <td>0</td> + <td>1</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>0</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>1</td> + <td>1</td> + </tr> + </tbody> +</table> + +<pre> 9 (base 10) = 00000000000000000000000000001001 (base 2) + 14 (base 10) = 00000000000000000000000000001110 (base 2) + -------------------------------- +14 | 9 (base 10) = 00000000000000000000000000001111 (base 2) = 15 (base 10) +</pre> + +<p>Realitzar l'operació OR binària de qualsevol nombre x amb 0 retornarà x. Realitzar l'operació OR binària de qualsevol nombre x amb -1 retornarà ~x</p> + +<h3 id="(XOR_binari)"><a name="Bitwise_XOR">^ (XOR binari)</a></h3> + +<p>Realitza la operació XOR a cada parella de bits. <code>a</code> XOR <code>b</code> retorna 1 si <code>a</code> i <code>b</code> són diferents. La taula de la veritat per a l'operació XOR és la següent:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">a</td> + <td class="header">b</td> + <td class="header">a XOR b</td> + </tr> + <tr> + <td>0</td> + <td>0</td> + <td>0</td> + </tr> + <tr> + <td>0</td> + <td>1</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>0</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>1</td> + <td>0</td> + </tr> + </tbody> +</table> + +<pre> 9 (base 10) = 00000000000000000000000000001001 (base 2) + 14 (base 10) = 00000000000000000000000000001110 (base 2) + -------------------------------- +14 ^ 9 (base 10) = 00000000000000000000000000000111 (base 2) = 7 (base 10) +</pre> + +<p>Realitzar l'operació XOR binària de qualsevol nombre x amb 0 retornarà x. Realitzar l'operació OR binària de qualsevol nombre x amb -1 retornarà ~x.</p> + +<h3 id="(NOT_binari)"><a name="Bitwise_NOT">~ (NOT binari)</a></h3> + +<p>Realitza una operació NOT a cada bit. NOT <code>a</code> retorna el valor invers (també conegut com el complement a 1) de <code>a</code>. La taula de la veritat per a la operació NOT és:</p> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">a</td> + <td class="header">NOT a</td> + </tr> + <tr> + <td>0</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>0</td> + </tr> + </tbody> +</table> + +<pre> 9 (base 10) = 00000000000000000000000000001001 (base 2) + -------------------------------- +~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10) +</pre> + +<p>Realitzar la operació NOT binària a un nombre x qualsevol retorna -(x + 1). Per exemple, ~5 resulta en -6.</p> + +<p>Exemple amb indexOf:</p> + +<pre class="brush: js">var str = 'rawr'; +var searchFor = 'a'; + +// fora alternativa equivalent a if (-1*str.indexOf('a') <= -1) +if (~str.indexOf(searchFor)) { + // searchFor és dins l'string +} else { + // searchFor no està dins l'string +} + +// valors retornats per (~str.indexOf(searchFor)) +// r == -1 +// a == -2 +// w == -3 +</pre> + +<h2 id="Operadors_binaris_de_desplaçament">Operadors binaris de desplaçament</h2> + +<p>Els operadors binaris de desplaçament accepten dos operands: el primer és el valor que serà transformat a enter de 32 bits i al que se li aplicarà el desplaçament. El segon determina el nombre de posicions que es desplaçarà cada bit. La direcció en la que els bits es desplaçaran es determina per l'operador usat.</p> + +<p>Els operadors de desplaçament converteixen els seus operands a enters de 32 bits en ordre <em>big-endian</em> i retornen un valor amb el mateix tipus que l'operand de l'esquerra. L'operand de la dreta hauria de ser menor de 32, però de no ser així només s'utilitzen els primers 5 bits.</p> + +<h3 id="<<_(Desplaçament_a_l'esquerra)"><a name="Left_shift"><< (Desplaçament a l'esquerra)</a></h3> + +<p>Aquest operador desplaça el primer operand un nombre específic de bits cap a l'esquerra. Els bits de l'esquerra sobrants són descartats. Per a omplir les primeres posicions de la dreta s'utilitzen zeros.</p> + +<p>Exemple<code>: 9 << 2</code> resulta en 36:</p> + +<pre> 9 (base 10): 00000000000000000000000000001001 (base 2) + -------------------------------- +9 << 2 (base 10): 00000000000000000000000000100100 (base 2) = 36 (base 10) +</pre> + +<p>Desplaçar a l'esquerra qualsevol nombre <strong>x</strong> <strong>y</strong> bits resulta en <strong>x * 2^y</strong>.</p> + +<h3 id=">>_(Desplaçament_a_la_dreta_preservant_el_signe)"><a name="Right_shift">>> (Desplaçament a la dreta preservant el signe)</a></h3> + +<p>Aquest operador desplaça el primer operand un nombre específic de bits a la dreta. Els bits sobrants es descarten. Els bits de l'esquerra s'inicialitzen amb el valor inicial del primer bit de l'esquerra. Degut a que el bit de més a l'esquerra tindrà el mateix valor que el bit de més a l'esquerra abans de realitzar el desplaçament, el bit de signe no canvia. És degut a aquesta propietat que es diu que aquest operand preserva el signe.</p> + +<p>Per exemple, <code>9 >> 2</code> resulta en 2:</p> + +<pre> 9 (base 10): 00000000000000000000000000001001 (base 2) + -------------------------------- +9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10) +</pre> + +<p>De la mateixa manera, <code>-9 >> 2</code> resulta en -3, ja que el signe es preserva:</p> + +<pre> -9 (base 10): 11111111111111111111111111110111 (base 2) + -------------------------------- +-9 >> 2 (base 10): 11111111111111111111111111111101 (base 2) = -3 (base 10) +</pre> + +<h3 id=">>>_(Desplaçament_a_la_dreta_omplint_amb_zeros)"><a name="Unsigned_right_shift">>>> (Desplaçament a la dreta omplint amb zeros)</a></h3> + +<p>Aquest operador desplaça el primer operand un nombre específic de bits cap a la dreta. Els bits sobrants degut al desplaçament són descartats. Els bits de l'esquerra són omplerts utilitzant zeros. Com que el bit de signe sempre acaba sent un zero el resultat sempre és no negatiu.</p> + +<p>Per a nombres no negatius, els operadors de desplaçament a la dreta preservant el signe i omplint amb zeros retornen el mateix resultat. Per exemple, <code>9 >>> 2</code> resulta en 2, tal com <code>9 >> 2</code>:</p> + +<pre> 9 (base 10): 00000000000000000000000000001001 (base 2) + -------------------------------- +9 >>> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10) +</pre> + +<p>El resultat varia, però, per a nombres negatius. Per exemple, <code>-9 >>> 2</code> resulta en 1073741821, el qual es diferent de <code>-9 >> 2</code> (que retorna -3):</p> + +<pre> -9 (base 10): 11111111111111111111111111110111 (base 2) + -------------------------------- +-9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10) +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Marques_i_màscares_de_bits">Exemple: Marques i màscares de bits</h3> + +<p>Els operadors lògics de bits s'empren tot sovint per a crear, manipular i llegir seqüències de <em>marques</em>, les quals realitzen uns funció similar a les variables booleanes. El seu avantatge davant les variables booleanes és que les seqüències de marques utilitzen molta menys memòria (per un factor de 32).</p> + +<p>The bitwise logical operators are often used to create, manipulate, and read sequences of <em>flags</em>, which are like binary variables. Variables could be used instead of these sequences, but binary flags take much less memory (by a factor of 32).</p> + +<p>Suposem 4 marques:</p> + +<ul> + <li>Marca A: tenim un problema de formigues</li> + <li>Marca B: tenim un ratpenat</li> + <li>Marca C: tenim un gat</li> + <li>Marca D: tenim un ànec</li> +</ul> + +<p>Aquestes marques són representades per una seqüència de bits: DCBA. Quan una marca està activada, té un valor de 1. Quan una marca no està activa rep un valor de 0. Suposem que una variable anomenada <code>flags</code> (marques en anglès) té el valor binari 0101:</p> + +<pre class="brush: js">var flags = 5; // 0101 en binari +</pre> + +<p>Aquest valor indica:</p> + +<ul> + <li>La marca A està activa, és a dir, és certa (tenim un problema de formigues)</li> + <li>La marca B és falsa (no tenim un murisec)</li> + <li>La marca C és certa (tenim un gat)</li> + <li>La marca D és falsa (no tenim un ànec)</li> +</ul> + +<p>Com que les operacions be bits utilitzen nombres de 32 bits, 0101 és en realitat 00000000000000000000000000000101, però els zeros a l'esquerra es poden obviar ja que no contenen informació útil.</p> + +<p>Una <em>màscara de bits</em> és una seqüència que pot manipular i/o llegir marques. És molt comú definir màscares "primitives" per a cada marca:</p> + +<pre class="brush: js">var FLAG_A = 1; // 0001 +var FLAG_B = 2; // 0010 +var FLAG_C = 4; // 0100 +var FLAG_D = 8; // 1000 +</pre> + +<p>Es fàcil crear noves màscares mitjançant operacions de bits lògiques sobre les màscares primitives. Per exemple, la màscara de bits 1011 es pot crear mitjançant operacions OR sobre FLAG_A, FLAG_B i FLAG_D:</p> + +<pre class="brush: js">var mask = FLAG_A | FLAG_B | FLAG_D; // 0001 | 0010 | 1000 => 1011 +</pre> + +<p>Els valors individuals d'una marca es poden obtindre mitjançant una operació AND de la seqüència de marques amb la màscara primitiva corresponent. La màscara de bits descarta els bits de les marques que no s'escauen. Per exemple, la màscara de bits 0100 es pot emprar per veure si la marca C està activa:</p> + +<pre class="brush: js">// si tenim un gat... +if (flags & FLAG_C) { // 0101 & 0100 => 0100 => true + // ... fer coses +} +</pre> + +<p>Una màscara de bits amb múltiples marques activades funciona com un "or". Per exemple els següents dos blocs de codi són equivalents:</p> + +<pre class="brush: js">// si tenim un ratpenat o un gat... +// (0101 & 0010) || (0101 & 0100) => 0000 || 0100 => true +if ((flags & FLAG_B) || (flags & FLAG_C)) { + // ... fer coses +} +</pre> + +<pre class="brush: js">// si tenim un ratpenat o un gat... +var mask = FLAG_B | FLAG_C; // 0010 | 0100 => 0110 +if (flags & mask) { // 0101 & 0110 => 0100 => true + // ... fer coses +} +</pre> + +<p>Les marques es poden activar mitjançant una operació OR amb la màscara, on cada bit amb el valor 1 activarà la marca corresponent si no està ja activada. Per exemple, la màscara de bits 1100 pot ser emprada per a activar les marques C i D:</p> + +<pre class="brush: js">// si, tenim un gat i un ànec +var mask = FLAG_C | FLAG_D; // 0100 | 1000 => 1100 +flags |= mask; // 0101 | 1100 => 1101 +</pre> + +<p>Les marques es poden desactivar mitjançant una operació AND amb una màscara de bits, on cada bit amb el valor de zero desactivarà la marca corresponent si no està ja desactivada. Aquestes màscares poden generar-se fàcilment mitjançant una operació NOT sobre la màscara primitiva adient. Per exemple, la màscara 1010 pot ser emprada per a desactivar les marques A i C:</p> + +<pre class="brush: js">// no, no tenim un problema amb formigues ni tenim un gat +var mask = ~(FLAG_A | FLAG_C); // ~0101 => 1010 +flags &= mask; // 1101 & 1010 => 1000 +</pre> + +<p>També es podría haver creat la màscara amb <code>~FLAG_A & ~FLAG_C</code> (Llei de De Morgan):</p> + +<pre class="brush: js">// no, no tenim un problema amb formigues ni tenim un gat +var mask = ~FLAG_A & ~FLAG_C; +flags &= mask; // 1101 & 1010 => 1000 +</pre> + +<p>Es pot invertir una màscara (entenem per invertir activar-la si està desactivada i desactivar-la si està activada. És a dir, invertir el seu valor) mitjançant una operació XOR amb una màscara de bits, on cada bit amb el valor 1 invertirà el valor de la marca corresponent. Per exemple, la màscara de bits 0110 pot ser emprada per invertir les marques B i C:</p> + +<pre class="brush: js">// Si no teniem un ratpenat, ara en tenim un +// i si en teniem un, adéu ratpenat +// El mateix amb els gats +var mask = FLAG_B | FLAG_C; +flags = flags ^ mask; // 1100 ^ 0110 => 1010 +</pre> + +<p>Finalment, les marques poden ser invertides mitjançant l'operador NOT:</p> + +<pre class="brush: js">// entrant a l'univers paral·lel +flags = ~flags; // ~1010 => 0101 +</pre> + +<h3 id="Xuletes_per_conversions">Xuletes per conversions</h3> + +<p>Converteix un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" title="/en-US/docs/JavaScript/Reference/Global_Objects/String">String</a></code> binari a un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number" title="/en-US/docs/JavaScript/Reference/Global_Objects/Number">Number</a></code> decimal:</p> + +<pre class="brush: js">var sBinString = "1011"; +var nMyNumber = parseInt(sBinString, 2); +alert(nMyNumber); // prints 11, i.e. 1011 +</pre> + +<p>Converteix un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number" title="/en-US/docs/JavaScript/Reference/Global_Objects/Number">Number</a></code> decimal en un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" title="/en-US/docs/JavaScript/Reference/Global_Objects/String">String</a></code> binari:</p> + +<pre class="brush: js">var nMyNumber = 11; +var sBinString = nMyNumber.toString(2); +alert(sBinString); // prints 1011, i.e. 11 +</pre> + +<h3 id="Automatització_de_la_creació_de_màscares">Automatització de la creació de màscares</h3> + +<p>El procés de creació de màscares per a valors <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" title="/en-US/docs/JavaScript/Reference/Global_Objects/Boolean">Booleans</a></code> pot ser automatitzat:</p> + +<pre class="brush: js">function createMask () { + var nMask = 0, nFlag = 0, nLen = arguments.length > 32 ? 32 : arguments.length; + for (nFlag; nFlag < nLen; nMask |= arguments[nFlag] << nFlag++); + return nMask; +} +var mask1 = createMask(true, true, false, true); // 11, i.e.: 1011 +var mask2 = createMask(false, false, true); // 4, i.e.: 0100 +var mask3 = createMask(true); // 1, i.e.: 0001 +// etc. + +alert(mask1); // prints 11, i.e.: 1011 +</pre> + +<h3 id="Algorisme_invers_un_array_de_booleans_a_partir_d'una_màscara">Algorisme invers: un array de booleans a partir d'una màscara</h3> + +<p>El codi següent crea un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/JavaScript/Reference/Global_Objects/Array">Array</a></code> de <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" title="/en-US/docs/JavaScript/Reference/Global_Objects/Boolean">Booleans</a></code> a partir d'una màscara:</p> + +<pre class="brush: js">function arrayFromMask (nMask) { + // nMask must be between -2147483648 and 2147483647 + if (nMask > 0x7fffffff || nMask < -0x80000000) { + throw new TypeError("arrayFromMask - out of range"); + } + for (var nShifted = nMask, aFromMask = []; nShifted; + aFromMask.push(Boolean(nShifted & 1)), nShifted >>>= 1); + return aFromMask; +} + +var array1 = arrayFromMask(11); +var array2 = arrayFromMask(4); +var array3 = arrayFromMask(1); + +alert("[" + array1.join(", ") + "]"); +// prints "[true, true, false, true]", i.e.: 11, i.e.: 1011 +</pre> + +<p>Ambdós algorismes poden ser testejats a l'hora...</p> + +<pre class="brush: js">var nTest = 19; // la nostra màscara personal +var nResult = createMask.apply(this, arrayFromMask(nTest)); + +alert(nResult); // 19 +</pre> + +<p>Només amb finalitat didàctica (ja que disposem del mètode<code> <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString" title="/en-US/docs/JavaScript/Reference/Global_Objects/Number/toString">Number.toString(2)</a></code>), es mostra com és posible modficiar l'algorisme <code>arrayFromMask</code> per a crear un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String" title="/en-US/docs/JavaScript/Reference/Global_Objects/String">String</a></code> que contingui la representació d'un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number" title="/en-US/docs/JavaScript/Reference/Global_Objects/Number">Number</a></code> en comptes d'un <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/JavaScript/Reference/Global_Objects/Array">Array</a></code> de <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" title="/en-US/docs/JavaScript/Reference/Global_Objects/Boolean">Booleans</a></code>:</p> + +<pre class="brush: js">function createBinaryString (nMask) { + // nMask ha d'estar entre -2147483648 i 2147483647 + for (var nFlag = 0, nShifted = nMask, sMask = ""; nFlag < 32; + nFlag++, sMask += String(nShifted >>> 31), nShifted <<= 1); + return sMask; +} + +var string1 = createBinaryString(11); +var string2 = createBinaryString(4); +var string3 = createBinaryString(1); + +alert(string1); +// prints 00000000000000000000000000001011, i.e. 11 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.4.8', 'Bitwise NOT operator')}}<br> + {{SpecName('ES5.1', '#sec-11.7', 'Bitwise shift operators')}}<br> + {{SpecName('ES5.1', '#sec-11.10', 'Binary bitwise operators')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-bitwise-not-operator', 'Bitwise NOT operator')}}<br> + {{SpecName('ES6', '#sec-bitwise-shift-operators', 'Bitwise shift operators')}}<br> + {{SpecName('ES6', '#sec-binary-bitwise-operators', 'Binary bitwise operators')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característiques</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td><a href="#Bitwise_NOT">Bitwise NOT (<code>~</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_AND">Bitwise AND (<code>&</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_OR">Bitwise OR (<code>|</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_XOR">Bitwise XOR (<code>^</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Left_shift">Left shift (<code><<</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Right_shift">Right shift (<code>>></code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Unsigned_right_shift">Unsigned right shift (<code>>>></code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td><a href="#Bitwise_NOT">Bitwise NOT (<code>~</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_AND">Bitwise AND (<code>&</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_OR">Bitwise OR (<code>|</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Bitwise_XOR">Bitwise XOR (<code>^</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Left_shift">Left shift (<code><<</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Right_shift">Right shift (<code>>></code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Unsigned_right_shift">Unsigned right shift (<code>>>></code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators">Operadors lògics</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/conditional_operator/index.html b/files/ca/web/javascript/referencia/operadors/conditional_operator/index.html new file mode 100644 index 0000000000..15265c62b3 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/conditional_operator/index.html @@ -0,0 +1,170 @@ +--- +title: Operador Condicional (ternari) +slug: Web/JavaScript/Referencia/Operadors/Conditional_Operator +translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>L'operador <strong>condicional (ternari)</strong> és l'únic operador de JavaScript que opera amb tres operands. Aquest operador és freqüentment usat com una simplificació de la sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else"><code>if</code></a>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><em>condition</em> ? <em>expr1</em> : <em>expr2</em> </pre> + +<h2 id="Paràmetres">Paràmetres</h2> + +<dl> + <dt><code>condition</code></dt> + <dd>Una expressió que avalua <code>true</code> o <code>false</code>.</dd> +</dl> + +<dl> + <dt><code>expr1</code>, <code>expr2</code></dt> + <dd>Expressions amb valors de qualsevol tipus.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Si <code>condition</code> és <code>true</code>, l'operador retorna el valor de <code>expr1</code>; de ser el contrari, retorna el valor de <code>expr2</code>. Per exemple, per mostrar diferents missatges basats en el valor de la variable <code>isMember</code>, es podria fer servir aquesta sentència:</p> + +<pre class="brush: js">"The fee is " + (isMember ? "$2.00" : "$10.00") +</pre> + +<p>També es pot assignar variables depenent del resultat ternari:</p> + +<pre class="brush: js">var elvisLives = Math.PI > 4 ? "Yep" : "Nope";</pre> + +<p>És possible realitzar avaluacions ternàries múltiples (nota: L'operador condicional operator s'associa per la dreta):</p> + +<pre class="brush: js">var firstCheck = false, + secondCheck = false, + access = firstCheck ? "Access denied" : secondCheck ? "Access denied" : "Access granted"; + +console.log( access ); // logs "Access granted"</pre> + +<p>També es pot usar avaluacions ternàries en espais lliures per tal de fer diferents operacions:</p> + +<pre class="brush: js">var stop = false, age = 16; + +age > 18 ? location.assign("continue.html") : stop = true; +</pre> + +<p>També es pot fer més d'una sola operació per cas, separant-les amb una coma:</p> + +<pre class="brush: js">var stop = false, age = 23; + +age > 18 ? ( + alert("OK, you can go."), + location.assign("continue.html") +) : ( + stop = true, + alert("Sorry, you are much too young!") +); +</pre> + +<p>I per últim, també es pot fer més d'una operació durant l'assignació d'un valor. En aquest cas, <strong><em>el últim valor del parèntesis serparat per una coma</em> serà el valor assignat</strong>.</p> + +<pre class="brush: js">var age = 16; + +var url = age > 18 ? ( + alert("OK, you can go."), + // alert returns "undefined", but it will be ignored because + // isn't the last comma-separated value of the parenthesis + "continue.html" // the value to be assigned if age > 18 +) : ( + alert("You are much too young!"), + alert("Sorry :-("), + // etc. etc. + "stop.html" // the value to be assigned if !(age > 18) +); + +location.assign(url); // "stop.html"</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició deECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.0</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.12', 'The conditional operator')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-conditional-operator', 'Conditional Operator')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if statement</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/function/index.html b/files/ca/web/javascript/referencia/operadors/function/index.html new file mode 100644 index 0000000000..0908f591b6 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/function/index.html @@ -0,0 +1,146 @@ +--- +title: function expression +slug: Web/JavaScript/Referencia/Operadors/function +translation_of: Web/JavaScript/Reference/Operators/function +--- +<div>{{jsSidebar("Operators")}}</div> + +<p>La paraula clau <strong><code>function</code></strong> es pot utilitzar per definir una funció dins d'una expressió.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">function [<em>nom</em>]([<em>paràm1</em>[, <em>paràm2[</em>, ..., <em>paràmN</em>]]]) { + <em>sentències</em> +}</pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<dl> + <dt><code>nom</code></dt> + <dd>El nom de la funció. Es pot ometre, i en aquest cas la funció seria <em>anònima</em>. El nom és només local pel cos de la funció.</dd> + <dt><code>paràmN</code></dt> + <dd>El nom d'un argument que es passa a la funció.</dd> + <dt><code>sentències</code></dt> + <dd>Les sentències que constitueixen el cos de la funció.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Una expressió d'una funció és molt semblant i té gairebé la mateixa sintaxi que una sentència d'una funció (<a href="/en-US/docs/Web/JavaScript/Reference/Statements/function">function sentència d'una funció</a> per més detalls). La principal diferència entre l'expressió d'una funció i una sentèndia d'una expressió és el <em>nom de la functió,</em> el qual es pot ometre en expressions de funcions per tal de crear funcions <em>anònimes</em>. Una expressió d'una funció es pot utilitzar com a un <strong>IIFE </strong>(<em>Immediately Invoked Function Expression</em>) que s'executa un cop s'ha definit. Vegeu també el capítol sobre <a href="/en-US/docs/Web/JavaScript/Reference/Functions">funcions</a> per més informació.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>L'exemple següent defineix una funció sense nom i l'assigna a <code>x</code>. La funció retorna el quadrat del seu argument:</p> + +<pre class="brush: js">var x = function(y) { + return y * y; +}; +</pre> + +<h3 id="Expressió_d'una_funció_amb_nom">Expressió d'una funció amb nom</h3> + +<p>Si vols fer referència a la funció actual dins del cos de la funció, necessitaràs crear una expressió d'una funció amb nom. Aquest nom és llavors només local pel cos de la funció (àmbit). AIxò també evita utilitzar la propietat no estàndard <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee">arguments.callee.</a></code></p> + +<pre class="brush: js">var math = { + 'factorial': function factorial(n) { + if (n <= 1) + return 1; + return n * factorial(n - 1); + } +}; +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-13', 'Function definition')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES3', '#sec-13', 'Function definition')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.5.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Functions_and_function_scope", "Functions and function scope")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Statements/function", "function statement")}}</li> + <li>{{jsxref("Statements/function*", "function* statement")}}</li> + <li>{{jsxref("Operators/function*", "function* expression")}}</li> + <li>{{jsxref("GeneratorFunction")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/grouping/index.html b/files/ca/web/javascript/referencia/operadors/grouping/index.html new file mode 100644 index 0000000000..45e8566806 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/grouping/index.html @@ -0,0 +1,128 @@ +--- +title: Operador d'agrupament +slug: Web/JavaScript/Referencia/Operadors/Grouping +translation_of: Web/JavaScript/Reference/Operators/Grouping +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>L'operador d'agrupament <code>( )</code> controla la precedència de l'avaluació en expresions.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"> ( )</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>L'operador agrupament consisteix en un parell de parèntesis que embolcallen una expressió o una sub-expressió per anular la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">precedència d'operadors</a> normal de forma que expressions amb un nivell més baix de precedència poden ser avaluades abans d'una expressió amb més prioritat.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>Primer predomina la multiplicació i la divisió, després la suma i la resta per tal d'avaluar primer la suma.</p> + +<pre class="brush:js">var a = 1; +var b = 2; +var c = 3; + +// default precedence +a + b * c // 7 +// evaluated by default like this +a + (b * c) // 7 + +// now overriding precedence +// addition before multiplication +(a + b) * c // 9 + +// which is equivalent to +a * c + b * c // 9 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.0</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.1.6', 'The Grouping Operator')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-grouping-operator', 'The Grouping Operator')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Precedència d'operadors</a></li> + <li>{{jsxref("Operators/delete", "delete")}}</li> + <li>{{jsxref("Operators/typeof", "typeof")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/index.html b/files/ca/web/javascript/referencia/operadors/index.html new file mode 100644 index 0000000000..4a70edc4fb --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/index.html @@ -0,0 +1,282 @@ +--- +title: Expressions and operators +slug: Web/JavaScript/Referencia/Operadors +tags: + - JavaScript + - NeedsTranslation + - Operators + - TopicStub +translation_of: Web/JavaScript/Reference/Operators +--- +<div>{{jsSidebar("Operators")}}</div> + +<p>Aquest capítol documenta totls els operadors, expressions i paraules clau del llenguatge JavaScript.</p> + +<h2 id="Expressions_i_operadors_per_categoria">Expressions i operadors per categoria</h2> + +<p>Per a un llistat en order alfabetic vegeu el menú de l'esquerra.</p> + +<h3 id="Expressions_primàries">Expressions primàries</h3> + +<p>Paraules clau bàsiques i expressions generals en JavaScript.</p> + +<dl> + <dt>{{jsxref("Operadors/this", "this")}}</dt> + <dd>La paraula clau <code>this</code> fa referència al contexte d'execució de la funció actual.</dd> + <dt>{{jsxref("Operadors/function", "function")}}</dt> + <dd>La paraula clau <code>function</code> defineix una expressió de funció.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/function*", "function*")}}</dt> + <dd>La paraula clau <code>function*</code> defineix una expressió de funció generadora.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/yield", "yield")}}</dt> + <dd>Pausa i resumeix una funció generadora.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/yield*", "yield*")}}</dt> + <dd>Delega a una altra funció generadora o objecte iterable.</dd> + <dt>{{jsxref("Global_Objects/Array", "[]")}}</dt> + <dd>Sintaxi d'inicialització o literal d'arrays.</dd> + <dt>{{jsxref("Operators/Object_initializer", "{}")}}</dt> + <dd>Sintaxi d'inicialitzador o literal d'objectes.</dd> + <dt>{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}</dt> + <dd>Sintaxi de literals formats per expressions regulars.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/Array_comprehensions", "[for (x of y) x]")}}</dt> + <dd>Comprensió d'arrays.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/Generator_comprehensions", "(for (x of y) y)")}}</dt> + <dd>Comprensió de generators.</dd> + <dt>{{jsxref("Operadors/Grouping", "( )")}}</dt> + <dd>Operador d'agrupament.</dd> +</dl> + +<h3 id="Expressions_de_banda_esquerra">Expressions de banda esquerra</h3> + +<p>Els valors de l'esquerra són la destinació d'una assignació.</p> + +<dl> + <dt>{{jsxref("Operadors/Property_accessors", "Property accessors", "", 1)}}</dt> + <dd>Els operadors membres proporcionen accés a una propietat o mètode d'un objecte<br> + (<code>object.property</code> i <code>object["property"]</code>).</dd> + <dt>{{jsxref("Operadors/new", "new")}}</dt> + <dd>L'operador <code>new</code> crea una instància d'un constructor.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/super", "super")}}</dt> + <dd>La paraula clau <code>super</code> crida el constructor de l'objecte pare.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/Spread_operator", "...obj")}}</dt> + <dd>L'operador d'extensió permet que una expressió s'expandeixi en llocs on s'esperen mútiples argurments (per a crides de funcions) o elements (per a literals d'arrays).</dd> +</dl> + +<h3 id="Increment_i_decrement">Increment i decrement</h3> + +<p>Operadors de increment o decrement en forma de prefix/sufix.</p> + +<dl> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "A++", "#Increment")}}</dt> + <dd>Operador sufix d'increment.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "A--", "#Decrement")}}</dt> + <dd>Operador sufix de decrement.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "++A", "#Increment")}}</dt> + <dd>Operador prefix d'increment.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "--A", "#Decrement")}}</dt> + <dd>Operador prefix de decrement.</dd> +</dl> + +<h3 id="Operadors_unaris">Operadors unaris</h3> + +<p>Un operador unari és un operador que només accepta un operand.</p> + +<dl> + <dt>{{jsxref("Operadors/delete", "delete")}}</dt> + <dd>L'operador <code>delete</code> esborra una propietat d'un objecte.</dd> + <dt>{{jsxref("Operadors/void", "void")}}</dt> + <dd>L'operador <code>void</code> evalua una expressió i descarta el que retorni.</dd> + <dt>{{jsxref("Operadors/typeof", "typeof")}}</dt> + <dd>L'operador <code>typeof</code> determina el tipus d'un objecte donat.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "+", "#Unary_plus")}}</dt> + <dd>L'operador unari més converteix l'operand donat al tipus Number.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "-", "#Unary_negation")}}</dt> + <dd>L'operador unari negació converteix l'operand donat al tipus Number i llavors el nega.</dd> + <dt>{{jsxref("Operadors/Bitwise_Operators", "~", "#Bitwise_NOT")}}</dt> + <dd>Operador binari NOT.</dd> + <dt>{{jsxref("Operadors/Logical_Operators", "!", "#Logical_NOT")}}</dt> + <dd>Operador lògic NOT.</dd> +</dl> + +<h3 id="Operadors_aritmètics">Operadors aritmètics</h3> + +<p>Els operadors aritmètics accepten valors numèrics (ja siguin literals o variables) com a operands i retornen un únic valor numèric.</p> + +<dl> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "+", "#Addition")}}</dt> + <dd>Operador de suma.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "-", "#Subtraction")}}</dt> + <dd>Operador de resta.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "/", "#Division")}}</dt> + <dd>Operador de divisió.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "*", "#Multiplication")}}</dt> + <dd>Operador de multiplicació.</dd> + <dt>{{jsxref("Operadors/Arithmetic_Operators", "%", "#Remainder")}}</dt> + <dd>Operador de mòdul.</dd> +</dl> + +<h3 id="Operadors_relacionals">Operadors relacionals</h3> + +<p>Els operadors relacionals compara els operands donats i retorna un valor de tipus <code>Boolean</code> value basat en si la relació és certa o no.</p> + +<dl> + <dt>{{jsxref("Operadors/in", "in")}}</dt> + <dd>L'operador <code>in</code> determina si un objecte té la propietat donada.</dd> + <dt>{{jsxref("Operadors/instanceof", "instanceof")}}</dt> + <dd>L'operador <code>instanceof</code> determina si un objecte és una instància d'un altre objecte.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", "<", "#Less_than_operator")}}</dt> + <dd>Operador menor que.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", ">", "#Greater_than_operator")}}</dt> + <dd>Operador major que.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", "<=", "#Less_than_or_equal_operator")}}</dt> + <dd>Operador menor o igual que.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", ">=", "#Greater_than_or_equal_operator")}}</dt> + <dd>Operador major o igual que.</dd> +</dl> + +<h3 id="Operadors_d'igualtat">Operadors d'igualtat</h3> + +<p>El resultat d'evaluar un operador d'igualtat és sempre de tipus <code>Boolean</code> i el resultat es basa en si la comparació és certa.</p> + +<dl> + <dt>{{jsxref("Operadors/Comparison_Operators", "==", "#Equality")}}</dt> + <dd>Operador d'igulatat.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", "!=", "#Inequality")}}</dt> + <dd>Operador de no igualtat.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", "===", "#Identity")}}</dt> + <dd>Operador identitat.</dd> + <dt>{{jsxref("Operadors/Comparison_Operators", "!==", "#Nonidentity")}}</dt> + <dd>Operador de no identitat.</dd> +</dl> + +<h3 id="Operadors_de_desplaçament_de_bits">Operadors de desplaçament de bits</h3> + +<p>Operacions que desplacen tots els bits d'un operand.</p> + +<dl> + <dt>{{jsxref("Operadors/Bitwise_Operators", "<<", "#Left_shift")}}</dt> + <dd>Operador de desplaçament de bits a l'esquerra.</dd> + <dt>{{jsxref("Operadors/Bitwise_Operators", ">>", "#Right_shift")}}</dt> + <dd>Operador de desplaçament de bits a la dreta.</dd> + <dt>{{jsxref("Operadors/Bitwise_Operators", ">>>", "#Unsigned_right_shift")}}</dt> + <dd>Operador de desplaçament a la dreta sense signe.</dd> +</dl> + +<h3 id="Operadors_binaris">Operadors binaris</h3> + +<p>Els operadors binaris tracten els seus operands com un conjunt de 32 bits (uns i zeros) i retornen valors numèrics standards de JavaScript.</p> + +<dl> + <dt>{{jsxref("Operadors/Bitwise_Operators", "&", "#Bitwise_AND")}}</dt> + <dd>AND binari.</dd> + <dt>{{jsxref("Operadors/Bitwise_Operators", "|", "#Bitwise_OR")}}</dt> + <dd>OR binari.</dd> + <dt>{{jsxref("Operadors/Bitwise_Operators", "^", "#Bitwise_XOR")}}</dt> + <dd>XOR binari.</dd> +</dl> + +<h3 id="Operadors_lògics">Operadors lògics</h3> + +<p>Els operadors lògics típicament s'utilitzen amb valors booleans (és a dir, logics) i retornen un valor booleà.</p> + +<dl> + <dt>{{jsxref("Operadors/Logical_Operators", "&&", "#Logical_AND")}}</dt> + <dd>AND lògic.</dd> + <dt>{{jsxref("Operadors/Logical_Operators", "||", "#Logical_OR")}}</dt> + <dd>OR lògic.</dd> +</dl> + +<h3 id="Operador_condicional_(ternari)">Operador condicional (ternari)</h3> + +<dl> + <dt>{{jsxref("Operadors/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}</dt> + <dd> + <p>L'operador condicional retorna un dels dos valors basat en l'evaluació lògica de la condició.</p> + </dd> +</dl> + +<h3 id="Operadors_d'assignació">Operadors d'assignació</h3> + +<p>Els operadors d'assignació asignen un valor a l'operand de l'esquerra basant-se en l'evaluació de l'operand de la dreta.</p> + +<dl> + <dt>{{jsxref("Operadors/Assignment_Operators", "=", "#Assignment")}}</dt> + <dd>Operador d'assignació.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "*=", "#Multiplication_assignment")}}</dt> + <dd>Assignació de la multiplicació.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "/=", "#Division_assignment")}}</dt> + <dd>Assignació de la divisó.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "%=", "#Remainder_assignment")}}</dt> + <dd>Assignació del mòdul.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "+=", "#Addition_assignment")}}</dt> + <dd>Assignació de la suma.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "-=", "#Subtraction_assignment")}}</dt> + <dd>Assignació de la resta.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "<<=", "#Left_shift_assignment")}}</dt> + <dd>Assignació del desplaçament a l'esquerra.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", ">>=", "#Right_shift_assignment")}}</dt> + <dd>Assignació del desplaçament a la dreta.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", ">>>=", "#Unsigned_right_shift_assignment")}}</dt> + <dd>Assignació del desplaçament a la dreta sense signe.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "&=", "#Bitwise_AND_assignment")}}</dt> + <dd>Assignació de l'AND binari.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "^=", "#Bitwise_XOR_assignment")}}</dt> + <dd>Assignació del XOR binari.</dd> + <dt>{{jsxref("Operadors/Assignment_Operators", "|=", "#Bitwise_OR_assignment")}}</dt> + <dd>Assignació de l'OR binari.</dd> + <dt>{{experimental_inline()}} {{jsxref("Operadors/Destructuring_assignment", "[a, b] = [1, 2]")}}<br> + {{experimental_inline()}} {{jsxref("Operadors/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}</dt> + <dd> + <p>L'assignació de desestructuració permet assignar les propietats d'un array o objecte a variables utilitzant una sintaxi que recorda la de literals d'arrays o objectes.</p> + </dd> +</dl> + +<h3 id="Operador_coma">Operador coma</h3> + +<dl> + <dt>{{jsxref("Operadors/Comma_Operator", ",")}}</dt> + <dd>L'operador coma permet que múltiples expressions siguin evaluades en una sola sentència i retorna el resultat de l'última expressió.</dd> +</dl> + +<h3 id="Característiques_no_standard">Característiques no standard</h3> + +<dl> + <dt>{{non-standard_inline}} {{jsxref("Operadors/Legacy_generator_function", "Legacy generator function", "", 1)}}</dt> + <dd>La paraula clau <code>function</code> es pot emprar per a definir una funció generadora obsoleta dins una expressió. Per a crear una funció generadora obsoleta el cos de la funció ha de contindre al menys una expressió {{jsxref("Operators/yield", "yield")}}.</dd> + <dt>{{non-standard_inline}} {{jsxref("Operadors/Expression_closures", "Expression closures", "", 1)}}</dt> + <dd>La sintaxi d'expressions closure és una abreviació per a escriure funcions simples.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11', 'Expressions')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-ecmascript-language-expressions', 'Llenguatge ECMAScript: Expressions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> + <p>Nou: L'operador d'extensió, l'assignació de desestructuració, la paraula clau <code>super</code>, la comprensió d'arrays i la comprensió de generadors</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Precendència d'operadors</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/logical_operators/index.html b/files/ca/web/javascript/referencia/operadors/logical_operators/index.html new file mode 100644 index 0000000000..d8ef9e99c1 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/logical_operators/index.html @@ -0,0 +1,301 @@ +--- +title: Operadors Lògics +slug: Web/JavaScript/Referencia/Operadors/Logical_Operators +translation_of: Web/JavaScript/Reference/Operators +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>Els operadors lògics s'utilitzen normalment amb valors <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></code> (lògics). En cas de serh-hi presents, retornen un valor booleà. Tot i així, els operadors <code>&&</code> i <code>||</code> retornen el valor d'un dels operands especificats, així que si aquests operadors es fan servir amb valors no booleans, poden retornar un valor no booleà.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>Els operadors lògics es descriuren en la taula següent:</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Operador</th> + <th>Ús</th> + <th>Descripció</th> + </tr> + <tr> + <td>AND lògic (<code>&&</code>)</td> + <td><code><em>expr1</em> && <em>expr2</em></code></td> + <td>Retorna <code>expr1 </code>si es pot convertir en false; sinó, retorna expr2. Així, quan es fa servir amb valors booleans, <code>&&</code> retorna true si ambdós operands són true; de ser el contrari, retorna false.</td> + </tr> + <tr> + <td>OR lògic(<code>||</code>)</td> + <td><code><em>expr1</em> || <em>expr2</em></code></td> + <td>Retorna <code>expr1</code> si es pot converir en true; de ser al contrari, retorna <code>expr2</code>. Així, quan s'usa amb valors Booleans, <code>||</code> retorna true si l'operand és true; si amdós són false, retorna false.</td> + </tr> + <tr> + <td>NOT lògic (<code>!</code>)</td> + <td><code>!<em>expr</em></code></td> + <td>Retorna false si el seu únic operand pot convertir-se a true; sinó, retorna true.</td> + </tr> + </tbody> +</table> + +<p>Exemples d'expressions que es poden converir a false son aquelles que avaluen <code>null</code>, <code>0</code>, la cadena buida (""), o <code>undefined</code>.</p> + +<p>Tot i que els operadors <code>&&</code> i <code>||</code> es poden fer servir amb operands que no siguin valors Booleans, poden ser considerats operadors Booleans ja que els valors que retornen sempre es poden convertir en valors Booleans.</p> + +<h3 id="Short-Circuit_Evaluation" name="Short-Circuit_Evaluation">Avaluació de tipus curtcircuit</h3> + +<p>Com a expressions lògiques que són, s'avaluen d'esquerra a dreta, they are tested for possible "short-circuit" evaluation fent servir les regles següents:</p> + +<ul> + <li><code>false && (<em>quelcom)</em></code> is short-circuit evaluated to false.</li> + <li><code>true || (<em>quelcom)</em></code> is short-circuit evaluated to true.</li> +</ul> + +<p>Les regles de la lògica garanteixen que aquestes avaluacions són sempre correctes. Fixeu-vos que la part <code><em>quelcom</em></code> d'adalt no s'avalua, així que els efectes secundaris d'això no tindràn efecte. Fixeu-vos també que la part de l'expressió de dalt anomenada <code><em>quelcom </em></code>és una expressió lògica simple (com s'indiquen amb els parèntesis).</p> + +<p>Per exemple, les dues funcions següents són equivalents.</p> + +<pre class="brush: js">function shortCircuitEvaluation() { + doSomething() || doSomethingElse() +} + +function equivalentEvaluation() { + var flag = doSomething(); + if (!flag) { + doSomethingElse(); + } +} +</pre> + +<p>Tot i així, les següents expressions no són equivalents degut a la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">precendència dels operadors</a>, i remarca la importància de requerir que l'operador de la dreta sigui una sola expressió (agrupada, si s'escau, per parèntesi).</p> + +<pre class="brush: js">false && true || true // returns true +false && (true || true) // returns false</pre> + +<h3 id="Logical_AND_.28&&.29" name="Logical_AND_.28&&.29"><a name="Logical_AND">AND lògic (<code>&&</code>)</a></h3> + +<p>El codi següent mostra exemples de l'operador <code>&&</code> (AND lògic).</p> + +<pre class="brush: js">a1 = true && true // t && t returns true +a2 = true && false // t && f returns false +a3 = false && true // f && t returns false +a4 = false && (3 == 4) // f && f returns false +a5 = "Cat" && "Dog" // t && t returns "Dog" +a6 = false && "Cat" // f && t returns false +a7 = "Cat" && false // t && f returns false +</pre> + +<h3 id="OR_lògic_()"><a name="Logical_OR">OR lògic (<code>||</code>)</a></h3> + +<p>El codi següent mostra exemples de l'operador <code>||</code> (OR lògic).</p> + +<pre class="brush: js">o1 = true || true // t || t returns true +o2 = false || true // f || t returns true +o3 = true || false // t || f returns true +o4 = false || (3 == 4) // f || f returns false +o5 = "Cat" || "Dog" // t || t returns "Cat" +o6 = false || "Cat" // f || t returns "Cat" +o7 = "Cat" || false // t || f returns "Cat" +</pre> + +<h3 id="Logical_NOT_.28.21.29" name="Logical_NOT_.28.21.29"><a name="Logical_NOT">NOT lògic (<code>!</code>)</a></h3> + +<p>El codi següent mostra exemples de l'operador <code>!</code> (NOT lògic).</p> + +<pre class="brush: js">n1 = !true // !t returns false +n2 = !false // !f returns true +n3 = !"Cat" // !t returns false +</pre> + +<h3 id="Regles_de_conversió">Regles de conversió</h3> + +<h4 id="Convertir_AND_a_OR">Convertir AND a OR</h4> + +<p>L'operació següent que inclou Booleans:</p> + +<pre class="brush: js">bCondition1 && bCondition2</pre> + +<p>sempre és igual a:</p> + +<pre class="brush: js">!(!bCondition1 || !bCondition2)</pre> + +<h4 id="Convertir_OR_a_AND">Convertir OR a AND</h4> + +<p>L'operació següent que inclou Booleans:</p> + +<pre class="brush: js">bCondition1 || bCondition2</pre> + +<p>sempre és igual a:</p> + +<pre class="brush: js">!(!bCondition1 && !bCondition2)</pre> + +<h3 id="Desfer-se_de_parèntesis_aniuats">Desfer-se de parèntesis aniuats</h3> + +<p>Com que les expressions lògiques s'avaluen d'esquerra a dreta, sempre és posible esborrar els parèntesi d'expressions complexes mitjançant les regles següents.</p> + +<h4 id="Desfer-se_d'un_AND_aniuat">Desfer-se d'un AND aniuat</h4> + +<p>L'operació següent que inclou Booleans:</p> + +<pre class="brush: js">bCondition1 || (bCondition2 && bCondition3)</pre> + +<p>sempre és igual a:</p> + +<pre class="brush: js">bCondition1 || bCondition2 && bCondition3</pre> + +<h4 id="Desfer-se_d'un_OR_aniuat">Desfer-se d'un OR aniuat</h4> + +<p>L'operació següent que inclou Booleans:</p> + +<pre class="brush: js">bCondition1 && (bCondition2 || bCondition3)</pre> + +<p>sempre és igual a:</p> + +<pre class="brush: js">!(!bCondition1 || !bCondition2 && !bCondition3)</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.4.9', 'Logical NOT Operator')}}<br> + {{SpecName('ES5.1', '#sec-11.11', 'Binary Logical Operators')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-logical-not-operator', 'Logical NOT operator')}}<br> + {{SpecName('ES6', '#sec-binary-logical-operators', 'Binary Logical Operators')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td><a href="#Logical_AND">AND lògic (<code>&&</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Logical_OR">OR </a><a href="#Logical_AND">lògic </a><a href="#Logical_OR">(<code>||</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Logical_NOT">NOT </a><a href="#Logical_AND">lògic</a><a href="#Logical_NOT"> (<code>!</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td><a href="#Logical_AND">AND </a><a href="#Logical_AND">lògic</a><a href="#Logical_AND"> (<code>&&</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Logical_OR">OR </a><a href="#Logical_AND">lògic </a><a href="#Logical_OR">(<code>||</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + <tr> + <td><a href="#Logical_NOT">NOT </a><a href="#Logical_AND">lògic</a><a href="#Logical_NOT"> (<code>!</code>)</a></td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="JavaScript_1.0_and_1.1" name="JavaScript_1.0_and_1.1">Compatibilitat amb versions anteriors: Comportament a JavaScript 1.0 i 1.1</h3> + +<p>Els operadors && i <code>||</code> es comporten de la forma següent:</p> + +<table class="fullwidth-table"> + <tbody> + <tr> + <th>Operador</th> + <th>Ús</th> + <th>Comportament</th> + </tr> + <tr> + <td><code>&&</code></td> + <td><code><em>expr1</em> && <em>expr2</em></code></td> + <td>Si el primer operand (<code>expr1</code>) es pot converitr a false, l'operador <code>&&</code> retorna false en comptes del valor de <code>expr1</code>.</td> + </tr> + <tr> + <td><code>||</code></td> + <td><code><em>expr1</em> || <em>expr2</em></code></td> + <td>Si el primer operand (<code>expr1</code>) es pot converitr a true, l'operador <code>||</code> retorna true en comptes del valor de <code>expr1</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators">Bitwise operators</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/operador_coma/index.html b/files/ca/web/javascript/referencia/operadors/operador_coma/index.html new file mode 100644 index 0000000000..f6a62d2bc8 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/operador_coma/index.html @@ -0,0 +1,129 @@ +--- +title: Operador Coma +slug: Web/JavaScript/Referencia/Operadors/Operador_Coma +translation_of: Web/JavaScript/Reference/Operators/Comma_Operator +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p><span class="seoSummary"><strong>L'operador <em>coma</em></strong> avalua cadascun dels seus operands (d'esquerra a dreta) i retorna el valor de l´últim operand.</span></p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><em>expr1</em>, <em>expr2, expr3...</em></pre> + +<h2 id="Paràmetres">Paràmetres</h2> + +<dl> + <dt><code>expr1</code>, <code>expr2, expr3...</code></dt> + <dd>Qualsevol expressions.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Es pot fer servir l'operador coma quan es vulgui incloure múltiples expressions en una localització que requereix una sola expressió. L'ús més freqüent que es fa d'aquest operador es per subministrar múltiples paràmetres en una <code>for</code> loop.</p> + +<h2 id="Exemple">Exemple</h2> + +<p>Si <code>a</code> és un array de 2 dimesnions amb 10 elements on a side, el codi següent usa l'operador coma per incrementar dos variables al mateix temps. Vegeu que la coma en la sentència <code>var</code> <em><strong>no </strong></em> és l'operador coma, ja que no existeix dins d'una expressió. Més aviat, és un caràcter especial en les sentències <code>var</code> que combina múltiples d'ells en un. Pràcticament, la coma es comporta quasi igual que l'operador coma. El codi imprimeix els valors dels elements de la diagonal de l'array:</p> + +<pre class="brush:js;highlight:[1]">for (var i = 0, j = 9; i <= 9; i++, j--) + document.writeln("a[" + i + "][" + j + "] = " + a[i][j]);</pre> + +<h3 id="Processar_i_després_retornar">Processar i després retornar</h3> + +<p>Un altre exemple sobre l'ús que es pot fer sobre l'operador coma és processar abansd e retornar. Com s'indica, només l'últim element serà retornat, però tots els altres també seràn avaluats. Així doncs, es podria fer:</p> + +<pre>function myFunc () { + var x = 0; + + return (x += 1, x); // the same of return ++x; +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>ECMAScript 1st Edition.</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.14', 'Comma operator')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-comma-operator', 'Comma operator')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>Sí</td> + <td>Sí</td> + <td>3.0</td> + <td>Sí</td> + <td>Sí</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>Sí</td> + <td>Sí</td> + <td>Sí</td> + <td>Sí</td> + <td>Sí</td> + <td>Sí</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for loop</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/super/index.html b/files/ca/web/javascript/referencia/operadors/super/index.html new file mode 100644 index 0000000000..c19e58cba1 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/super/index.html @@ -0,0 +1,119 @@ +--- +title: super +slug: Web/JavaScript/Referencia/Operadors/super +translation_of: Web/JavaScript/Reference/Operators/super +--- +<div>{{jsSidebar("Operators")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>La paraula clau <strong>super</strong> s'utilitza per cridar funcions del pare de l'objecte.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">super([arguments]); // crida el constructor del pare. +super.functionOnParent([arguments]); +</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Quan s'utilitza en un constructor, la paraula clau <code>super</code> apareix sola i s'ha d'utilitzar abans de la paraula clau <code>this</code>. Aquesta paraula clau també es pot utilitzar per cridar funcions en un objecte pare.</p> + +<h2 id="Exemple">Exemple</h2> + +<p>Aquest fragment de codi es pren de la mostra de classes <a href="https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html">mostra de classes</a> (<a href="https://googlechrome.github.io/samples/classes-es6/index.html">demostració en viu</a>).</p> + +<pre class="brush: js">class Square extends Polygon { + constructor(length) { + // Aquí es crida el constructor del pare de la classe amb les longituds + // proveïdes per l'alçada i l'amplada del polígon + super(length, length); + // Nota: En classes derivades, s'ha de cridar super() abans de poder + // utilitzar 'this'. Obviar això causarà un error de referència. + this.name = 'Square'; + } + + get area() { + return this.height * this.width; + } + + set area(value) { + this.area = value; + } +}</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-super-keyword', 'super')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(42.0)}}</td> + <td>{{CompatNo}}<br> + {{bug(1066239)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile">Safari Mobile +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(42.0)}}</td> + <td>{{CompatNo}}<br> + {{bug(1066239)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Classes">Classes</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/typeof/index.html b/files/ca/web/javascript/referencia/operadors/typeof/index.html new file mode 100644 index 0000000000..a7407e79ce --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/typeof/index.html @@ -0,0 +1,240 @@ +--- +title: typeof +slug: Web/JavaScript/Referencia/Operadors/typeof +translation_of: Web/JavaScript/Reference/Operators/typeof +--- +<div> +<div>{{jsSidebar("Operators")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>L'operador <code>typeof</code> retorna una cadena de caràcters que representa el tipus de l'operand, que en cap cas és evaluat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<p>L'operador <code>typeof</code> va seguit del seu operand:</p> + +<pre class="syntaxbox"><code>typeof <code><em>operand</em></code></code></pre> + +<h3 id="Paràmetres">Paràmetres</h3> + +<p><code><em>operand</em></code> és una expressió que representa l'objecte o {{Glossary("Primitive", "primitive")}} del qual es retornarà el tipus.</p> + +<h2 id="Descripció">Descripció</h2> + +<p>La taula següent resumeix els possibles valor de<code> typeof</code>. Per més informació sobre tipus i tipus primitius, vegeu també la pàgina de <a href="/en-US/docs/Web/JavaScript/Data_structures">JavaScript data structure</a>.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Tipus</th> + <th scope="col">Resultat</th> + </tr> + </thead> + <tbody> + <tr> + <td>Undefined</td> + <td><code>"undefined"</code></td> + </tr> + <tr> + <td>Null</td> + <td><code>"object" </code>(vegeu a sota)</td> + </tr> + <tr> + <td>Boolean</td> + <td><code>"boolean"</code></td> + </tr> + <tr> + <td>Number</td> + <td><code>"number"</code></td> + </tr> + <tr> + <td>String</td> + <td><code>"string"</code></td> + </tr> + <tr> + <td>Symbol (nou a l'ECMAScript 6)</td> + <td><code>"symbol"</code></td> + </tr> + <tr> + <td>Host object (proporcionat per l'entorn JS)</td> + <td><em>Depenent de l'implementació</em></td> + </tr> + <tr> + <td>Objecte Funció (implements [[Call]] in ECMA-262 terms)</td> + <td><code>"function"</code></td> + </tr> + <tr> + <td>Qualsevol altre objecte</td> + <td><code>"object"</code></td> + </tr> + </tbody> +</table> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Casos_normals">Casos normals</h3> + +<pre class="brush:js">// Numbers +typeof 37 === 'number'; +typeof 3.14 === 'number'; +typeof Math.LN2 === 'number'; +typeof Infinity === 'number'; +typeof NaN === 'number'; // A pesar de ser un "Not-A-Number" +typeof Number(1) === 'number'; // però no l'utilitzeu mai així! + + +// Strings +typeof "" === 'string'; +typeof "bla" === 'string'; +typeof (typeof 1) === 'string'; // typeof sempre retorna una string +typeof String("abc") === 'string'; // però no l'utilitzeu mai així! + + +// Booleans +typeof true === 'boolean'; +typeof false === 'boolean'; +typeof Boolean(true) === 'boolean'; // però no l'utilitzeu mai així! + + +// Symbols +typeof Symbol() === 'symbol' +typeof Symbol('foo') === 'symbol' +typeof Symbol.iterator === 'symbol' + + +// Undefined +typeof undefined === 'undefined'; +typeof blabla === 'undefined'; // una variable no definida + + +// Objects +typeof {a:1} === 'object'; + +// utilitzeu <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray">Array.isArray</a> o bé Object.prototype.toString.call +// per a diferenciar objectes normals d'arrays +typeof [1, 2, 4] === 'object'; + +typeof new Date() === 'object'; + + +// Els següents exemples són confusos, no els utilitzeu! +typeof new Boolean(true) === 'object'; +typeof new Number(1) === 'object'; +typeof new String("abc") === 'object'; + + +// Funcions +typeof function(){} === 'function'; +typeof Math.sin === 'function'; +</pre> + +<h3 id="null"><code>null</code></h3> + +<pre class="brush:js">// Això es manté així des de l'inici de JavaScript +typeof null === 'object'; +</pre> + +<p>A la primera implementació de JavaScript, els valors de JavaScript es representaven com a una etiqueta de tipus i un valor. L'etiqueta de tipus per objectes era 0. <code>null</code> era representat amb el punter NULL (0x00 a la majoria de plataformes). D'aquesta manera null tenia 0 com a etiqueta de tipus, i això és el que determina que <code>typeof</code> retorni 'object' per a <code>null</code>. (<a href="http://www.2ality.com/2013/10/typeof-null.html">referència</a>)</p> + +<p>Es va proposar una esmena per a canviar aquest comportament per l'ECMAScript (via una <em>opt-in</em>), però aquesta <a class="external" href="http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null">va ser rebutjada</a>. El resultat hagués estat <code>typeof null === 'null'</code>.</p> + +<h3 id="Expressions_regulars">Expressions regulars</h3> + +<p>Expressions regulars que poden ser cridades van ser un afegit no standard en alguns navegadors web.</p> + +<pre class="brush:js">typeof /s/ === 'function'; // Chrome 1-12 No cumpleix l'standard ECMAScript 5.1 +typeof /s/ === 'object'; // Firefox 5+ D'acord amb ECMAScript 5.1 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>1a edició ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.1</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.4.3', 'The typeof Operator')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-typeof-operator', 'The typeof Operator')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Els_objects_host_a_Internet_Explorer_són_objectes_en_comptes_de_funcions">Els objects host a Internet Explorer són objectes en comptes de funcions</h3> + +<p>A IE 6, 7, i 8 molts dels host objects són objectes i no funcions. Per exemple:</p> + +<pre class="brush: js">typeof alert === 'object'</pre> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/instanceof" title="/en-US/docs/JavaScript/Reference/Operators/instanceof">instanceof</a></code></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/void/index.html b/files/ca/web/javascript/referencia/operadors/void/index.html new file mode 100644 index 0000000000..ddf98ebfd9 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/void/index.html @@ -0,0 +1,138 @@ +--- +title: L'operador void +slug: Web/JavaScript/Referencia/Operadors/void +translation_of: Web/JavaScript/Reference/Operators/void +--- +<div>{{jsSidebar("Operators")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>L'operador <code>void</code> evalua l'<code><em>expressió</em></code> donada i retorna <code>undefined</code>.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">void <em>expressió</em></pre> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquest operador permet inserir expressions que produeixen efectes secundaris en llocs on es vol una expressió que s'evalui a <code>undefined</code>.</p> + +<p>L'operador <code>void</code> tot sovint s'utilitza simplement per a obtenir el valor primitiu<code> undefined</code>, normalment usant "<code>void(0)</code>" (que és equivalent a "<code>void 0</code>"). En aquests casos es pot utilitzar la variable global <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined"><code>undefined</code></a> en comptes de l'operador <code>void</code> (asumint que no ha sigut assignada a un valor no standard).</p> + +<h2 id="Expressions_de_funció_invocades_de_forma_immediata">Expressions de funció invocades de forma immediata</h2> + +<p>A l'utilitzar una <a href="/en-US/docs/Glossary/IIFE">expressió de funció invocada de forma immediata</a>, es pot usar <code>void</code> per a forçar que la paraula clau <code>function</code> sigui tractada com a una expressió en comptes d'una declaració.</p> + +<pre class="brush: js">void function iife() { + var bar = function () {}; + var baz = function () {}; + var foo = function () { + bar(); + baz(); + }; + var biz = function () {}; + + foo(); + biz(); +}(); +</pre> + +<h2 id="URIs_de_JavaScript">URIs de JavaScript</h2> + +<p>Quan un navegador segueix una URI de l'estil <code>javascript:</code> , aquest evalua el codi que hi ha a la URI i llavors reemplaça el contingut de la pàgina amb el valor retornat, a no ser que el valor retornat sigui <code>undefined</code>. L'operador<code> void</code> pot ser emprat en aquest case per a retornar <code>undefined</code>. Per exemple:</p> + +<pre class="brush: html"><a href="javascript:void(0);"> + Cliqueu aquí per a no fer res +</a> + +<a href="javascript:void(document.body.style.backgroundColor='green');"> + Clique aquí per a un fons de color verd +</a> +</pre> + +<p>Tingueu en compte, però, que el pseudo protocol <code>javascript:</code> no és recomanat ja que existeixen alternatives, com ara manegadors d'events no obtrusius.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>ECMAScript 1a Edició.</td> + <td>Standard</td> + <td>Definició inicial. Implementat al JavaScript 1.1</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.4.2', 'The void Operator')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-void-operator', 'The void Operator')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined">undefined</a></code></li> +</ul> diff --git a/files/ca/web/javascript/referencia/operadors/yield/index.html b/files/ca/web/javascript/referencia/operadors/yield/index.html new file mode 100644 index 0000000000..d01f641767 --- /dev/null +++ b/files/ca/web/javascript/referencia/operadors/yield/index.html @@ -0,0 +1,152 @@ +--- +title: yield +slug: Web/JavaScript/Referencia/Operadors/yield +translation_of: Web/JavaScript/Reference/Operators/yield +--- +<div>{{jsSidebar("Operators")}}</div> + +<h2 id="Resum">Resum</h2> + +<p>La paraula clau <code>yield</code> s'utilitza per a pausar i reprendre una funció generadora ({{jsxref("Statements/function*", "function*")}} o bé una <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Legacy_generator_function">funció generadora obsoleta</a>).</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox language-html"> yield [[expressió]];</pre> + +<dl> + <dt><code>expressió</code></dt> + <dd>La expresssió a retornar. Si s'omet es retorna <code>undefined</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>La paraula clau <code>yield</code> causa que l'execució d'una funció generadora es pausi i retorni el valor de l'expressió que la segueix. La paraula clau <code>yield</code> es pot entendre com una versió de la paraula clau <code>return</code> per a generadors.</p> + +<p>La paraula clau <code>yield</code> retorna en realitat un objecte de tipus <code>IteratorResult</code> amb dues propietats: <code>value</code> i <code>done</code>. La propietat <code>value</code> és el resultat d'evaluar l'expresssió que segueix <code>yield</code> mentre que la propietat <code>done</code> és de tipus booleà i indica si la funció generadora ha completat la seva execució o no.</p> + +<p>Un cop pausada mitjançant una expressió <code>yield</code>, l'execució de codi del generador no es reprendrà a no ser que s'invoqui externament mitjançant la crida a la funció <code>next()</code> del generador. Això permet un control directe de l'execució del generador i valors de retorn incrementals.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>El següent codi és un exemple de la declaració d'una funció generadora al llarg d'una funció d'ajut.</p> + +<pre class="brush: js">function* foo(){ + var index = 0; + while (index <= 2) // quan index arriba a 3, + // la propietat done del yield serà true + // i el seu valor serà undefined; + yield index++; +}</pre> + +<p>Un cop la funció generadora és definida es pot utilitzar tot construïnt un iterador tal i com es mostra a continuació:</p> + +<pre class="brush: js">var iterator = foo(); +console.log(iterator.next()); // { value:0, done:false } +console.log(iterator.next()); // { value:1, done:false } +console.log(iterator.next()); // { value:2, done:false } +console.log(iterator.next()); // { value:undefined, done:true }</pre> + +<h2 id="Specifications" name="Specifications">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ES6', '#', 'Yield')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>39</td> + <td>{{CompatGeckoDesktop("26.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Objecte<code> IteratorResult</code> en comptes de <code>throwing</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoDesktop("29.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>yes (when?)</td> + <td>{{CompatGeckoMobile("26.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{ CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + <tr> + <td>Objecte<code> IteratorResult</code> en comptes de <code>throwing</code></td> + <td>{{CompatUnknown}}</td> + <td>{{CompatGeckoMobile("29.0")}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h3 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h3> + +<ul> + <li>A partir de Gecko 29 {{geckoRelease(29)}} la funció generadora, un cop completada, no llença un {{jsxref("TypeError")}} "generator has already finished" sino que retorna un objecte de tipus <code>IteratorResult</code> com per exemple<code> { value: undefined, done: true }</code> ({{bug(958951)}}).</li> + <li>A partir de Gecko 33 {{geckoRelease(33)}} l'anàlisi de l'expressió que segueix al yield s'ha actualitzat per a satisfer l'especificació de ES6 ({{bug(981599)}}): + <ul> + <li>L'expressió que segueix la paraula clau yield és opcional i si s'omet ja no es llença SyntaxError: <code>function* foo() { yield; }</code></li> + </ul> + </li> +</ul> + +<h2 id="See_also" name="See_also">Vegeu tambè</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">El protocol dels iteradors</a></li> + <li>{{jsxref("Statements/function*", "function*")}}</li> + <li>{{jsxref("Operators/function*", "function* expression")}}</li> + <li>{{jsxref("Operators/yield*", "yield*")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/block/index.html b/files/ca/web/javascript/referencia/sentencies/block/index.html new file mode 100644 index 0000000000..cfa5d7fd20 --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/block/index.html @@ -0,0 +1,138 @@ +--- +title: block +slug: Web/JavaScript/Referencia/Sentencies/block +translation_of: Web/JavaScript/Reference/Statements/block +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>Una<strong> sentència bloc</strong> (o <strong>sentència composta</strong> en altres llengües) s'usa per agrupar zero o més sentències. El bloc està delimitat per un parell de claus.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">{ + <var>sentència_1</var>; + <var>sentència_2;</var> + ... + <var>sentència_n;</var> +} +</pre> + +<dl> + <dt><code>statement_1</code>, <code>statement_2</code>, <code>statement_n</code></dt> + <dd>Sentències agrupades dins la sentència block.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Aquesta sentència s'utilitza normalment amb les sentències de control de flux (p.ex. <code>if</code>, <code>for</code>, <code>while</code>). Per exemple:</p> + +<pre class="brush: js">while (x < 10) { + x++; +} +</pre> + +<p>Tingueu en compte que la sentència block no acaba amb un punt i coma.</p> + +<p>La sentència bloc sovint s'anomena <strong>sentència composta</strong> en altres llengües. Aquesta sentència permet usar múltiples sentències allà on JavaScript espera només una única sentència. Combinar sentències en blocs és una pràctica comuna en JavaScript. El comportament oposat és possible fent servir una <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">sentència buida</a>, on no es proporciona cap declaració, encara que es requereixi una.</p> + +<h3 id="Fora_de_l'àmbit_del_bloc">Fora de l'àmbit del bloc</h3> + +<p><strong>Important</strong>: Les variables declarades amb <code>var</code> no tenen àmbit de bloc. Les variables introduïdes amb un bloc estàn en l'àmbit de la funció o l'script que els conté, i els efectes d'establir-los persisteixen més enllà del mateix bloc. En altres paraules, les sentències de bloc no introdueixen un àmbit. Encara que els blocs "independents" són sintàcticament vàlids, no és desitjable usar-los en JavaScript, ja que no fan el que pensem que fan, en el cas que penseu que fan alguna cosa semblant als blocs en C o Java. Per exemple:</p> + +<pre class="brush: js">var x = 1; +{ + var x = 2; +} +console.log(x); // logs 2 +</pre> + +<p>Això registra 2 ja que la sentència <code>var x</code> dins el bloc es troba en el mateix àmbit que la sentència <code>var x</code> anterior al bloc. En C o Java, el codi equivalent hauria emès 1.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacions</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició d'ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial. Implementat en JavaScript 1.0</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-block', 'Block statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/while", "while")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/break/index.html b/files/ca/web/javascript/referencia/sentencies/break/index.html new file mode 100644 index 0000000000..d71eff620d --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/break/index.html @@ -0,0 +1,154 @@ +--- +title: break +slug: Web/JavaScript/Referencia/Sentencies/break +translation_of: Web/JavaScript/Reference/Statements/break +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La <strong> sentència</strong> <strong>break</strong> acaba el bucle actual, {{jsxref("Statements/switch", "switch")}}, o una sentència {{jsxref("Statements/label", "label")}} i transfereix el control de programa a la sentència següent de la sentència acabada.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>break [<em>etiqueta</em>];</code></pre> + +<dl> + <dt><code>Etiqueta</code></dt> + <dd>Opcional. És l'identificador associat amb l'etiqueta de la sentència. Si la sentència no és un bucle o un {{jsxref("Statements/switch", "switch")}}, això és necessari.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>La sentència <code>break</code> inclou una etiqueta opcional que permet al programa sortir de la sentència etiquetada. La sentència <code>break</code> necessita ser imbricada dins l'etiqueta de referència. La sentència etiquetada pot ser qualsevol sentència {{jsxref("Statements/block", "block")}}, no ha de ser precedida per una sentència de bucle.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>La funció següent té una sentència <code>break</code> que acaba amb el bucle{{jsxref("Statements/while", "while")}} quan <code>i</code> és 3, per després retornar el valor 3 * <code>x</code>.</p> + +<pre class="brush:js;highlight:[6];">function testBreak(x) { + var i = 0; + + while (i < 6) { + if (i == 3) { + break; + } + i += 1; + } + + return i * x; +}</pre> + +<p>El codi següent utilitza sentències<code> break</code> amb blocs etiquetats. Una sentència <code>break</code> ha de ser imbricada dins de qualsevol etiqueta que fa referència. Vegeu que <code>inner_block</code> és troba imbricada dins <code>outer_block</code>.</p> + +<pre class="brush:js;highlight:[1,2,4];">outer_block: { + inner_block: { + console.log('1'); + break outer_block; // surt tan de inner_block com de outer_block + console.log(':-('); // es salta + } + console.log('2'); // es salta +} +</pre> + +<p>El codi següent també utilitza sentències <code>break</code> amb blocs etiquetats però cenera un Syntax Error perquè la sentència <code>break</code> es troba dins de <code>block_1</code> però fa referència a <code>block_2</code>. Una sentència <code>break</code> ha d'estar sempre imbricada dins de l'eitqueta a la que fa referència.</p> + +<pre class="brush:js;highlight:[1,3,6];">block_1: { + console.log('1'); + break block_2; // SyntaxError: etiqueta no trobada +} + +block_2: { + console.log('2'); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Versió no etiquetada.</td> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>versió etiquetada afegida.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.8', 'Break statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-break-statement', 'Break statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/continue", "continue")}}</li> + <li>{{jsxref("Statements/label", "label")}}</li> + <li>{{jsxref("Statements/switch", "switch")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/buida/index.html b/files/ca/web/javascript/referencia/sentencies/buida/index.html new file mode 100644 index 0000000000..6800d476f8 --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/buida/index.html @@ -0,0 +1,138 @@ +--- +title: Buida +slug: Web/JavaScript/Referencia/Sentencies/Buida +translation_of: Web/JavaScript/Reference/Statements/Empty +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>Una sentència <strong>buida</strong> es fa servir per no proveïr cap sentència, encara que la sintaxi de JavaScript n'esperaria una.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">; +</pre> + +<h2 id="Descripció">Descripció</h2> + +<p>La sentència buida és un punt i coma (;) que indica que cap sentència s'executarà, encara que la sintaxi de JavaScript en requereixi una. Pel contrari, quan es vol realitzar múltiples sentències, però JavaScript només en permet un, és possible realitzar-ho mitjançant l'ús d'una <a href="/en-US/docs/Web/JavaScript/Reference/Statements/block">sentència de block</a>; que combina diverses sentències en una única sentència.</p> + +<h2 id="Exemples">Exemples</h2> + +<p>La sentència buida sovint s'utilitza amb sentències de bucles. Vegeu l'exemple segúent amb el cos del bucle buit:</p> + +<pre class="brush: js">var arr = [1, 2, 3]; + +// Assign all array values to 0 +for (i = 0; i < arr.length; arr[i++] = 0) /* empty statement */ ; + +console.log(arr) +// [0, 0, 0] +</pre> + +<p><strong>Nota:</strong> És una bona idea comentar l'ús intencional de la sentència buida, ja que no és fa molt obvi diferenciar-lo d'un punt i coma normal. En el següent exemple l'ús probablement no és intencional:</p> + +<pre class="brush: js">if (condition); // Caution, this "if" does nothing! + killTheUniverse() // So this gets always executed!!! +</pre> + +<p>Un altre exemple: Una sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else"><code>if...else</code></a> sense claus (<code>{}</code>). Si <code>tres</code> és cert, no passarà res, <u><code>four</code> does not matter, </u>ni tampoc s'executarà la funció <code>launchRocket()</code> en el cas <code>else</code>.</p> + +<pre class="brush: js">if (one) + doOne(); +else if (two) + doTwo(); +else if (three) + ; // nothing here +else if (four) + doFour(); +else + launchRocket();</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.3', 'Empty statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-empty-statement', 'Empty statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/block", "Block statement")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/continue/index.html b/files/ca/web/javascript/referencia/sentencies/continue/index.html new file mode 100644 index 0000000000..a6928d15b7 --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/continue/index.html @@ -0,0 +1,199 @@ +--- +title: continue +slug: Web/JavaScript/Referencia/Sentencies/continue +translation_of: Web/JavaScript/Reference/Statements/continue +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La <strong> sentència continue</strong> acaba l'execució de les sentències en la iteració actual del bucle actual o etiquetat, i continua l'execució del bucle amb la següent iteració.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">continue [<em>etiqueta</em>];</pre> + +<dl> + <dt><code>Etiqueta</code></dt> + <dd>Identificador associat amb l'etiqueta de la sentència.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>En contrast amb la sentència {{jsxref("Statements/break", "break")}} , <code>continue</code> no acaba l'execució del bucle: En comptes d'això,</p> + +<ul> + <li>En un bucle {{jsxref("Statements/while", "while")}}, salta un altre cop a la condició.</li> +</ul> + +<ul> + <li>En un bucle {{jsxref("Statements/for", "for")}}, Salta a l'actualització de l'expressió.</li> +</ul> + +<p>La sentència <code>continue</code> pot incloure una etiqueta opcional que permet al programa saltar a la següent iteració d'una sentència d'un bucle etiquetat en comptes del bucle actual. En aquest cas, la sentència <code>continue</code> necessita trobar-se imbricada dins de la sentència etiquetada.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_continue_amb_while">Utilitzar <code>continue</code> amb <code>while</code></h3> + +<p>L'exemple següent mostra un bucle{{jsxref("Statements/while", "while")}} que contè una sentència <code>continue</code> que s'executa quan el valor de <code>i</code> és 3. Així doncs, <code>n</code> pren els valors 1, 3, 7, i 12.</p> + +<pre class="brush: js">var i = 0; +var n = 0; + +while (i < 5) { + i++; + + if (i === 3) { + continue; + } + + n += i; +} +</pre> + +<h3 id="Utilitzar_continue_amb_una_etiqueta">Utilitzar <code>continue</code> amb una etiqueta</h3> + +<p>En l'exemple següent, una sentència etiquetada <code>checkiandj</code> contè una sentència etiquetada <code>checkj</code>. si es troba un <code>continue</code>, el programa continua al començament de la sentència <code>checkj</code>. Cada cop que es troba <code>continue</code>, <code>checkj</code> reitera fins que la condició retorna falç. Quan es retorna falç, es completa la resta de la sentència <code>checkiandj</code>.</p> + +<p>Si <code>continue</code> té una etiqueta de <code>checkiandj</code>, el programa continuarà al començament de la sentència <code>checkiandj</code>.</p> + +<p>Vegeu també {{jsxref("Statements/label", "label")}}.</p> + +<pre class="brush: js">var i = 0; +var j = 8; + +checkiandj: while (i < 4) { + console.log("i: " + i); + i += 1; + + checkj: while (j > 4) { + console.log("j: "+ j); + j -= 1; + + if ((j % 2) == 0) + continue checkj; + console.log(j + " is odd."); + } + console.log("i = " + i); + console.log("j = " + j); +} +</pre> + +<p>Resultat:</p> + +<pre class="brush: js">"i: 0" + +// start checkj +"j: 8" +"7 is odd." +"j: 7" +"j: 6" +"5 is odd." +"j: 5" +// end checkj + +"i = 1" +"j = 4" + +"i: 1" +"i = 2" +"j = 4" + +"i: 2" +"i = 3" +"j = 4" + +"i: 3" +"i = 4" +"j = 4" +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES1')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Definició inicial. Versió sense etiqueta.</td> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Versió amb etiqueta afegida.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.7', 'Continue statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-continue-statement', 'Continue statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/break", "break")}}</li> + <li>{{jsxref("Statements/label", "label")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/debugger/index.html b/files/ca/web/javascript/referencia/sentencies/debugger/index.html new file mode 100644 index 0000000000..54d8d02e3d --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/debugger/index.html @@ -0,0 +1,116 @@ +--- +title: debugger +slug: Web/JavaScript/Referencia/Sentencies/debugger +translation_of: Web/JavaScript/Reference/Statements/debugger +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La <strong>sentència</strong> <strong>debugger </strong>invoca qualsevol funcionalitat de depuració disponible, com l'establiment d'un breakpoint (punt de ruptura). Si no hi ha cap funcionalitat de depuració disponible, aquesta sentència queda sense efecte.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox"><code>debugger;</code></pre> + +<h2 id="Exemples">Exemples</h2> + +<p>L'exemple següent mostra un codi on s'ha insertat una sentència de depuració, de forma que es crida un debugger (si existeix) quan es crida la funció.</p> + +<pre class="brush:js">function potentiallyBuggyCode() { + debugger; + // codi potencialment erroni a examinar, executar pas a pas, etc. +}</pre> + +<p>Quan es crida el debugger, s'atura l'execució a la sentència del debugger. Es com un breakpoint en la font de l'script.</p> + +<p><a href="https://mdn.mozillademos.org/files/6963/Screen Shot 2014-02-07 at 9.14.35 AM.png"><img alt="Paused at a debugger statement." src="https://mdn.mozillademos.org/files/6963/Screen%20Shot%202014-02-07%20at%209.14.35%20AM.png" style="height: 371px; width: 700px;"></a></p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-debugger-statement', 'Debugger statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.15', 'Debugger statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td>Definició inicial</td> + </tr> + <tr> + <td>{{SpecName('ES3', '#sec-7.5.3', 'Debugger statement')}}</td> + <td>{{Spec2('ES3')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES1', '#sec-7.4.3', 'Debugger statement')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Només mencionat com a paraula reservada.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Debugging_JavaScript">Debugging JavaScript</a></li> + <li><a href="/en-US/docs/Tools/Debugger">El depurador en eines de desenvoupador de Firefox</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/do...while/index.html b/files/ca/web/javascript/referencia/sentencies/do...while/index.html new file mode 100644 index 0000000000..88f221f83d --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/do...while/index.html @@ -0,0 +1,124 @@ +--- +title: do...while +slug: Web/JavaScript/Referencia/Sentencies/do...while +translation_of: Web/JavaScript/Reference/Statements/do...while +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La <strong>sentència</strong> <strong><code>do...while</code> </strong> crea un bucle que executa una sentència especificada fins que la condició avalui a fals. La condició s'avalua després de la sentència, donant lloc a l'execució de la sentència especificada almenys un cop.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">do + <em>sentència</em> +while (<em>condició</em>); +</pre> + +<dl> + <dt><code>sentència</code></dt> + <dd>Una sentència que s'executa almenys un cop i que es torna a executar cada cop que la condició avalui a certa. Per executar múltiples sentències dins d'un bucle, utilitzeu una sentència {{jsxref("Statements/block", "block")}} (<code>{ ... }</code>) per agrupar aquestes sentències.</dd> +</dl> + +<dl> + <dt><code>condició</code></dt> + <dd>Una expressió que s'avalua després de cada volta del bucle. si <code>condició</code> avalua a certa, la <code>sentència</code> es torna a executar. Quan la <code>condició</code> avalua a falç, control passa a la següent sentència que segueix el <code>do...while</code>.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Utilitzar_el_do...while">Utilitzar el <code>do...while</code></h3> + +<p>En l'exemple següent, el bucle <code>do...while</code> itera almenys un cop i torna a iterar fins que <code>i</code> deixa de ser més petit que 5.</p> + +<pre class="brush: js">var i = 0; +do { + i += 1; + console.log(i); +} while (i < 5); +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.2</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.6.1', 'do-while statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-do-while-statement', 'do-while statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Trailing ; ara és opcional.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>6</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/while", "while")}}</li> + <li>{{jsxref("Statements/for", "for")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/export/index.html b/files/ca/web/javascript/referencia/sentencies/export/index.html new file mode 100644 index 0000000000..c1d92ab504 --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/export/index.html @@ -0,0 +1,158 @@ +--- +title: export +slug: Web/JavaScript/Referencia/Sentencies/export +translation_of: Web/JavaScript/Reference/Statements/export +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La<strong> </strong>sentència <strong>export</strong> s'utilitza per exportar funcions, objectes o valors primitius d'un fitxer donat (o <em>mòdul</em>) per a que els puguin fer servir altres programes amb la sentència {{jsxref("Statements/import", "import")}}.</p> + +<p>Els mòduls exportats estan sempre {{jsxref("Strict_mode","strict mode", "", 1)}} tan si es declaren així com si no. La sentència export no es pot fer servir en mòduls incrustats (embedded).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox notranslate">export <em>nom1</em>, <em>nom2</em>, ..., <em>nomN</em>; +export default <em>nom1</em> </pre> + +<dl> + <dt><code>nomN</code></dt> + <dd>Propietat, funció, o objecte que s'ha d'exportar (de manera que es pot importar a través de <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/import">import</a></code> en un altre script).</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Hi ha dos tipus diferents d'export:</p> + +<ul> + <li>Exportacions nominals (una o més per mòdul): + <pre class="brush: js notranslate">export myFunction; // exporta una funció declarada anteriorment +export const foo = Math.sqrt(2); // exporta una constant +export let <var>name1</var>, <var>name2</var>, …, <var>nameN</var>; +export let <var>name1</var> = …, <var>name2</var> = …, …, <var>nameN</var>; +export function functionName(){...} +export class ClassName {...}</pre> + </li> + <li>Exportacions per defecte (una per mòdul): + <pre class="notranslate">export default <em>expression</em>; +export default function (…) { … } // també class, function* +export default function name1(…) { … } // també class, function* +export { <var>name1</var> as default, … };</pre> + </li> +</ul> + +<p>Les exportacions amb nom són útils per exportar diversos valors. Durant la importació, un serà capaç d'utilitzar el mateix nom per referir-se al valor corresponent.</p> + +<p>Sobre la exportació per defecte, només pot haver-n'hi una per mòdul. Una exportació per defecte pot ser una funció, una classe un objecte o qualsevol altra cosa. Aquest valor es considerarà el principal valor exportat, ja que serà el més fàcil d'importar.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Usant_les_exportacions_nominals">Usant les exportacions nominals</h3> + +<p>En el mòdul podem fer servir el codi següent:</p> + +<pre class="brush: js notranslate">// "modul.js" +export function cub(x) { + return x * x * x; +} +const foo = Math.PI + Math.SQRT2; +export foo; +</pre> + +<p>Així, en un altre mòdul podem tenir:</p> + +<pre class="brush: js notranslate">import { cub, foo } from 'modul.js'; +console.log(cub(3)); // 9 +console.log(foo); // 4.555806215962888</pre> + +<h3 id="Usant_lexportació_per_defecte">Usant l'exportació per defecte</h3> + +<p>Si volem exportar un únic valor o tenir un valor per defecte per al nostre mòdul podem fer::</p> + +<pre class="brush: js notranslate">// "modul.js" +var function cub(x) { + return x * x * x; +} +export default cub;</pre> + +<p>Així, en un altre mòdul podem importar directament:</p> + +<pre class="brush: js notranslate">import laFuncio from 'modul'; +console.log(laFuncio(3)); // 9 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-imports', 'Imports')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/import", "import")}}</li> + <li><a href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 in Depth: Modules</a>, Hacks blog post per Jason Orendorff</li> + <li><a href="http://exploringjs.com/es6/ch_modules.html">Axel Rauschmayer's book: "Exploring JS: Modules"</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/for...of/index.html b/files/ca/web/javascript/referencia/sentencies/for...of/index.html new file mode 100644 index 0000000000..5cc16f52f8 --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/for...of/index.html @@ -0,0 +1,181 @@ +--- +title: for...of +slug: Web/JavaScript/Referencia/Sentencies/for...of +translation_of: Web/JavaScript/Reference/Statements/for...of +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La instrucció <code>for...of</code> crea un bucle que itera sobre <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/iterable">objectes iterables</a> (incloent {{jsxref("Array")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, l'objecte <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments">arguments</a>, etcètera), tot invocant un bloc de codi amb les instruccions a executar per a cada valor de la propietat.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">for (<em>variable</em> of <em>objecte</em>) + codi +</pre> + +<dl> + <dt><code>variable</code></dt> + <dd>A cada iteració el valor d'una propietat diferent és asignat a <em>variable</em>.</dd> + <dt><code>object</code>e</dt> + <dd>L'objecte del qual s'iteren les propietats, que són iterables.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Diferència_entre_for...of_i_for...in">Diferència entre <code>for...of</code> i <code>for...in</code></h3> + +<p>El següent exemple mostra la diferència entre el bucle <code>for...of</code> i el bucle <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in" title="en-US/docs/JavaScript/Reference/Statements/for...in">for...in</a></code>. Mentre <code>for...in</code> itera sobre noms de propietats, <code>for...of</code> itera sobre els valors de les propietats:</p> + +<pre class="brush:js">let arr = [3, 5, 7]; +arr.foo = "hola"; + +for (let i in arr) { + console.log(i); // mostra "0", "1", "2", "foo" +} + +for (let i of arr) { + console.log(i); // mostra "3", "5", "7" +} +</pre> + +<h3 id="Ús_de_Array.prototype.forEach()">Ús de <code>Array.prototype.forEach()</code></h3> + +<p>Per a aconseguir els mateixos valors que s'obtenen amb <code>for...of</code> també es pot utilitzar el mètode {{jsxref("Array.prototype.forEach()")}}:</p> + +<pre class="brush: js">let arr = [3, 5, 7]; +arr.foo = "hola"; + +arr.forEach(function (element, index) { + console.log(element); // mostra "3", "5", "7" + console.log(index); // mostra "0", "1", "2" +}); + +// or with Object.keys() + +Object.keys(arr).forEach(function (element, index) { + console.log(arr[element]); // mostra "3", "5", "7", "hello" + console.log(arr[index]); // mostra "3", "5", "7" +});</pre> + +<h3 id="Iteració_de_coleccions_del_DOM">Iteració de coleccions del DOM</h3> + +<p>Iterant sobre coleccions del DOM com {{domxref("NodeList")}}: el següent exemple afegeix la classe <code>read</code> als paràgrafs que són descendens directes d'un article:</p> + +<pre class="brush:js">// Nota: Això només funcionarà en plataformes que +// implementen NodeList.prototype[Symbol.iterator] +let articleParagraphs = document.querySelectorAll("article > p"); + +for (let paragraph of articleParagraphs) { + paragraph.classList.add("read"); +} +</pre> + +<h3 id="Iteració_de_generadors">Iteració de generadors:</h3> + +<p>Els <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">generadors</a> també són iterables:</p> + +<pre class="brush:js">function* fibonacci() { // una funció generadora + let [prev, curr] = [0, 1]; + for (;;) { + [prev, curr] = [curr, prev + curr]; + yield curr; + } +} + +for (let n of fibonacci()) { + // trunca la seqüència als 1000 + if (n > 1000) + break; + print(n); +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-for-in-and-for-of-statements', 'for...of statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable()}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(29)}}<a href="#chrome-note-1">[1]</a><br> + {{CompatChrome(38)}}</td> + <td>{{CompatGeckoDesktop("13")}}<br> + {{CompatGeckoDesktop("17")}} (.iterator)<br> + {{CompatGeckoDesktop("27")}} ("@@iterator")<br> + {{CompatGeckoDesktop("36")}} (Symbol.iterator)</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>7.1</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatChrome(29)}}<a href="#chrome-note-1">[1]</a><br> + {{CompatChrome(38)}}</td> + <td>{{CompatGeckoMobile("13")}}<br> + {{CompatGeckoMobile("17")}} (.iterator)<br> + {{CompatGeckoMobile("27")}} ("@@iterator")<br> + {{CompatGeckoMobile("36")}} (Symbol.iterator)</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>iOS 8</td> + </tr> + </tbody> +</table> +</div> + +<p><a name="chrome-note-1"></a>[1] La característica està disponible sota una preferència. A chrome://flags/#enable-javascript-harmony, activar la entrada “Enable Experimental JavaScript”.</p> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in">for each...in</a> - una instrucció similar, però itera els valors de les propietats d'un objecte en comptes de les propietats mateixes de l'objecte (en desús).</li> + <li>{{jsxref("Array.prototype.forEach()")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/for/index.html b/files/ca/web/javascript/referencia/sentencies/for/index.html new file mode 100644 index 0000000000..00a16b62df --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/for/index.html @@ -0,0 +1,190 @@ +--- +title: for +slug: Web/JavaScript/Referencia/Sentencies/for +translation_of: Web/JavaScript/Reference/Statements/for +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La<strong> sentència</strong> <strong>for</strong> crea un bucle que consta de tres expressions opcionals, embolcallades entre paràntesis i separades per punts i comes, seguits d'una sentència o un grup de sentències executades en el bucle.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">for ([<em>inicialització</em>]; [<em>condició</em>]; [<em>expressió final</em>]) + <em>sentència</em> +</pre> + +<dl> + <dt><code>inicialització</code></dt> + <dd>Una expressió (incloent expressions d'assignació) o declaració de variables. Normalment s'usa per inicialitzar una variable al contador. Opcionalment aquesta expressió pot declarar noves variables amb la paraula clau <code>var</code>. Aquestes variables no sóc locals pel bucle, és a dir, es troben en el mateix àmbit en que es troba el bucle <code>for</code>. El resultat d'aquesta expressió es descarta.</dd> + <dt><code>condició</code></dt> + <dd>Una expressió que s'avalua abans de cada iteració del bucle. Si aquesta expressió s'avalua<strong> true,</strong> s'executa la <code>sentència</code>. Aquesta prova condicional és opcional. Si s'omet, la condició sempre avalua<strong> true.</strong> Si l'expressió avalua a false, l'execució salta a la primera expressió que es trobi després del constructe <code>for</code>.</dd> + <dt><code>Expressió final</code></dt> + <dd>Una expressió per ser avaluada al final de cada iteració del bucle. Això passa abans de la següent avaluació de <code>condició</code>. Generalment s'usa per actualitzar o incrementar la variable contador.</dd> + <dt><code>sentència</code></dt> + <dd>Una sentència que s'executa mentre la condició avalui a true. Per executar múltiples sentències dins el bucle, utilitzeu una sentència <a href="/en-US/docs/JavaScript/Reference/Statements/block" title="JavaScript/Reference/Statements/block">block</a> (<code>{ ... }</code>) per agrupar aquestes sentències. Per no executar cap sentència dins el bucle, utilitzeu una sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">buida</a> (<code>;</code>).</dd> +</dl> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example.3A_Using_for" name="Example.3A_Using_for">Exemple: Fer servir <code>for</code></h3> + +<p>La següent sentència <code>for</code> comença declarant la variable <code>i</code> i l'inicialitza a <code>0</code>. Comprova que <code>i</code> és menor que nou, realitza les dues sentències següents<u>, i incrementa <code>i</code> per 1 després de cada pas pel bucle.</u></p> + +<pre class="brush: js">for (var i = 0; i < 9; i++) { + console.log(i); + // more statements +} +</pre> + +<h3 id="Exemple_Expressions_for_opcionals"><u>Exemple: Expressions <code>for</code> opcionals</u></h3> + +<p>Les tres expressions en la capçalera del bucle <code>for</code> són opcionals.</p> + +<p>Per exemple, enel bloc d'<em>inicialització</em> no es requereix inicialitzar les variablesblock it is not required to initialize variables:</p> + +<pre class="brush: js">var i = 0; +for (; i < 9; i++) { + console.log(i); + // more statements +} +</pre> + +<p><u>Com el bloc d'<em>inicialització</em>, el bloc de <em>condició</em> també és opcional. Si s'omet aquesta expressió, s'ha de d'assegurar de trencar el bucle en el cos per evitar crear un bucle infinit.</u></p> + +<pre class="brush: js">for (var i = 0;; i++) { + console.log(i); + if (i > 3) break; + // more statements +}</pre> + +<p>També es pot ometre els tres blocs. Un alre cop, assegureu-vos de fer servir la sentència <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/break">break</a></code> per finalitzar el bucle i també modificar (incrementar) una variable, de forma que la condició per la sentència break esdevé certa en algun moment determinat.</p> + +<pre class="brush: js">var i = 0; + +for (;;) { + if (i > 3) break; + console.log(i); + i++; +} +</pre> + +<h3 id="Example.3A_Using_for_without_the_statement_section" name="Example.3A_Using_for_without_the_statement_section"><u>Exemple: Fer servir <code>for</code> amb una sentència buida</u></h3> + +<p><u>El cicle <code>for</code> següent callcula la possició de desplaçament d'un node en la secció <em>[expressió final]</em>, i per tant no requereix l'ús d'una <code>sentència</code> o secció de sentències <code><a href="/en-US/docs/JavaScript/Reference/Statements/block" title="JavaScript/Reference/Statements/block">block</a></code>, es fa servir una sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">buida</a> en el seu lloc</u>.</p> + +<pre class="brush: js">function showOffsetPos (sId) { + var nLeft = 0, nTop = 0; + + for (var oItNode = document.getElementById(sId); // initialization + oItNode; // condition + nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent) // final-expression + /* empty statement */ ; + + console.log("Offset position of \"" + sId + "\" element:\n left: " + nLeft + "px;\n top: " + nTop + "px;"); +} + +// Example call: + +showOffsetPos("content"); + +// Output: +// "Offset position of "content" element: +// left: 0px; +// top: 153px;"</pre> + +<div class="note"><strong>Nota:</strong> En aquest cas, quan no es fa servir la secció <code>sentència</code>, <strong>es fica un punt i coma immediatament despres de la declaració del cicle</strong>.</div> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.6.3', 'for statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-for-statement', 'for statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/break", "break")}}</li> + <li>{{jsxref("Statements/continue", "continue")}}</li> + <li>{{jsxref("Statements/empty", "empty")}}</li> + <li>{{jsxref("Statements/while", "while")}}</li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a></li> + <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code></a></code></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/function/index.html b/files/ca/web/javascript/referencia/sentencies/function/index.html new file mode 100644 index 0000000000..37deff748f --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/function/index.html @@ -0,0 +1,171 @@ +--- +title: function +slug: Web/JavaScript/Referencia/Sentencies/function +translation_of: Web/JavaScript/Reference/Statements/function +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p>La <strong>declaració d'una funció</strong> defineix una funció amb uns paràmetres especificats.</p> + +<div class="noinclude"> +<p>També podeu definir funcions fent servir el constructor {{jsxref("Function")}} i un {{jsxref("Operators/function", "function expression")}}.</p> +</div> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">function <em>nom</em>([<em>paràm</em>,[, <em>paràm</em>,[..., <em>paràm</em>]]]) { + [<em>sentències</em>] +} +</pre> + +<dl> + <dt><code>nom</code></dt> + <dd>El nom de la funció.</dd> +</dl> + +<dl> + <dt><code>paràm</code></dt> + <dd>El nom d'un argument que se li passarà a la funció. Una funció pot arribar a tenir fins a 255 arguments.</dd> +</dl> + +<dl> + <dt><code>sentències</code></dt> + <dd>Les sentències que comprenen el cos de la funció.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Una funció creada amb una declaració d'una funció és un objecte <code>Function</code> i té totes les propietats, mètodes i comportament dels objectes <code>Function</code>. Vegeu {{jsxref("Function")}} per informació detallada sobre funcions.</p> + +<p>Una funció també es pot crear fent servir una expressió (vegeu {{jsxref("Operators/function", "function expression")}}).</p> + +<p>Per defecte, les funcions retornen <code>undefined</code>. Per tal de retornar qualsevol altre valor, la funció ha de tenir una sentència {{jsxref("Statements/return", "return")}} que especifiqui el valor que retorna.</p> + +<h3 id="Funcions_creades_de_forma_condicional">Funcions creades de forma condicional</h3> + +<p>Les funcions poden ser declarades de forma condicional, és a dir, una sentència d'una funció pot estar aniuada dins d'una sentència <code>if</code>. La majoria de navegadors que no siguin Mozilla tractaran aquestes declaracions condicionals com a declaracions incondicionals i crearàn la funció tant si la condició és vertadera o falsa, vegeu <a href="http://kangax.github.io/nfe/#function-statements">aquest article</a> per una visió general. Per tant, no s'haurien de fer servir, per creacions condicionals feu servir expressions de funcions.</p> + +<h3 id="Declarar_les_funcions_abans_de_definir-les_(hosting)">Declarar les funcions abans de definir-les <em>(hosting)</em></h3> + +<p><u>Function declarations in JavaScript are hoisting the function definition</u>. En Javascript es pot ser cridar una funció abans de declarar-la. En anglès existeix un ver:</p> + +<pre class="brush: js">hoisted(); // logs "foo" + +function hoisted() { + console.log("foo"); +} +</pre> + +<p>Vegeu que {{jsxref("Operators/function", "function expressions")}} no estan hoisted:</p> + +<pre class="brush: js">notHoisted(); // TypeError: notHoisted is not a function + +var notHoisted = function() { + console.log("bar"); +}; +</pre> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Exemple_Fer_servir_function">Exemple: Fer servir <code>function</code></h3> + +<p>El codi següent declara una funció que retorna la quantitat total de vendes, quan se li dóna el nombre d'unitat venudes d' <code>a</code>, <code>b</code>, i <code>c</code>.</p> + +<pre class="brush: js">function calc_sales(units_a, units_b, units_c) { + return units_a*79 + units_b * 129 + units_c * 699; +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició iniciañ. Implementat en JavaScript 1.0</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-13', 'Function definition')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Functions_and_function_scope", "Functions and function scope")}}</li> + <li>{{jsxref("Function")}}</li> + <li>{{jsxref("Operators/function", "function expression")}}</li> + <li>{{jsxref("Statements/function*", "function* statement")}}</li> + <li>{{jsxref("Operators/function*", "function* expression")}}</li> + <li>{{jsxref("GeneratorFunction")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/if...else/index.html b/files/ca/web/javascript/referencia/sentencies/if...else/index.html new file mode 100644 index 0000000000..b45e9bea3c --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/if...else/index.html @@ -0,0 +1,203 @@ +--- +title: if...else +slug: Web/JavaScript/Referencia/Sentencies/if...else +translation_of: Web/JavaScript/Reference/Statements/if...else +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>La <strong><a href="/en-US/docs/Web/JavaScript/Guide/Statements">sentència </a>if </strong>executa una sentència si una condició especificada és certa. Si la condició és falsa, opcionalment s'executa una declaració diferent.</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">if (<em>condició</em>) + <em>sentència1</em> +[else + <em>sentència2</em>] +</pre> + +<dl> + <dt><code>condició</code></dt> + <dd><u>Una <a href="/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Expressions">expressió</a> que esdevé o certa o falsa.</u></dd> +</dl> + +<dl> + <dt><code>sentència1</code></dt> + <dd><u>És la sentència que s'executa si la <code>condició</code> esdevé certa. Pot ser qualsevol declaració, incloent més sentències <code>if</code> aniuades.</u> Per executar múltimples sentències, es fa servir una sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/block" title="en/JavaScript/Reference/Statements/block">block</a> ({ ... }) per agrupar aquestes sentències, si no es vol executar cap sentència, es fa servir una sentència <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">buida</a>.</dd> +</dl> + +<dl> + <dt><code>sentència2</code></dt> + <dd>La sentència que s'executa si la <code>condition</code> esdevé falsa i hi ha la clàusula <code>else</code>. Pot ser qualsevol sentència, incloent sentències en<u> block </u>i més sentències <code>if</code> aniuades.</dd> +</dl> + +<h2 id="Description" name="Description">Descripció</h2> + +<p>Múltiples sentències <code>if...else</code> poden aniuar-se per crear una clàusula <code>else if</code>. Fixeu-vos que no hi ha la paraula clau <code>elseif</code> (en una paraula) en JavaScript.</p> + +<pre class="eval">if (<em>condició1</em>) + <em>sentència1</em> +else if (<em>condició2</em>) + <em>sentència2</em> +else if (<em>condició3</em>) + <em>sentència3</em> +... +else + <em>sentènciaN</em> +</pre> + +<p>Per veure com funciona, així es com es veuria amb l'aniuament degudament indentat.</p> + +<pre class="eval">if (<em>condició1</em>) + <em>sentència1</em> +else + if (<em>condició2</em>) + <em>sentència2</em> + else + if (<em>condició3</em>) +... +</pre> + +<p>Per executar múltiples sentències dins una clàusula, utilitzeu una sentència block (<code>{ ... }</code>) per agrupar aquestes sentències. En general, és una bona pràctica utilitzar sempre sentències de <u>block</u>, especialment en codi que inclogui sentències <code>if</code> aniuades:</p> + +<pre class="eval">if (<em>condició</em>) { + <em>sentència1</em> +} else { + <em>sentència2</em> +} +</pre> + +<p>No confongueu els valors booleans primitius <code>true</code> i <code>false</code> amb els valors cert i fals de l'objecte <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean" title="en/JavaScript/Reference/Global_Objects/Boolean">Boolean</a>. Qualsevol valor que no sigui <code>undefined</code>, <code>null</code>, <code>0</code>, <code>NaN</code>, o una cadena buida (<code>""</code>), i qualsevol objecte, incloent un objecte Boolean que tingui el valor fals, esdevé cert quan es passa a una sentència condicional. Per exemple:</p> + +<pre class="brush: js">var b = new Boolean(false); +if (b) // this condition evaluates to true +</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_if...else" name="Example:_Using_if...else">Exemple: Fer servir <code>if...else</code></h3> + +<pre class="brush: js">if (cipher_char === from_char) { + result = result + to_char; + x++; +} else { + result = result + clear_char; +} +</pre> + +<h3 id="Exemple_Fer_servir_else_if">Exemple: Fer servir <code>else if</code></h3> + +<p>Vegeu que no hi ha cap sintaxi <code>elseif</code> en JavaScript. Tanmateix, es pot escriure amb un espai entre <code>else</code> i <code>if</code>:</p> + +<pre class="brush: js">if (x > 5) { + +} else if (x > 50) { + +} else { + +}</pre> + +<h3 id="Example:_Assignment_within_the_conditional_expression" name="Example:_Assignment_within_the_conditional_expression">Exemple: Assignació dins l'expressió condicional</h3> + +<p>És recomanable no utilitzar assignacions simples en una expressió condicional, atès que l'assignació es pot confondre amb l'igualtat quan es mira per sobre el codi. Per exemple, no utilitzeu el codi següent:</p> + +<pre class="brush: js">if (x = y) { + /* do the right thing */ +} +</pre> + +<p>Si necessiteu usar una assignació dins d'una expressió condicional, una pràctica comuna és ficar parèntesis addicionals embolcallant l'assignació. Per exemple:</p> + +<pre class="brush: js">if ((x = y)) { + /* do the right thing */ +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificacó</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definció inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.5', 'if statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-if-statement', 'if statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/block", "block")}}</li> + <li>{{jsxref("Statements/switch", "switch")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/index.html b/files/ca/web/javascript/referencia/sentencies/index.html new file mode 100644 index 0000000000..e91e446cbf --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/index.html @@ -0,0 +1,129 @@ +--- +title: Statements and declarations +slug: Web/JavaScript/Referencia/Sentencies +tags: + - JavaScript + - NeedsTranslation + - Reference + - TopicStub + - statements +translation_of: Web/JavaScript/Reference/Statements +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>Les aplicacions de JavaScript consisteixen en sentències amb una sintaxi adequada. Una sola sentència pot ocupar múltiples línies. Múltiples sentències poden donar-se en una sola línia si cada sentència és separada per un punt i coma. Això no és una paraula clau sino un grup de paraules claus.</p> + +<h2 id="Sentències_i_declaracions_per_categoria">Sentències i declaracions per categoria</h2> + +<p>Per a un llistat alfabetic vegeu el menú de l'esquerra.</p> + +<h3 id="Control_de_fluxe">Control de fluxe</h3> + +<dl> + <dt>{{jsxref("Sentencies/block", "Block")}}</dt> + <dd>Una sentència bloc s'utilitza per a agrupar zero o més sentències. El bloc és delimitat per un parell de claus {}.</dd> + <dt>{{jsxref("Sentencies/break", "break")}}</dt> + <dd>Acaba la sentència bucle, switch o label actual i transfereix el control del programa a la sentència que segueix la sentència que tot just s'ha acabat.</dd> + <dt>{{jsxref("Sentencies/continue", "continue")}}</dt> + <dd>Acaba l'execució de les sentències de la iteració del bucle actual o bé del bucle especificat, i continua l'execució del bucle amb la següent iteració.</dd> + <dt>{{jsxref("Sentencies/Empty", "Empty")}}</dt> + <dd>Una sentència buida s'utilitza per a proporcionar una sentència que no fa res quan JavaScript espera una sentència però no se'n necesita executar cap.</dd> + <dt>{{jsxref("Sentencies/if...else", "if...else")}}</dt> + <dd>Executa una sentència si la condició especificada és certa. Si la condició és falsa una altra sentència pot ser executada.</dd> + <dt>{{jsxref("Sentencies/switch", "switch")}}</dt> + <dd>Evalua una expressió, compara el resultat de l'evaluació amb una clàusula de tipus <em>case </em>i executa la sentència pertanyent a la clàusula case que és igual a l'evaluació de l'expressió.</dd> + <dt>{{jsxref("Sentencies/throw", "throw")}}</dt> + <dd>Llença una excepció definida per l'usuari.</dd> + <dt>{{jsxref("Sentencies/try...catch", "try...catch")}}</dt> + <dd>Executa un bloc de sentències i, en cas que alguna sentència del bloc llenci una excepció, executa una sentència alternativa.</dd> +</dl> + +<h3 id="Declaracions">Declaracions</h3> + +<dl> + <dt>{{jsxref("Sentencies/var", "var")}}</dt> + <dd>Declara una variable, opcionalment li assigna un valor.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/let", "let")}}</dt> + <dd>Declara un bloc de variables d'àmbit local, opcionalment li assigna un valor.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/const", "const")}}</dt> + <dd>Declara una constant de només lectura.</dd> +</dl> + +<h3 id="Funcions">Funcions</h3> + +<dl> + <dt>{{jsxref("Sentencies/function", "function")}}</dt> + <dd>Declara una funció amb els paràmetres especificats.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/function*", "function*")}}</dt> + <dd>Funcions generadores que permeten escriure <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">iteradors</a> de forma més senzilla.</dd> + <dt>{{jsxref("Sentencies/return", "return")}}</dt> + <dd>Especifica el valor que retornarà una funció.</dd> +</dl> + +<h3 id="Iteracions">Iteracions</h3> + +<dl> + <dt>{{jsxref("Sentencies/do...while", "do...while")}}</dt> + <dd>Crea un bucle que executa una sentència especificada fins que la condició de test s'evalua a fals. La condició s'evalua després d'executar la sentència, resultant en que la sentència especificada s'executa al menys un cop.</dd> + <dt>{{jsxref("Sentencies/for", "for")}}</dt> + <dd>Crea un bucle que sonsisteix en tres expressions opcionals embolcallades per parèntesi i separades per punts i coma, seguides d'una sentència que s'executarà en el bucle.</dd> + <dt>{{deprecated_inline()}} {{non-standard_inline()}} {{jsxref("Sentencies/for_each...in", "for each...in")}}</dt> + <dd>Itera sobre tots els valors de les propietats d'un objecte, assignant a una variable determinada el seu valor. Per a cada propietat distinta s'executa una sentència.</dd> + <dt>{{jsxref("Sentencies/for...in", "for...in")}}</dt> + <dd>Itera sobre les propietats enumerables d'un objecte en un ordre arbitrari. Per a cada propietat distinta s'executa una sentència.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/for...of", "for...of")}}</dt> + <dd>Itera sobre objectes iterables (incloent <a href="https://developer.mozilla.org/en-US/docs/Core_JavaScript_1.5_Reference/Global_Objects/Array" title="Array">arrays</a>, objectes similar a arrays, <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Iterators_and_Generators" title="Iterators and generators">iteradors i generadors</a>), executant una sentència per al valor de cada propietat distinta.</dd> + <dt>{{jsxref("Sentencies/while", "while")}}</dt> + <dd>Crea un bucle que executa la sentència donada mentre una condició sigui certa. La condició s'evalua abans d'executar la sentència.</dd> +</dl> + +<h3 id="Altres">Altres</h3> + +<dl> + <dt>{{jsxref("Sentencies/debugger", "debugger")}}</dt> + <dd>Invoca qualsevol funcionalitat de depuració que estigui disponible. Si no hi ha cap funcionalitat de depuració disponible aquesta sentència no te cap efecte.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/export", "export")}}</dt> + <dd>Utilitzada per a exportar funcions per a que aquestes estiguin disponibles per a imports a mòduls externs, en altres scripts.</dd> + <dt>{{experimental_inline()}} {{jsxref("Sentencies/import", "import")}}</dt> + <dd>Utilitzada per a importar funcions exportades d'un mòdul extern, un altre script.</dd> + <dt>{{jsxref("Sentencies/label", "label")}}</dt> + <dd>Asigna un identificador a una sentència. Aquest identificador pot ser emprat en sentències <code>break</code> o <code>continue</code>.</dd> +</dl> + +<dl> + <dt>{{deprecated_inline()}} {{jsxref("Sentencies/with", "with")}}</dt> + <dd>Extèn la cadena d'àmbit per a una sentència.</dd> +</dl> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + <tr> + <td>ECMAScript 1a Edició</td> + <td>Standard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12', 'Statements')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'Llenguatge ECMAScript: Sentències i declaracions')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Nou: function*, let, for...of, yield</td> + </tr> + </tbody> +</table> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators">Operadors</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/return/index.html b/files/ca/web/javascript/referencia/sentencies/return/index.html new file mode 100644 index 0000000000..5b3c3e902a --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/return/index.html @@ -0,0 +1,183 @@ +--- +title: return +slug: Web/JavaScript/Referencia/Sentencies/return +translation_of: Web/JavaScript/Reference/Statements/return +--- +<div> +<div>{{jsSidebar("Statements")}}</div> +</div> + +<h2 id="Resum">Resum</h2> + +<p><u>La <strong>sentència</strong> <strong><code>return</code> </strong>finalitza l'execució de la funció i especifica un valor que retornarà a la funció que l'ha cridat.</u></p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">return [[expressió]]; </pre> + +<dl> + <dt><code>expressió</code></dt> + <dd>L'expressió que retorna. En cas d'ometre-s, es retorna <code>undefined</code>.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Quan una sentència <code>return</code> és cridada dins una funció, l'execució d'aquesta funció s'atura. En cas d'especificar-se, un valor donat és retornat a la funció que l'ha cridat. Si s'omet l'expressió, es retornarà <code>undefined</code>. En les següents sentències return totes aturen l'execució de la funció:</p> + +<pre class="brush: js">return; +return true; +return false; +return x; +return x + y / 3; +</pre> + +<h3 id="Insersió_automàtica_de_punt_i_coma">Insersió automàtica de punt i coma</h3> + +<p><u>La sentència <code>return</code> es veu afectada per la <a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion">insersió automàtica de punt i coma ()</a>. No hi ha cap final de línia entre la paraula clau <code>return</code> i l'expressió permesa.</u></p> + +<pre class="brush: js">return +a + b; + +// is transformed by ASI into + +return; +a + b; +</pre> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<h3 id="Example:_Using_return" name="Example:_Using_return">Exemple: Fer servir <code>return</code></h3> + +<p>La següent funció retorna el quadrat del seu argument, <code>x</code>, on <code>x</code> és un nombre.</p> + +<pre class="brush: js">function square(x) { + return x * x; +} +</pre> + +<h3 id="Example:_Interrupt_a_function" name="Example:_Interrupt_a_function">Exemple: Interrompre una funció</h3> + +<p>Una funció s'atura immediatament en el moment en que es crida <code>return</code>.</p> + +<pre class="brush: js">function counter() { + for (var count = 1; ; count++) { // infinite loop + console.log(count + "A"); // until 5 + if (count === 5) { + return; + } + console.log(count + "B"); // until 4 + } + console.log(count + "C"); // never appears +} + +counter(); + +// Output: +// 1A +// 1B +// 2A +// 2B +// 3A +// 3B +// 4A +// 4B +// 5A +</pre> + +<h3 id="Exemple_Returning_a_function">Exemple: Returning a function</h3> + +<p>Per més informació sobre closures, llegiu la <a href="/en-US/docs/Web/JavaScript/Guide/Closures">Guia de JavaScript</a>.</p> + +<pre class="brush: js">function magic(x) { + return function calc(x) { return x * 42}; +} + +var answer = magic(); +answer(1337); // 56154 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.9', 'Return statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-return-statement', 'Return statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope" title="En/Core_JavaScript_1.5_Reference/Functions">Funcions</a></li> + <li><a href="/en-US/docs/Web/JavaScript/Guide/Closures">Closures</a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/throw/index.html b/files/ca/web/javascript/referencia/sentencies/throw/index.html new file mode 100644 index 0000000000..37d13b964b --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/throw/index.html @@ -0,0 +1,228 @@ +--- +title: throw +slug: Web/JavaScript/Referencia/Sentencies/throw +translation_of: Web/JavaScript/Reference/Statements/throw +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La <strong>sentència <code>throw</code> </strong>llença una excepció definida per l'usuari. L'execució de la funció actual s'aturarà (les sentències de després de <code>throw</code> no s'executaran) i es passarà el control al primer bloc <a href="/en-US/docs/Web/JavaScript/Reference/Statements/try...catch"><code>catch</code></a> en la pila de crides. Si no existeix cap bloc <code>catch</code> en les funcions de crides, el programa s'acabarà.</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox">throw <em>expressió</em>; </pre> + +<dl> + <dt><code>expressió</code></dt> + <dd>L'expressió que es llença.</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Utilitzeu una sentència <code>throw</code> per llençar una excepció. Quan es llença l'excepció, <code>expression</code> especifica el valor de l'excepció. Cadascun dels exemples següents llença una excepció:</p> + +<pre class="brush: js">throw "Error2"; // genera una excepció amb un valor tipus cadena +throw 42; // genera una excepció amb el valor 42 +throw true; // genera una excepció amb el valor true</pre> + +<p>Tingueu en compte que la sentència <code>throw</code> queda afectada per <a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion">insersió automàtica de punts i comes (ASI)</a> ja que no es permet cap final de línia<u> </u>entre la paraula clau <code>throw</code> i l'expressió.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Llença_un_objecte">Llença un objecte</h3> + +<p>Es pot especificar un objecte quan es llença una excepció. Es pot fer referència a les propietats de l'objecte en el bloc <code>catch</code>. L'exemple següent crea un objecte <code>myUserException</code> de tipus <code>UserException</code> i l'utilitza en una sentència <code>throw</code>.</p> + +<pre class="brush: js">function UserException(message) { + this.message = message; + this.name = "UserException"; +} +function getMonthName(mo) { + mo = mo-1; // Adjustar el número de mes per un índex d'array (1=Jan, 12=Dec) + var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", + "Aug", "Sep", "Oct", "Nov", "Dec"]; + if (months[mo] !== undefined) { + return months[mo]; + } else { + throw new UserException("InvalidMonthNo"); + } +} + +try { + // sentències que s'intentarà exxecutar + var myMonth = 15; // 15 està fora del rang i llençarà l'excepció + monthName = getMonthName(myMonth); +} catch (e) { + monthName = "unknown"; + logMyErrors(e.message, e.name); // es pasa l'objecte excepció al manegador d'errors +} +</pre> + +<h3 id="Un_altre_exemple_de_llençar_un_objecte">Un altre exemple de llençar un objecte</h3> + +<p>L'exemple següent comprova si una cadena donada és un codi postal per EE.UT. SI el codi postal utilitza un format invàlid, la sentència throw llença una excepció creant un objecte de tipus <code>ZipCodeFormatException</code>.</p> + +<pre class="brush: js">/* + * Crea un objecte ZipCode. + * + * Els formats acceptats per a un codi postal són: + * 12345 + * 12345-6789 + * 123456789 + * 12345 6789 + * + * Si l'argument passat al constructor ZipCode no s'adjusta a + * un d'aquests patrons, es llença una excepció. + */ + +function ZipCode(zip) { + zip = new String(zip); + pattern = /[0-9]{5}([- ]?[0-9]{4})?/; + if (pattern.test(zip)) { + // el valor del codi postal serà el primer trobat dins la cadena + this.value = zip.match(pattern)[0]; + this.valueOf = function() { + return this.value + }; + this.toString = function() { + return String(this.value) + }; + } else { + throw new ZipCodeFormatException(zip); + } +} + +function ZipCodeFormatException(value) { + this.value = value; + this.message = "no s'adjusta al format esperat per a un codi postal"; + this.toString = function() { + return this.value + this.message; + }; +} + +/* + * Això podria trobar-se en un script que valida adresses d'EE.UU. + */ + +const ZIPCODE_INVALID = -1; +const ZIPCODE_UNKNOWN_ERROR = -2; + +function verifyZipCode(z) { + try { + z = new ZipCode(z); + } catch (e) { + if (e instanceof ZipCodeFormatException) { + return ZIPCODE_INVALID; + } else { + return ZIPCODE_UNKNOWN_ERROR; + } + } + return z; +} + +a = verifyZipCode(95060); // retorna 95060 +b = verifyZipCode(9560); // retorna -1 +c = verifyZipCode("a"); // retorna -1 +d = verifyZipCode("95060"); // retorna 95060 +e = verifyZipCode("95060 1234"); // retorna 95060 1234 +</pre> + +<h3 id="Rellençar_una_excepció">Rellençar una excepció</h3> + +<p>Es pot utilitzar <code>throw</code> per rellençar una excepció després de caputrar-la. L'exemple següent captura una excepció amb un valor numèric i el rellença si el valor és major de 50. L'excepció rellençada es propaga fins a la funció que l'envolcalla o al nivell superior de forma que l'usuari ho vegi.</p> + +<pre class="brush: js">try { + throw n; // llença una excepció amb un valor numèric +} catch (e) { + if (e <= 50) { + // sentències per manejar excepcions 1-50 + } else { + // no es pot manejar aquesta excepció, per tant es rellença + throw e; + } +} +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES3')}}</td> + <td>{{Spec2('ES3')}}</td> + <td>Definició inicial. Implementat en JavaScript 1.4</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.13', 'throw statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-throw-statement', 'throw statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/try...catch"><code>try...catch</code></a></li> +</ul> diff --git a/files/ca/web/javascript/referencia/sentencies/while/index.html b/files/ca/web/javascript/referencia/sentencies/while/index.html new file mode 100644 index 0000000000..d3997dbefd --- /dev/null +++ b/files/ca/web/javascript/referencia/sentencies/while/index.html @@ -0,0 +1,131 @@ +--- +title: while +slug: Web/JavaScript/Referencia/Sentencies/while +translation_of: Web/JavaScript/Reference/Statements/while +--- +<div>{{jsSidebar("Statements")}}</div> + +<h2 id="Summary" name="Summary">Resum</h2> + +<p>la <strong>sentència while</strong> crea un bucle que executa una sentència especificada sempre que la condició s'avalui certa. La condició s'avalua abans d'executar la sentència..</p> + +<h2 id="Syntax" name="Syntax">Sintaxi</h2> + +<pre class="syntaxbox">while (<em>condició</em>) { + <em>sentència</em> +}</pre> + +<dl> + <dt><code>condició</code></dt> + <dd>Una expressió que s'avalua abans de cada passada del bucle. Si aquesta condició esdevé certa, s'executa la <code>sentència</code>. Quan la condició esdevé falsa, l'execució continua amb la sentència posterior al bucle <code>while</code>.</dd> + <dt><code>sentència</code></dt> + <dd>Una sentència que s'executa sempre que la condició esdevingui certa. Per executar múltiples sentències dins un bucle, podeu fer ús de la sentència <a href="/en-US/docs/JavaScript/Reference/Statements/block" title="JavaScript/Reference/Statements/block">block</a> (<code>{ ... }</code>) per agrupar aquestes sentències.</dd> +</dl> + +<h2 id="Examples" name="Examples">Exemples</h2> + +<p>El següent bucle <code>while</code> itera sempre que <code>n</code> sigui menor que tres.</p> + +<pre class="brush:js">var n = 0; +var x = 0; + +while (n < 3) { + n++; + x += n; +}</pre> + +<p>En cada iteració, el bucle incrementa <code>n</code> i ho suma a <code>x</code>. Per tant, <code>x</code> i <code>n</code> prenen els següents valors:</p> + +<ul> + <li>Després de la primera volta: <code>n</code> = 1 i <code>x</code> = 1</li> + <li>Després de la segona volta: <code>n</code> = 2 i <code>x</code> = 3</li> + <li>Després de la tercera volta: <code>n</code> = 3 i <code>x</code> = 6</li> +</ul> + +<p>Després de completar la tercera volta, la condició <code>n</code> < 3 ja no esdevé més certa, i per tant finalitza el bucle.</p> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>1a edició de ECMAScript.</td> + <td>Estàndard</td> + <td>Definició inicial.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-12.6.2', 'while statement')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-while-statement', 'while statement')}}</td> + <td>{{Spec2('ES6')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + <td>{{ CompatVersionUnknown() }}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Vegeu també</h2> + +<ul> + <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li> + <li>{{jsxref("Statements/for", "for")}}</li> +</ul> diff --git a/files/ca/web/javascript/referencia/sobre/index.html b/files/ca/web/javascript/referencia/sobre/index.html new file mode 100644 index 0000000000..b1fa0734b3 --- /dev/null +++ b/files/ca/web/javascript/referencia/sobre/index.html @@ -0,0 +1,44 @@ +--- +title: Sobre aquesta referència +slug: Web/JavaScript/Referencia/Sobre +translation_of: Web/JavaScript/Reference/About +--- +<p>{{JsSidebar}}</p> + +<p>La referència de JavaScript serveix com a repositori de coneixement del llenguatge. Hom trobarà aquí el llenguatge descrit en detall. Durant el transcurs d'escriure codi en JavaScript, aquestes pàgines seran de gran ajut com a referència (d'aquí el títol). Si el que es pretén és aprendre JavaScript, o el que es necessita ajuda a l'hora d'entendre algunes de les seves capacitats o característiques, trobarà la informació que buaca a la <a href="/ca/docs/Web/JavaScript/Guide">guia de JavaScript</a>.</p> + +<p>El llenguatge de programació JavaScript està pensat per a ser utilitzat sota un entorn més gran, ja sigui un navegador web, scripts de servidor o quelcom similar. Aquesta referència intenta majoriariament ser agnòstica quant a l'entorn i no per tant no està adreçada únicament a un entorn donat pel navegador web.</p> + +<h2 id="On_trobar_informació_sobre_JavaScript">On trobar informació sobre JavaScript</h2> + +<p>La documentació de les característiques bàsiques de Javascript (<a href="/ca/docs/Web/JavaScript/Language_Resources">ECMAScript</a> pur, majoritàriament) inclou el següent:</p> + +<ul> + <li>La <a href="/ca/docs/Web/JavaScript/Guide">guia de JavaScript</a></li> + <li>La <a href="/ca/docs/Web/JavaScript/Reference">referència de JavaScript</a></li> +</ul> + +<p>Si s'és nou quant a JavaScript, es recomana començar per la <a href="/ca/docs/Web/JavaScript/Guide">guia</a>. Un cop assolits els fonaments, la <a href="/ca/docs/Web/JavaScript/Reference">referència</a> esdevindrà útil per obtindre més detalls sobre objectes individuals i construccions del llenguatge.</p> + +<h2 id="Estructura_de_la_referència">Estructura de la referència</h2> + +<p>La referència de JavaScript es composa dels següents capítols:</p> + +<dl> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Global_Objects">Objectes bàsics estandard</a></dt> + <dd>Aquest capítol documenta tots els objectes standard proporcionats per JavaScript, així com els seus mètodes i propietats.</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Statements">Sentències i declaracions</a></dt> + <dd>Una aplicació en JavaScript consisteix en un conjunt de sentències amb una sintaxi adequada. Una sola sentència pot ocupar més d'una línia. Tanmateix múltimples sentències poden aparèixer en una única línia si estan separades per un punt i coma (;).</dd> + <dt><a href="/ca/docs/Web/JavaScript/Reference/Functions">Funcions</a></dt> + <dd>Capítol dedicat a les funcions en JavaScript.</dd> + <dt><a href="/ca/docs/Web/JavaScript/New_in_JavaScript">Històric de versions</a></dt> + <dd>Aquest capítol mostra les diferències entre les diferents versions de JavaScript.</dd> +</dl> + +<h2 id="Més_pàgines_de_referència">Més pàgines de referència</h2> + +<ul> + <li><a href="/ca/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features">Característiques obsoletes i en desús</a></li> + <li><a href="/ca/docs/Web/JavaScript/Reference/Lexical_grammar">Gramàtica lèxica</a></li> + <li><a href="/ca/docs/Web/JavaScript/Data_structures">Tipus de dades i estructures de dades</a></li> +</ul> diff --git a/files/ca/web/reference/api/index.html b/files/ca/web/reference/api/index.html new file mode 100644 index 0000000000..68a12909a3 --- /dev/null +++ b/files/ca/web/reference/api/index.html @@ -0,0 +1,65 @@ +--- +title: Web API reference +slug: Web/Reference/API +tags: + - API + - Landing + - Reference + - Web + - web design +translation_of: Web/Reference/API +--- +<p>La Web ofereix una àmplia gamma d'APIs per realitzar diverses tasques útils. Es pot accedir a ells mitjançant el codi de Javascript, i et permeten fer qualsevol cosa, des de fer ajustos menors a qualsevol {{domxref("window")}} or{{domxref("element")}}, per generar gràfics intricats i efectes d'àudio a través de API com <span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/Web/WebGL">WebGL</a></span> i <span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/Web_Audio_API">Web Audio</a>.</span></p> + +<p>Cada interfície individual a través de totes les APIs està llistada en l' <a href="https://developer.mozilla.org/en-US/docs/Web/API">index.</a></p> + +<p><span id="result_box" lang="ca"><span>També</span> <span>hi ha una</span> <a href="https://developer.mozilla.org/en-US/docs/Web/Reference/Events">llista de tots els esdeveniments disponibles</a> <span>en la referència</span> <span>d'esdeveniment.</span></span></p> + +<div class="cleared topicpage-table"> +<div class="section"> +<dl> + <dt><a href="/en-US/docs/DOM">Document Object Model</a></dt> + <dd>El DOM és una API que permet l'accés i la modificació del document actual. Permet la manipulació del document {{domxref("Node")}} i {{domxref("Element")}}. HTML, XML i SVG s'han ampliat per manipular els seus elements específics.</dd> + <dt>APIs Dispositius</dt> + <dd>Aquest conjunt d'APIs permet l'accés a diverses característiques de hardware disponibles a les pàgines web i aplicacions. E.g. <a href="/en-US/docs/WebAPI/Using_Light_Events">Ambient Light Sensor API</a>, <a href="/en-US/docs/WebAPI/Battery_Status" title="WebAPI/Battery_Status">Battery Status API</a>, <a href="/en-US/docs/Using_geolocation" title="Using_geolocation">Geolocation API</a>, <a href="/en-US/docs/WebAPI/Pointer_Lock" title="API/Pointer_Lock_API">Pointer Lock API</a>, <a href="/en-US/docs/WebAPI/Proximity" title="WebAPI/Proximity">Proximity API</a>, <a href="/en-US/docs/WebAPI/Detecting_device_orientation" title="WebAPI/Detecting_device_orientation">Device Orientation API</a>, <a href="/en-US/docs/WebAPI/Managing_screen_orientation" title="WebAPI/Detecting_device_orientation">Screen Orientation API</a>, <a href="/en-US/docs/WebAPI/Vibration" title="WebAPI/WebBluetooth">Vibration API</a>.</dd> + <dt>APIs Comunicacions</dt> + <dd>Aquestes APIs permeten a les pàgines web i a les aplicacions que es comuniquen amb altres pàgines o dispositius. E.g. <a href="/en-US/docs/WebAPI/Network_Information" title="WebAPI/Network_Information">Network Information API</a>, <a href="/en-US/docs/WebAPI/Using_Web_Notifications" title="/en-US/docs/WebAPI/Using_Web_Notifications">Web Notifications</a>, <a href="/en-US/docs/WebAPI/Simple_Push" title="WebAPI/Push_Notifications">Simple Push API</a>.</dd> + <dt id="Data_management_APIs">APIs Gestió de dades</dt> + <dd>Les dades d'usuari poden ser emmagatzemades i administrades usant aquest conjunt d'APIs. E.g. <a href="/en-US/docs/WebAPI/FileHandle_API" title="WebAPI/FileHandle_API">FileHandle API</a>, <a href="/en-US/docs/IndexedDB" title="IndexedDB">IndexedDB</a>.</dd> +</dl> + +<p>A més d'aquestes APIs que estan disponibles a qualsevol lloc web o aplicació, un conjunt d'APIs més potents de Mozilla estan disponibles per a aplicacions amb privilegis i certificats.</p> + +<dl> + <dt>APIs Privilegis</dt> + <dd>Una aplicació privilegiada és una aplicació instal·lada que s'ha atorgat drets específics per part de l'usuari. APIs privilegiats inclosos: <a href="/en-US/docs/WebAPI/TCP_Socket" title="WebAPI/TCP_Socket">TCP Socket API</a>, <a href="/en-US/docs/WebAPI/Contacts" title="WebAPI/Contacts">Contacts API</a>, <a href="/en-US/docs/WebAPI/Device_Storage_API" title="WebAPI/Device_Storage_API">Device Storage API</a>, <a href="/en-US/docs/DOM/Using_the_Browser_API" title="DOM/Using_the_Browser_API">Browser API</a>, <a href="/en-US/docs/WebAPI/Camera" title="WebAPI/Camera">Camera API</a>.</dd> + <dt>APIs Certificats</dt> + <dd>Una aplicació certificada és una aplicació de baix nivell que realitza operacions crítiques en un sistema operatiu com el sistema Firefox OS. Les aplicacions menys privilegiades interactuan amb aquestes aplicacions utilitzant Web Activities. Certificats API inclosos:<a href="/en-US/docs/WebAPI/WebBluetooth" title="WebAPI/WebBluetooth"> Bluetooth API</a>, <a href="/en-US/docs/WebAPI/Mobile_Connection" title="WebAPI/Mobile_Connection">Mobile Connection API</a>, <a href="/en-US/docs/WebAPI/Network_Stats" title="WebAPI/Network_Stats">Network Stats API</a>, <a href="/en-US/docs/WebAPI/WebTelephony" title="WebAPI/WebTelephony">Telephony</a>, <a href="/en-US/docs/WebAPI/WebSMS" title="WebAPI/WebSMS">WebSMS</a>, <a href="/en-US/docs/WebAPI/WiFi_Information" title="WebAPI/WiFi_Information">WiFi Information API</a>, <a href="/en-US/docs/WebAPI/Power_Management" title="WebAPI/Power_Management">Power Management API</a>, <a href="/en-US/docs/WebAPI/Settings" title="WebAPI/Settings">Settings API</a>, <a href="/en-US/docs/WebAPI/Idle" title="WebAPI/Device_Storage_API">Idle API</a>, <a href="/en-US/docs/WebAPI/Permissions" title="WebAPI/Permissions">Permissions API</a>, <a href="/en-US/docs/WebAPI/Time_and_Clock" title="WebAPI/Time_and_Clock">Time/Clock API</a>.</dd> +</dl> +</div> + +<div class="section"> +<h2 class="Community" id="Comunitat">Comunitat</h2> + +<p>Uneix-te a la comunitat de la Web API en la nostra llista de correu o grup de notícies:</p> + +<ul> + <li><a class="external" href="https://lists.mozilla.org/listinfo/dev-webapi">llista de correu</a></li> + <li><a href="news://news.mozilla.org/mozilla.dev.webapi">grup de notícies</a></li> + <li><a class="external" href="http://groups.google.com/group/mozilla.dev.webapi">Google Group</a></li> + <li><a class="external" href="http://groups.google.com/group/mozilla.dev.webapi/feeds">Web feed</a></li> +</ul> + +<p>També, assegura't d'unir-te al debat en directe al canal <a href="irc://irc.mozilla.org/webapi">#webapi</a> en el <a class="external" href="https://wiki.mozilla.org/IRC">IRC</a>.</p> + +<h2 class="Related_Topics" id="Temes_relacionats"><span class="short_text" id="result_box" lang="ca"><span>Temes</span> <span>relacionats</span></span></h2> + +<p><span class="short_text" id="result_box" lang="ca"><span>Aquests temes</span> <span>també</span> <span>poden</span> <span>ser d'interès</span><span>:</span></span></p> + +<ul> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/API">Índex de tots els interfícies Web API.</a></li> +</ul> +</div> +</div> + +<p> </p> diff --git a/files/ca/web/reference/index.html b/files/ca/web/reference/index.html new file mode 100644 index 0000000000..76d452efd8 --- /dev/null +++ b/files/ca/web/reference/index.html @@ -0,0 +1,27 @@ +--- +title: Referència de tecnologies web +slug: Web/Reference +tags: + - Landing + - Reference + - Web +translation_of: Web/Reference +--- +<p>{{draft()}}<br> + El Web oberta es construeix a partir d'una sèrie de tecnologies que requereixen un coneixement adequat per tal d'utilitzar-los. A continuació trobareu els enllaços al nostre material de referència per a cada un d'ells.</p> + +<h2 class="Documentation" id="Tecnologies_Web"><span class="short_text" id="result_box" lang="ca"><span>Tecnologies Web</span></span></h2> + +<p>És recomanable que ja t'iniciïs a la web, però, no és absolutament necessari.</p> + +<dl> + <dt><strong><a href="/en-US/docs/Glossary/HTML">HTML</a></strong> — <span class="short_text" id="result_box" lang="ca"><span>estructuració de la</span> <span>Web</span></span></dt> + <dd><span id="result_box" lang="ca"><span>El <strong>llenguatge</strong></span><strong> <span>de marcat</span> <span>d'hipertext</span></strong> <span>s'utilitza per definir</span> <span>i</span> <span>descriure el</span> <span>contingut</span> <span>semàntic</span> </span> (<a href="/en-US/docs/Glossary/markup">markup</a>) <span id="result_box" lang="ca"><span>d'una</span> <span>pàgina</span> <span>web</span> <span>en un format</span> <span>ben estructurat.</span></span><br> + HTML proporciona un mitjà per crear documents estructurats, formats per blocs anomenats <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">elements HTML</a> que estan delineats per les <a href="https://developer.mozilla.org/en-US/docs/Glossary/Tag">etiquetes</a>, escrites usant parèntesis angulars: alguns introdueixen continguts a la pàgina directament, altres proporcionen informació sobre el text del document i poden incloure altres etiquetes com sub-elements . Òbviament, els navegadors no les mostrens, ja que s'utilitzen per interpretar el contingut de la pàgina.<br> + <br> + <a href="/en-US/Learn/HTML/Introduction_to_HTML">Introducció a HTML</a> | <a href="/en-US/Learn/HTML">Aprendre HTML</a> | <a href="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a> | <a href="/en-US/docs/Web/Guide/HTML">Guia del desenvolupador</a> | <a href="/en-US/docs/Web/HTML/Element">Element de referència</a> | <strong><a href="/en-US/docs/Web/HTML/Reference">referència</a></strong></dd> + <dt><strong><a href="/en-US/docs/Glossary/CSS">CSS</a></strong> — estil del Web</dt> + <dd>Les <strong>fulles d'estil en cascada</strong> s'utilitzen per descriure l'aparença del contingut Web.<br> + <br> + <a href="/en-US/Learn/CSS/Introduction_to_CSS">Introducció a CSS</a> | <a href="/en-US/docs/Web/Guide/CSS/Getting_started">Primers passos amb CSS</a> | <a href="/en-US/Learn/CSS">Aprendre CSS</a> | <a href="/en-US/docs/Web/CSS/CSS3">CSS3 </a>| <a href="/en-US/docs/Web/Guide/CSS">Guia del desenvolupador</a> | <a href="/en-US/docs/Web/CSS/Common_CSS_Questions">Preguntes comunes de CSS</a> | <strong><a href="/en-US/docs/Web/CSS/Reference">referència</a></strong></dd> +</dl> diff --git a/files/ca/web/tutorials/index.html b/files/ca/web/tutorials/index.html new file mode 100644 index 0000000000..49e6e91d1a --- /dev/null +++ b/files/ca/web/tutorials/index.html @@ -0,0 +1,253 @@ +--- +title: Tutorials +slug: Web/Tutorials +tags: + - Beginner + - CSS + - Code + - Guide + - HTML + - JavaScript + - MDN + - Tutorial + - Web Fundamental + - Web_Design +translation_of: Web/Tutorials +--- +<p>Els enllaços d'aquesta pàgina condueixen a una varietat de tutorials i material de formació. Ja sigui que estigueu començant l'aprenentatge dels conceptes bàsics, o si sou un gat vell en el desenvolupament web, podeu trobar recursos útils aquí per obtenir les millors pràctiques. Aquests recursos són creats per empreses amb visió de futur i desenvolupadors web que han abraçat els estàndards oberts i les millors pràctiques per al desenvolupament web i que proporciona o permet traduccions, a través d'una llicència de contingut obert, com Creative Commons.</p> + +<h2 class="Documentation" id="Documentation" name="Documentation">Tutorials HTML</h2> + +<h3 id="Nivell_Introductori">Nivell Introductori</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="/en-US/docs/Web/Guide/HTML/Introduction">Introducció a HTML</a></strong></dt> + <dd>El que és HTML, el que fa, la seva història en breu, i el que l'estructura d'un document HTML es sembla. Els articles que segueixen a aquest és una mirada a cada part individual d'HTML amb molta més profunditat.</dd> + <dt><strong><a href="http://reference.sitepoint.com/html/page-structure" rel="external">Estructura bàsica d'una pàgina Web</a> (SitePoint)</strong></dt> + <dd>Aprèn com els elements HTML encaixen en un quadre més gran.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/HTML/Element">MDN Referència dels Elements HTML</a></strong></dt> + <dd>Una referència completa dels elements HTML, i com els diferents navegadors els donen suport.</dd> + <dt><strong><a href="http://wikiversity.org/wiki/Web_Design/HTML_Challenges" rel="external">HTML Reptes</a> (Wikiversity)</strong></dt> + <dd>Utilitzeu aquests reptes per perfeccionar els vostres coneixements d'HTML (per exemple, "Haig de fer servir un element <h2> o un element <strong> ?"), centrant-se en el significatiu marge de guany.</dd> +</dl> +</div> +</div> + +<h3 id="Nivell_Avançat">Nivell Avançat</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/Tips_for_Authoring_Fast-loading_HTML_Pages">Suggeriments per crear pàgines HTML de càrrega ràpida</a></strong></dt> + <dd>Optimitzar les pàgines web per proporcionar un lloc més sensible per als visitants i reduir la càrrega en el servidor web i connexió a Internet.</dd> + <dt><strong><a href="http://www.html5rocks.com/tutorials/" rel="external">Tutorial HTML5</a> (HTML5 Rocks)</strong></dt> + <dd>Realitzar una visita guiada a través de codi que utilitza característiques d'HTML5.</dd> + <dt><strong><a href="http://www.alistapart.com/articles/semanticsinhtml5/" rel="external">Semàntica en HTML5</a> (A List Apart)</strong></dt> + <dd>Aprendre el sentit del marcat que és extensible i compatible amb versions posteriors.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/Canvas_tutorial">Tutorial Canvas</a></strong></dt> + <dd>Aprendre a dibuixar gràfics usant scripts i elements canvas.</dd> + <dt><strong><a href="http://html5doctor.com/" rel="external">Doctor HTML5</a></strong></dt> + <dd>Articles sobre l'ús d'HTML5 en aquest moment.</dd> + <dt><strong><a href="http://www.elated.com/articles/html5-audio/" rel="external">L'alegria d'HTML5 Audio</a> (Exultant)</strong></dt> + <dd>Aprèn a fer servir l'element HTML audio per inserir sons en les vostre pàgines web fàcilment. Un munt d'exemples de codi s'inclouen en el tutorial.</dd> +</dl> +</div> +</div> + +<h2 class="Documentation" id="Documentation" name="Documentation">Tutorial Javascript</h2> + +<h3 id="Nivell_Introductori_2">Nivell Introductori</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="/en-US/docs/Learn/JavaScript/First_steps">JavaScript Primers Passos</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>JavaScript</span> <span>tutorial</span> <span>per a principiants</span> <span>que s'escriu</span> <span>com a part</span> <span>de l'<a href="https://developer.mozilla.org/en-US/docs/Learn">Àrea d'Aprenentatge</a></span><a href="https://developer.mozilla.org/en-US/docs/Learn"> </a><span>de</span> <span>MDN</span><span>.</span></span></dd> + <dt><strong><a href="http://www.codecademy.com/">Codecademy</a> (Codecademy)</strong></dt> + <dd>Codecademy és una manera fàcil d'aprendre el codi JavaScript. És interactiu i ho pots fer amb els teus amics.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Getting_Started">Introducció a JavaScript</a></strong></dt> + <dd>Què és JavaScript i com pot ajudar?</dd> + <dt><strong><a href="http://docs.webplatform.org/wiki/tutorials/javascript_best_practices" rel="external">JavaScript Millors Pràctiques</a><a href="http://docs.webplatform.org/wiki/tutorials/javascript_best_practices" title="http://docs.webplatform.org/wiki/tutorials/javascript_best_practices"> </a>(WebPlatform.org)</strong></dt> + <dd>Aprendre sobre algunes de les millors pràctiques òbvies i (no tan) òbvies en escriure JavaScript.</dd> +</dl> +</div> +</div> + +<h3 id="Nivell_Intermedi">Nivell Intermedi</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/A_re-introduction_to_JavaScript">Una Re-Introducció a JavaScript</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>recapitulació</span> <span>del llenguatge de</span> <span>programació JavaScript</span> <span>dirigit als</span> <span>desenvolupadors</span> <span>de nivell</span> <span>intermedi</span></span></dd> + <dt><strong><a href="http://eloquentjavascript.net/" rel="external">Eloqüent JavaScript</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>guia completa de</span> <span>les</span> <span>metodologies</span> <span>de nivell</span> <span>intermedi</span> <span>i</span> <span>avançat</span> <span>de JavaScript.</span></span></dd> + <dt><strong><a href="http://speakingjs.com/es5/" rel="external">Parlant JavaScript</a> (Dr. Axel Rauschmayer)</strong></dt> + <dd><span id="result_box" lang="ca"><span>Per als</span> <span>programadors que</span> <span>volen</span> <span>aprendre</span> <span>JavaScript</span> <span>ràpida</span> <span>i adequadament,</span> <span>i per als</span> <span>programadors</span> <span>de JavaScript que</span> <span>desitgen</span> <span>aprofundir els seus</span> <span>coneixements</span> <span>i</span><span>/</span><span>o</span> <span>buscar temes</span> <span>específics.</span></span></dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/" rel="external">Patrons de disseny esencial JavaScript</a> (Addy Osmani)</strong></dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>introducció als</span> <span>patrons</span> <span>de disseny</span> <span>essencials</span> <span>de JavaScript.</span></span></dd> + <dt><strong><a href="http://www.yuiblog.com/blog/2007/01/24/video-crockford-tjpl/" rel="external">El llenguatge de programació JavaScript</a> (YUI Blog)</strong></dt> + <dd><span id="result_box" lang="ca"><span>Douglas</span> <span>Crockford</span> <span>explora</span> <span>el llenguatge</span> <span>com </span><span>és avui,</span> <span>i</span> <span>com va arribar</span> <span>a ser.</span></span></dd> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/Introduction_to_Object-Oriented_JavaScript">Introducció a Javascript Orientat a Objectes</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>Aprendre sobre</span> <span>el model</span> <span>d'objectes</span> <span>de JavaScript.</span></span></dd> +</dl> +</div> +</div> + +<h3 id="Nivell_avançat">Nivell avançat</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide">Guia JavaScript</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>Una guia</span> <span>completa, actualitzada</span> <span>regularment</span> <span>per a JavaScript</span> <span>per a tots</span> <span>els</span> <span>nivells</span> <span>d'aprenentatge,</span> <span>des de principiants</span> <span>fins a</span> <span>avançats.</span></span></dd> + <dt><strong><a href="https://github.com/getify/You-Dont-Know-JS" rel="external">No saps JS</a> (Kyle Simpson)</strong></dt> + <dd>Una sèrie de llibres que ens permeten aprofundir en els mecanismes bàsics del llenguatge JavaScript.</dd> + <dt><strong><a href="http://ejohn.org/apps/learn/" rel="external">Aprenentatge avançat JavaScript</a> (John Resig)</strong></dt> + <dd>Guia avançada de JavaScript de John Resig's .</dd> + <dt><strong><a href="http://www.elated.com/articles/javascript-dom-intro/" rel="external">Introducció al DOM JavaScript</a> (Exultant)</strong></dt> + <dd>Què és el Document Object Model, i per què és útil? Aquest article us donarà una suau introducció a aquesta potent funció de JavaScript.</dd> + <dt><strong><a href="http://yuiblog.com/blog/2006/10/20/video-crockford-domtheory/" rel="external">Un API Inconvenient: La Teoria del DOM</a> (YUI Blog)</strong></dt> + <dd>Douglas Crockford explica el Document Object Model.</dd> + <dt><strong><a href="http://yuiblog.com/blog/2006/11/27/video-crockford-advjs/" rel="external">JavaScript avançat</a> (YUI Blog)</strong></dt> + <dd>Douglas Crockford mira de prop els patrons de codis de les que els programadors de JavaScript poden triar en l'autoria de les seves aplicacions.</dd> + <dt><strong><a href="http://javascript.crockford.com/" rel="external">JavaScript Tresor</a> (Douglas Crockford)</strong></dt> + <dd>Accedir a una valuosa col·lecció de tot el contingut de JavaScript per Douglas Crockford.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="http://bonsaiden.github.com/JavaScript-Garden/" rel="external">JavaScript Jardí</a></strong></dt> + <dd>Documentació de les parts més peculiars de JavaScript.</dd> + <dt><strong><a href="http://exploringjs.com/es6/" rel="external">Explorar ES6</a> (Dr. Axel Rauschmayer)</strong></dt> + <dd>Informació fiable i detallada sobre ECMAScript 6.</dd> + <dt><strong><a href="http://yuiblog.com/blog/2008/07/22/non-blocking-scripts/" rel="external">Descàrregues de JavaScript sense bloqueig</a> (YUI Blog)</strong></dt> + <dd>Suggeriments sobre com millorar el rendiment de descàrrega de pàgines que contenen JavaScript.</dd> + <dt><strong><a href="http://shichuan.github.io/javascript-patterns" rel="external">Patrons Javascipt</a></strong></dt> + <dd>Un patró Javascript i una col.lecció antipatrons que cobreix els patrons de funció, patrons jQuery, patrons de jQuery plugin, patrons de disseny, patrons generals, literals i els patrons de construcció, els patrons de creació d'objectes, patrons de reutilització de codi, DOM.</dd> + <dt><strong><a href="http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/">Com funcionen els navegadors</a></strong></dt> + <dd><span id="result_box" lang="ca"><span>Un article</span> <span>d'investigació</span> <span>detallada</span> <span>que descriu els</span> <span>diferents</span> <span>navegadors</span> <span>moderns</span><span>, els seus</span> <span>motors,</span> <span>la</span> <span>renderització</span> <span>de pàgines,</span> <span>etc.</span></span></dd> + <dt><a href="https://github.com/bolshchikov/js-must-watch">Videos JavaScript</a> (GitHub)</dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>col·lecció de vídeos</span> <span>JavaScript</span> <span>per veure</span></span>.</dd> +</dl> +</div> +</div> + +<h3 id="Desenvolupament_d'extensions"><span class="short_text" id="result_box" lang="ca"><span>Desenvolupament</span> <span>d'extensions</span></span></h3> + +<div class="row topicpage-table" style="width: 100%;"> +<div class="section"> +<dl> + <dt><strong><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Escriu la teva primera WebExtension</a></strong></dt> + <dd>Un passeig a través de la creació d'un WebExtension per Firefox, de principi a fi.</dd> + <dt><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Afegir un botó a la barra d'eines</a></dt> + <dd>Afegir botons a la barra d'eines del navegador usant WebExtension.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modificació d'una pàgina web</a></dt> + <dd>Un passeig a través de la modificació d'una pàgina web utilitzant WebExtensions.</dd> + <dt><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Intercepció de Peticions HTTP</a></dt> + <dd>Usar WebExtensions per interceptar i modificar peticions.</dd> +</dl> +</div> +</div> + +<h2 class="Documentation" id="Documentation" name="Documentation">Tutorials CSS</h2> + +<h3 id="Nivesll_introductori">Nivesll introductori</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/CSS/Getting_Started">Inici en CSS</a></strong></dt> + <dd>Aquest tutorial us presenta les fulles d'estil en cascada (CSS). Us guiarà a través de les funcions bàsiques de CSS amb exemples pràctics que podeu provar en el vostre ordinador.</dd> + <dt><strong><a href="http://en.wikiversity.org/wiki/Web_Design/CSS_Classes" rel="external">Selector Classes CSS</a> (Wikiversity)</strong></dt> + <dd>Què són les classes en CSS?</dd> + <dt><strong><a href="http://en.wikiversity.org/wiki/Web_Design/External_CSS" rel="external">CSS Extern</a> (Wikiversity)</strong></dt> + <dd>Ús de CSS des d'una fulla d'estil externa.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="http://www.w3.org/MarkUp/Guide/Style" rel="external">Afegir un toc d'estil</a> (W3C)</strong></dt> + <dd>Una guia breu per a principiants de com dissenyar pàgines web amb CSS.</dd> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/Common_CSS_Questions">Preguntes comuns de CSS</a></strong></dt> + <dd>Preguntes i respostes comuns per als principiants.</dd> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors" title="http://codeavengers.com/">Selectors CSS</a></strong></dt> + <dd>Una introducció als selectors CSS</dd> +</dl> +</div> +</div> + +<h3 id="Nivell_Intermedi_2">Nivell Intermedi</h3> + +<div class="row topicpage-table" style="width: 100%;"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/CSS/CSS_Reference">Referéncia CSS</a></strong></dt> + <dd>Referència completa de CSS, amb detalls sobre el suport de Firefox i altres navegadors.</dd> + <dt><strong><a href="http://en.wikiversity.org/wiki/Web_Design/CSS_challenges" rel="external">Reptes CSS</a> (Wikiversity)</strong></dt> + <dd>Sigueu flexibles en les vostres habilitats CSS, i mireu on necessiteu més pràctica.</dd> + <dt><strong><a href="http://www.alistapart.com/articles/css-positioning-101/" rel="external">Posicionament 101 CSS</a> (Una llista apart)</strong></dt> + <dd>Ús del posicionament per a un disseny compatible amb estàndards, lliure de taules.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="http://www.alistapart.com/articles/progressiveenhancementwithcss/" rel="external">Millora progersiva amb CSS</a> (Una llista apart)</strong></dt> + <dd>Integreu la millora progressiva en les vostres pàgines web amb CSS.</dd> + <dt><strong><a href="http://www.alistapart.com/articles/fluidgrids/" rel="external">Reixetes fluides</a> (Una llista apart)</strong></dt> + <dd>Esquemes de disseny que redimensionan de manera fluïda amb la finestra del navegador, sense deixar d'utilitzar una quadrícula tipogràfica.</dd> +</dl> +</div> +</div> + +<h3 id="Nivell_advançat">Nivell advançat</h3> + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_transforms">Ùs de les transformacions CSS</a></strong></dt> + <dd>Aplicar la rotació, esbiaixar, escalar i desplaçar usant CSS.</dd> + <dt><strong><a href="https://developer.mozilla.org/en-US/docs/CSS/CSS_transitions">Transicions CSS</a></strong></dt> + <dd>Les transicions CSS, forman part del projecte d'especificació CSS3, proporcionen una manera d'animar als canvis en les propietats CSS, en lloc de que els canvis tinguin un efecte immediat.</dd> +</dl> +</div> + +<div class="section"> +<dl> + <dt><strong><a href="http://www.html5rocks.com/tutorials/webfonts/quick/" rel="external">Guia ràpida per implementar Fonts Web amb @font-face</a> (HTML5 Rocks)</strong></dt> + <dd><span id="result_box" lang="ca"><span>La característica</span> <span>@ font</span><span>-</span><span>face</span> <span>de CSS3</span> <span>permet l'ús</span> <span>de tipus de</span> <span>lletra</span> <span>personalitzats</span> <span>al web</span> <span>d'una manera</span> <span>accessible,</span> <span>manipulable i</span> <span>escalable.</span></span></dd> + <dt><strong><a href="http://davidwalsh.name/starting-css" rel="external">Començar a escriure CSS</a> (David Walsh)</strong></dt> + <dd><span id="result_box" lang="ca"><span>Una</span> <span>introducció a</span> <span>les</span> <span>eines</span> <span>i</span> <span>metodologies</span> <span>per escriure</span> <span>CSS</span> <span>més</span> <span>succinta,</span> <span>mantenible</span> <span>i escalable.</span></span></dd> +</dl> +</div> +</div> diff --git a/files/ca/web/xslt/index.html b/files/ca/web/xslt/index.html new file mode 100644 index 0000000000..0f0b11ab0f --- /dev/null +++ b/files/ca/web/xslt/index.html @@ -0,0 +1,19 @@ +--- +title: XSLT +slug: Web/XSLT +tags: + - XSLT +translation_of: Web/XSLT +--- +<p> </p> +<div> + <b>Extensible Stylesheet Language Transformations (XSLT)</b> és un llenguatge basat en <a href="ca/XML">XML</a> emprat, juntament amb programari específic per a processar-lo, per a la transformació de documents XML. Tot i que el procés es referencia com a "transformació", el document original no varia, sino que es crea un de nou document XML basat en el contingut del document existent. A les hores, el nou document pot ser serialitzat pel processador mitjançant una sintaxi XML estàndard o qualsevol altra format, com per exemple <a href="ca/HTML">HTML</a> o text pla. El XSLT és força emprat per convertir dades entre diferents esquemes XML o per convertir dades XML en pàgines web o documents PDF.</div> +<h4 id="Temes_relacionats" name="Temes_relacionats">Temes relacionats</h4> +<dl> + <dd> + <a href="ca/XHTML">XHTML</a>, <a href="ca/XML">XML</a></dd> +</dl> +<p><span class="comment">Categories</span></p> +<p><span class="comment">Interwiki Language Links</span></p> +<p> </p> +<p>{{ languages( { "en": "en/XSLT", "es": "es/XSLT", "fr": "fr/XSLT", "ja": "ja/XSLT", "nl": "nl/XSLT", "pl": "pl/XSLT", "pt": "pt/XSLT" } ) }}</p> diff --git a/files/ca/web_development/index.html b/files/ca/web_development/index.html new file mode 100644 index 0000000000..6d4d015174 --- /dev/null +++ b/files/ca/web_development/index.html @@ -0,0 +1,100 @@ +--- +title: Desenvolupament web +slug: Web_Development +tags: + - NeedsTranslation + - TopicStub + - Web Development +translation_of: Web/Guide +--- +<p><strong>El desenvolupament web</strong> comprèn tots els aspectes de construir un portal o aplicació web.</p> +<p>Aprèn a crear qualsevol cosa des d'una simple web fins a una web complexa i altament interactiva emprant les darreres tecnologies web fullejant els articles que et mostrem aquí.</p> +<table class="topicpage-table"> + <tbody> + <tr> + <td> + <h2 class="Documentation" id="DOCUMENTACIÓ">DOCUMENTACIÓ</h2> + <h3 id="Tecnologies">Tecnologies</h3> + <dl> + <dt> + <a class="internal" href="/en-US/docs/Web_Development/Introduction_to_Web_development" title="en-US/docs/Web Development/Introduction to Web development">Introducció al desenvolupament web</a></dt> + <dd> + Una guia de com desenvolupar webs.</dd> + <dt> + <a class="internal" href="/en-US/docs/HTML" rel="internal">HTML</a></dt> + <dd> + L'<em> HyperText Markup Language</em> (en català, Llenguatge de Marcació de Hipertext) és el llenguatge basic per a la creació de webs i d'altres documents mostrats en un navegador.</dd> + <dt> + <a class="internal" href="/en-US/docs/CSS" rel="internal">CSS</a></dt> + <dd> + Els <em>Cascading Style Sheets</em> (en català, Fulls d'estils en cascada) fan possible construir sofisticats <em>layouts</em> per a les planes web.</dd> + <dd> + [NT: <em>layouts</em> podria traduir-se per estructura o disposició dels elements, però donada la generalitzada acceptació del terme en anglés he optat per no adaptar-lo al català]</dd> + <dt> + <a class="internal" href="/en-US/docs/JavaScript" rel="internal">JavaScript</a></dt> + <dd> + JavaScript és el llenguatge de programació (<em>scripting</em>) més comú per programar aplicacions web en el costat del navegador. A més, és emprat en el desenvolupament del software de Mozilla.</dd> + <dt> + <a class="internal" href="/en-US/docs/DOM" rel="internal">DOM</a></dt> + <dd> + De l'anglès <em>Document Object Model</em> (en català, Model de l'Objecte Document) és una API per a documents HTML i XML, que proporciona una representació de l'estructura del document i els seus elements que hom pot modificar per a alterar la visualització del mateix.</dd> + <dt> + <a class="internal" href="/en-US/docs/AJAX" rel="internal">AJAX</a></dt> + <dd> + De l'anglès <em>Asynchronous JavaScript and XML</em> (Javascript i XML Asincrònic) més que una tecnologia és una combinació de tecnologies, usant Javascript i d'altres tecnologies del costat del navegador per comunicar-se amb el servidor sense recarregar la plana sencera, lo qual permet crear aplicacions dinàmiques de qualitat.</dd> + <dt> + <a class="internal" href="/en-US/docs/XHTML" title="en-US/docs/XHTML">XHTML</a></dt> + <dd> + De l'anglès <em>Extensible HyperText Markup Language</em> (Llenguatge de marcació hipertext extensible) és un llenguatge de marcatge com el HTML però que respecte les regles formals del XML que ofereix una sintaxi més estricta però més robusta i potent que l'HTML.</dd> + <dt> + <a class="internal" href="/en-US/docs/SVG" rel="internal">SVG</a></dt> + <dd> + De l'anglès <em>Scalable Vector Graphics</em> (gràfics de vectors escalables) és un llenguatge de marcatge XML per dibuizar gràfics vectorials 2D.</dd> + </dl> + <h3 id="Estratègies">Estratègies</h3> + <dl> + <dt> + <a class="internal" href="/en-US/docs/Web_Standards" title="en-US/docs/Web Standards">Estàndars web</a></dt> + <dd> + Aprèn com fer que la teva web o aplicació pugui ser emprada pel màxim nombre possible d'usuaris gràcies a fer-la compatible amb la web oberta (<em>open web</em>).</dd> + <dt> + <a href="/en-US/docs/Web_Development/Responsive_Web_design" title="en-US/docs/Web development/Responsive Web design">Disseny web sensible </a></dt> + <dd> + Juga amb el CSS per a presentar el mateix contingut a qualsevol plataforma, des de telèfons mòbils fins a pantalles amples de màquines d'escriptori d'alta resolució.</dd> + <dt> + <a href="/en-US/docs/Web_development/Writing_forward-compatible_websites" title="Writing forward-compatible websites">Construir webs compatibles amb equips vells i moderns</a></dt> + <dd> + Les millors pràctiques per a crear webs que no es trenquen quan s'actualitzen els navegadors dels usuaris.</dd> + <dt> + <a href="/ca/docs/Web_Development/Mobile" title="/en-US/docs/Web development/Mobile">Construir webs pel mòbil</a></dt> + <dd> + Desenvolupar webs per ser vistes en dispositius mòbils requereix prendre certes mesures úniques a les que potser no estàn avessats els desenvolupadors habituals de webs per a navegadors d'ordinadors d'escriptori.</dd> + <dt> + <a class="internal" href="/en-US/docs/Mozilla_Web_Developer_FAQ" title="en-US/docs/Mozilla Web Developer FAQ">Preguntes freqüents del desenvolupador web respostes, per Mozilla</a></dt> + <dd> + Llegeix les respostes de Mozilla a les preguntes més freqüents dels desenvolupadors web.</dd> + </dl> + <p><span class="alllinks"><a href="/en-US/docs/tag/Web_Development" title="en-US/docs/tag/Web_Development">Veure-ho tot...</a></span></p> + </td> + <td> + <h2 class="Community" id="COMUNITAT">COMUNITAT</h2> + <ul> + <li><a class="external" href="http://hacks.mozilla.org" title="http://hacks.mozilla.org">Bloc Mozilla Hacks</a></li> + <li><a class="external" href="http://www.whatwg.org/" rel="external nofollow" title="http://www.whatwg.org/">WHAT Working Group</a></li> + <li><a class="external" href="http://webdevfeedhouse.com/" rel="external nofollow" title="http://webdevfeedhouse.com/">WebDev FeedHouse</a></li> + </ul> + <h2 class="Tools" id="EINES">EINES</h2> + <ul> + <li><a href="/en-US/docs/Tools" title="en-US/docs/Tools">Plana de les principals eines</a></li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/1843">Extensió per a navegadors: Firebug</a></li> + <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/60" rel="external nofollow" title="https://addons.mozilla.org/en-US/firefox/addon/60">Extensió per a navegadors: Web Developer</a></li> + <li><a href="/en-US/docs/Venkman" rel="internal">Venkman</a>, per depurar Javascript</li> + <li><a href="/en-US/docs/DOM_Inspector" rel="internal" title="en-US/docs/DOM Inspector">Inspector de DOM</a></li> + <li><a href="/en-US/docs/Tools/Scratchpad" title="en-US/docs/Tools/Scratchpad">Scratchpad</a></li> + </ul> + <p><span class="alllinks"><a href="/en-US/docs/tag/Web_Development:Tools" title="en-US/docs/tag/Web_Development:Tools">Veure-ho tot...</a></span></p> + </td> + </tr> + </tbody> +</table> +<p> </p> diff --git a/files/ca/web_development/mobile/a_hybrid_approach/index.html b/files/ca/web_development/mobile/a_hybrid_approach/index.html new file mode 100644 index 0000000000..da2ee0a625 --- /dev/null +++ b/files/ca/web_development/mobile/a_hybrid_approach/index.html @@ -0,0 +1,43 @@ +--- +title: Una solució híbrida +slug: Web_Development/Mobile/A_hybrid_approach +translation_of: Web/Guide/Mobile/A_hybrid_approach +--- +<p>Les bales de plata costen de trobar en el desenvolupament web — és molt més probable que empris estratègies que fan ús de vàries tècniques segons les circumstàncies. I això ens du a la nostra tercera solució pel desenvolupament web amigable amb el mòbil, que tracta d'evitar les deficiències de les altres dues solucions (<a href="/ca/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">diferents webs</a> i <a href="/ca/Web_development/Mobile/Responsive_design" title="en/Web_development/Mobile/Responsive_design">única web amb disseny sensible</a>), combinant-les.</p> +<p>Aquest enfoc híbrid se centra en atacar per separat cada un dels <a href="/ca/Web_Development/Mobile/Mobile-friendliness" title="en/Web development/Mobile/Mobile-friendliness">tres objectius del desenvolupament web per als mòbils</a>, i aplicar les millors solucions tècniques disponibles a cada un d'ells. Aquest article presenta aquí una potencial combinació de tècniques, però en altres circumstàncies pot convenir una combinació diferent. El concepte clau que cal recordar i entendre és que per resoldre les teves necesitats concretes pots combinar les tècniques que calgui de banda del servidor amb les aplicades al navegador.</p> +<h2 id="Avantatges">Avantatges</h2> +<p>El disseny sensible (<em>responsive design</em>) està força bé — ara mateix [NT: juny 2011] és la millor tècnica disponible per a fer que els nostres <em>layouts</em> web es vegin bé en una àmplia varietat de circumstàncies. Si l'ús que se li ha de donar a les versions mòbil i de PC de la teva web són suficientment similars, llavors aquesta és la solució preferible pels teus <em>layouts</em>. Encara que -no s'ha d'oblidar- pot ser una mica cansat continuament usar tècniques (CSS i Javascript) per modificar la presentació de continguts que es presenten segons el context.</p> +<p>Afortunadament, no hi ha motius tècnics que ens forcin a emprar tècniques de la banda del navegador per a aquesta tasca: tenim l'opció de fer servir la detecció del <em>user-agent</em> des de la banda del servidor per a escollir el contingut que volem mostrar a l'usuari. Això no reduirïa la complexitat d'alterar el contingut des de la banda del servidor, però encara permetria que els nostres <em>layouts</em> es beneficiessin de la flexibilitat i futura llegibilitat del disseny sensible.</p> +<p>L'ús de la detecció del <em>user-agent</em> pel contingut i no pas pel <em>layout</em> també et permetria tenir una única URL per a ambdós continguts, puix que el contingut pot adaptar la seva disposició al navegador de l'usuari. Això normalment es veu com a una <a class="external" href="http://www.w3.org/TR/mobile-bp/#OneWeb" title="W3C One Web Recommendation">bona solució</a>. En lloc de mantenir dues versions completament diferents de la web, simplement redirigim els usuaris a les planes amb el contingut que els hi escau. I donat que el disseny és sensible, saps que cada plana es veurà tan bé com és possible a la pantalla de l'usuari.</p> +<p>També podem donar solució a alguns dels problemes de rendiment del disseny sensible incorporant certes tècniques des de la banda del servidor. Per exemple, un dels punts més criticats als dissenys sensibles és que les imatges són enviades a tots els dispositius amb la mateixa resolució, incloent telèfons els quals redimensionen les imatges inteligentment. <a class="external" href="http://wurfl.sourceforge.net/utilities/imageserver.php" title="WURFL Image Server">Una tècnica</a> per a evitar aquest inconvenient empra la detecció del <em>user-agent</em> des del servidor juntament amb la llibreria de detecció de capacitat del dispositiu de <a class="external" href="http://wurfl.sourceforge.net/" title="WURFL device capability library">WURFL</a> per a enviar una imatge ja reescalada segons el dispositiu de l'usuari. Estan sorgint una <a class="external" href="http://imgble.com/" title="IMGBLE">àmplia gama</a> de <a class="external" href="http://www.sencha.com/products/io/" title="Sencha IO">productes</a> que proporcionen això com a webservice. És clar, aquesta tècnica pateix els desavantatges associats a la deteccció del <em>user-agent</em>. Però inclús si això no funciona, el rendiment no és pitjor que emprant només <a class="external" href="http://unstoppablerobotninja.com/entry/fluid-images/" title="Fluid Images">imatges fluides</a>.</p> +<p>Combinant les tècniques ja mencionades, podem obtenir una estratègia de desenvolupament web mòbil que és més flexible que les webs fetes diferents (mòbil vs. PC) i té millor rendiment que un disseny sensible pur.</p> +<h2 id="Inconvenients">Inconvenients</h2> +<p>Un inconvenient de les solucions híbrides és que poden conduir a un augment en el nombre de vies de codi que treballen en paralel, tant del costat del navegador com del servidor. Això és tradueix en un molt probablement major consum de temps en programació que d'altres solucions. Encara que amb la correcta planificació, podem tenir el codi organitzat d'una manera asequible per les tasques de manteniment.</p> +<p>Un altre inconvenient és que com que aquesta solució romàn sobre l'ús d'un disseny sensible, és més factible i eficaç per a projectes de nova planta o que ja disposen d'un <em>layout</em> flexible, però no és així per a webs que ja tenen la versió d'escriptori ben construida. De igual forma, puix que emprem la detecció del <em>user-agent</em>, hauràs d'actualitzar les regles de detecció amb el temps continuament. [NT: donat que ja s'ha esmentat que hi ha web services que faciliten aquesta tasca amb un grau òptim de fiabilitat i amb facilitat d'integració en qualsevol CMS com una extensió o llibreria, no li veig al què a aquest inconvenient... és una opinió personal].</p> +<h2 id="Quan_és_adient_escollir_aquesta_solució">Quan és adient escollir aquesta solució</h2> +<p>Sempre té sentit considerar combinar tecnologies del costat del navegador i del servidor; n'hi ha tantes opcions disponibles en aquest sentit que convé calibrar els pros i els contres de cada tècnica que emprem.</p> +<p>En molts casos, no és necesària la complexitat afegida del model híbrid. Per exemple, potser ni necesites ajustar el contingut en funció del dispositiu emprat per l'usuari —podria ser suficient sabent si una característica és present al seu navegador. Això ho podries discernir des del costat del navegador emprant una detecció per <a class="external" href="http://www.modernizr.com/docs/#s2" title="Features Detected by Modernizr">javascript</a>. No pot fer mal excavar una mica i preguntar-te al voltant de quin eix vols centrar el teu contingut en cada cas.</p> +<p>Hem parlat d'afegir tècniques del costat del servidor a un disseny sensible, però també hi ha formes d'implementar un sistema híbrid per a casos on necesites que les versions mòbil i d'escriptori siguin diferents. Podries, per exemple, augmentar la flexibilitat d'amdós versions incorporant a cada una d'elles <em>media queries</em> [NT: indicar al navegador que carregui i apliqui diferents fulls d'estils CSS segons les característiques físiques del navegador] i un <em>layout</em> flexible. D'aquesta forma podries fer que la teva versiò mòbil treballés millor -més adaptativament- sobre les tabletes.well.</p> +<h2 id="Exemples">Exemples</h2> +<p><img align="right" alt="webowonder_mobile_and_desktop-300x225.jpg" class="internal rwrap" src="/@api/deki/files/5895/=webowonder_mobile_and_desktop-300x225.jpg">Per a la web demo de Mozilla O’ Wonder, vam provar una versió bàsica de solució híbrida, amb resultats positius. Vam emprar alguns elements de disseny web sensible per donar a la web un <em>layout</em> mòbil, mentres que empràvem la deteccció de <em>user-agent</em> per a oferir videos amigables amb el mòbil i per a re-ordenar les demos si l'usuari era en un telèfon. Fes una ullada al seu codi si vols, que tenim al <a class="link-https" href="https://github.com/mozilla/webowonder/" title="Mozilla's Web O' Wonder Source Code">github</a>.</p> +<p>Ben aviat podríem estar fent més desenvolupaments en aquesta línia! De fet, una possible via per a la web principal de Mozilla s'ha esbossat amunt a la secció "Avantatges":</p> +<ul> + <li>Emprant la detecció de <em>user-agent</em>, dirigir als visitants a una plana de benvinguda per a la versió de Firefox del seu dispositiu.</li> + <li>Cada plana de la web hauria de veure's genial a una àmplia varietat de resolucions de pantalla, construint-se amb un disseny sensible en ment.</li> + <li>Hi ha plans futurs de provar de servir imatges adaptades a diferents <em>user-agent</em>.</li> +</ul> +<p>De moment no hi ha gaire que veure pel mòbil, puix que encara som a la etapa de planificació del desenvolupament, però sempre pots visitar i veure com creix el nou mozilla.org al <a class="link-https" href="https://github.com/mozilla/bedrock" title="New Mozilla.com Source Code">github</a>. Suscriu-te al bloc <a class="external" href="http://blog.mozilla.com/webdev/" title="http://blog.mozilla.com/webdev/">Mozilla Webdev</a> per assebentar-te dels progressos que fem.</p> +<h2 id="Resum">Resum</h2> +<p>No hi ha una solució única per tots els casos. Les aplicacions web que pels usuaris de la versió mòbil necesiten adaptar molt els continguts o les funcionalitats que ofereixen probablement hauran de desenvolupar una web diferent a la d'escriptori. En canvi, planes orientades al contingut que no necesiten modificar el contingut pels usuaris mòbils quedaran bastant satisfets amb un disseny web sensible. Si el que necesites és canviar només lleugerament el missatge pels usuaris mòbils, i vols conservar els beneficis d'un disseny sensible, una solució híbrida pot ser la teva millor opció. Decisions com aquesta són al cor del desenvolupament de webs mòbils: sigues concret en quan al que t'agradaria aconseguir, i escull una solució pràctica sient conscient dels avantatges i inconvenients. Bona sort!</p> +<h2 id="Enfocs_del_desenvolupament_de_webs_mòbils">Enfocs del desenvolupament de webs mòbils</h2> +<p>Llegeix els articles següents per a entendre el fons i les estratègies de desenvolupament per a mòbils.</p> +<ul> + <li><a href="/ca/Web_Development/Mobile/Mobile-friendliness" title="Wat is CSS">Què és una web amigable amb els mòbils?</a></li> + <li><a href="/ca/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">Diferents webs per la versió mòbil i la de PC</a></li> + <li><a href="/ca/Web_Development/Mobile/Responsive_design" title="en/Web development/Mobile/Responsive design">Un únic disseny sensible per la teva web</a></li> +</ul> +<div class="originaldocinfo"> + <h3 id="Informació_del_document_original">Informació del document original</h3> + <p>Aquest article va ser publicat originalment al 27 de Juny de 2011, al bloc Mozilla Webdev com "<a class="external" href="http://blog.mozilla.com/webdev/2011/06/27/approaches-to-mobile-web-development-part-4-%E2%80%93-a-hybrid-approach/" title="http://blog.mozilla.com/webdev/2011/06/27/approaches-to-mobile-web-development-part-4-%E2%80%93-a-hybrid-approach/">Approaches to Mobile Web Development Part 4 – A Hybrid Approach</a>", per Jason Grlicky.</p> +</div> +<p> </p> diff --git a/files/ca/web_development/mobile/index.html b/files/ca/web_development/mobile/index.html new file mode 100644 index 0000000000..2e1649856c --- /dev/null +++ b/files/ca/web_development/mobile/index.html @@ -0,0 +1,17 @@ +--- +title: Desenvolupament de webs per a mòbils +slug: Web_Development/Mobile +tags: + - Mobile + - NeedsTranslation + - TopicStub + - Web Development +translation_of: Web/Guide/Mobile +--- +<p>Construir webs per ser vistes en dispositius mòbils requereix prendre solucions que assegurin que la web funcioni igual de bé en dispositius mòbils com ho fa en navegadors d'escriptori. Els següents articles descriuen algunes d'aquestes solucions:</p> +<ul> + <li><a class="vt-p" href="/ca/Web_Development/Mobile/Mobile-friendliness" title="/en/Web_development/Mobile/Mobile-friendliness">Què vol dir que una web és amigable amb els mòbils?</a></li> + <li><a class="vt-p" href="/ca/Web_Development/Mobile/Separate_sites" title="en/Web_development/Mobile/Separate sites">Diferents webs per a mobil i per a PC</a></li> + <li><a class="vt-p" href="/ca/Web_Development/Mobile/Responsive_design" title="/en/Web_development/Mobile/Responsive design">Disseny sensible (<em>responsive design</em>)</a></li> + <li><a class="vt-p" href="/ca/Web_development/Mobile/A_hybrid_approach" title="A New Approach to Web Applications (external)">Una solució híbrida</a></li> +</ul> diff --git a/files/ca/web_development/mobile/mobile-friendliness/index.html b/files/ca/web_development/mobile/mobile-friendliness/index.html new file mode 100644 index 0000000000..b5ed1bbdb4 --- /dev/null +++ b/files/ca/web_development/mobile/mobile-friendliness/index.html @@ -0,0 +1,30 @@ +--- +title: Webs amigables amb els mòbils +slug: Web_Development/Mobile/Mobile-friendliness +translation_of: Web/Guide/Mobile/Mobile-friendliness +--- +<h2 id="Què_és_una_web_amigable_amb_els_mòbils">Què és una web amigable amb els mòbils?</h2> +<p>Vol dir multitud de coses segons amb qui parlis. Lo millor és veure aquest assumpte prenent com a referent els 3 objectius per a millorar l'experiència dels teus usuaris: presentació, contingut, i rendiment.</p> +<p><strong>Objectiu #1 (presentació)</strong></p> +<p><em>“Fes webs que treballin bé en qualsevol mida de pantalla.”</em></p> +<p>Avui dia els usuaris accedeixen a les webs emprant una gama amplísima de dispositius que inclou telèfons, tabletes, <em>eReaders</em>, <em>netbooks</em>, a banda dels tradicionals ordinadors d'escriptori i dels portàtils. I no cal dir que una web amb una estructura d'amplada fixe i 3 columnes, que a més usa intensivament javascript, efectes <em>mouse-over</em>, etc. no es veurà molt bé en una pantalla de 2 polzades d'amplada i un processador poc potent. En canvi, una estructura molt més aprimada, amb una estructura i uns elements redimensionats al <a class="external" href="http://www.lukew.com/ff/entry.asp?1085" title="Touch Target Sizes">tamany d'aquesta petita pantalla tàctil</a> probablement garantirà una molt millor experiència de navegació. Aquesta és la raó per la que el primer objectiu és presentar adequadament el contingut de tal manera que els usuaris mòbils tingui la vida més fàcil.</p> +<p><strong>Objectiu #2 (contingut)</strong></p> +<p><em>“Adapta els teus continguts per als usuaris mòbils.”<img align="right" alt="alaska_air_mobile_and_desktop-300x225.png" class="internal rwrap" src="/@api/deki/files/5892/=alaska_air_mobile_and_desktop-300x225.png"></em></p> +<p>Has de rumiar què deuen voler fer els que visiten la teva web des del telèfon. Un bon exemple d'això és la plana d' <a class="external" href="http://www.alaskaair.com/" title="Alaska Air">Alaska Air’s</a>. La seva web per a escriptori se centra en que els visitants facin reserves. Però probablement els usuaris mòbils estan més interessats en el <em>check-in</em> per a un vol, o veure si aquest vol s'ha retrasat. Per això van ajustar el continguts de les seves webs d'acord amb aquest raonament, i així estan atenent millor les necesitats dels usuaris mòbils.</p> +<p><strong>Objectiu #3 (rendiment)</strong></p> +<p><em>“Dona als teus usuaris una experiència fluïda, fins i tot amb una conexió lenta.”</em></p> +<p>Malgrat que la qüestió de la velocitat de conexió ha millorat força en els darrers anys, massa sovint continua sent bastant farragós la navegació sense cables des d'un dispositiu mòbil. Això fa que sigui més necesari que mai posar en pràctica <a class="external" href="http://developer.yahoo.com/performance/rules.html" title="Best Practices for Speeding Up Your Web Site">tècniques d'optimització del rendiment</a>, enviant a l'usuari exclusivament aquells bits que siguin estrictament necesaris.</p> +<h3 id="Coneix_el_teu_públic"><strong>Coneix el teu públic</strong></h3> +<p>Encara que no sigui quelcom estrictament específic de la definició de lo que és amigable amb el mòbil, definir qui i com són els teus potencials usuaris de la teva web mòbil ajuda a concretar els tres objectius anteriors. Per exemple, és absolutament crític tenir en ment a quins navegadors i dispositius et dirigiràs quan defineixis la teva estratègia. Si entre la teva audiència hi ha molts <em>early-adopters</em> [NT: gent que sol ser dels primers en adquirir les innovacions tecnològiques], llavors et pots enfocar en tabletes i telèfons amb navegadors que solen respectar els estàndars. Però si en canvi, la majoria dels teus usuaris disposen de telèfons amb navegadors de menys capacitat, això hauria de fer desestimar segons quines estratègies o dissenys com a opcions viables.</p> +<h2 id="Enfocs_pel_desenvolupament_de_webs_mòbils">Enfocs pel desenvolupament de webs mòbils</h2> +<p>Els següents enfocs difereixen en com tracten de resoldre els objectius d'usabilitat que hem estat comentant.</p> +<ul> + <li><a href="/en/Web_development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">Webs diferents per a pantalles diferents</a></li> + <li><a href="/en/Web_development/Mobile/Responsive_design" title="en/Web development/Mobile/Responsive design">Un mateix disseny però sensible (<em>responsive design</em>)</a></li> + <li><a href="/en/Web_development/Mobile/A_hybrid_approach" title="en/Web development/Mobile/Hybrid approach">Una solució híbrida</a></li> +</ul> +<div class="originaldocinfo"> + <h3 id="Informació_del_document_original">Informació del document original</h3> + <p>Originalment publicat el 4 de Maig, 2011 al bloc Mozilla Webdev com "<a class="external" href="http://blog.mozilla.com/webdev/2011/05/04/approaches-to-mobile-web-development-part-1-what-is-mobile-friendliness/" title="http://blog.mozilla.com/webdev/2011/05/04/approaches-to-mobile-web-development-part-1-what-is-mobile-friendliness/">Approaches to Mobile Web Development Part 1 - What is Mobile Friendliness?</a>", per Jason Grlicky.</p> +</div> +<p> </p> diff --git a/files/ca/web_development/mobile/responsive_design/index.html b/files/ca/web_development/mobile/responsive_design/index.html new file mode 100644 index 0000000000..4a183402c5 --- /dev/null +++ b/files/ca/web_development/mobile/responsive_design/index.html @@ -0,0 +1,48 @@ +--- +title: Disseny sensible (Responsive design) +slug: Web_Development/Mobile/Responsive_design +translation_of: Web/Progressive_web_apps +--- +<p>Com una resposta als problemes associats a l'enfoc de desenvolupament basat en dos <a href="/en/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">dissenys web separats</a> per a cada plataforma, mòbil i escriptori, una idea relativament nova (de fet <a class="external" href="http://www.alistapart.com/articles/dao/">no tant</a>) ha crescut en popularitat: oblidar-se de la detecció del <em>user-agent</em> des del servidor, i sustituir-ho per una plana que respongui del costat del client a les possibilitats del navegador. Aquest enfoc del problema s'ha convingut en anomenar-lo <a class="external" href="http://www.alistapart.com/articles/responsive-web-design/">disseny web sensible</a>. Igual que l'enfoc dels dissenys separats, el disseny web sensible té els seus avantatges i inconvenients.</p> +<h2 id="Avantatges">Avantatges</h2> +<p>Encara que inicialment no va ser proposat com a métode de creació de webs per a mòbils, el disseny sensible darrerament ha guanyat força atenció com una manera de construir webs amigables amb els mòbils evitant el doble esforç de desenvolupar un nou disseny només per a aquests dispositius de pantalla petita. Amb aquesta tècnica es pot abordar dos dels tres <a class="external" href="http://blog.mozilla.com/webdev/2011/05/04/approaches-to-mobile-web-development-part-1-what-is-mobile-friendliness/" title="Approaches to Mobile Web Development Part 1 – What is Mobile Friendliness?">objectius</a> del desenvolupament web per a mòbils:</p> +<ul> + <li><strong>Presentació</strong> — Emprant un <em>layout</em> flexible a la teva web juntament amb <em>media queries</em> de CSS [NT: fulls d'estils diferents aplicats pel navegador -compatible amb CSS3- segons les dimensions de la pantalla i altres variables configurables des dels meta-tags HTML], pots fer que la teva web es vegi bé independentment del tamany de la pantalla de l'usuari.</li> + <li><strong>Contingut</strong> — Alterant el contingut basant-te en les característiques del navegador <a class="external" href="http://www.quirksmode.org/blog/archives/2010/08/combining_media.html">via JavaScript</a>, pots adaptar el missatge a cada usuari.</li> +</ul> +<p>Certament hi ha un quants detalls xulos en aquest enfoc. Donat que no depén de la detecció del <em>user-agent</em> del navegador (des del servidor), és molt més resistent a canvis futurs en els navegadors que l'enfoc de fer un disseny per separat. Per a webs senzilles, pot ser també significativament més senzill d'implementar i mantenir que les altres opcions.</p> +<h2 id="Inconvenients">Inconvenients</h2> +<p>Malgrat tot, aquest enfoc també té les seves limitacions. Donat que el contingut és modificat en el navegador amb Javascript, s'aconsella fer canvis mínims en el contingut. Perqué en general, les coses poden anar malament molt ràpidament si intentes modificar dos conjunts de javascript que operen en paralel sobre el mateix DOM de la plana. Aquesta és la principal raó per la qual les aplicacions web no solen emprar aquest enfoc per a les seves versions mòbils.</p> +<p>Donar a la teva web actual un disseny sensible d'aquest tipus significa una reescriptura dels teus estils CSS si ara mateix no tens implementat un <a class="external" href="http://www.smashingmagazine.com/2008/06/26/flexible-layouts-challenge-for-the-future/"><em>layout</em> flexible</a>. Encara que això podria ser una bona oportunitat per a modernitzar el CSS de la teva web.</p> +<p>Per acabar, donat que has d'afegir més codi al teu javascript existent i als teus estils, l'eficiència d'aquest nou disseny pot estar per sota possiblement de l'enfoc dels dissenys web separats. No hi ha cap manera d'evitar aquest inconvenient, encara que un acurada refactorització del teu codi i dels teus estils pot estalviar-te uns quants bytes.</p> +<h2 id="Quan_és_adient_escollir_aquesta_opció">Quan és adient escollir aquesta opció</h2> +<p><a href="/@api/deki/files/5894/=teixido_responsive-300x177.png" title="teixido_responsive-300x177.png"><img align="right" alt="teixido_responsive-300x177.png" class="internal rwrap" src="/@api/deki/files/5894/=teixido_responsive-300x177.png?size=webview" style="width: 300px; height: 177px;"></a>Tal com s'ha mencionat abans, donat que els canvis de contingut poden ser peliaguts, quan adoptes aquest enfoc de disseny, no podràs donar als teus visitants mòbils una experiència notablement millor sense incrementar significativament la complexitat del teu codi.<br> + <br> + Dit això, si les versions d'escriptori i de mòbil de la teva web són bastant similars llavors aquest enfoc és una gran opció. S'escau molt bé per a webs centrades en els documents que és un cas molt bàsic que encaixa bé en qualsevol dispositiu, com per exemple planes de productes. Notaràs que els exemples a sota són tots blocs o portafolis.</p> +<h2 id="Exemples">Exemples</h2> +<p>Encara que no és un enfoc tan popular com el dels dissenys separats, augmenta cada dia el nombre de webs emprant el disseny sensible. Afortunadament, puix que tot el codi és per al navegador, si vols veure com un portal web implementa tècnicament aquest disseny és tan senzill com visitar la web i premer "Veure el codi font de la plana". Aquí tens uns quants exemples:</p> +<ul> + <li><a class="external" href="http://teixido.co/">http://teixido.co/</a> – un dels meus dissenys sensibles favorits, que tambè he capturat abans en la imatge!</li> + <li><a class="external" href="http://adactio.com/journal/1696">http://adactio.com/journal/1696</a> – un bon article per a llegir, que inclou més enllaços amb exemples</li> + <li><a class="external" href="http://thinkvitamin.com/">http://thinkvitamin.com/</a></li> + <li><a class="external" href="http://stephencaver.com/">http://stephencaver.com/</a></li> + <li><a class="external" href="http://hicksdesign.co.uk/">http://hicksdesign.co.uk/</a></li> +</ul> +<p>Malgrat ser un enfoc relativament jove, ja hi han escrites algunes recomanacions de bones pràtiques. Per exemple, si estàs desenvolupant una web desde zero amb aquest disseny sensible en ment, val la pena que <a class="external" href="http://www.lukew.com/ff/entry.asp?1117">primer generis un disseny per a pantalla petita</a>, i d'aquesta manera tindràs en compte des del principi els condicionants d'aquestes pantalles.</p> +<p>També és més convenient fer un realçament progressiu dels teus estils en lloc d'amagar elements del teu lloc usant <em>media queries</em> [NT: fulls d'estils css especifics per a certes configuracions de navegador]. D'aquesta manera, els navegadors més antics que poden no ser compatibles amb els <em>media queries</em> encara renderitzaran d'alguna manera el contingut de la web. Una excelent presentació dels avantatges d'aquest métode la trobaràs <a class="external" href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">aquí</a>.</p> +<h2 id="Enfocs_del_desenvoulpament_web">Enfocs del desenvoulpament web</h2> +<p>Fes una ullada als següents articles de fons i d'enfocs i tècniques diferents per resoldre el disseny de webs pels mòbils.</p> +<ul> + <li><a href="/en/Web_Development/Mobile/Mobile-friendliness" title="XML Web Services">Què vol dir ser un disseny amigable amb els mòbils?</a></li> + <li><a href="/en/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">Dissenys diferents per a diferents pantalles</a></li> + <li><a href="/en/Web_development/Mobile/A_hybrid_approach" title="en/Web development/Mobile/Hybrid approach">Un enfoc híbrid</a></li> +</ul> +<h2 id="Llegeix_també">Llegeix també</h2> +<ul> + <li><a href="/en/Web_Development/Responsive_Web_design" title="Responsive Web design">Disseny web sensible</a> per obtenir més recursos</li> +</ul> +<div class="originaldocinfo"> + <h3 id="Document_d'informació_original">Document d'informació original</h3> + <p>Originalment publicat al 27 Maig, 2011 al bloc Mozilla Webdev com "<a class="external" href="http://blog.mozilla.com/webdev/2011/05/27/approaches-to-mobile-web-development-part-3-responsive-design/" title="http://blog.mozilla.com/webdev/2011/05/27/approaches-to-mobile-web-development-part-3-responsive-design/">Approaches to Mobile Web Development Part 3 - Responsive Design</a>", per Jason Grlicky.</p> +</div> +<p> </p> diff --git a/files/ca/web_development/mobile/separate_sites/index.html b/files/ca/web_development/mobile/separate_sites/index.html new file mode 100644 index 0000000000..ceb9160b38 --- /dev/null +++ b/files/ca/web_development/mobile/separate_sites/index.html @@ -0,0 +1,31 @@ +--- +title: Diferents webs per a mòbil i PC +slug: Web_Development/Mobile/Separate_sites +translation_of: Web/Guide/Mobile/Separate_sites +--- +<p>La solucio de "webs diferents" per a la construcció de webs accesibles des del mòbil implica crear realment dos webs diferents (de contingut i forma) per als usuaris mòbils i pels que ens visiten des de l'escriptori de l'ordinador/portàtil. Aquesta solució -com les altres- té els seus avantatges però també els seus inconvenients.</p> +<h2 id="Avantatges">Avantatges</h2> +<p>La primera opció és de lluny la més popular i habitual: emprar des del teu codi al servidor la <a class="external" href="http://en.wikipedia.org/wiki/User_agent#User_agent_sniffing" title="User Agent Sniffing">detecció del <em>user-agent</em> del visitant</a> de la web per a redirigir o mostrar una web específicament dissenyada pels mòbils, típicament ubicada a una URL del tipus <em>m.example.com</em>. Així, aquesta tècnica que empra una lògica construida del costat del servidor resol d'un sol cop <a class="external" href="http://blog.mozilla.com/webdev/2011/05/04/approaches-to-mobile-web-development-part-1-what-is-mobile-friendliness/" title="Approaches to Mobile Web Development Part 1 – What is Mobile Friendliness?">els tres objectius del desenvolupament web</a> — si sembla que el navegador de l'usuari està corrent en un telèfon llavors la nostra aplicació li proporcionarà un contingut adaptat en tots el sentits per al mòbil i per tant optimitzat en rendiment, en tots els sentits.</p> +<p>Conceptualment senzill, aquesta és la opció més fàcil per a afegir a una web existent, especialment si estàs emprant un CMS o una aplicació web que suporta plantilles pel disseny de manera més o menys flexible. Donat que a l'usuari se li envien només continguts, estils i scripts especifics pel mòbil, aquest métode també proporciona el millor rendiment per sobre de qualsevol dels altres que aquí presentem. Per acabar, també permet donar als usuaris dos experiències completament diferents quan visiten una web o una altra, perqué realment són dos webs diferents.</p> +<h2 id="Inconvenients">Inconvenients</h2> +<p>Per desgràcia, no falten els inconvenients. Per començar, hauràs de mantenir per duplicat totes les planes de la teva web que vulguis mostrar als usuaris mòbils. Si estàs emprant un CMS, és posible reorganitzar les plantilles de la web per a minimitzar aquesta feina de duplicació. Però sempre que hi hagi una diferència entre les plantilles mòbil i d'escriptori, hi haurà una potencial font de complicacions en el teu codi. Igualment, aquesta situació incrementa el temps necesari per a afegir noves característiques o continguts a la web, perqué has d'implementar el teu codi en dos lògiques de <em>frontend</em> diferents.</p> +<p>Més important que això, hi ha el fet de que la detecció del <em>user-agent</em> és una tasca <a class="external" href="http://css-tricks.com/browser-detection-is-bad/" title="Browser Detection is Bad">inherentment defectuosa</a> i amb una alta probabilitat de que amb el pas del temps funcioni malament quan vagin sortint nous dispositius i configuracions de navegador. Cada cop que aparegui un nou navegador hauràs d'ajustar el teu algorisme de detecció per a identificar-lo. I els <em>falsos positius</em> (quan es detecta algo que no és) són particularment inconvenients: podria ser vergonyòs servir la versiò mòbil de la web a un usuari d'escriptori.</p> +<p>[NT: cal dir que hi ha llibreries i webservices que t'ajuden en aquesta detecció del user-agent amb prou fiabilitat, perqué hi ha un equip a darrera que s'encarrega de la seva continua actualització. Això garantiria bastant el que la teva aplicació de servidor sempre interpretés correctament el <em>user-agent </em>del visitant i et permet no només saber el tamany de la pantalla sinó també altres característiques com si és touch. Un bon exemple és el webservice <a href="http://wurfl.thesedays.com/" title="http://wurfl.thesedays.com/">Tera-WURFL</a>.]</p> +<h2 id="Quan_és_adient_escollir_aquesta_solució">Quan és adient escollir aquesta solució</h2> +<p><img align="right" alt="sumo_screenshot.png" class="internal rwrap" src="/@api/deki/files/5893/=sumo_screenshot.png">Primerament, si el teu públic potencial inclou usuaris amb <a class="external" href="http://www.cnet.com/8301-17918_1-10461614-85.html" title="Feature Phones Definition">telèfons vells o de capacitat limitada</a>, val la pena assenyalar que necesitaries implementar aquesta solució en algun grau sí o sí encara que no sigui completament. Això és perqué el navegador que porten alguns telèfons no solen ser compatibles amb cert codi que tú empraries normalment en una web per a l'escriptori, però en canvi s'entenen força bé amb formats com <a class="external" href="http://en.wikipedia.org/wiki/XHTML_Mobile_Profile" title="XHTML-MP">XHTML-MP</a> o el vell <a class="external" href="http://en.wikipedia.org/wiki/Wireless_Markup_Language">WML</a>.</p> +<p>Fora d'això, hi ha un cas en el que aquesta estratègia realment destaca per sobre de qualsevol altre. Si la funcionalitat que tú vols fer arribar als teus usuaris mòbils és bastant diferent de la que normalment ofereixes a la web d'escriptori, llavors usar dos webs diferents per a cada escenari és simplement <a class="external" href="http://tripleodeon.com/2010/10/not-a-mobile-web-merely-a-320px-wide-one">la millor opció</a>. Perqué així tens la opció d'enviar HTML, Javascript i CSS completament diferents als mòbils i als PCs.</p> +<p>Un altre cas on tú estaries forçat a prendre una solució com aquesta és si, per qualsevol raó, no poguessis modificar la web d'escriptori tal com està, llavors necesitaries una web 100% diferent pel mòbil.</p> +<h2 id="Exemples">Exemples</h2> +<p>La majoria de les aplicacions webs que has vist de les grans empreses a internet han optat per aquesta via, incloent <a class="external" href="http://m.facebook.com/">Facebook</a>, <a class="external" href="http://m.youtube.com/">YouTube</a>, <a class="external" href="http://m.digg.com/" title="Mobile Digg">Digg</a>, i <a class="external" href="http://m.flickr.com/" title="Mobile Flickr">Flickr</a>. De fet, Mozilla emprà aquesta solució per a les versions mòbils de <a class="link-https" href="https://addons.mozilla.org/">addons.mozilla.org</a> (AMO) i <a class="external" href="http://support.mozilla.com/">support.mozilla.org</a> (SUMO). Si volguessis veure el codi font d'aquests exemples en acció, pren-te la llibertat de consultar el <a class="link-https" href="https://github.com/jbalogh/zamboni/">repositori a github per a AMO</a> o <a class="link-https" href="https://github.com/jsocol/kitsune">SUMO</a>.</p> +<h2 id="Altres_enfocs_pel_desenvolupament_web_mòbil">Altres enfocs pel desenvolupament web mòbil</h2> +<p>Fes una ullada als següents articles sobre el desenvolupament de la web mòbil.</p> +<ul> + <li><a href="/ca/Web_development/Mobile/Mobile-friendliness" title="Wat is CSS">Què és una web amigable amb el mòbil?</a></li> + <li><a href="/ca/docs/Web_Development/Mobile/Responsive_design" title="/en-US/docs/Web_Development/Mobile/Responsive_design">Disseny web sensible (un únic disseny que s'adapta al navegador)</a></li> + <li><a href="/ca/docs/Web_Development/Mobile/A_hybrid_approach" title="/en-US/docs/Web_Development/Mobile/A_hybrid_approach">Una solució híbrida</a></li> +</ul> +<div class="originaldocinfo"> + <h3 id="Informació_del_document_original">Informació del document original</h3> + <p>Aquest article va ser publicat originalment el 13 de Maig de 2011, al bloc Mozilla Webdev com "<a class="external" href="http://blog.mozilla.com/webdev/2011/05/13/approaches-to-mobile-web-development-part-2-separate-sites/" title="http://blog.mozilla.com/webdev/2011/05/13/approaches-to-mobile-web-development-part-2-separate-sites/">Approaches to Mobile Web Development Part 2 – Separate Sites</a>", per Jason Grlicky.</p> +</div> +<p> </p> |